[boot-wrapper PATCH v3 0/8] Add Armv8-R AArch64 support
Jaxson Han
jaxson.han at arm.com
Mon May 24 23:25:01 PDT 2021
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
More information about the linux-arm-kernel
mailing list