[lkml]   [2020]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] serial: 8250_early: Add earlycon for BCM2835 aux uart
On Sun, Jan 26, 2020 at 01:33:14PM +0100, wrote:
> +
> +static int __init early_bcm2835aux_setup(struct earlycon_device *device,
> + const char *options)
> +{
> + if (!device->port.membase)
> + return -ENODEV;
> +
> + device->port.iotype = UPIO_MEM32;
> + device->port.regshift = 2;
> +
> + return early_serial8250_setup(device, NULL);
> +}
> +
> +OF_EARLYCON_DECLARE(bcm2835aux, "brcm,bcm2835-aux-uart",
> + early_bcm2835aux_setup);
> +#endif

Does this really work? I also tried to get it working recently and
the system just hung on boot. Looking at it with a JTAG debugger
showed that the bcm2835aux registers were inaccessible because
the mini UART wasn't enabled in the AUXENB register.

Maybe if you use OF_EARLYCON_DECLARE, the firmware recognizes that
serial1 is set as stdout-path and performs enablement of the mini UART?
Or are you using U-Boot which perhaps does the enablement?

I also saw in the JTAG debugger that the uartclk member contained
an incorrect value, so I'd expect that it has to be set as well in

I'll see to it that I give this patch a whirl when I return to the
office next week.



 \ /
  Last update: 2020-01-26 14:13    [W:0.063 / U:1.996 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site