diff mbox series

[U-Boot,v2] rockchip: update boot0 hook

Message ID 1513329212-13970-1-git-send-email-kever.yang@rock-chips.com
State Superseded
Delegated to: Philipp Tomsich
Headers show
Series [U-Boot,v2] rockchip: update boot0 hook | expand

Commit Message

Kever Yang Dec. 15, 2017, 9:13 a.m. UTC
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(-)

Comments

Philipp Tomsich Dec. 15, 2017, 9:15 a.m. UTC | #1
> 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(-)
> 

Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Philipp Tomsich Dec. 15, 2017, 3:58 p.m. UTC | #2
> 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>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
> 
> Changes in v2:
> - update commit message
> 
>  arch/arm/include/asm/arch-rockchip/boot0.h | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Philipp Tomsich Dec. 17, 2017, 3:49 p.m. UTC | #3
Kever,

> On 15 Dec 2017, at 16:58, Philipp Tomsich <philipp.tomsich@theobroma-systems.com> wrote:
> 
>> 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>
>> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
>> ---
>> 
>> Changes in v2:
>> - update commit message
>> 
>> arch/arm/include/asm/arch-rockchip/boot0.h | 14 +++++++++-----
>> 1 file changed, 9 insertions(+), 5 deletions(-)
>> 
> 
> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>

Changes requested are still pending from v1.
When starting to merge this, I encountered the same warnings and the nested
#if/#elif statements as last time...

None of the changes I had requested against v1 have been done.
Please refer to
	https://patchwork.ozlabs.org/patch/836639/

Please revise, so we can get this merged next week as we should get this fix
in as quickly as possible...

Thanks.
Philipp.
Philipp Tomsich Dec. 18, 2017, 4:05 p.m. UTC | #4
> 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>
> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
> ---
> 
> Changes in v2:
> - update commit message
> 
>  arch/arm/include/asm/arch-rockchip/boot0.h | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
diff mbox series

Patch

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