On Wed, 2018-02-07 at 22:18 +0100, Nikola Ciprich wrote: > Hi, > > based upon discussion with Andy few days ago, when testing patches > to fix multiport serial card fixes + brainboxes 4100 detection support > I created experimental patch to add another brainboxes card detection > (this one has 4 serial ports, no parport, so I added it to 8250_pci.c) > > here's lspci output: > > 03:01.0 Multiport serial controller: Brain Boxes Device 0d21 (rev 01) > Subsystem: Brain Boxes Device 0633 > Flags: medium devsel, IRQ 11 > Memory at febffc00 (32-bit, non-prefetchable) [size=128] > I/O ports at ec00 [size=128] > I/O ports at e880 [size=64] > I/O ports at e800 [size=16] > Memory at febff800 (32-bit, non-prefetchable) [size=64] > Memory at febff400 (32-bit, non-prefetchable) [size=16] > Capabilities: [40] Power Management version 2 > 00: 5a 13 21 0d 0b 00 10 02 01 00 02 07 00 00 00 00 > 10: 00 fc bf fe 01 ec 00 00 81 e8 00 00 01 e8 00 00 > 20: 00 f8 bf fe 00 f4 bf fe 00 00 00 00 5a 13 33 06 > 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00 > 40: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 > 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > manual card setup is possible as follows: > > /bin/setserial /dev/ttyS2 port 0xE880 irq 11 spd_normal skip_test > autoconfig > /bin/setserial /dev/ttyS3 port 0xE888 irq 11 spd_normal skip_test > autoconfig > /bin/setserial /dev/ttyS4 port 0xE890 irq 11 spd_normal skip_test > autoconfig > /bin/setserial /dev/ttyS5 port 0xE898 irq 11 spd_normal skip_test > autoconfig According to the script you are using BAR 2 with I/O resource. > > here's my patch: > > diff --git a/drivers/tty/serial/8250/8250_pci.c > b/drivers/tty/serial/8250/8250_pci.c > index 54adf8d..b654bc0 100644 > --- a/drivers/tty/serial/8250/8250_pci.c > +++ b/drivers/tty/serial/8250/8250_pci.c > @@ -1734,7 +1734,9 @@ static int pci_eg20t_init(struct pci_dev *dev) > #define PCI_DEVICE_ID_ACCESIO_PCIE_COM_8SM 0x10E9 > #define PCI_DEVICE_ID_ACCESIO_PCIE_ICM_4SM 0x11D8 > > - > +#define PCI_VENDOR_ID_BRAINBOXES 0x135A This is already defined as INTASHIELD vendor (which is part of brainboxes nowadays). > +#define PCI_DEVICE_ID_BRAINBOXES_UC260_1 0x0D21 > +#define PCI_DEVICE_ID_BRAINBOXES_UC260_2 0x0E34 > > /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ > #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 > @@ -4699,6 +4707,15 @@ static SIMPLE_DEV_PM_OPS(pciserial_pm_ops, > pciserial_suspend_one, > PCI_ANY_ID, PCI_ANY_ID, 0, 0, /* 135a.0dc0 */ > pbn_b2_4_115200 }, > /* > + * BrainBoxes UC260 > + */ > + { PCI_VENDOR_ID_BRAINBOXES, > PCI_DEVICE_ID_BRAINBOXES_UC260_1, Use plain hex just here w/o definition. > + PCI_ANY_ID, PCI_ANY_ID, 0, 0, Shouldn't be PCI_CLASS_COMMUNICATION_MULTISERIAL << 8, 0xffff00, instead of 0, 0 above? > + pbn_b2_4_115200 }, > + { PCI_VENDOR_ID_BRAINBOXES, > PCI_DEVICE_ID_BRAINBOXES_UC260_2, > + PCI_ANY_ID, PCI_ANY_ID, 0, 0, > + pbn_b2_4_115200 }, > (tested on latest head with Andy's multiport fixes applied) > > the problem is, it doesn't work. Elaborate "doesn't work". > One thing I'm not sure and I'd like to > ask is how do I find out which FL_BASE value should I use? Compare your script to your lspci output. Match with BAR number. > I tried FL_BASE0 > and FL_BASE2, but instead of trying all possible values, I though it'd > be better > to actually KNOW what should go there and why.. Yes, but since you have hardware you are the best person to answer this question (or vendor of hardware themselves otherwise). > One more thing to note, the card only works for me (using setserial > manual > setup) when I disable APIC.. this is probably worth some investigation > as well.. This I can't help with. Try fist to boot with 'apic=debug'. > If somebody would give me some guidance, I'd be grateful -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html