Xen on ARM Early Printk

From Xen
Revision as of 10:33, 12 September 2024 by Michal.orzel (talk | contribs) (Created page with "= Introduction = 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 th...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

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.

How to enable early printk

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.

For more information refer: xen.git:docs/misc/arm/early-printk.txt

Platform predefined configurations

When in doubt, you can refer to the following list of predefined platform configurations for the early printk.

CONFIG_EARLY_UART_BASE_ADDRESS

Platform Address
Early printk with 8250 on Broadcom 7445D0 boards with A15 processors 0xf040ab00
Early printk with 8250 on DRA7 platform 0x4806a000
Early printk with the second UART on Exynos5250 0x12c20000
Early printk with pl011 on ARM Fastmodel software emulators 0x1c090000
Early printk with pl011 with Hikey 960 0xfff32000
Early printk with pl011 on Juno platform 0x7ff80000
Early printk with SCIF0 on Renesas Lager board (R-Car H2 processor) 0xe6e60000
Early printk with pl011 on Calxeda Midway processors 0xfff36000
Early printk with MVEBU for Marvell Armada 3700 SoCs 0xd0012000
Early printk with UART3 on TI OMAP5432 processors 0x48020000
Early printk with SCIF2 on Renesas R-Car Gen3 processors 0xe6e88000
Early printk with pl011 for AMD Seattle processor 0xe1010000
Early printk with 8250 on Allwinner A31 processors 0x01c28000
Early printk with 8250 on Allwinner A20 processors 0x01c28000
Early printk with pl011 for Cavium ThunderX processor 0x87e024000000
Early printk with pl011 for versatile express 0x1c090000
Early printk with 820 on Xgene mcdivitt platform 0x1c021000
Early printk with 820 on Xgene storm platform 0x1c020000
Early printk with Cadence UART for Xilinx ZynqMP SoCs 0xff000000

EARLY_UART_PL011_BAUD_RATE

Platform Baud rate
Early printk with pl011 on ARM Fastmodel software emulators 115200

EARLY_UART_8250_REG_SHIFT

Platform Shift
Early printk with 8250 on Broadcom 7445D0 boards with A15 processors 2
Early printk with 8250 on DRA7 platform 2
Early printk with UART3 on TI OMAP5432 processors 2
Early printk with 8250 on Allwinner A31 processors 2
Early printk with 8250 on Allwinner A20 processors 2
Early printk with 820 on Xgene mcdivitt platform 2
Early printk with 820 on Xgene storm platform 2