rockchip: Print a message when returning to the bootrom
At present if the return to bootrom fails (e.g. because you are not using the Rockchip's bootrom's pointer table in MMC) then the board prints SPL message and hangs. Print a message first if we can, to help in understanding what happened when it hangs. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:
parent
d1710561b0
commit
e1bc64eec2
4 changed files with 28 additions and 5 deletions
|
@ -13,10 +13,15 @@
|
|||
*/
|
||||
extern u32 SAVE_SP_ADDR;
|
||||
|
||||
/*
|
||||
/**
|
||||
* Hand control back to the bootrom to load another
|
||||
* boot stage.
|
||||
*/
|
||||
extern void back_to_bootrom(void);
|
||||
void back_to_bootrom(void);
|
||||
|
||||
/**
|
||||
* Assembler component for the above (do not call this directly)
|
||||
*/
|
||||
void _back_to_bootrom_s(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
|
||||
obj-$(CONFIG_ROCKCHIP_BROM_HELPER) += bootrom.o
|
||||
|
||||
ifdef CONFIG_TPL_BUILD
|
||||
obj-$(CONFIG_ROCKCHIP_RK3188) += rk3188-board-tpl.o
|
||||
obj-$(CONFIG_ROCKCHIP_BROM_HELPER) += save_boot_param.o
|
||||
|
|
16
arch/arm/mach-rockchip/bootrom.c
Normal file
16
arch/arm/mach-rockchip/bootrom.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* Copyright (c) 2017 Google, Inc
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/arch/bootrom.h>
|
||||
|
||||
void back_to_bootrom(void)
|
||||
{
|
||||
#if defined(CONFIG_SPL_LIBGENERIC_SUPPORT) && !defined(CONFIG_TPL_BUILD)
|
||||
printf("Returning to boot ROM...");
|
||||
#endif
|
||||
_back_to_bootrom_s();
|
||||
}
|
|
@ -23,10 +23,10 @@ ENTRY(save_boot_params)
|
|||
ENDPROC(save_boot_params)
|
||||
|
||||
|
||||
.globl back_to_bootrom
|
||||
ENTRY(back_to_bootrom)
|
||||
.globl _back_to_bootrom_s
|
||||
ENTRY(_back_to_bootrom_s)
|
||||
ldr r0, =SAVE_SP_ADDR
|
||||
ldr sp, [r0]
|
||||
mov r0, #0
|
||||
pop {r1-r12, pc}
|
||||
ENDPROC(back_to_bootrom)
|
||||
ENDPROC(_back_to_bootrom_s)
|
||||
|
|
Loading…
Reference in a new issue