[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