
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