Re: [PATCH] x86/early_printk: add MMIO-based UARTs

From: Denis Mukhin
Date: Thu Mar 13 2025 - 20:37:37 EST


On Thursday, March 13th, 2025 at 5:04 PM, Dave Hansen <dave.hansen@xxxxxxxxx> wrote:

>
>
> On 3/13/25 16:45, Denis Mukhin via B4 Relay wrote:
>
> > During the bring-up of an x86 board, the kernel was crashing before
> > reaching the platform's console driver because of a bug in the firmware,
> > leaving no trace of the boot progress.
> >
> > It was discovered that the only available method to debug the kernel
> > boot process was via the platform's MMIO-based UART, as the board lacked
> > an I/O port-based UART, PCI UART, or functional video output.
>
>
> This is a pretty exotic piece of hardware, right? It's not some off the
> shelf laptop?

Correct, this is not off the shelf laptop.

>
> Is there a driver for it during normal runtime?

Yes, that is a variant of NS16550 UART.

>
> > Then it turned out that earlyprintk= does not have a knob to configure
> > the MMIO-mapped UART.
> >
> > Extend the early printk facility to support platform MMIO-based UARTs
> > on x86 systems, enabling debugging during the system bring-up phase.
> >
> > The command line syntax to enable platform MMIO-based UART is:
> > earlyprintk=mmio,membase[,{nocfg|baudrate}][,keep]
>
>
>
> I'll stick this in the queue to take a closer look after the next merge
> window closes. It's a bit on the late side in the 6.14 cycle for new stuff.
>
> I do appreciate the importance of having this tool in your toolbox.
> earlyprintk has saved my bacon more times than I can count.

Thanks!

--
Denis