Dne nedelja, 23. marec 2025 ob 12:35:34 Srednjeevropski standardni čas je Andre 
Przywara napisal(a):
> 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.przyw...@arm.com>

Reviewed-by: Jernej Skrabec <jernej.skra...@gmail.com>

Best regards,
Jernej


Reply via email to