I am in the process of migrating from running CentOS 4.8 (32-bit) to CentOS 5.4 (64-bit) on my AMD Sempron(tm) Processor LE-1300 system (it is running CentOS 4.8 32-bit because the disk images are from a previous PIII system), and things are 'interesting' WRT how the Lava Computer mfg Inc Quattro-PCI card is being handled.
lspci (on CentOS 4.8 32-bit) yields:
01:0a.0 Serial controller: Lava Computer mfg Inc Quattro-PCI A 01:0a.1 Serial controller: Lava Computer mfg Inc Quattro-PCI B
On the 32-bit system (2.6.9-89.0.18.EL.plus.c4 [i686]) dmesg says:
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A ACPI: PCI Interrupt 0000:01:0a.0[A] -> GSI 16 (level, low) -> IRQ 233 ttyS4 at I/O 0xd080 (irq = 233) is a 16550A ttyS5 at I/O 0xd000 (irq = 233) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> GSI 16 (level, low) -> IRQ 233 ttyS6 at I/O 0xcc00 (irq = 233) is a 16550A ttyS7 at I/O 0xc880 (irq = 233) is a 16550A
With the 64-bit kernel (2.6.18-164.el5 [x86_64]) I get:
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19 ACPI: PCI Interrupt 0000:01:0a.0[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 0000:01:0a.0: ttyS2 at I/O 0xd080 (irq = 177) is a 16550A 0000:01:0a.0: ttyS3 at I/O 0xd000 (irq = 177) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 Couldn't register serial port 0000:01:0a.1: -28
OK, instead of skipping ttyS2 and ttyS3 (normally old-school on-board COM3 and COM4) and allocating ttyS4 through ttyS7 for the Quattro, it is assigning ttyS2 and ttyS3 to the first pair, and then barfing (-28?) on the second pair. I looked at the config files and found:
The 4.8 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
and the 5.4 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CS=m # CONFIG_SERIAL_8250_ACPI is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_MULTIPORT=y CONFIG_SERIAL_8250_RSA=y
Is what I am seeing a result of CONFIG_SERIAL_8250_ACPI and/or CONFIG_SERIAL_8250_MANY_PORTS not being set?
Would upgrading to the CentOSPlus kernel help?
On Fri, 2010-01-08 at 16:54 -0500, Robert Heller wrote:
I am in the process of migrating from running CentOS 4.8 (32-bit) to CentOS 5.4 (64-bit) on my AMD Sempron(tm) Processor LE-1300 system (it is running CentOS 4.8 32-bit because the disk images are from a previous PIII system), and things are 'interesting' WRT how the Lava Computer mfg Inc Quattro-PCI card is being handled.
lspci (on CentOS 4.8 32-bit) yields:
01:0a.0 Serial controller: Lava Computer mfg Inc Quattro-PCI A 01:0a.1 Serial controller: Lava Computer mfg Inc Quattro-PCI B
On the 32-bit system (2.6.9-89.0.18.EL.plus.c4 [i686]) dmesg says:
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A ACPI: PCI Interrupt 0000:01:0a.0[A] -> GSI 16 (level, low) -> IRQ 233 ttyS4 at I/O 0xd080 (irq = 233) is a 16550A ttyS5 at I/O 0xd000 (irq = 233) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> GSI 16 (level, low) -> IRQ 233 ttyS6 at I/O 0xcc00 (irq = 233) is a 16550A ttyS7 at I/O 0xc880 (irq = 233) is a 16550A
With the 64-bit kernel (2.6.18-164.el5 [x86_64]) I get:
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19 ACPI: PCI Interrupt 0000:01:0a.0[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 0000:01:0a.0: ttyS2 at I/O 0xd080 (irq = 177) is a 16550A 0000:01:0a.0: ttyS3 at I/O 0xd000 (irq = 177) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 Couldn't register serial port 0000:01:0a.1: -28
OK, instead of skipping ttyS2 and ttyS3 (normally old-school on-board COM3 and COM4) and allocating ttyS4 through ttyS7 for the Quattro, it is assigning ttyS2 and ttyS3 to the first pair, and then barfing (-28?) on the second pair. I looked at the config files and found:
The 4.8 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
and the 5.4 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CS=m # CONFIG_SERIAL_8250_ACPI is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_MULTIPORT=y CONFIG_SERIAL_8250_RSA=y
Is what I am seeing a result of CONFIG_SERIAL_8250_ACPI and/or CONFIG_SERIAL_8250_MANY_PORTS not being set?
Would upgrading to the CentOSPlus kernel help?
I don't think you need the plus kernel.
I did a similar dance when migrating to CentOS 5 on a box with a NetMOS serial card. My research led me to the boot-time kernel arguments related to the 8250 serial driver. Note that this has to be done as arguments to the kernel, in grub, because the 8250 driver is NOT built as a module, but is included in the basic kernel. After some banging around, I wound up with the argument "8250.nr_uarts=8" appended to the end of the "kernel" line in grub, and that made things work.
This is sort of documented in /usr/share/doc/kernel-doc-2.6.18/Documentation/kernel-parameters.txt. You do have to understand how the kernel params work, but after you get that straight, the rest follows.
On Fri, 2010-01-08 at 17:13 -0500, Ron Loftin wrote:
On Fri, 2010-01-08 at 16:54 -0500, Robert Heller wrote:
I am in the process of migrating from running CentOS 4.8 (32-bit) to CentOS 5.4 (64-bit) on my AMD Sempron(tm) Processor LE-1300 system (it is running CentOS 4.8 32-bit because the disk images are from a previous PIII system), and things are 'interesting' WRT how the Lava Computer mfg Inc Quattro-PCI card is being handled.
lspci (on CentOS 4.8 32-bit) yields:
01:0a.0 Serial controller: Lava Computer mfg Inc Quattro-PCI A 01:0a.1 Serial controller: Lava Computer mfg Inc Quattro-PCI B
On the 32-bit system (2.6.9-89.0.18.EL.plus.c4 [i686]) dmesg says:
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A ACPI: PCI Interrupt 0000:01:0a.0[A] -> GSI 16 (level, low) -> IRQ 233 ttyS4 at I/O 0xd080 (irq = 233) is a 16550A ttyS5 at I/O 0xd000 (irq = 233) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> GSI 16 (level, low) -> IRQ 233 ttyS6 at I/O 0xcc00 (irq = 233) is a 16550A ttyS7 at I/O 0xc880 (irq = 233) is a 16550A
With the 64-bit kernel (2.6.18-164.el5 [x86_64]) I get:
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19 ACPI: PCI Interrupt 0000:01:0a.0[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 0000:01:0a.0: ttyS2 at I/O 0xd080 (irq = 177) is a 16550A 0000:01:0a.0: ttyS3 at I/O 0xd000 (irq = 177) is a 16550A ACPI: PCI Interrupt 0000:01:0a.1[A] -> Link [LNKC] -> GSI 19 (level, low) -> IRQ 177 Couldn't register serial port 0000:01:0a.1: -28
OK, instead of skipping ttyS2 and ttyS3 (normally old-school on-board COM3 and COM4) and allocating ttyS4 through ttyS7 for the Quattro, it is assigning ttyS2 and ttyS3 to the first pair, and then barfing (-28?) on the second pair. I looked at the config files and found:
The 4.8 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
and the 5.4 kernel has:
# # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_CS=m # CONFIG_SERIAL_8250_ACPI is not set CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_MULTIPORT=y CONFIG_SERIAL_8250_RSA=y
Is what I am seeing a result of CONFIG_SERIAL_8250_ACPI and/or CONFIG_SERIAL_8250_MANY_PORTS not being set?
Would upgrading to the CentOSPlus kernel help?
I don't think you need the plus kernel.
I did a similar dance when migrating to CentOS 5 on a box with a NetMOS serial card. My research led me to the boot-time kernel arguments related to the 8250 serial driver. Note that this has to be done as arguments to the kernel, in grub, because the 8250 driver is NOT built as a module, but is included in the basic kernel. After some banging around, I wound up with the argument "8250.nr_uarts=8" appended to the end of the "kernel" line in grub, and that made things work.
This is sort of documented in /usr/share/doc/kernel-doc-2.6.18/Documentation/kernel-parameters.txt. You do have to understand how the kernel params work, but after you get that straight, the rest follows.
-- Ron Loftin reloftin@twcny.rr.com
--- One thing to see is from the kernel config he listed is the 4.8 can scale to 32 ports and the 5.4 only 4. If more than 4 is needed then a kernel recompile is needed. Has to change the value first. Like Ron said append it to the kernel line in grub.
BTW, I never seen any docu on it when i had the problem of hanging port extenders on tty0 & 1 for modem banks. Actually later on I found a bug request in RHB for it.
Also I have a problem with your post, heres why: The same for CentOS and RHEL 5.
uname -ra Linux ethies 2.6.18-164.9.1.el5 #1 SMP Tue Dec 15 21:04:57 EST 2009 i686 i686 i386 GNU/Linux # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
That can not be a """5""" Kernel you listed John
On Fri, Jan 8, 2010 at 2:44 PM, JohnS jses27@gmail.com wrote:
On Fri, 2010-01-08 at 17:13 -0500, Ron Loftin wrote:
Also I have a problem with your post, heres why: The same for CentOS and RHEL 5.
uname -ra Linux ethies 2.6.18-164.9.1.el5 #1 SMP Tue Dec 15 21:04:57 EST 2009 i686 i686 i386 GNU/Linux # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
That can not be a """5""" Kernel you listed John
In the original post, the list for 4.8 and the one for 5.4 were swapped. :)
Akemi
On Fri, 2010-01-08 at 14:55 -0800, Akemi Yagi wrote:
On Fri, Jan 8, 2010 at 2:44 PM, JohnS jses27@gmail.com wrote:
On Fri, 2010-01-08 at 17:13 -0500, Ron Loftin wrote:
Also I have a problem with your post, heres why: The same for CentOS and RHEL 5.
uname -ra Linux ethies 2.6.18-164.9.1.el5 #1 SMP Tue Dec 15 21:04:57 EST 2009 i686 i686 i386 GNU/Linux # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y
That can not be a """5""" Kernel you listed John
In the original post, the list for 4.8 and the one for 5.4 were swapped. :)
Akemi
--- LOL why yall do me like that... :-)
John