u-boot/arch/arm/include/asm
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
..
arch-am33xx Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
arch-armada8k SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-armada100 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-armv7 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-aspeed aspeed: Add AST2600 platform support 2021-01-18 15:23:06 -05:00
arch-bcm235xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-bcm281xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-bcmcygnus Convert CONFIG_PHYLIB et al to Kconfig 2020-04-28 15:57:58 -04:00
arch-bcmns3 board: ns3: add api to save boot parameters passed from BL31 2020-07-29 10:13:41 -04:00
arch-bcmnsp SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-ep93xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-fsl-layerscape arm: Migrate GICV2 / GICV3 to Kconfig 2021-08-30 14:13:26 -04:00
arch-hi3660 common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
arch-hi3798cv200 poplar: clean up board level mmc initialization code 2019-01-25 12:12:57 -05:00
arch-hi6220 dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
arch-imx arm: imx: add i.MX8ULP cpu type and helper 2021-08-09 14:46:50 +02:00
arch-imx8 arm: imx8: Move container image header file to mach-imx 2021-08-09 14:46:50 +02:00
arch-imx8m arm: imx8mq: Add USB clock init function 2021-07-17 13:12:23 +02:00
arch-imx8ulp imx8ulp: add upower api support 2021-08-09 14:46:51 +02:00
arch-imxrt usb: ehci-mx6: add support for i.MXRT 2021-06-09 13:03:47 +02:00
arch-lpc32xx lpc32xx: Kconfig: switch to CONFIG_CONS_INDEX 2021-07-06 14:11:50 -04:00
arch-ls102xa gpio: mpc8xxx_gpio: Fix for litte endian 2021-02-08 14:01:19 +05:30
arch-mediatek mediatek: Drop dm.h header file 2020-08-03 22:19:54 -04:00
arch-meson arm: meson: remove static ethernet link setup 2021-04-06 11:10:29 +02:00
arch-mvebu km/spi: remove deprecated SPI flash driver code for KM Kirkwood boards 2019-07-11 10:58:03 +02:00
arch-mx5 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mx6 pci: imx: use reset-gpios if defined by device-tree 2021-07-10 16:53:34 +02:00
arch-mx7 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mx7ulp arm: imx: sys_proto: move boot mode define to common header 2021-08-09 14:46:50 +02:00
arch-mx25 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mx27 treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
arch-mx31 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mx35 spi: imx: Define register bits in the driver 2021-01-23 13:40:29 +01:00
arch-mxs treewide: convert bd_t to struct bd_info by coccinelle 2020-07-17 09:30:13 -04:00
arch-octeontx arm: octeontx: Add headers for OcteonTX 2020-08-25 08:01:16 +02:00
arch-octeontx2 arm: octeontx2: Add headers for OcteonTX2 2020-08-25 08:01:16 +02:00
arch-omap3 arm: omap3: Make secureworld_exit() static 2021-07-15 17:56:04 +05:30
arch-omap4 arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
arch-omap5 arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
arch-orion5x SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-owl net: designware: s700: Add glue code for S700 mac 2020-07-07 17:11:58 -04:00
arch-px30 rockchip: add px30 architecture core 2019-11-17 17:23:24 +08:00
arch-pxa SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-rk322x rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3036 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3128 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3188 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3288 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3308 arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
arch-rk3328 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3368 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3399 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-rk3568 rockchip: Add rk3568 architecture core 2021-06-18 14:36:24 +08:00
arch-rockchip rockchip: Add rk3568 architecture core 2021-06-18 14:36:24 +08:00
arch-rv1108 rockchip: add common header boot0.h and gpio.h for soc 2019-05-08 17:34:12 +08:00
arch-sa1100 Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
arch-stih410 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stm32 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stm32f4 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stm32f7 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stm32h7 treewide: Update email address Patrick Delaunay and Patrice Chotard 2020-12-09 10:57:50 +01:00
arch-stv0991 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-sunxi sunxi: A23/A33/H3: Move sun8i secure monitor to SRAM A2 2021-08-01 00:11:34 +01:00
arch-tegra common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
arch-tegra20 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra30 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra114 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-tegra124 common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
arch-tegra186 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arch-tegra210 ARM: tegra: Use common header for PMU declarations 2019-06-05 09:16:33 -07:00
arch-vf610 dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
armv8 common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
iproc-common configs: migrate CONFIG_SYS_ARM_CACHE_* in Kconfig 2020-05-01 11:34:01 -04:00
kona-common SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-imx arm: imx8ulp: add container support 2021-08-09 14:46:50 +02:00
proc-armv ARM: correct detection of thumb mode 2019-07-18 11:31:24 -04:00
ti-common common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
xen Revert "arch: arm/xen: add putc() for debugging" 2020-10-23 09:16:07 -04:00
acpi_table.h acpi: Add missing ARM acpi_table header 2021-01-18 15:14:15 -05:00
armv7.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
armv7_mpu.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
armv7m.h arm: armv7m: clean up armv7m unified code compilation 2018-09-10 21:19:33 -04:00
assembler.h arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
atomic.h ARM: use asm-generic/atomic.h 2018-09-25 21:49:18 -04:00
barriers.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bitops.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
boot0-linux-kernel-header.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootm.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
byteorder.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
cache.h arm: cp15: remove weak function arm_init_domains 2021-03-02 15:53:37 -05:00
config.h lmb: move CONFIG_LMB in Kconfig 2021-04-22 14:09:45 -04:00
davinci_rtc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma-mapping.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
ehci-omap.h usb: ehci-omap: Add Support for DM_USB and OF_CONTROL 2020-05-22 15:22:35 +02:00
emif.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
fsl_secure_boot.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gic-v3.h arch: arm: use dt and UCLASS_SYSCON to get gic lpi details 2020-07-29 10:37:11 -04:00
gic.h arm64 patch: gicv3 support 2014-04-08 00:15:12 +02:00
global_data.h driver: misc: Add MU and S400 API to communicate with Sentinel 2021-08-09 14:46:50 +02:00
gpio.h gpio: Introduce CONFIG_GPIO_EXTRA_HEADER to cleanup #ifdefs 2021-07-06 14:07:36 -04:00
handoff.h arm: Add arm handoff header file 2020-01-24 11:19:52 -05:00
hardware.h Move architecture-specific includes to arch/$ARCH/include/asm 2010-04-13 09:13:12 +02:00
io.h arm64: Update memcpy_{from, to}io() helpers 2021-07-28 19:30:22 -04:00
linkage.h arm: adapt asm/linkage.h from Linux 2012-05-15 08:31:26 +02:00
mach-types.h mcx: remove board 2019-05-28 13:58:06 -04:00
macro.h armv8: Disable pointer authentication traps for EL1 2021-09-02 10:17:45 -04:00
memory.h Various, accumulated typos collected from around the tree. 2016-10-06 20:57:40 -04:00
mmu.h arm: provide a function for boards init code to modify MMU virtual-physical map 2020-07-10 14:10:43 -04:00
omap_common.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
omap_gpio.h dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
omap_i2c.h dm: i2c: use CONFIG_IS_ENABLED macro for DM_I2C/DM_I2C_GPIO 2021-02-21 06:08:00 +01:00
omap_mmc.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
omap_musb.h dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
omap_sec_common.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
opcodes-sec.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
opcodes-virt.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
opcodes.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pl310.h ARM: pl310: Add macro's for handling tag and data latency mask 2019-05-05 08:48:50 -04:00
posix_types.h armv8: Use __aarch64__ rather than CONFIG_ARM64 in some cases 2014-01-10 10:10:23 +01:00
processor.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
psci.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
ptrace.h Remove ${objtree}/include/asm/proc/ link 2014-06-11 16:27:05 -04:00
sections.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
secure.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
setjmp.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
setup.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
spin_table.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spl.h arm: K3: am654: Add support for boot device detection 2018-09-11 08:32:55 -04:00
string.h ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and Tegra 2016-12-27 11:24:15 -05:00
system.h armv8: Disable pointer authentication traps for EL1 2021-09-02 10:17:45 -04:00
types.h arch: types.h: factor out fixed width typedefs to int-ll64.h 2018-09-10 20:48:16 -04:00
u-boot-arm.h common: Move reset_misc() function to arch header 2020-01-17 13:27:30 -05:00
u-boot.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
unaligned.h arm64: core support 2014-01-09 16:08:44 +01:00
unified.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
utils.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
xen.h board: Introduce xenguest_arm64 board 2020-08-14 15:18:27 -04:00