Bug 618280 - Update Serial Device Driver Support for Oxford Chipsets
Update Serial Device Driver Support for Oxford Chipsets
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
5.5
All Linux
low Severity low
: rc
: ---
Assigned To: Red Hat Kernel Manager
Red Hat Kernel QE team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-26 10:47 EDT by Oliver Aaltonen
Modified: 2013-02-27 07:15 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-27 07:15:32 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
Vendor-provided patch (8.80 KB, application/octet-stream)
2010-07-26 10:47 EDT, Oliver Aaltonen
no flags Details
Vendor-provided patch README (9.44 KB, text/plain)
2010-07-26 10:47 EDT, Oliver Aaltonen
no flags Details

  None (edit)
Description Oliver Aaltonen 2010-07-26 10:47:26 EDT
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.
Comment 1 Oliver Aaltonen 2010-07-26 10:47:48 EDT
Created attachment 434439 [details]
Vendor-provided patch README
Comment 2 IBM Bug Proxy 2010-11-16 15:41:21 EST
------- Comment From leitao@linux.vnet.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.
Comment 3 Jordi Sanfeliu 2010-11-17 05:09:48 EST
(In reply to comment #2)
> ------- Comment From leitao@linux.vnet.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
[...]
Comment 4 Per Hjartoy 2010-11-17 16:04:05 EST
Has anyone looked into making modification to the patch so that I can be distributed as a dynamically loadable kernel module?
Comment 5 Jordi Sanfeliu 2011-09-22 12:44:42 EDT
(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.

Note You need to log in before you can comment on or make changes to this bug.