[PATCH] arm/dt: Fix booting non-dt versatile

Grant Likely grant.likely at secretlab.ca
Wed Jul 28 06:47:42 EST 2010


On Mon, Jul 26, 2010 at 3:08 AM, Lorenzo Pieralisi
<Lorenzo.Pieralisi at arm.com> wrote:
> Hi Grant, Jeremy,
>
>> -----Original Message-----
>> From: devicetree-discuss-
>> bounces+lorenzo.pieralisi=arm.com at lists.ozlabs.org [mailto:devicetree-
>> discuss-bounces+lorenzo.pieralisi=arm.com at lists.ozlabs.org] On Behalf
>> Of Grant Likely
>> Sent: 23 July 2010 21:14
>> To: jeremy.kerr at canonical.com; devicetree-discuss at lists.ozlabs.org
>> Subject: [PATCH] arm/dt: Fix booting non-dt versatile
>>
>> Without this patch, versatilepb will not boot in qemu
>>
>> Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
>> ---
>>
>> 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(-)
>>
>> diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
>> index 8683b3b..049d533 100644
>> --- a/arch/arm/kernel/head.S
>> +++ b/arch/arm/kernel/head.S
>> @@ -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.

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

g.


More information about the devicetree-discuss mailing list