[boot-wrapper PATCH v3 0/8] Add Armv8-R AArch64 support

Andre Przywara andre.przywara at arm.com
Thu Jun 17 04:57:38 PDT 2021


On Tue, 25 May 2021 14:25:01 +0800
Jaxson Han <jaxson.han at arm.com> wrote:

Hi Mark,

> 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.

So I reviewed the whole series (replies with the missing tags for 2/8
and 8/8 are on the list), and am now happy with it.
I also tested this for regressions with various v8-A models. I had
some issues with the SMMU on RevC models, but this was also with
boot-wrapper master and is unrelated to this series (as the kernel
starts booting).

So from my point of view this is good to go. Please let us know if you
need more information or how we can help with anything to get this
merged.

Cheers,
Andre
 
> 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(-)
> 




More information about the linux-arm-kernel mailing list