[U-Boot] [PATCH] powerpc: do not fixup NULL ptrs

Wolfgang Denk wd at denx.de
Thu Nov 4 10:57:42 CET 2010


Dear Joakim Tjernlund,

In message <OF5324EC0A.37C044B2-ONC12577D1.0031F002-C12577D1.00326E3D at 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.

Is it really needed at _start?  Or can these NOPs be anywhere, and are
just needed to adjust some alignment?

When building for example for the MPC8315ERDB board, I see this
strange alignment here:

	-> grep _start_of_vectors System.map 
	fe0001a8 T _start_of_vectors

Adding 4 NOPs will move this nicely to the next exception vector
address at 0x200.

Eventually this is an alignment problem (but then, the
"STD_EXCEPTION(0x200, ...)" is supposed to align the respective code
to 0x200, and indeed we see

	fe0001a8 T _start_of_vectors
	fe000200 t MachineCheck
	fe000300 t DataStorage
	fe000400 t InstStorage
	...

Given the fact that _start_of_vectors is not used anywhere in the 83xx
code, all this is a pretty big mystery to me.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The explanation requiring the fewest assumptions is the  most  likely
to be correct.                                    -- William of Occam


More information about the U-Boot mailing list