x86/early_printk: Add support for MMIO-based UARTs
authorDenis Mukhin <dmukhin@ford.com>
Tue, 25 Mar 2025 00:55:40 +0000 (17:55 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 25 Mar 2025 07:35:38 +0000 (08:35 +0100)
commit3181424aeac2f6596534bf43021a10eae294a9b0
tree20bf2ffea4a53c2f2a8334c2384eb9021f42d045
parent2c118f50d7fd4d9aefc4533a26f83338b2906b7a
x86/early_printk: Add support for MMIO-based UARTs

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.

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.

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]

Note, the change does not integrate MMIO-based UART support to:

  arch/x86/boot/early_serial_console.c

Also, update kernel parameters documentation with the new syntax and
add the missing 'nocfg' setting to the PCI serial cards description.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20250324-earlyprintk-v3-1-aee7421dc469@ford.com
Documentation/admin-guide/kernel-parameters.txt
arch/x86/kernel/early_printk.c