[U-Boot-Users] [PPC] PLEASE READ - was: [PATCH] Fix linker scripts: add NOLOAD atribute to .bss/.sbss sections

Wolfgang Denk
2008-02-06T22:11:19Z

In message <1202291955.25864.43.camel@gentoo-jocke.transmode.se> you wrote:
>
> I think the register approach is needed if we ever want to
> make u-boot fully relocateable.

Good point.

> 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 original idea of the table was that a user could provide (in his
board config file) a private version to allow for easy, #ifdef free
board specific initialization sequences.

Unfortunately I never found the time or resources to complete this.

> 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()?

They are not exactly forbidden, you just have to know exactly what you
can expect - i. e., usually they just don't make much sense ;-)

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
"I refuse to have a battle of wits with an unarmed person."