[U-Boot] Initializing global_data on SuperH before board_init_f() ?
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Wed Aug 16 08:47:40 UTC 2017
Hello,
On Wed, 16 Aug 2017 08:09:06 +0530, Lokesh Vutla wrote:
> > Should we put global_data within the .bss section, so that it gets
> > zero-initialized automatically? Should we zero-initialize it explicitly?
>
> I am not sure how SuperH allocates the space for global data but
> typically the following two function takes care of allocating and
> zeroing global data(at least for arm):
>
> In file common/init/board_init.c
> board_init_f_alloc_reserve()
> board_init_f_init_reserve()
>
> May be, using these two functions might solve your problem.
Seems like a good idea indeed, I hadn't noticed those functions. If I
understand correctly, and after looking at how a few architectures do,
they:
- Initialize the stack pointer just below the U-Boot entry point
- Call board_init_f_alloc_reserve(), to allocate enough space for the
global data on the stack
- Call board_init_f_init_reserve() to zero initialize it
I guess the SH code can be adapted to use this logic, I'll have a look
into that. Could take a while though, since I'm not fluent in SH
assembly.
Thanks for the hint!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
More information about the U-Boot
mailing list