u-boot/arch
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
..
arc Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
arm ARM: Prevent the compiler from using NEON registers 2021-09-02 11:19:58 -04:00
m68k m68k: Remove M52277EVB board 2021-07-18 21:03:57 -04:00
microblaze lmb: move CONFIG_LMB in Kconfig 2021-04-22 14:09:45 -04:00
mips Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
nds32 Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
nios2 global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
powerpc Finish converting CONFIG_SYS_CACHELINE_SIZE to Kconfig 2021-08-31 17:47:49 -04:00
riscv Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
sandbox Merge branch 'next' of https://gitlab.denx.de/u-boot/custodians/u-boot-marvell into next 2021-08-31 19:11:15 -04:00
sh global: Convert simple_strtoul() with hex to hextoul() 2021-08-02 13:32:14 -04:00
x86 Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
xtensa Kconfig: Remove all default n/no options 2021-08-31 17:47:49 -04:00
.gitignore
Kconfig Convert CONFIG_SKIP_LOWLEVEL_INIT et al to Kconfig 2021-08-31 17:47:49 -04:00
u-boot-elf.lds