
Rockchip SoCs only need boot0 hook at SPL, and the U-Boot proper do not need it.
The very beginning of U-Boot proper is different between armv7 and armv8: armv7 start with ARM_VECTORS while armv8 start with 'b reset'.
Here is the map of very beginning for all cases: armv7 SPL: TAG(overwrite 'b 1f')+'b reset' + ARM_VECTORS armv7 U-Boot: ARM_VECTORS armv8 SPL: TAG(overwrite 'b 1f')+'b reset' + Reserved_iram(rk3399) armv8 U-Boot: 'b reset'
Signed-off-by: Kever Yang kever.yang@rock-chips.com ---
Changes in v2: - update commit message
arch/arm/include/asm/arch-rockchip/boot0.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/arch/arm/include/asm/arch-rockchip/boot0.h b/arch/arm/include/asm/arch-rockchip/boot0.h index af3a733..65b4213 100644 --- a/arch/arm/include/asm/arch-rockchip/boot0.h +++ b/arch/arm/include/asm/arch-rockchip/boot0.h @@ -26,7 +26,6 @@ */ b 1f /* if overwritten, entry-address is at the next word */ 1: -#endif #if CONFIG_IS_ENABLED(ROCKCHIP_EARLYRETURN_TO_BROM) adr r3, entry_counter ldr r0, [r3] @@ -40,6 +39,15 @@ entry_counter: .word 0 #endif b reset + +#if defined(CONFIG_ROCKCHIP_RK3399) + .space CONFIG_ROCKCHIP_SPL_RESERVE_IRAM /* space for the ATF data */ +#endif + +#elif defined(CONFIG_ARM64) /* U-Boot for arm64 */ + b reset +#endif + #if !defined(CONFIG_ARM64) /* * For armv7, the addr '_start' will used as vector start address @@ -49,7 +57,3 @@ entry_counter: _start: ARM_VECTORS #endif - -#if defined(CONFIG_ROCKCHIP_RK3399) && defined(CONFIG_SPL_BUILD) - .space CONFIG_ROCKCHIP_SPL_RESERVE_IRAM /* space for the ATF data */ -#endif