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

Wolfgang Denk wd at denx.de
Wed Feb 6 23:11:19 CET 2008

In message <1202291955.25864.43.camel at 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."

More information about the U-Boot mailing list