[U-Boot] [PATCH] dm: timer: Avoid using timer before it is ready

Bin Meng bmeng.cn at gmail.com
Sun Nov 29 09:57:57 CET 2015


Hi Simon,

On Sun, Nov 29, 2015 at 1:16 PM, Simon Glass <sjg at chromium.org> wrote:
> At present bootstage will try to read the timer very early after relocation.
> When driver model it used to provide the timer, we cannot read it until

When driver model is

> driver model is ready. Correct this by adding a separate stage for the
> post-relocation bootstage init.
>
> This fixes booting on chromebook_link.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>

>  common/board_r.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/common/board_r.c b/common/board_r.c
> index f7118e8..a41fb54 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -109,7 +109,6 @@ static int initr_reloc(void)
>  {
>         /* tell others: relocation done */
>         gd->flags |= GD_FLG_RELOC | GD_FLG_FULL_MALLOC_INIT;
> -       bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_R, "board_init_r");
>
>         return 0;
>  }
> @@ -310,6 +309,14 @@ static int initr_dm(void)
>  }
>  #endif
>
> +static int initr_bootstage(void)
> +{
> +       /* We cannot do this before initr_dm() */
> +       bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_R, "board_init_r");
> +
> +       return 0;
> +}
> +
>  __weak int power_init_board(void)
>  {
>         return 0;
> @@ -748,6 +755,7 @@ init_fnc_t init_sequence_r[] = {
>  #ifdef CONFIG_DM
>         initr_dm,
>  #endif
> +       initr_bootstage,
>  #if defined(CONFIG_ARM) || defined(CONFIG_NDS32)
>         board_init,     /* Setup chipselects */
>  #endif
> --

Regards,
Bin


More information about the U-Boot mailing list