Hi Raymond On Fri, 19 Jan 2024 at 17:12, Raymond Mao <raymond....@linaro.org> wrote: > > Save boot arguments r[0-3] into an array for handover of bloblist from > previous boot stage. > > Signed-off-by: Raymond Mao <raymond....@linaro.org> > --- > Changes in v2 > - New patch file created for v2. > Changes in v3 > - Swap value of r0 with r2. > Changes in v4 > - Fix a bug when saving the boot args. > Changes in V5 > - Drop the dependence on OF_BOARD. > Changes in V7 > - Exclude the saved_args when BLOBLIST is disabled. > > arch/arm/cpu/armv7/start.S | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S > index 69e281b086..91691062c1 100644 > --- a/arch/arm/cpu/armv7/start.S > +++ b/arch/arm/cpu/armv7/start.S > @@ -152,9 +152,30 @@ ENDPROC(c_runtime_cpu_setup) > * > *************************************************************************/ > WEAK(save_boot_params) > +#if (IS_ENABLED(CONFIG_BLOBLIST)) > + ldr r12, =saved_args > + /* > + * Intentionally swapping r0 with r2 in order to simplify the C > + * function we use later. > + */ > + str r2, [r12] > + str r1, [r12, #4] > + str r0, [r12, #8] > + str r3, [r12, #12] > +#endif > b save_boot_params_ret @ back to my caller > ENDPROC(save_boot_params) > > +#if (IS_ENABLED(CONFIG_BLOBLIST)) > +.section .data
saved_args needs to be aligned. Also, the literal pool entry for saved_args will contain an absolute address. Does this code run before or after relocation? Thanks /Ilias > +.global saved_args > +saved_args: > + .rept 4 > + .word 0 > + .endr > +END(saved_args) > +#endif > + > #ifdef CONFIG_ARMV7_LPAE > WEAK(switch_to_hypervisor) > b switch_to_hypervisor_ret > -- > 2.25.1 >