
12 Nov
2015
12 Nov
'15
9:28 a.m.
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