[U-Boot] [PATCH] Fix omap5 hyp mode for second cpu

Vincent Stehlé v-stehle at ti.com
Tue Feb 19 15:25:28 CET 2013


Make it work on PandaBoard 5 with 5432 ES2 and Linux.

Signed-off-by: Vincent Stehlé <v-stehle at ti.com>
---

Hi,

Here are some necessary adaptations for OMAP5 ES2, as magic value has changed.
In the mean time, we make the secondary cpu routine a bit closer to what
romcode does.

Best regards,

V.

 arch/arm/lib/bootm.c |   19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 02852d6..dd8f42e 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -56,16 +56,21 @@ asm (
 		"ldr r12, =0x102\n"
 		"mov r0, pc\n"
 		"smc 0x1\n"
-		"ldr r1, =0x48281804\n" // AUX_CORE_BOOT_1
+		"ldr r1, =0x48281800\n" /* AUX_CORE_BOOT_0 */
 		"mov r2, #0\n"
-		"str r2, [r1]\n"
+		"str r2, [r1]\n"	/* AUX_CORE_BOOT_0 */
+		"str r2, [r1, #4]\n"	/* AUX_CORE_BOOT_1 */
 		"isb\n"
 		"dsb\n"
+		"mov r3, #0xf0\n"
 		"1: wfe\n"
-		"ldr r2, [r1]\n"
-		"cmp r2, #0\n"
-		"movne pc, r2\n"
-		"b 1b\n"
+		"ldr  r2, [r1]\n"	/* AUX_CORE_BOOT_0 */
+		"ands r2, r2, r3\n"
+		"beq  1b\n"
+		"ldr  r2, [r1, #4]\n"	/* AUX_CORE_BOOT_1 */
+		"cmp  r2, #0\n"
+		"beq  1b\n"
+		"bx   r2\n"
 	".popsection\n"
 );
 
@@ -378,7 +383,7 @@ void hyp_enable(void) {
 		"ldr r1, =0x48281800\n"     // AUX_CORE_BOOT_1
 		"ldr r2, =__hyp_init_sec\n"
 		"str r2, [r1, #4]\n"
-		"mov r2, #0x200\n"
+		"mov r2, #0x20\n"
 		"str r2, [r1]\n"            // AUX_CORE_BOOT_0
 		"isb\n"
 		"dmb\n"
-- 
1.7.9.5



More information about the U-Boot mailing list