[boot-wrapper PATCH v3 0/8] Add Armv8-R AArch64 support
From: Jaxson Han <hidden>
Date: 2021-05-25 06:28:18
Currently, we cannot boot Linux with boot-wrapper on Armv8-R AArch64: 1. The Armv8-R AArch64 profile does not support the EL3. 2. The Armv8-R AArch64 EL2 only supports a PMSA, which Linux does not support. So it's necessary to drop into EL1 before entering the kernel. 3. There is no EL2 booting code for Armv8-R AArch64 and no configuration for dropping to EL1 in boot-wrapper. These patches enable boot-wrapper booting Linux with Armv8-R AArch64: Patch 1 allows boot-wrapper to boot on more platforms. Patch 2 renames some labels as preparations for booting from lower EL. Patch 3 remove the redundant setup_stack. Patch 4-5 does some preparations for lower EL booting. Patch 6 prepares for GICv3 initialization with EL2. Patch 7 adds necessary EL2 registers. Patch 8 adds auto-detection for Armv8-R AArch64 to drop into EL1 before entering the kernel. Refs: Arm Architecture Reference Manual Supplement - Armv8, for Armv8-R AArch64 architecture profile. [https://developer.arm.com/documentation/ddi0600/latest/] --- v2 -> v3: 1. Refine Patch 1 and move relevant changes into Patch 5 and 8. 2. Refine Patch 8, more detailed comments and guarantees that those CPUID fields never lose features when the value in a field increases. Jaxson Han (8): Decouple V2M_SYS config by auto-detect dtb node aarch64: Rename labels and prepare for lower EL booting aarch64: Remove the redundant setup_stack aarch64: Prepare for EL1 booting aarch64: Prepare for lower EL booting gic-v3: Prepare for gicv3 with EL2 aarch64: Prepare for booting with EL2 aarch64: Introduce EL2 boot code for Armv8-R AArch64 Makefile.am | 4 +- arch/aarch32/include/asm/gic-v3.h | 7 ++ arch/aarch64/boot.S | 151 +++++++++++++++++++++++++++--- arch/aarch64/include/asm/cpu.h | 3 + arch/aarch64/include/asm/gic-v3.h | 38 +++++++- arch/aarch64/psci.S | 13 +-- arch/aarch64/spin.S | 8 +- arch/aarch64/utils.S | 10 +- gic-v3.c | 2 +- platform.c | 4 + 10 files changed, 208 insertions(+), 32 deletions(-) -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel