[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