[U-Boot] [PATCH 1/5] board_f: Drop the timer after relocation

Simon Glass sjg at chromium.org
Wed Aug 2 18:07:41 UTC 2017


Hi Bin,

On 22 July 2017 at 22:36, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Sun, Jul 16, 2017 at 7:41 AM, Simon Glass <sjg at chromium.org> wrote:
>> Once U-Boot relocates itself the existing driver-model timer (if any) is
>> no-longer valid until the device is reinitialised. Any use of the device
>> may cause a crash. To handle this, set the timer to NULL after relocation.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>>  common/board_f.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/common/board_f.c b/common/board_f.c
>> index ffa84e3566..d675dc38ac 100644
>> --- a/common/board_f.c
>> +++ b/common/board_f.c
>> @@ -979,6 +979,7 @@ void board_init_f_r(void)
>>          * UART if available.
>>          */
>>         gd->flags &= ~GD_FLG_SERIAL_READY;
>> +       gd->timer = NULL;
>
> This needs to be wrapped with #ifdef CONFIG_TIMER.

Fixed in v2.

>
> But there is already a config option CONFIG_TIMER_EARLY, and gd->timer
> is zeroed in initr_dm(). We should fix problems with existing
> CONFIG_TIMER_EARLY.

Yes I agree, although this patch is needed regardless, I think. We
should not have invalid timers hanging around.

>
>>
>>         /*
>>          * U-Boot has been copied into SDRAM, the BSS has been cleared etc.
>> --
>
> Regards,
> Bin

Regards,
Simon


More information about the U-Boot mailing list