[U-Boot] [PATCH] ARM: atmel: at91sam9m10g45ek: enable SPL

Heiko Schocher hs at denx.de
Mon Jan 19 07:15:00 CET 2015


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
>>>>
>>>> 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.

So we should rework the comment here ... or?

bye,
Heiko
[1] http://patchwork.ozlabs.org/patch/423789/
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list