Created attachment 434438 [details] Vendor-provided patch Description of problem: The UART operation of the OXPCIe952, OXPCIe954, OXPCIe958 and OXPCIe200 when in either legacy or native UART modes is fully supported by the standard operating system driver under Linux 2.6. However unless the vendor and device IDs for the add-in card using the device are already recognized by Linux 2.6, you currently need to explicitly tell the operating system to use its standard 8250/16550 driver for this device. This requires recompiling the kernel with a few changes (as detailed in the attachments). This vendor-provided driver patch provides a solution for Oxford Semiconductor's vendor ID and the relevant default OXPCIe952, OXPCIe954, OXPCIe958 and OXPCIe200 device IDs.
Created attachment 434439 [details] Vendor-provided patch README
------- Comment From leitao.ibm.com 2010-11-16 15:37 EDT------- Hi, I've tested this patch, and it's causing an error that follows: Couldn't register serial port 0000:01:00.1: -28 This is basically becuase the number_uarts is wrong at this part of the patch: if (deviceID == 0x07000200) { number_uarts = ioread8(p + 4); printk(KERN_DEBUG "%d ports detected on Oxford PCI Express device\n", number_uarts); } On my case, it's a two port card, but it's displaying as 8 ports.
(In reply to comment #2) > ------- Comment From leitao.ibm.com 2010-11-16 15:37 EDT------- [...] > > On my case, it's a two port card, but it's displaying as 8 ports. Hi, I'm using this one and it works finely: http://www.chronos.com.tw/Product/G/952ER2/952ER2.htm Make sure you downloaded the correct driver PEX2S952.zip from here: http://eu.startech.com/product/PEX2S952-2-Port-PCI-Express-RS232-Native-Serial-Adapter-Card-with-16550-UART See my results: $ uname -r 2.6.18-194.17.4.el5.oxford $ lspci [...] 04:00.0 Serial controller: Oxford Semiconductor Ltd Unknown device c158 [...] $ dmesg [...] 2 ports detected on Oxford PCI Express device ttyS2: detected caps 00000700 should be 00000100 0000:04:00.0: ttyS2 at MMIO 0xfb8f1000 (irq = 169) is a 16C950/954 ttyS3: detected caps 00000700 should be 00000100 0000:04:00.0: ttyS3 at MMIO 0xfb8f1200 (irq = 169) is a 16C950/954 [...]
Has anyone looked into making modification to the patch so that I can be distributed as a dynamically loadable kernel module?
(In reply to comment #0) After upgrading to 5.7 I've noticed the new kernel supports those Oxford chips. See my results: $ uname -r 2.6.18-274.3.1.el5 $ lspci [...] 04:00.0 Serial controller: Oxford Semiconductor Ltd Device c158 [...] $ dmesg [...] 2 ports detected on Oxford PCI Express device ttyS2: detected caps 00000700 should be 00000100 0000:04:00.0: ttyS2 at MMIO 0xfbaf1000 (irq = 169) is a 16C950/954 ttyS3: detected caps 00000700 should be 00000100 0000:04:00.0: ttyS3 at MMIO 0xfbaf1200 (irq = 169) is a 16C950/954 [...] If this is Ok for you I think we could close this 'bug'. Regards.