Missing ports on PCI 8250 card

Bug #125524 reported by Mark Brown on 2007-07-12
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Unassigned
linux-source-2.6.20 (Ubuntu)
Undecided
Unassigned

Bug Description

When booting linux-image-2.6.20-16-386 version 2.6.20-16.29 only some of the ports on my PCI serial port card with the following lspci output are detected:

01:01.0 Serial controller: NetMos Technology PCI 9845 Multi-I/O Controller (rev 01) (prog-if 02 [16550])
        Subsystem: LSI Logic / Symbios Logic 0P6S (6 port 16550a serial card)
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Interrupt: pin A routed to IRQ 16
        Region 0: I/O ports at 9000 [size=8]
        Region 1: I/O ports at 9400 [size=8]
        Region 2: I/O ports at 9800 [size=8]
        Region 3: I/O ports at 9c00 [size=8]
        Region 4: I/O ports at a000 [size=8]
        Region 5: I/O ports at a400 [size=16]

There should be 6 ports but the 8250 driver produces the following output with dmesg:

[ 22.498946] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing
enabled
[ 22.499076] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 22.499212] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 22.499788] 00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 22.499988] 00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[ 22.500183] ACPI: PCI Interrupt 0000:01:01.0[A] -> GSI 19 (level, low) -> IRQ
 16
[ 22.500289] 0000:01:01.0: ttyS2 at I/O 0x9000 (irq = 16) is a 16550A
[ 22.500447] 0000:01:01.0: ttyS3 at I/O 0x9400 (irq = 16) is a 16550A
[ 22.500507] Couldn't register serial port 0000:01:01.0: -28

The same card was detected fine with dapper.

Anatoly Ershov (age-hotbox) wrote :

Just add a boot-time parameter to a kernel (this assumes 2 serial ports on a motherboard and 6 on your Multy-I/O card):
8250.nr_uarts=8

See http://www.ureader.de/msg/12563400.aspx
and http://lkml.org/lkml/2006/8/25/379

Good luck!

Mark Brown (broonie) wrote :

I can confirm that increasing the pre-reserved number of UARTs fixes the problem. It would obviously be sensible if the kernel were to at least suggest using this option when it notices the extra UARTs - I'll have a dig around at some point and see if that helps.

Beginning with the Hardy Heron 8.04 development cycle, all open Ubuntu kernel bugs need to be reported against the "linux" kernel package. We are automatically migrating this bug to the new "linux" package. However, development has already began for the upcoming Intrepid Ibex 8.10 release. It would be helpful if you could test the upcoming release and verify if this is still an issue - http://www.ubuntu.com/testing . If the issue still exists, please update this report by changing the Status of the "linux" task from "Incomplete" to "New". We appreciate your patience and understanding as we make this transition. Thanks!

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Michele Mangili (mangilimic) wrote :

We are closing this bug report because it lacks the information we need to investigate the problem, as described in the previous comments. Please reopen it if you can give us the missing information, and don't hesitate to submit bug reports in the future. To reopen the bug report you can click on the current status, under the Status column, and change the Status back to "New". Thanks again!

Changed in linux:
status: Incomplete → Invalid
Marcin Juszkiewicz (hrw) wrote :

My machine runs Lucid 10.04 and I am affected by this bug. Same card as original reporter. I can not reboot machine now to check with "8250.nr_uarts=7" option.

Before I used Debian with my own kernel build and with CONFIG_SERIAL_8250_NR_UARTS=10 and CONFIG_SERIAL_8250_RUNTIME_UARTS=7 options set.

If you need more informations - ask.

erwitte (df3ds) wrote :

NetMos Technology PCI 9845 Multi-I/O Controller (rev 01) worked fine under Ubuntu 8.04 using
the kernel parameter "8250.nr_uarts=7". To avoid undesired iteration of ports I used a setserial
script which for Ubuntu 10.04 needed to be modified (autoconfig instead of irq). The script is
invoked by /etc/rc.local at boot time.

# Switch off all ports on PCI 6 port card
setserial /dev/ttyS1 uart none
setserial /dev/ttyS2 uart none
setserial /dev/ttyS3 uart none
setserial /dev/ttyS4 uart none
setserial /dev/ttyS5 uart none
setserial /dev/ttyS6 uart none
# Reconfigure each port
setserial /dev/ttyS1 uart 16550A port 0x1030 autoconfig
setserial /dev/ttyS2 uart 16550A port 0x1028 autoconfig
setserial /dev/ttyS3 uart 16550A port 0x1020 autoconfig
setserial /dev/ttyS4 uart 16550A port 0x1018 autoconfig
setserial /dev/ttyS5 uart 16550A port 0x1010 autoconfig
setserial /dev/ttyS6 uart 16550A port 0x1000 autoconfig

lspci -vv lists the ports:

Interrupt: pin A routed to IRQ 21
 Region 0: I/O ports at 1030 [size=8]
 Region 1: I/O ports at 1028 [size=8]
 Region 2: I/O ports at 1020 [size=8]
 Region 3: I/O ports at 1018 [size=8]
 Region 4: I/O ports at 1010 [size=8]
 Region 5: I/O ports at 1000 [size=16]
 Kernel driver in use: serial
 Kernel modules: parport_serial

dmseg |grep tty

[ 0.000000] console [tty0] enabled
[ 0.344797] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.345897] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.346405] 0000:04:00.0: ttyS4 at I/O 0x1030 (irq = 21) is a 16550A
[ 0.346755] 0000:04:00.0: ttyS5 at I/O 0x1028 (irq = 21) is a 16550A
[ 0.347028] 0000:04:00.0: ttyS6 at I/O 0x1020 (irq = 21) is a 16550A
[ 0.347288] 0000:04:00.0: ttyS1 at I/O 0x1018 (irq = 21) is a 16550A
[ 0.347548] 0000:04:00.0: ttyS2 at I/O 0x1010 (irq = 21) is a 16550A
[ 0.347847] 0000:04:00.0: ttyS3 at I/O 0x1000 (irq = 21) is a 16550A
[ 4.792462] ttyS1: LSR safety check engaged!
[ 4.793886] ttyS1: LSR safety check engaged!
[ 4.795762] ttyS4: LSR safety check engaged!
[ 4.797389] ttyS4: LSR safety check engaged!
[ 4.799263] ttyS5: LSR safety check engaged!
[ 4.801136] ttyS5: LSR safety check engaged!
[ 5.464714] ttyS5: LSR safety check engaged!
[ 11.555002] ttyS1: LSR safety check engaged!
[ 11.561503] ttyS4: LSR safety check engaged!
[ 11.563440] ttyS5: LSR safety check engaged!
[ 11.576222] ttyS5: LSR safety check engaged!
[ 63.870475] ttyS5: LSR safety check engaged!
[14600.814367] ttyS5: LSR safety check engaged!

setserial /dev/ttyS5 -a

/dev/ttyS5: No such device

Striking is that the ports ttyS1 to ttyS4 can be used - but with error messages from the programs
which actually control RS-232 hardware. ttyS6 -although available as you see from above listings
can not be used. Simply no communication.

Question: Would building a new kernel as my predecessor wrote sort that Ubuntu 10.04 problem/bug out.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers