[PATCH 0/3] aarch64: boot in to EL1NS

Gedare Bloom gedare at rtems.org
Thu Jan 6 22:22:30 UTC 2022


rtems-test results for xilinx-zynqmp_lp64_qemu with RTEMS_SMP:

Passed:        632
Failed:          5
User Input:      5
Expected Fail:   0
Indeterminate:   3
Benchmark:       3
Timeout:         1
Test too long:   1
Invalid:         0
Wrong Version:   0
Wrong Build:     0
Wrong Tools:     0
Wrong Header:    0
------------------
Total:         650
Failures:
 spintrcritical24.exe
 smpschededf01.exe
 smpmrsp01.exe
 spintrcritical21.exe
 smpschedaffinity02.exe

On Thu, Jan 6, 2022 at 3:13 PM Gedare Bloom <gedare at rtems.org> wrote:
>
> This patch series resolves a lingering problem with the
> aarch64 port for the versal, which uses gicv3, that it
> is not possible to initialize the GIC distributor and
> redistributor (cpuif) while in the non-secure world.
> Previously we added a configuration option to allow
> running RTEMS in secure world as a way to overcome
> this problem, but that is not the right thing to do
> in general. Only trusted firmware is expected to run
> in secure world, and it is not supported to run an SMP
> kernel in secure world, so this problem needs a different
> fix.
>
> We now use the bsp_start_hook_0 to initialize the GIC from
> EL3 secure before stepping down to EL1NS.
> This hook is only called when execution begins in EL3S, which is the
> case for the versal running on qemu. GIC initialization is still
> attempted again during the generic IRQ initialization. BSPs that
> start in EL2 or EL1, or that use gicv2, behave as before, but the
> BSP-specific SMP initialization for xilinx-zynqmp moves from hook_0
> to hook_1.
>
> rtems-test results for xilinx-versal_lp64_qemu:
> Passed:        578
> Failed:          2
> User Input:      5
> Expected Fail:   0
> Indeterminate:   0
> Benchmark:       3
> Timeout:         1
> Test too long:   2
> Invalid:         0
> Wrong Version:   0
> Wrong Build:     0
> Wrong Tools:     0
> Wrong Header:    0
> ------------------
> Total:         591
> Failures:
>  sp69.exe
>  spintrcritical21.exe
>
> ------------------
>
> rtems-test results for xilinx-zynqmp_lp64_qemu:
>
> Passed:        577
> Failed:          1
> User Input:      5
> Expected Fail:   0
> Indeterminate:   3
> Benchmark:       3
> Timeout:         1
> Test too long:   1
> Invalid:         0
> Wrong Version:   0
> Wrong Build:     0
> Wrong Tools:     0
> Wrong Header:    0
> ------------------
> Total:         591
> Failures:
>  spintrcritical21.exe
>
> ------------------
>
> Gedare Bloom (3):
>   bsps/aarch64: refactor register init and hooks
>   arm/gicv3: refactor DIST initialization to helper
>   aarch64: always boot into EL1NS
>
>  bsps/aarch64/shared/start/start.S             | 127 ++++++++++--------
>  .../xilinx-versal/start/bspstarthooks.c       |   3 +-
>  .../xilinx-zynqmp/start/bspstarthooks.c       |  12 +-
>  bsps/shared/dev/irq/arm-gicv3.c               |  75 +++++------
>  spec/build/bsps/aarch64/a53/grp.yml           |   2 -
>  spec/build/bsps/aarch64/a72/grp.yml           |   2 -
>  spec/build/bsps/aarch64/optisns.yml           |  20 ---
>  spec/build/bsps/aarch64/xilinx-versal/grp.yml |   2 -
>  spec/build/bsps/aarch64/xilinx-zynqmp/grp.yml |   2 -
>  9 files changed, 109 insertions(+), 136 deletions(-)
>  delete mode 100644 spec/build/bsps/aarch64/optisns.yml
>
> --
> 2.25.1
>


More information about the devel mailing list