Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
For bugs related to Red Hat Enterprise Linux 5 product line. The current stable release is 5.10. For Red Hat Enterprise Linux 6 and above, please visit Red Hat JIRA https://issues.redhat.com/secure/CreateIssue!default.jspa?pid=12332745 to report new issues.

Bug 618280

Summary: Update Serial Device Driver Support for Oxford Chipsets
Product: Red Hat Enterprise Linux 5 Reporter: Oliver Aaltonen <oliver.aaltonen>
Component: kernelAssignee: Red Hat Kernel Manager <kernel-mgr>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: low Docs Contact:
Priority: low    
Version: 5.5CC: jordi, oliver.aaltonen, per, walter
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-27 12:15:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Vendor-provided patch
none
Vendor-provided patch README none

Description Oliver Aaltonen 2010-07-26 14:47:26 UTC
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 14:47:48 UTC
Created attachment 434439 [details]
Vendor-provided patch README

Comment 2 IBM Bug Proxy 2010-11-16 20:41:21 UTC
------- 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.

Comment 3 Jordi Sanfeliu 2010-11-17 10:09:48 UTC
(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
[...]

Comment 4 Per Hjartoy 2010-11-17 21:04:05 UTC
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 16:44:42 UTC
(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.