diff options
author | Xu Ziyuan <xzy.xu@rock-chips.com> | 2016-07-12 11:09:49 (GMT) |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2016-07-26 02:44:18 (GMT) |
commit | b47ea79219f1de43fa21456c6c60c8390b8755d2 (patch) | |
tree | 7639d25c4dba2ed0fc87bd153111ba33a1dc2fa7 /arch/arm/mach-rockchip/save_boot_param.S | |
parent | 4579720412744dd13266a3505bb38ce2da819b4f (diff) | |
download | u-boot-fsl-qoriq-b47ea79219f1de43fa21456c6c60c8390b8755d2.tar.xz |
rockchip: add option to change method of loading u-boot
If we would like to boot from SD card, we have to implement mmc driver
in SPL stage, and get a slightly large SPL binary. Rockchip SoC's
bootrom code has the ability to load spl and u-boot, then boot.
If CONFIG_ROCKCHIP_SPL_BACK_TO_BROM is enabled, the spl will return to
bootrom in board_init_f(), then bootrom loads u-boot binary.
Loading sequence after rework:
bootrom ==> spl ==> bootrom ==> u-boot
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
Acked-by: Simon Glass <sjg@chromium.org>
Fixed up spelling of U-Boot, boorom, opinion->option, Rochchip:
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/arm/mach-rockchip/save_boot_param.S')
-rw-r--r-- | arch/arm/mach-rockchip/save_boot_param.S | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/arm/mach-rockchip/save_boot_param.S b/arch/arm/mach-rockchip/save_boot_param.S new file mode 100644 index 0000000..85b407b --- /dev/null +++ b/arch/arm/mach-rockchip/save_boot_param.S @@ -0,0 +1,32 @@ +/* + * (C) 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) |