]> git.dujemihanovic.xyz Git - u-boot.git/commit
armv8: Disable pointer authentication traps for EL1
authorPeter Hoyes <Peter.Hoyes@arm.com>
Thu, 19 Aug 2021 15:53:09 +0000 (16:53 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 2 Sep 2021 14:17:45 +0000 (10:17 -0400)
commit53b40e8d54fcdb834e10e6538084517524b8401b
treeee886b7229895e4a9e1808548833d8e2520ef8e0
parent99a2bd65f1662c25b05d2b2fe209a76862159b87
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>
arch/arm/cpu/armv8/fsl-layerscape/spintable.S
arch/arm/cpu/armv8/transition.S
arch/arm/include/asm/macro.h
arch/arm/include/asm/system.h