[LinuxBIOS] AMD64 serial setup

Stefan Reinauer stepan at openbios.org
Thu Mar 2 17:23:50 CET 2006


Hi,

I have a really weird problem on some amd64 machines running LinuxBIOS
(agami/aruma). The serial port doesn't seem to get initialized correctly.

LB seems to report it correctly in debug output (4 and 3 are normal):

PNP: 002e.2 60 <- [0x00000003f8 - 0x00000003ff] io
PNP: 002e.2 70 <- [0x0000000004 - 0x0000000004] irq
PNP: 002e.3 60 <- [0x00000002f8 - 0x00000002ff] io
PNP: 002e.3 70 <- [0x0000000003 - 0x0000000003] irq

but Linux doesn't set it up right - in fact, Linux sets it up *differently*
on occasion...

# grep ttyS.*irq messages
Feb 28 15:11:36 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 15:11:36 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 0) is a 16550A
Feb 28 15:14:53 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 15:14:53 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 15:23:24 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 15:23:24 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 15:38:58 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 15:38:58 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 15:47:21 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 15:47:21 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 0) is a 16550A
Feb 28 16:29:34 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 16:29:34 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 16:37:18 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 16:37:18 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 17:11:02 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 17:11:02 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A
Feb 28 18:14:49 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 0) is a 16550A
Feb 28 18:14:49 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 4) is a 16550A


AMIBIOS:

Jan  3 14:34:39 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Jan  3 14:34:39 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Jan  3 16:18:45 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Jan  3 16:18:45 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Jan  3 18:22:20 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Jan  3 18:22:20 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Jan  3 18:29:46 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Jan  3 18:29:46 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
Jan  4 00:11:21 testnode kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
Jan  4 00:11:21 testnode kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Any idea why and how that could happen?

   Stefan




More information about the coreboot mailing list