
Wolfgang Denk wd@denx.de wrote on 2010/11/04 10:57:42:
Dear Joakim Tjernlund,
In message OF5324EC0A.37C044B2-ONC12577D1.0031F002-C12577D1.00326E3D@transmode.se you wrote:
4 nops after _start does the trick, i.e. the board is up and running fine.
...
How is this going? If nothing else I think you should send a patch for 83xx, adding the 4 nop's as your(and mine) board is broken otherwise. Freescale guys seems busy with other things so I think this is the best thing to do.
I don't like the idea of adding such code without any understanding why it would be needed for some boards, while it is not needed for others.
Sure, but until freescale or someone else with eq. and motivation researches it, we are stuck. I am not sure anyone else has tried 83xx based boards yet. If someone has please report. Also include weather booted from NAND or NOR, CPU type(e300cX) and what reset vector is used.
Is it really needed at _start? Or can these NOPs be anywhere, and are just needed to adjust some alignment?
no, the nops has to be directly after _start: . = EXC_OFF_SYS_RESET
.globl _start _start: /* time t 0 */ nop nop nop nop
My theory is that e300c2(no FPU) CPUs configured for low boot vector, 0x100, really uses 0x110 instead.
hmm, what if a board decides to do a soft reset anyway, perhaps by mistake. Would it not be a good thing if u-boot could handle that too?