u-boot/arch/arm/cpu/armv8
Peter Hoyes 53b40e8d54 armv8: Disable pointer authentication traps for EL1
The use of ARMv8.3 pointer authentication (PAuth) is governed by fields
in HCR_EL2, which trigger a 'trap to EL2' if not enabled. The reset
value of these fields is 'architecturally unknown' so we must ensure
that the fields are enabled (to disable the traps) if we are entering
the kernel at EL1.

The APK field disables PAuth instruction traps and the API field
disables PAuth register traps

Add code to disable the traps in armv8_switch_to_el1_m. Prior to doing
so, it checks fields in the ID_AA64ISAR1_EL1 register to ensure pointer
authentication is supported by the hardware.

The runtime checks require a second temporary register, so add this to
the EL1 transition macro signature and update 2 call sites.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
2021-09-02 10:17:45 -04:00
..
bcmns3 board: ns3: add api to save boot parameters passed from BL31 2020-07-29 10:13:41 -04:00
fsl-layerscape armv8: Disable pointer authentication traps for EL1 2021-09-02 10:17:45 -04:00
hisilicon common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
xen board: Introduce xenguest_arm64 board 2020-08-14 15:18:27 -04:00
cache.S arm: armv8: Fix warning about redeclaring global functions as weak 2021-07-09 12:15:41 -04:00
cache_v8.c arm64: Update memcpy_{from, to}io() helpers 2021-07-28 19:30:22 -04:00
config.mk SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu-dt.c treewide: use CONFIG_IS_ENABLED() for ARMV8_SEC_FIRMWARE_SUPPORT 2020-12-04 16:09:05 -05:00
cpu.c common: Drop net.h from common header 2020-05-18 17:33:31 -04:00
exception_level.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
exceptions.S armv8: Reduce exception handling code 2018-08-03 19:53:54 -04:00
fel_utils.S sunxi: Add H616 FEL support 2021-01-25 21:52:01 +00:00
fwcall.c arm: Remove #include <version.h> from armv8/fwcall.c 2021-02-01 16:32:06 -05:00
generic_timer.c common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
linux-kernel-image-header-vars.h arm64: add an option to switch visibility of CONFIG_SYS_INIT_SP_BSS_OFFSET 2019-07-10 22:37:23 +09:00
lowlevel_init.S SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile armv8: Makefile: build cache files when needed 2021-01-16 19:17:11 -05:00
psci.S ARMv8: PSCI: Fix PSCI_TABLE relocation issue 2019-04-23 17:57:28 -04:00
sec_firmware.c image: Adjust the workings of fit_check_format() 2021-02-15 22:31:52 -05:00
sec_firmware_asm.S armv8: sec_firmware: change el2_to_aarch32 SMC ID 2018-12-06 14:37:19 -08:00
smccc-call.S arm: Leave smccc calls in .text when efi_loader=n 2019-02-13 09:40:06 +01:00
spin_table.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -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
spl_data.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
start.S armv8: Initialize CNTFRQ if at highest exception level 2021-07-23 18:53:46 -04: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 armv8: Disable pointer authentication traps for EL1 2021-09-02 10:17:45 -04:00
u-boot-spl.lds armv8: SPL: discard relocation information 2021-05-24 14:21:30 -04:00
u-boot.lds ARMv8: Allow SiP service extensions on top of PSCI code 2019-04-22 18:13:21 -04:00