Message ID | 1465703794-24402-1-git-send-email-xzy.xu@rock-chips.com |
---|---|
State | Deferred |
Headers | show |
Hi 2016-06-12 11:56 GMT+08:00 Ziyuan Xu <xzy.xu@rock-chips.com>: > If we would like to boot from SD card, we have to implement mmc driver > in SPL stage, and get a slightly larger spl binrary. RK3288's bootrom > code has the ability to load spl and u-boot. This patch tasks maskrom to > load u-boot. > > Loading sequence after rework: > bootrom ==> spl ==> bootrom ==> u-boot > > Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> > --- > arch/arm/mach-rockchip/rk3288/save_boot_param.S | 32 > +++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > create mode 100644 arch/arm/mach-rockchip/rk3288/save_boot_param.S > > diff --git a/arch/arm/mach-rockchip/rk3288/save_boot_param.S > b/arch/arm/mach-rockchip/rk3288/save_boot_param.S > new file mode 100644 > index 0000000..778ec83 > --- /dev/null > +++ b/arch/arm/mach-rockchip/rk3288/save_boot_param.S > @@ -0,0 +1,32 @@ > +/* > + * (C) Copyright 2015 Google, Inc > Should be "Copyright 2016 Rockchip Electronics Co., Ltd" > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <linux/linkage.h> > + > +.globl SAVE_SP_ADDR > +SAVE_SP_ADDR: > + .word 0 > + > +/* > + * void save_boot_params > + * > + * Save sp, lr, r1~r12 > + */ > +ENTRY(save_boot_params) > + push {r1-r12, lr} > + ldr r0, =SAVE_SP_ADDR > + str sp, [r0] > + b save_boot_params_ret @ back to my caller > +ENDPROC(save_boot_params) > + > + > +.globl back_to_bootrom > +ENTRY(back_to_bootrom) > + ldr r0, =SAVE_SP_ADDR > + ldr sp, [r0] > + mov r0, #0 > + pop {r1-r12, pc} > +ENDPROC(back_to_bootrom) > -- > 1.9.1 > > > >
diff --git a/arch/arm/mach-rockchip/rk3288/save_boot_param.S b/arch/arm/mach-rockchip/rk3288/save_boot_param.S new file mode 100644 index 0000000..778ec83 --- /dev/null +++ b/arch/arm/mach-rockchip/rk3288/save_boot_param.S @@ -0,0 +1,32 @@ +/* + * (C) Copyright 2015 Google, Inc + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <linux/linkage.h> + +.globl SAVE_SP_ADDR +SAVE_SP_ADDR: + .word 0 + +/* + * void save_boot_params + * + * Save sp, lr, r1~r12 + */ +ENTRY(save_boot_params) + push {r1-r12, lr} + ldr r0, =SAVE_SP_ADDR + str sp, [r0] + b save_boot_params_ret @ back to my caller +ENDPROC(save_boot_params) + + +.globl back_to_bootrom +ENTRY(back_to_bootrom) + ldr r0, =SAVE_SP_ADDR + ldr sp, [r0] + mov r0, #0 + pop {r1-r12, pc} +ENDPROC(back_to_bootrom)
If we would like to boot from SD card, we have to implement mmc driver in SPL stage, and get a slightly larger spl binrary. RK3288's bootrom code has the ability to load spl and u-boot. This patch tasks maskrom to load u-boot. Loading sequence after rework: bootrom ==> spl ==> bootrom ==> u-boot Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> --- arch/arm/mach-rockchip/rk3288/save_boot_param.S | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 arch/arm/mach-rockchip/rk3288/save_boot_param.S