mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
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>
43 lines
1.7 KiB
Plaintext
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.
|