u-boot/arch/arm/cpu/armv8
Andre Przywara abb086efd5 sunxi: armv8: fel: move fel_stash variable to the front
To return a 64-bit Allwinner chip back to the 32-bit BootROM code, we
have some embedded AArch32 code that restores the CPU state, before
branching back to the BootROM. At the moment the pointer to the buffer
with that state is located *after* the code, which makes the PC relative
code fragile: adding or removing instructions will change the distance
to that pointer variable.
The "new" Allwinner A523 SoC requires more state to be restored (GICv3
system registers), but we must do that *only* on that SoC. Conditional
compilation sounds like the easiest solution, but would mean that the
distance to that pointer would change.

Solve this rather easily by moving the pointer to the *front* of the
code: we load that pointer in the first instruction, so the distance
would always stay the same. Later in the code we won't need PC relative
addressing anymore, so this code can grow or shrink easily, for instance
due to conditional compilation.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
2025-03-27 00:26:35 +00:00
..
bcmns3 board: ns3: add api to save boot parameters passed from BL31 2020-07-29 10:13:41 -04:00
fsl-layerscape layerscape: use the lmb API's to add RAM memory 2024-10-15 13:45:29 -06:00
hisilicon Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
xen WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
acpi_park_v8.S arm: cpu: Add ACPI parking protocol support 2024-10-27 17:24:13 -06:00
cache_v8.c treewide: Add a function to change page permissions 2025-03-14 13:37:54 +02:00
cache.S arm: Check FEAT_CCIDX when parsing ccsidr_el1 register 2024-03-19 18:40:47 -04:00
config.mk arm: Centralize fixed register logic 2023-04-25 15:31:27 -04:00
cpu-dt.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
cpu.c armv8: cpu: Implement allow_unaligned() 2024-11-17 13:13:22 -06:00
exception_level.c arm: use type jmp_buf instead of struct jmp_buf_data 2025-03-10 07:41:23 +01:00
exceptions.S arm64: Save spsr in pt_regs 2022-04-01 16:56:53 -04:00
fel_utils.S sunxi: armv8: fel: move fel_stash variable to the front 2025-03-27 00:26:35 +00:00
fwcall.c arm: psci: Fix RESET2 hook 2023-01-31 15:46:39 +01:00
generic_timer.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
Kconfig armv8: generic_timer: Use event stream for udelay 2024-05-13 16:51:14 -06:00
linux-kernel-image-header-vars.h config: Use CONFIG_SYS_BIG_ENDIAN in code whenever possible 2024-07-31 11:18:37 -06:00
Makefile armv8: Add arch-specific sysinfo platform driver 2025-01-14 14:29:29 -06:00
psci.S arm: psci: Fix RESET2 hook 2023-01-31 15:46:39 +01:00
sec_firmware_asm.S armv8: sec_firmware: change el2_to_aarch32 SMC ID 2018-12-06 14:37:19 -08:00
sec_firmware.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
sha1_ce_core.S armv8 SHA-1 using ARMv8 Crypto Extensions: 2022-06-27 13:36:28 -04:00
sha1_ce_glue.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
sha256_ce_core.S armv8 SHA-256 using ARMv8 Crypto Extensions 2022-06-27 13:36:28 -04:00
sha256_ce_glue.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
smccc-call.S arm64: smccc: add support for SMCCCv1.2 x0-x17 registers 2023-08-08 10:22:03 -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
spin_table.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
spl_data.c arm: armv8: Improve SPL data save and restore implementation 2025-02-25 10:54:02 -06:00
start.S Merge patch series "Implement ACPI on aarch64" 2024-10-27 18:44:13 -06:00
sysinfo.c armv8: Add arch-specific sysinfo platform driver 2025-01-14 14:29:29 -06: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 arm64: Add late jump to kernel board hook 2025-02-15 14:44:43 +01:00
u-boot-spl.lds arm: armv8: Improve SPL data save and restore implementation 2025-02-25 10:54:02 -06:00
u-boot.lds arm: Prepare linker scripts for memory permissions 2025-03-14 13:30:12 +02:00