u-boot/arch/arm/cpu/armv8
Ilias Apalodimas a5ac47911a arm64: Fix page permissions for platforms running at EL2
We currently set both and print both PXN and UXN bits when removing
execution for pages. This happens even in the existing per platform
definitions of 'struct mm_region'.

That's not entirely correct though. For stage-1 translations, if a
platform runs on a translation regime with a single privilege level or the
the translation regime supports two privilege levels and we are not
in EL1&0 with HCR_EL2.{NV, NV1} = {1, 1} only BIT54 (XN) is needed
and BIT53(PXN) is reserved 0.

Currently we support Non-Secure EL2, Non-secure EL2&0 and Non-secure
EL1&0.

We already have get_effective_el() which returns 1 if we are
- Running in EL1 so we assume an EL1 translation regime but without
  checking HCR_EL2.{NV, NV1} != {1,1}
- Running in EL2 with HCR_EL2.E2H = 1

The only problem with the above is that if we are in EL1&0 and
HCR_EL2.{NV1, NV} == {1, 1}, then
- Bit[54] holds the PXN instead of the UXN
- The Effective value of UXN is 0
- Bit[53] is RES0

So let's re-use that function and set PXN only when we are in
and EL[2|1]&0 translation regime.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-04-04 12:24:56 -06:00
..
bcmns3 board: ns3: add api to save boot parameters passed from BL31 2020-07-29 10:13:41 -04:00
fsl-layerscape layerscape: use the lmb API's to add RAM memory 2024-10-15 13:45:29 -06:00
hisilicon Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
xen WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
acpi_park_v8.S arm: cpu: Add ACPI parking protocol support 2024-10-27 17:24:13 -06:00
cache_v8.c arm64: Fix page permissions for platforms running at EL2 2025-04-04 12:24:56 -06:00
cache.S arm: Check FEAT_CCIDX when parsing ccsidr_el1 register 2024-03-19 18:40:47 -04:00
config.mk arm: Centralize fixed register logic 2023-04-25 15:31:27 -04:00
cpu-dt.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
cpu.c armv8: cpu: Implement allow_unaligned() 2024-11-17 13:13:22 -06:00
exception_level.c arm: use type jmp_buf instead of struct jmp_buf_data 2025-03-10 07:41:23 +01:00
exceptions.S arm64: Save spsr in pt_regs 2022-04-01 16:56:53 -04:00
fel_utils.S sunxi: armv8: fel: move fel_stash variable to the front 2025-03-27 00:26:35 +00:00
fwcall.c arm: psci: Fix RESET2 hook 2023-01-31 15:46:39 +01:00
generic_timer.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
Kconfig armv8: generic_timer: Use event stream for udelay 2024-05-13 16:51:14 -06:00
linux-kernel-image-header-vars.h config: Use CONFIG_SYS_BIG_ENDIAN in code whenever possible 2024-07-31 11:18:37 -06:00
Makefile armv8: Add arch-specific sysinfo platform driver 2025-01-14 14:29:29 -06:00
psci.S arm: psci: Fix RESET2 hook 2023-01-31 15:46:39 +01:00
sec_firmware_asm.S armv8: sec_firmware: change el2_to_aarch32 SMC ID 2018-12-06 14:37:19 -08:00
sec_firmware.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
sha1_ce_core.S armv8 SHA-1 using ARMv8 Crypto Extensions: 2022-06-27 13:36:28 -04:00
sha1_ce_glue.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
sha256_ce_core.S armv8 SHA-256 using ARMv8 Crypto Extensions 2022-06-27 13:36:28 -04:00
sha256_ce_glue.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
smccc-call.S arm64: smccc: add support for SMCCCv1.2 x0-x17 registers 2023-08-08 10:22:03 -04:00
spin_table_v8.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spin_table.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
spl_data.c arm: armv8: Improve SPL data save and restore implementation 2025-02-25 10:54:02 -06:00
start.S Merge patch series "Implement ACPI on aarch64" 2024-10-27 18:44:13 -06:00
sysinfo.c armv8: Add arch-specific sysinfo platform driver 2025-01-14 14:29:29 -06:00
tlb.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
transition.S arm64: Add late jump to kernel board hook 2025-02-15 14:44:43 +01:00
u-boot-spl.lds arm: armv8: Improve SPL data save and restore implementation 2025-02-25 10:54:02 -06:00
u-boot.lds arm: Prepare linker scripts for memory permissions 2025-03-14 13:30:12 +02:00