Skip to contentSkip to conversation

arm/dt: Fix booting non-dt versatile

PATCH In review Grant Likely 3 participants 4 messages Jul 23, 2010 – Jul 28, 2010 2 messages not in the archive Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arm/dt: Fix booting non-dt versatile

Without this patch, versatilepb will not boot in qemu

---

Hi Jeremy,

I'm not sure if this is the best fix or not, but without it I cannot boot versatilepb anymore in QEMU.

g.

 arch/arm/kernel/head.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/kernel/head.S +1 -1
index 8683b3b..049d533 100644
@@ -93,7 +93,7 @@ ENTRY(stext)
 	 * Also, we don't need to call __vet_atags.
 	 */
 	add	r3, r1, #1
-	bcs	1f
+	beq	1f
 
 	bl	__lookup_machine_type		@ r5=machinfo
 	movs	r8, r5				@ invalid machine (r5=0)?
#1 lore raw

Hi Grant, Jeremy,

Quoted 31 lines

-----Original Message-----
From: devicetree-discuss- bounces+lorenzo.pieralisi=arm.com-uLR06cmDAlY/[email protected] [mailto:devicetree- discuss-bounces+lorenzo.pieralisi=arm.com-uLR06cmDAlY/[email protected]] On Behalf
Of Grant Likely
Sent: 23 July 2010 21:14
To: [email protected]; devicetree-discuss-uLR06cmDAlY/[email protected]
Subject: [PATCH] arm/dt: Fix booting non-dt versatile

Without this patch, versatilepb will not boot in qemu

---

Hi Jeremy,

I'm not sure if this is the best fix or not, but without it I cannot boot
versatilepb anymore in QEMU.

g.

 arch/arm/kernel/head.S |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/kernel/head.S +0 -0
index 8683b3b..049d533 100644

arch/arm/kernel/head.S ENTRY(stext) · line 99

Quoted 8 lines
arch/arm/kernel/head.S +1 -1
@@ -93,7 +93,7 @@ ENTRY(stext)
 	 * Also, we don't need to call __vet_atags.
 	 */
 	add	r3, r1, #1
-	bcs	1f
+	beq	1f
 
 	bl	__lookup_machine_type		@ r5=machinfo
 	movs	r8, r5				@ invalid machine (r5=0)?

I think the issue is the add instruction not the conditional jump here. It needs to be an "adds" to update the flags so the carry.
With beq (or bcs) you are jumping on a condition set by the movs a few lines before, beq does not jump because the movs before did not set the zero flag otherwise you wouldn't be executing that code, you would have branched to __error_p.
Please let me know if it works I have not tested so I might be wrong.

Patches for versatile express coming,

Cheers,
Lorenzo

A message that is not in the archive (sent off-list or not yet received): 4725906257688056024@unknownmsgid

#3 lore raw
Quoted 38 lines · Lorenzo Pieralisi

Hi Grant, Jeremy,

Quoted 36 lines

-----Original Message-----
From: devicetree-discuss- bounces+lorenzo.pieralisi=arm.com-uLR06cmDAlY/[email protected] [mailto:devicetree- discuss-bounces+lorenzo.pieralisi=arm.com-uLR06cmDAlY/[email protected]] On Behalf
Of Grant Likely
Sent: 23 July 2010 21:14
To: [email protected]; devicetree-discuss-uLR06cmDAlY/[email protected]
Subject: [PATCH] arm/dt: Fix booting non-dt versatile

Without this patch, versatilepb will not boot in qemu

---

Hi Jeremy,

I'm not sure if this is the best fix or not, but without it I cannot boot
versatilepb anymore in QEMU.

g.

 arch/arm/kernel/head.S |    2 +-

 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/kernel/head.S +0 -0
index 8683b3b..049d533 100644
@@ -93,7 +93,7 @@ ENTRY(stext)
        * Also, we don't need to call __vet_atags.
        */

      add     r3, r1, #1
-     bcs     1f
+     beq     1f

Quoted 11 lines
Quoted 3 lines

      bl      __lookup_machine_type           @ r5=machinfo movs    r8, r5                          @ invalid machine (r5=0)?

I think the issue is the add instruction not the conditional jump here. It needs to be an "adds" to update the flags so the carry.
With beq (or bcs) you are jumping on a condition set by the movs a few lines before, beq does not jump because the movs before did not set the zero flag otherwise you wouldn't be executing that code, you would have branched to __error_p.
Please let me know if it works I have not tested so I might be wrong.

adds works for me on both Versatile (qemu) and Tegra.

g.

A message that is not in the archive (sent off-list or not yet received): AANLkTimv=FcKwHbXGsg4Je3MMuHHKuJAi8W+HusKszfr-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org

#5 lore raw

Hi all,

Quoted 1 line

adds works for me on both Versatile (qemu) and Tegra.

OK, I'll update my patch. Thanks for that!

Cheers,

Jeremy