[U-Boot] [PATCH] ARM: atmel: at91sam9m10g45ek: enable SPL
Simon Glass
sjg at chromium.org
Mon Jan 19 20:32:55 CET 2015
Hi Heiko,
On 18 January 2015 at 23:15, Heiko Schocher <hs at 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
More information about the U-Boot
mailing list