[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