u-boot/arch/arm
Samuel Holland f43312c974 ARM: Prevent the compiler from using NEON registers
For ARMv8-A, NEON is standard, so the compiler can use it even when no
special target flags are provided. For example, it can use stores from
NEON registers to zero-initialize large structures. GCC 11 decides to
do this inside the DRAM init code for the Allwinner H6.

However, GCC 11 has a bug where it generates misaligned NEON register
stores even with -mstrict-align. Since the MMU is not enabled this early
in SPL, the misaligned store causes an exception and breaks booting.

Work around this issue by restricting the compiler to using GPRs only,
not vector registers. This prevents any future surprises relating to
NEON use as well.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Acked-by: Andre Przywara <andre.przywara@arm.com>
2021-09-02 11:19:58 -04:00
..
cpu armv8: Add ARMv8 MPU configuration logic 2021-09-02 10:17:45 -04:00
dts board: stemmy: Add basic Fastboot support 2021-09-01 19:25:37 -04:00
include armv8: Add ARMv8 MPU configuration logic 2021-09-02 10:17:45 -04:00
lib arm: Use armv8_switch_to_el1 env to switch to EL1 2021-09-02 10:17:45 -04:00
mach-aspeed
mach-at91 Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-bcm283x
mach-bcmstb
mach-cortina
mach-davinci davinci: Drop CONFIG_MAC_ADDR_IN_EEPROM 2021-08-30 14:10:05 -04:00
mach-exynos Kconfig: Use spaces not tabs in Kconfig entires 2021-08-30 14:13:28 -04:00
mach-highbank
mach-imx Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-integrator
mach-ipq40xx
mach-k3
mach-keystone
mach-kirkwood Convert CONFIG_SYS_I2C_SPEED et al to Kconfig 2021-08-30 14:10:07 -04:00
mach-lpc32xx
mach-mediatek Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-meson
mach-mvebu Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-nexell
mach-octeontx
mach-octeontx2
mach-omap2 Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
mach-orion5x Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
mach-owl
mach-qemu
mach-rmobile Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-rockchip Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
mach-s5pc1xx
mach-snapdragon arm: mach-snapdrgon: misc: Simplify msm_generate_mac_addr() 2021-09-02 09:48:20 -04:00
mach-socfpga arm: socfpga: Enable Intel N5X device build 2021-08-25 15:26:38 +08:00
mach-sti
mach-stm32
mach-stm32mp Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-sunxi Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
mach-tegra Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
mach-u8500 board: stemmy: Update documentation 2021-09-01 19:25:37 -04:00
mach-uniphier
mach-versal arm: Migrate GICV2 / GICV3 to Kconfig 2021-08-30 14:13:26 -04:00
mach-versatile
mach-zynq
mach-zynqmp xilinx: zynqmp: Update descriptions for u-boot.its 2021-08-26 08:14:43 +02:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk ARM: Prevent the compiler from using NEON registers 2021-09-02 11:19:58 -04:00
Kconfig vexpress64: Add BASER_FVP vexpress board variant 2021-09-02 10:17:45 -04:00
Kconfig.debug
Makefile