diff mbox

[U-Boot] rockchip: rk3288: Change method of loading u-boot

Message ID 1465703794-24402-1-git-send-email-xzy.xu@rock-chips.com
State Deferred
Headers show

Commit Message

Xu Ziyuan June 12, 2016, 3:56 a.m. UTC
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

Comments

Eddie Cai June 12, 2016, 4:29 a.m. UTC | #1
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 mbox

Patch

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)