Files
xen/docs/misc/arm/early-printk.txt
T
Michal Orzel 4fa2272458 xen/arm: debug-pl011: Add support for 32-bit only MMIO
There are implementations of PL011 that can only handle 32-bit accesses
as oppose to the normal behavior where accesses are 8/16-bit wide. This
is usually advertised by setting a dt property 'reg-io-width' to 4.

Introduce CONFIG_EARLY_UART_PL011_MMIO32 Kconfig option to be able to
enable the use of 32-bit only accessors in PL011 early printk code.
Define macros PL011_{STRH,STRB,LDRH} to distinguish accessors for normal
case from 32-bit MMIO one and use them in arm32/arm64 pl011 early printk
code.

Update documentation accordingly.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Tested-by: Henry Wang <Henry.Wang@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2023-06-19 12:20:11 -07:00

43 lines
1.7 KiB
Plaintext

How to enable early printk
Early printk can only be enabled if CONFIG_DEBUG=y or in EXPERT mode. You
may want to enable it if you are debugging code that executes before the
console is initialized.
Note that selecting this option will limit Xen to a single UART definition.
Attempting to boot Xen image on a different platform *will not work*, so this
option should not be enable for Xens that are intended to be portable.
Select one of the "Early printk via * UART" in the choice possible for
"Early printk" in the "Debugging options" of Kconfig. You will then need to
set other options, which depends on the driver selected.
CONFIG_EARLY_UART_BASE_ADDRESS is a mandatory argument, it is the base
physical address of the UART to use.
Other options depends on the driver selected:
- 8250
- CONFIG_EARLY_UART_8250_REG_SHIFT is, optionally, the left-shift to
apply to the register offsets within the uart.
- pl011
- CONFIG_EARLY_UART_PL011_BAUD_RATE is, optionally, a baud rate which
should be used to configure the UART at start of day.
If CONFIG_EARLY_UART_PL011_BAUD_RATE is set to 0 then the code will
not try to initialize the UART, so that bootloader or firmware
settings can be used for maximum compatibility.
- CONFIG_EARLY_UART_PL011_MMIO32 is, optionally, used to enable 32-bit
only accesses to registers.
- scif
- CONFIG_EARLY_UART_SCIF_VERSION_* is, optionally, the interface version
of the UART. Default to version NONE.
- For all other uarts there are no additional options.
As a convenience it is also possible to select from a list of
predefined configurations available in the list of choice for "Early
printk" for specific platform.
By default early printk is disabled.