[PATCH 25/34] sunxi: arm64: boot0.h: move fel_stash_addr variable to the front
Jernej Škrabec
jernej.skrabec at gmail.com
Sun Mar 23 13:23:50 CET 2025
Dne nedelja, 23. marec 2025 ob 12:35:35 Srednjeevropski standardni čas je Andre Przywara napisal(a):
> To be able to return to the BootROM when booting via the FEL USB
> protocol, we need to save the CPU state very early, which we need to do
> in the embedded AArch32 code. At the moment the pointer to the buffer for
> 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 saved (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 instructions, 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 at arm.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec at gmail.com>
Best regards,
Jernej
More information about the U-Boot
mailing list