[kvm-unit-tests PATCH 06/33] arm: Move io_init after vm initialization
Suzuki K Poulose
suzuki.poulose at arm.com
Fri Apr 12 03:33:41 PDT 2024
From: Jean-Philippe Brucker <jean-philippe at linaro.org>
To create shared pages, the NS_SHARED bit must be written into the
idmap. Before VM initializations, idmap hasn't necessarily been created.
To write shared pages, access must be done on a IPA with the NS_SHARED
bit. When the stage-1 MMU is enabled, that bit is set in the PTE. But
when the stage-1 MMU is disabled, then the realm must write to the IPA
with NS_SHARED directly.
To avoid changing the whole virtio infrastructure to support pre-MMU in
a realm, move the IO initialization after MMU enablement.
Signed-off-by: Jean-Philippe Brucker <jean-philippe at linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose at arm.com>
---
lib/arm/setup.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/arm/setup.c b/lib/arm/setup.c
index 34381218..fbb8f523 100644
--- a/lib/arm/setup.c
+++ b/lib/arm/setup.c
@@ -262,9 +262,6 @@ void setup(const void *fdt, phys_addr_t freemem_start)
/* cpu_init must be called before thread_info_init */
thread_info_init(current_thread_info(), 0);
- /* mem_init must be called before io_init */
- io_init();
-
timer_save_state();
ret = dt_get_bootargs(&bootargs);
@@ -275,6 +272,9 @@ void setup(const void *fdt, phys_addr_t freemem_start)
if (!(auxinfo.flags & AUXINFO_MMU_OFF))
setup_vm();
+
+ /* mem_init and setup_vm must be called before io_init */
+ io_init();
}
#ifdef CONFIG_EFI
--
2.34.1
More information about the linux-arm-kernel
mailing list