[U-Boot] cpu/mpc512x/start.S question: the compare test during relocation...
Mike Timmons
michael.joseph.timmons at gmail.com
Sat Aug 8 16:54:07 CEST 2009
I have a board similar to the ads512101 evaluation board, at least that's my
starting point.
I'm booting and running, after making a slight change to start.S to get
lowboot working, as my board is hard-wired for lowboot.
In order to boot-through to the console I needed to disable a bne on a
compare failure under relocate_code: in cpu/mpc512x/start.S.
1) Can anyone tell me what is going on with this comparison?
With my comment removed, I've set a breakpoint (I use BDI2000) there and
indeed seen that r20 and r21 are equal for many trips through the loop. I
also set a breakpoint at 30: (compare fail) and I see that indeed r20 and
r21 are different.
-It's not clear why the comparison if failing, or maybe where: could I be
over-running source or destination memory, causing a compare fail?
-I'm challenged by the assembly code. I wouldn't say intimidated, but often
confused.
***Can anyone provide a top-down description of what is happenign here, and
maybe a hint as to some memory range/size issue that could cause this
compare to fail!
/* and compare */
20: lwzu r20,4(r8)
lwzu r21,4(r7)
xor. r22, r20, r21
/* bne 30f */ /* Mike - FIXME */
bdnz 20b
b 4f
/* compare failed */
30: li r3, 0
blr
Thanks!
-Mike
More information about the U-Boot
mailing list