[U-Boot] [PATCH v2] Fix board init code to use a valid C runtime environment

Thomas Chou
2015-11-12T08:28:38Z

Hi Albert,

On 2015?11?12? 15:17, Albert ARIBAUD wrote:
>> ------------------------------------------------------------------------
>> diff --git a/common/init/board_init.c b/common/init/board_init.c
>> index 8839a4a..703e6d8 100644
>> --- a/common/init/board_init.c
>> +++ b/common/init/board_init.c
>> @@ -46,6 +46,7 @@ void board_init_f_gd(struct global_data *gd_ptr)
>> for (ptr = (int *)gd_ptr; ptr < (int *)(gd_ptr + 1); )
>> *ptr++ = 0;
>> #endif
>> + arch_setup_gd(gd_ptr);
>
> Correct -- in ARM (Thumb-1 at least) we cannot use arch_setup_gd() so
> we set GD (in r9) from within arch/arm/lib/crt0.S, but for NIOS2 it
> might (and apparently does) work. Where is GD stored in NIOS2?
>

It is a register, r26 "gp".

I have another question. Will it be simpler to have two calls instead of
four?

1. get size of gd plus malloc.

2. init gd and malloc.

Best regards,
Thomas