On Mon, 2008-02-04 at 20:14 +0100, Wolfgang Denk wrote: > In message <[EMAIL PROTECTED]> you wrote: > > On Mon, Feb 04, 2008 at 12:32:36AM +0100, Wolfgang Denk wrote: > > > So far, it is not clear to me what a better choice for a global > > > register variable could be (i. e. which register we can chose for our > > > purpose without causing the same or other problems. > > > > r2 is generally used for this purpose. > > Hm... R2 is documented to be the TOC pointer? > > It seems we could use R15, but I hesitate a bit...
I think the register approach is needed if we ever want to make u-boot fully relocateable. There are a few global data accesses that needs to be fixed before that can happen though. There should not be any global data accesses before relocate_code has done its thing. One of the first things that happens in board_init_f is: for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr) () != 0) { hang (); } } init_sequence is a global variable. Is this table really needed? Why not move it inside board_init_f and save some bytes? The next is access is env_get_char, this probably needs to move into GD. I figured global data accesses wasn't allowed(other than GD) at all before relocate_code()? Jocke ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users