[CentOS] How do I configure additional serial ports?

Michael D. Kralka michael.kralka at kvs.com
Fri Mar 9 19:42:21 UTC 2007


James Pearson wrote:
> Alfred von Campe wrote:
[snip]
>> 0a:0a.0 Serial controller: Oxford Semiconductor Ltd OX16PCI954 (Quad 
>> 16950 UART) function 0 (Uart)
>> 0a:0a.1 Bridge: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) 
>> function 1 (8bit bus)
>> 0a:0c.0 Serial controller: Oxford Semiconductor Ltd OX16PCI954 (Quad 
>> 16950 UART) function 0 (Uart)
>> 0a:0c.1 Bridge: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) 
>> function 1 (8bit bus)
>>
>> However, only the 4 serial ports on one of the two cards are 
>> configured correctly:
>>
>> # dmesg | fgrep ttyS
>> ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
>> ttyS4 at I/O 0x5020 (irq = 177) is a 16C950/954
>> ttyS5 at I/O 0x5028 (irq = 177) is a 16C950/954
>> ttyS6 at I/O 0x5030 (irq = 177) is a 16C950/954
>> ttyS7 at I/O 0x5038 (irq = 177) is a 16C950/954
>> ttyS1 at I/O 0x5060 (irq = 193) is a 16450
>> ttyS2 at I/O 0x5068 (irq = 193) is a 16450
>> ttyS3 at I/O 0x5070 (irq = 193) is a 16450

The OX16PCI954 chip from Oxford includes a PCI bridge (0a:0a.1 and
0a:0c.1 in your lspci list) that can be used to "glue" additional (non
PCI-enabled) Quad-UARTs to the OX16CPI954.

The standard Linux serial driver always detects 4 phantom ports on this
bridge; which explains why ttyS1-ttyS3 are detected as 16450 (Linux
cannot detect what they are -- since they don't exist -- and defaults to
16450s).

When reconfiguring your kernel, you should take these 4 phantom ports
(per card) into account (since they will consumed /dev/ttyS# device
files). If you have two such cards, you should configure at lest 16
non-legacy ports.

Cheers
--
Michael



More information about the CentOS mailing list