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
[email protected]
https://lists.sourceforge.net/lists/listinfo/u-boot-users