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