[U-Boot] [PATCH 01/69] dm: timer: Correct timer init ordering after relocation

Bin Meng bmeng.cn at gmail.com
Fri Mar 11 04:25:32 CET 2016


Hi Simon,

On Mon, Mar 7, 2016 at 10:27 AM, Simon Glass <sjg at chromium.org> wrote:
> Commit 1057e6c broke use of the timer with driver model. If the timer is used
> before relocation, then it becomes broken after relocation. This prevents
> some x86 boards from booting. Fix it.

Isn't the broken due to gd not initialized to zero?

>
> Fixes: 1057e6c (timer: Set up the real timer after driver model is available)
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  common/board_r.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/common/board_r.c b/common/board_r.c
> index 52a9b26..0f068bf 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -318,11 +318,13 @@ static int initr_dm(void)
>         /* Save the pre-reloc driver model and start a new one */
>         gd->dm_root_f = gd->dm_root;
>         gd->dm_root = NULL;
> +#ifdef CONFIG_TIMER
> +       gd->timer = NULL;
> +#endif
>         ret = dm_init_and_scan(false);
>         if (ret)
>                 return ret;
>  #ifdef CONFIG_TIMER_EARLY
> -       gd->timer = NULL;
>         ret = dm_timer_init();
>         if (ret)
>                 return ret;
> --

Regards,
Bin


More information about the U-Boot mailing list