mbox series

[boot-wrapper,0/5] Add Armv8-R AArch64 support

Message ID 20210420072438.183086-1-jaxson.han@arm.com (mailing list archive)
Headers show
Series Add Armv8-R AArch64 support | expand

Message

Jaxson Han April 20, 2021, 7:24 a.m. UTC
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 prepares for GICv3 initialization with EL2.
Patch 4 adds necessary EL2 registers.
Patch 5 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/]

Jaxson Han (5):
  Decouple V2M_SYS config by auto-detect dtb node
  aarch64: Rename labels and 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                       |   2 +-
 arch/aarch32/include/asm/gic-v3.h |   7 ++
 arch/aarch64/boot.S               | 105 ++++++++++++++++++++++++++----
 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, 162 insertions(+), 30 deletions(-)