Re: Garbage on serial console after serial driver loads

From: Russell King
Date: Sat Mar 26 2005 - 10:12:04 EST


On Sat, Mar 26, 2005 at 11:16:09AM +0100, Jan Engelhardt wrote:
> >Well, serial_core seems to think so:
> >
> >Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
> >ttyS0 at I/O 0x3f8 (irq = 4) is a NS16550A
> >ttyS1 at I/O 0x2f8 (irq = 3) is a NS16550A
> >ttyS0 at I/O 0x3f8 (irq = 4) is a NS16550A
>
> Does it work if you set the baud rate manually, as a bootloader option?

Doesn't matter. The problem is that dwmw2's NS16550A patch (from ages
ago) changes the prescaler setting for this device so we can use the
higher speed baud rates. This means any programmed divisor (programmed
at early serial console initialisation time) suddenly becomes wrong as
soon as we fiddle with the prescaler during normal UART initialisation
time.

I think the argument for not initialising serial console _until_ after
UART initialisation time is gaining more technical merit:

1. spinlock initialisation issues (see other threads)
2. prescaler/divisor interaction issues (this thread)

even though it isn't _that_ desirable.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/