This series adds Xen support for the NXP i.MX8M family (i.MX8MP / MQ /
MM / MN). It provides the console UART driver, its early printk, and
the platform glue (SiP SMC whitelist for the calls the dom0 kernel
issues to TF-A).
Tested on i.MX8MP (4x Cortex-A53, GICv3): dom0 boots to login on the
hypervisor console, and a domU starts with a PV disk and virtio
devices running a full Wayland distro. This addresses the concern
raised on the 2019 i.MX8MQ RFC that only a ramfs dom0 had been shown.
Notes for reviewers:
- Unlike i.MX8MQ, the i.MX8MP device tree uses the GIC as the root
interrupt controller (interrupt-parent = <&gic>), so no device-tree
workaround is needed and power domains keep working.
- The i.MX8M family has no SMMU, so device passthrough relies on the
1:1 direct-mapped hardware domain.
- The SiP SMC whitelist forwards only the function IDs the dom0 kernel
actually issues (extracted from the upstream and vendor kernels);
no call outside the whitelist was observed at runtime.
Wig Cheng (3):
xen/char: add classic i.MX UART driver
xen/arm64: add early printk for the classic i.MX UART
xen/arm: add i.MX8M platform support
xen/arch/arm/Kconfig.debug | 12 ++
xen/arch/arm/arm64/debug-imx-uart.inc | 39 +++++
xen/arch/arm/include/asm/imx-uart.h | 62 +++++++
xen/arch/arm/platforms/Makefile | 1 +
xen/arch/arm/platforms/imx8m.c | 116 +++++++++++++
xen/drivers/char/Kconfig | 8 +
xen/drivers/char/Makefile | 1 +
xen/drivers/char/imx-uart.c | 227 ++++++++++++++++++++++++++
8 files changed, 466 insertions(+)
create mode 100644 xen/arch/arm/arm64/debug-imx-uart.inc
create mode 100644 xen/arch/arm/include/asm/imx-uart.h
create mode 100644 xen/arch/arm/platforms/imx8m.c
create mode 100644 xen/drivers/char/imx-uart.c
--
2.43.0