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, the
platform glue (SiP SMC whitelist for the calls the dom0 kernel issues
to TF-A), and a MAINTAINERS entry.
Tested on i.MX8MP (4x Cortex-A53, GICv3) with the vendor kernel 6.18:
dom0 boots to login on the hypervisor console, and a domU starts with a
PV disk and virtio devices running a full Wayland distro.
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 specific subfunctions the
dom0 kernel issues, extracted from the vendor kernel call sites. CPU
and DRAM frequency scaling are both denied: the hardware domain
cannot make an informed decision about resources it shares with the
other domains. dom0's i.MX8M DDRC devfreq driver issues the DDR DVFS
call at boot; with it denied that driver just skips DRAM frequency
scaling (the DRAM stays at the frequency set by firmware) and dom0
boots normally.
Changes since v3:
- Patch 3: filter the SRC and NoC subfunctions with an explicit switch
that lists each accepted subfunction, instead of a range check
(Michal Orzel). The NoC service now accepts only the QoS priority
subfunction, and the unknown-function-id warning also prints the
subfunction id.
- Patches 1, 2 and 4 are unchanged; all four patches now carry Michal's
Reviewed-by.
Per-patch changelogs are in each patch.
v3: https://lore.kernel.org/xen-devel/20260818153946.1635464-1-onlywig@gmail.com/
Wig Cheng (4):
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
MAINTAINERS: add myself as reviewer of i.MX8M related patches
MAINTAINERS | 8 +
xen/arch/arm/Kconfig.debug | 12 ++
xen/arch/arm/arm64/debug-imx-uart.inc | 37 ++++
xen/arch/arm/include/asm/imx-uart.h | 57 +++++++
xen/arch/arm/platforms/Makefile | 1 +
xen/arch/arm/platforms/imx8m.c | 161 ++++++++++++++++++
xen/drivers/char/Kconfig | 8 +
xen/drivers/char/Makefile | 1 +
xen/drivers/char/imx-uart.c | 233 ++++++++++++++++++++++++++
9 files changed, 518 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