Message ID | 20211021144609.9319-4-pali@kernel.org |
---|---|
State | Accepted |
Commit | 701769d87ea3006103c93fd0ecc26875e02d461f |
Delegated to: | Stefan Roese |
Headers | show |
Series | arm: mvebu: Fix usage of BIN header arguments | expand |
On 21.10.21 16:46, Pali Rohár wrote: > Important detail is availability of kwbimage BIN header arguments passed > via r0 and r1 registers by BootROM. > > Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Thanks, Stefan > --- > arch/arm/mach-mvebu/lowlevel_spl.S | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/arch/arm/mach-mvebu/lowlevel_spl.S b/arch/arm/mach-mvebu/lowlevel_spl.S > index dde77b765214..39d42912c49f 100644 > --- a/arch/arm/mach-mvebu/lowlevel_spl.S > +++ b/arch/arm/mach-mvebu/lowlevel_spl.S > @@ -3,6 +3,15 @@ > #include <config.h> > #include <linux/linkage.h> > > +/* > + * BootROM loads the header part of kwbimage into L2 cache. BIN header usually > + * contains U-Boot SPL, optionally it can also contain additional arguments. > + * The number of these arguments is in r0, pointer to the argument array in r1. > + * BootROM expects executable BIN header code to return to address stored in lr. > + * Other registers (r2 - r12) must be preserved. We save all registers to > + * CONFIG_SPL_BOOTROM_SAVE address. BIN header arguments (passed via r0 and r1) > + * are currently not used by U-Boot SPL binary. > + */ > ENTRY(save_boot_params) > stmfd sp!, {r0 - r12, lr} /* @ save registers on stack */ > ldr r12, =CONFIG_SPL_BOOTROM_SAVE > Viele Grüße, Stefan
diff --git a/arch/arm/mach-mvebu/lowlevel_spl.S b/arch/arm/mach-mvebu/lowlevel_spl.S index dde77b765214..39d42912c49f 100644 --- a/arch/arm/mach-mvebu/lowlevel_spl.S +++ b/arch/arm/mach-mvebu/lowlevel_spl.S @@ -3,6 +3,15 @@ #include <config.h> #include <linux/linkage.h> +/* + * BootROM loads the header part of kwbimage into L2 cache. BIN header usually + * contains U-Boot SPL, optionally it can also contain additional arguments. + * The number of these arguments is in r0, pointer to the argument array in r1. + * BootROM expects executable BIN header code to return to address stored in lr. + * Other registers (r2 - r12) must be preserved. We save all registers to + * CONFIG_SPL_BOOTROM_SAVE address. BIN header arguments (passed via r0 and r1) + * are currently not used by U-Boot SPL binary. + */ ENTRY(save_boot_params) stmfd sp!, {r0 - r12, lr} /* @ save registers on stack */ ldr r12, =CONFIG_SPL_BOOTROM_SAVE
Important detail is availability of kwbimage BIN header arguments passed via r0 and r1 registers by BootROM. Signed-off-by: Pali Rohár <pali@kernel.org> --- arch/arm/mach-mvebu/lowlevel_spl.S | 9 +++++++++ 1 file changed, 9 insertions(+)