Re: [PATCH] SPCR: check bit width for the 16550 UART

From: Jon Masters
Date: Tue Dec 06 2016 - 01:34:47 EST


On 12/05/2016 10:55 PM, Duc Dang wrote:
> On Mon, Dec 5, 2016 at 6:27 PM, Jon Masters <jcm@xxxxxxxxxx> wrote:
>> Hi Duc, all,
>>
>> So after regenerating the initrd override (I must have fat fingered)
>> it is now detecting the correct bit width on boot (attached dmesg log).
>>
>> HOWEVER while the console does come up, the use of "earlycon" on the
>> command line (with no parameters) doesn't result in the early SPCR
>> console coming up correctly. I see some garbled characters that
>> suggest the baud (or register access width) is off somewhere.
>
> My bad that I did not catch this in the morning. Yes, earlycon does
> not seems to work as expected. I can see that earlycon parameters
> seems to be correct, but the bootconsole message does not come out
> (the following is from 'dmesg')

> [ 0.000000] ACPI: SPCR: console: uart,mmio32,0x1c020000,115200
> [ 0.000000] earlycon: uart0 at MMIO32 0x000000001c020000 (options '115200')
> [ 0.000000] bootconsole [uart0] enabled

The difference appears to be in the baud rate. When I explicitly specify
"earlycon=uart8250,mmio32,0x1c021000" no baud is set. When booting with
the SPCR, the baud is set to 9600 in my case or 115200 in yours. But we
both know that the base clock on the X-Gene UART is weird. Maybe
somehow we can explain this through the lack of setting a baud.

I am pondering some more currently. If it's X-Gene specific, let's add
that to the quirk (and to perhaps a more APM specific SPCR subtype).

Jon.

--
Computer Architect | Sent from my Fedora powered laptop