Hi Heiko, On 18 January 2015 at 23:15, Heiko Schocher <h...@denx.de> wrote: > Hello Bo, > > added Simon to cc ... > > Am 19.01.2015 02:41, schrieb Bo Shen: > >> Hi Andreas, >> >> On 01/16/2015 06:16 PM, Andreas Bießmann wrote: >>> >>> Hi Bo, >>> >>> On 01/16/2015 10:30 AM, Bo Shen wrote: >>>> >>>> On 01/16/2015 05:10 PM, Andreas Bießmann wrote: >>>>> >>>>> On 01/16/2015 03:53 AM, Bo Shen wrote: >>> >>> >>>>>> --- a/arch/arm/cpu/arm926ejs/at91/Makefile >>>>>> +++ b/arch/arm/cpu/arm926ejs/at91/Makefile >>>>>> @@ -25,5 +25,9 @@ obj-y += reset.o >>>>>> obj-y += timer.o >>>>>> >>>>>> ifndef CONFIG_SKIP_LOWLEVEL_INIT >>>>>> +ifdef CONFIG_SPL_BUILD >>>>>> +obj-y += spl_lowlevel_init.o >>>>>> +else >>>>>> obj-y += lowlevel_init.o >>>>>> endif >>>>>> +endif >>>>> >>>>> >>>>> I'm fine with having two variants of lowlevel_init for a time, but we >>>>> should consolidate this and use C-style initialisation of SDRAM and >>>>> stuff for the other armv5 at91 devices in future. AFAIK the >>>>> a/a/c/arm926ejs/at91/lowlevel_init.S is mainly used for NOR Flash >>>>> boots, >>>>> so using the SPL code (but not necessarily the two binary mechanism) >>>>> for >>>>> the NOR Flash boots in future is appreciated. >>>> >>>> >>>> OK, when all the arm9 at91 related board has SPL support, then I will do >>>> this. >>> >>> >>> Can we achieve this in this MW? >> >> >> I will try, but not sure. As I don't have this kind of board :( >> I need to check whether we still have this kind of board. >> >>>>>> +ENTRY(lowlevel_init) >>>>>> + /* >>>>>> + * Setup a temporary stack >>>>>> + */ >>>>>> + ldr sp, =CONFIG_SYS_INIT_SP_ADDR >>>>>> + bic sp, sp, #7 /* 8-byte alignment for ABI compliance */ >>>>>> + >>>>>> + ldr r9, =gdata
Please don't use 'gdata', we are trying to get rid of it throughout U-Boot in the next week or so. The global_data pointer is managed by crt0.S. You cannot use it in lowlevel_init. >>>>> >>>>> >>>>> I remember some patches removing the SPL gdata stuff, is that true? >>>> >>>> >>>> Thanks. >>>> >>>> Yes, just search for it, the following patch do this. >>>> http://patchwork.ozlabs.org/patch/423789/ (arm: Reduce the scope of >>>> lowlevel_init()) >>> >>> >>> I think we should use the function provided there. What do you think? >> >> >> OK. I will do it in next version. >> Thanks. > > > Hmm... looking into this patch [1] ... it says: > > + * Call the very early init function. This should do only the > + * absolute bare minimum to get started. It should not: > + * > + * - set up DRAM > + * - use global_data > + * - clear BSS > + * - try to start a console > > but if we have small init ram for SPL (like on the sam9260 with 4k sram) > we should init here SDRAM, so we could set bss and stack into RAM > in board_init_f, which is called after this function. I don't see any need to init DRAM before board_init_f(). What is needed here? Also I believe board_init_f() should not touch BSS in SPL (as with U-Boot proper). > > So we should rework the comment here ... or? > > bye, > Heiko > [1] http://patchwork.ozlabs.org/patch/423789/ Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot