* Serial port numbering (ttyS..) wrong for 2.5.61+
@ 2003-06-01 11:14 Ruud Linders
2003-06-01 12:48 ` Paul Rolland
0 siblings, 1 reply; 6+ messages in thread
From: Ruud Linders @ 2003-06-01 11:14 UTC (permalink / raw)
To: linux-kernel
Since I tried the 2.5 kernel versions somewhere in the 2.5.6x range, I
see rather odd port naming for the extra 4 serial ports on a PCI-card.
The first two are numered as ttyS14, ttyS15 while the last two are
ttyS2 and ttyS3 !
I tried to find where these numbers are coming from but couldn't really
find an obvious place in the various drivers/char/* or drivers/serial/*
files.
Note that the ttyS14 port actually works so this seems only a bug in
the numbering.
Regards,
Ruud Linders
Kernel version 2.5.70
---------------------
dmesg:
======
Serial: 8250/16550 driver $Revision: 1.90 $ IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
ttyS14 at I/O 0xbc00 (irq = 21) is a 16550A <<<<<< 14 ????
ttyS15 at I/O 0xbc08 (irq = 21) is a 16550A <<<<<<
ttyS2 at I/O 0xbc10 (irq = 21) is a 16550A
ttyS3 at I/O 0xbc18 (irq = 21) is a 16550A
4-port PCI serial controller:
=============================
# lspci -d 10b5:1077 -v
02:0b.0 Serial controller: PLX Technology, Inc. VScom 400 4 port serial
adaptor
(rev 02) (prog-if 00 [8250])
Subsystem: PLX Technology, Inc. VScom 400 4 port serial adaptor
Flags: medium devsel, IRQ 21
Memory at de004000 (32-bit, non-prefetchable) [size=128]
I/O ports at b800 [size=128]
I/O ports at bc00 [size=32]
I/O ports at c000 [size=8]
Expansion ROM at <unassigned> [disabled] [size=2K]
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: Serial port numbering (ttyS..) wrong for 2.5.61+ 2003-06-01 11:14 Serial port numbering (ttyS..) wrong for 2.5.61+ Ruud Linders @ 2003-06-01 12:48 ` Paul Rolland 2003-06-02 17:51 ` Russell King 0 siblings, 1 reply; 6+ messages in thread From: Paul Rolland @ 2003-06-01 12:48 UTC (permalink / raw) To: 'Ruud Linders', linux-kernel Hello, > Since I tried the 2.5 kernel versions somewhere in the 2.5.6x range, I > see rather odd port naming for the extra 4 serial ports on a PCI-card. Which driver are you using ? > The first two are numered as ttyS14, ttyS15 while the last two are > ttyS2 and ttyS3 ! > I tried to find where these numbers are coming from but > couldn't really > find an obvious place in the various drivers/char/* or > drivers/serial/* > files. Numbering seems to be coming out of drivers/serial/core.c : uart_find_match_or_unused which is responsible for finding an unused state for the port. However, the code there seems to be clean and I guess we should look where the state are initialized. Paul ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Serial port numbering (ttyS..) wrong for 2.5.61+ 2003-06-01 12:48 ` Paul Rolland @ 2003-06-02 17:51 ` Russell King 2003-06-02 18:43 ` Paul Rolland 0 siblings, 1 reply; 6+ messages in thread From: Russell King @ 2003-06-02 17:51 UTC (permalink / raw) To: Paul Rolland; +Cc: 'Ruud Linders', linux-kernel On Sun, Jun 01, 2003 at 02:48:14PM +0200, Paul Rolland wrote: > Numbering seems to be coming out of > drivers/serial/core.c : uart_find_match_or_unused > which is responsible for finding an unused state for the port. > > However, the code there seems to be clean and I guess we should look > where the state are initialized. When we add a port to the system, we try to find in order: - a port which matches the base address - a port which is unallocated Probably the easiest way to stop the "ttyS14" occuring would be to clear the port information at boot when we don't find a port. -- Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux http://www.arm.linux.org.uk/personal/aboutme.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Serial port numbering (ttyS..) wrong for 2.5.61+ 2003-06-02 17:51 ` Russell King @ 2003-06-02 18:43 ` Paul Rolland 2003-06-03 16:58 ` Ruud Linders 0 siblings, 1 reply; 6+ messages in thread From: Paul Rolland @ 2003-06-02 18:43 UTC (permalink / raw) To: 'Russell King'; +Cc: 'Ruud Linders', linux-kernel Hello, > When we add a port to the system, we try to find in order: > > - a port which matches the base address > - a port which is unallocated > > Probably the easiest way to stop the "ttyS14" occuring would > be to clear the port information at boot when we don't find a port. > >From 8250_pci.c, you have : /* * Probe one serial board. Unfortunately, there is no rhyme nor reason * to the arrangement of serial ports on a PCI card. */ It seems that your board is reporting the parameters in such an order that when looking for a port based on the IRQ, I/O port, ... the matching one has id 14... You could see this more clearly by setting SERIAL_DEBUG_PCI at line 1549 to activate the code : #ifdef SERIAL_DEBUG_PCI printk("Setup PCI port: port %x, irq %d, type %d\n", serial_req.port, serial_req.irq, serial_req.io_type); #endif that would report to you the order in which ports are found on your system. Regards, Paul ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Serial port numbering (ttyS..) wrong for 2.5.61+ 2003-06-02 18:43 ` Paul Rolland @ 2003-06-03 16:58 ` Ruud Linders 0 siblings, 0 replies; 6+ messages in thread From: Ruud Linders @ 2003-06-03 16:58 UTC (permalink / raw) To: Paul Rolland; +Cc: 'Russell King', 'Ruud Linders', linux-kernel Paul, Setting SERIAL_DEBUG_PCI gives me this: Serial: 8250/16550 driver $Revision: 1.90 $ IRQ sharing enabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A Setup PCI port: port bc00, irq 21, type 0 ttyS14 at I/O 0xbc00 (irq = 21) is a 16550A Setup PCI port: port bc08, irq 21, type 0 ttyS15 at I/O 0xbc08 (irq = 21) is a 16550A Setup PCI port: port bc10, irq 21, type 0 ttyS2 at I/O 0xbc10 (irq = 21) is a 16550A Setup PCI port: port bc18, irq 21, type 0 ttyS3 at I/O 0xbc18 (irq = 21) is a 16550A Doesn't give us much more detail. BTW, this is the entry in 8250_pci.c for the board in question: { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_1077, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b2_4_921600 }, Note that the ttyS's _are_ numbered in sequence in 2.4.20 On Mon, Jun 02, 2003 at 08:43:24PM +0200, Paul Rolland wrote: > Hello, > > > > When we add a port to the system, we try to find in order: > > > > - a port which matches the base address > > - a port which is unallocated > > > > Probably the easiest way to stop the "ttyS14" occuring would > > be to clear the port information at boot when we don't find a port. > > > >From 8250_pci.c, you have : > > /* > * Probe one serial board. Unfortunately, there is no rhyme nor reason > * to the arrangement of serial ports on a PCI card. > */ > > It seems that your board is reporting the parameters in such an order > that when looking for a port based on the IRQ, I/O port, ... the matching > one has id 14... > > You could see this more clearly by setting SERIAL_DEBUG_PCI > at line 1549 to activate the code : > #ifdef SERIAL_DEBUG_PCI > printk("Setup PCI port: port %x, irq %d, type %d\n", > serial_req.port, serial_req.irq, serial_req.io_type); > #endif > > that would report to you the order in which ports are found on > your system. > > Regards, > Paul > > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Serial port numbering (ttyS..) wrong for 2.5.61+ @ 2003-06-02 16:21 Ruud Linders 0 siblings, 0 replies; 6+ messages in thread From: Ruud Linders @ 2003-06-02 16:21 UTC (permalink / raw) To: Paul Rolland, linux-kernel >>Hello, > >> Since I tried the 2.5 kernel versions somewhere in the 2.5.6x range, I >> see rather odd port naming for the extra 4 serial ports on a PCI-card. >Which driver are you using ? See attached CONFIG_SERIAL* from my config, this is the 'standard' serial port driver. > >> The first two are numered as ttyS14, ttyS15 while the last two are >> ttyS2 and ttyS3 ! >> I tried to find where these numbers are coming from but >> couldn't really >> find an obvious place in the various drivers/char/* or >> drivers/serial/* >> files. > >Numbering seems to be coming out of >drivers/serial/core.c : uart_find_match_or_unused >which is responsible for finding an unused state for the port. > >However, the code there seems to be clean and I guess we should look >where the state are initialized. > >Paul ============================================================== # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_MULTIPORT=y # CONFIG_SERIAL_8250_RSA is not set # # Non-8250 serial port support # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2003-06-03 16:44 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-06-01 11:14 Serial port numbering (ttyS..) wrong for 2.5.61+ Ruud Linders 2003-06-01 12:48 ` Paul Rolland 2003-06-02 17:51 ` Russell King 2003-06-02 18:43 ` Paul Rolland 2003-06-03 16:58 ` Ruud Linders -- strict thread matches above, loose matches on Subject: below -- 2003-06-02 16:21 Ruud Linders
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox