[U-Boot] [PATCH 12/12] imx: ventana: switch to SPL

Tim Harvey tharvey at gateworks.com
Wed May 7 22:35:55 CEST 2014


On Wed, May 7, 2014 at 1:29 PM, York Sun <yorksun at freescale.com> wrote:
> On 05/07/2014 01:27 PM, Tim Harvey wrote:
>> On Wed, May 7, 2014 at 9:14 AM, York Sun <yorksun at freescale.com> wrote:
>>> On 05/06/2014 04:35 PM, Tim Harvey wrote:
>>>> On Tue, May 6, 2014 at 12:11 PM, Jeroen Hofstee <dasuboot at myspectrum.nl> wrote:
>>>>> Hello Tim,
>>>>>
>>> <snip>
>>>>>
>>>>> Since Crt0.S already created gd on the stack before calling
>>>>> board_init_f, can't the assignment of gd not simply be removed?
>>>>> Is there anything special about gdata?
>>>>>
>>>>> Regards,
>>>>> Jeroen
>>>>>
>>>>>
>>>>
>>>> Jeroen,
>>>>
>>>> That does make sense, but what I find is that York's ocmmit
>>>> dec1861be90c948ea9fb771927d3d26a994d2e20 requires that gd be blanked
>>>> and its not. This causes bus_i2c_init to skip its initialization
>>>> because p->base is not zero.
>>>>
>>>> York, does this make sense? Your patch creates a dependence on
>>>> gd->srdata being blank which isn't the case with the SRAM when booting
>>>> from the IMX6 boot rom.
>>>>
>>>
>>> GD should be cleared (zeroed). Then we don't have this problem. Whoever sets up
>>> gd (board_int_f, cpu_init_f, or others) should make sure gd is cleared. Why
>>> isn't it the case for IMX6 boot rom?
>>>
>>> York
>>>
>>
>> York,
>>
>> crt0.S is mapping gd to where the SPL stack pointer is defined, which
>> is where Freescale says its stack pointer is for its firmware BOOT
>> ROM, so its initial data will be dependent on what the BOOT ROM did.
>>
>> I think the right solution is to have crt0.S zero it out.
>>
>
> Either crt0.S, or somewhere before gd is used for the first time. Can it be done
> in board_init_f()?
>
> York
>
>

It makes more sense to do it in crt0.S so that all boards don't have
to do it and can make the assumption that it is cleared.

Tim


More information about the U-Boot mailing list