[U-Boot] commit "powerpc: Remove warm reset entry point" does not work on mpc83xx

Peter Tyser ptyser at xes-inc.com
Tue Oct 19 17:51:11 CEST 2010


On Tue, 2010-10-19 at 12:07 +0200, Joakim Tjernlund wrote:
> My board has a problem with this change. I added it manually to my tree 
> and
> now it wont boot at all(only with BDI2000 connected).

Just to clarify, it won't boot with or without the BDI2000 connected,
correct?

> It seems like my board uses the warm start vector at all times.
> Padding with 4 nop's after the _start symbol fixes the problem.
> It might be due to a somewhat peculiar reset design but I cannot 
> understand
> why. Does this work for everyone else using 83xx?

Odd...  I don't have an 83xx board to test on unfortunately.  Nothing
jumps out as being obviously wrong in the assembly:

===== Pre-commit (works):
fe000100 <_start>:
fe000100:       3a a0 00 01     li      r21,1
fe000104:       60 00 00 00     nop
fe000108:       48 00 00 10     b       fe000118 <boot_cold>
fe00010c:       00 00 00 00     .long 0x0

fe000110 <_start_warm>:
fe000110:       3a a0 00 02     li      r21,2
fe000114:       48 00 00 0c     b       fe000120 <boot_warm>

fe000118 <boot_cold>:
fe000118:       3c 80 ff 40     lis     r4,-192
fe00011c:       60 00 00 00     nop

fe000120 <boot_warm>:
fe000120:       7c a0 00 a6     mfmsr   r5
fe000124:       48 00 00 05     bl      fe000128 <boot_warm+0x8>
fe000128:       7c e8 02 a6     mflr    r7

===== Post-commit (doesn't work):
fe000100 <_start>:
fe000100:       3c 80 ff 40     lis     r4,-192
fe000104:       60 00 00 00     nop
fe000108:       7c a0 00 a6     mfmsr   r5
fe00010c:       48 00 00 05     bl      fe000110 <_start+0x10>
fe000110:       7c e8 02 a6     mflr    r7

It'll be interesting to hear if the change affects other boards in the
same way.

Best,
Peter



More information about the U-Boot mailing list