Bug 180062

Summary: kernel-2.6.15-1.1830 does not find all serial ports
Product: [Fedora] Fedora Reporter: jouni
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED NOTABUG QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: orders, pfrields, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-02-19 05:32:00 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:

Description jouni 2006-02-05 10:06:31 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20060202 Fedora/1.0.7-1.2.fc4 Firefox/1.0.7

Description of problem:
/var/log/messages of 2.6.15 boot:

kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing
enabled
kernel: serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: 00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
kernel: PCI: setting IRQ 11 as level-triggered
kernel: ACPI: PCI Interrupt 0000:02:0e.0[A] -> Link [LNKC] -> GSI 11
(level, low) -> IRQ 11
kernel: 0000:02:0e.0: ttyS2 at I/O 0xa800 (irq = 11) is a 16550A
kernel: 0000:02:0e.0: ttyS3 at I/O 0xa400 (irq = 11) is a 16550A

Older 2.6.14 kernels:

kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 32 ports, IRQ
sharing enabled
kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
kernel: PCI: setting IRQ 11 as level-triggered
kernel: ACPI: PCI Interrupt 0000:02:0e.0[A] -> Link [LNKC] -> GSI 11
(level, low) -> IRQ 11
kernel: ttyS4 at I/O 0xa800 (irq = 11) is a 16550A
kernel: ttyS5 at I/O 0xa400 (irq = 11) is a 16550A
kernel: ACPI: PCI Interrupt 0000:02:0e.1[A] -> Link [LNKC] -> GSI 11
(level, low) -> IRQ 11
kernel: ttyS6 at I/O 0xa000 (irq = 11) is a 16550A
kernel: ttyS7 at I/O 0x9800 (irq = 11) is a 16550A


Version-Release number of selected component (if applicable):
kernel-2.6.15-1.1830_FC4

How reproducible:
Always

Steps to Reproduce:
1.  Boot-up
2.
3.
  

Actual Results:  2 out of my 6 serial ports were not found.  2 ports had their port numbers changed when comparing to previous kernels.

Expected Results:  Same as with 2.6.14 and before.

Additional info:

lspci -v (2.6.14):
02:0e.0 Serial controller: Lava Computer mfg Inc Quattro-PCI A (prog-if
02 [16550])
        Flags: slow devsel, IRQ 11
        I/O ports at a800 [size=8]
        I/O ports at a400 [size=8]

02:0e.1 Serial controller: Lava Computer mfg Inc Quattro-PCI B (prog-if
02 [16550])
        Flags: slow devsel, IRQ 11
        I/O ports at a000 [size=8]
        I/O ports at 9800 [size=8]

Comment 1 jouni 2006-02-05 10:09:54 UTC
The log above were missing two important lines:

kernel: ACPI: PCI Interrupt 0000:02:0e.1[A] -> Link [LNKC] -> GSI 11 (level,
low) -> IRQ 11
kernel: Couldn't register serial port 0000:02:0e.1: -28


Comment 2 James Derrick 2006-02-08 23:01:40 UTC
Same behaviour observed with a clone 8-port PCI serial card on x86.

/var/log/messages of 2.6.14-1.1656_FC4

kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 32 ports, IRQ sharing enabled
kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A    (motherboard COMA)
kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A    (motherboard COMB)
kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
kernel: PCI: setting IRQ 10 as level-triggered
kernel: ACPI: PCI Interrupt 0000:02:05.0[A] -> Link [LNKB] -> GSI 10 (level,
low) -> IRQ 10
kernel: ttyS4 at I/O 0xb400 (irq = 10) is a 16550A    (PCI card port 1)
kernel: ttyS5 at I/O 0xb000 (irq = 10) is a 16550A    (PCI card port 2)
kernel: ttyS6 at I/O 0xac00 (irq = 10) is a 16550A    (PCI card port 3)
kernel: ttyS7 at I/O 0xa800 (irq = 10) is a 16550A    (PCI card port 4)
kernel: ttyS8 at I/O 0xa400 (irq = 10) is a 16550A    (PCI card port 5)
kernel: ttyS9 at I/O 0xa408 (irq = 10) is a 16550A    (PCI card port 6)
kernel: ttyS10 at I/O 0xa410 (irq = 10) is a 16550A   (PCI card port 7)
kernel: ttyS11 at I/O 0xa418 (irq = 10) is a 16550A   (PCI card port 8)

/var/log/messages of 2.6.15-1.1831_FC4

kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
kernel: serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kernel: 00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
kernel: ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10
kernel: PCI: setting IRQ 10 as level-triggered
kernel: ACPI: PCI Interrupt 0000:02:05.0[A] -> Link [LNKB] -> GSI 10 (level,
low) -> IRQ 10
kernel: 0000:02:05.0: ttyS2 at I/O 0xb400 (irq = 10) is a 16550A
kernel: 0000:02:05.0: ttyS3 at I/O 0xb000 (irq = 10) is a 16550A
kernel: Couldn't register serial port 0000:02:05.0: -28

With 2.6.15, /dev/ttyS0-3 are created (standard x86 hardware only has COMA &
COMB) ; no sign of higher 8 ports. Older kernels are AOK.

$ lspci -v
<snip>
02:05.0 Serial controller: AFAVLAB Technology Inc: Unknown device 2180 (prog-if
02 [16550])
        Subsystem: AFAVLAB Technology Inc: Unknown device 2180
        Flags: medium devsel, IRQ 10
        I/O ports at b400 [size=8]
        I/O ports at b000 [size=8]
        I/O ports at ac00 [size=8]
        I/O ports at a800 [size=8]
        I/O ports at a400 [size=32]
        Capabilities: [a0] Power Management version 1
<snip>

Looks like an upstream kernel bug as 2.6.15-1.1830 notes shows activity in the
serial code. Googling shows a similar bug report in debbugs.org .

Comment 3 Dave Jones 2006-02-19 05:32:00 UTC
boot with the parameter 8250.nr_uarts=6 (or however many you have).


Comment 4 James Derrick 2006-02-19 09:54:11 UTC
Tested OK.

Note: number of ports is (4 legacy ports COM1-4) + (number of extras)
I've got a PCI 8 port board, so used 12.

Boot and use built-in editor to add the parameter to the end of the kernel line.
Edited /boot/grub.conf to add 8250.nr_uarts=12:

title Fedora Core (2.6.15-1.1831_FC4)
        root (hd0,0)
        kernel /vmlinuz-2.6.15-1.1831_FC4 ro root=/dev/VolGroup00/LogVol00 rhgb
quiet 8250.nr_uarts=12
        initrd /initrd-2.6.15-1.1831_FC4.img

Ports show up as /dev/ttyS4-11.

Thanks!