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

Reply via email to