diff --git a/common/board_f.c b/common/board_f.c index a960144..622093a 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include #include @@ -805,6 +806,11 @@ static int initf_dm(void) if (ret) return ret; #endif +#ifdef CONFIG_TIMER_EARLY + ret = dm_timer_init(); + if (ret) + return ret; +#endif return 0; } diff --git a/common/board_r.c b/common/board_r.c index 6c23865..52a9b26 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #ifdef CONFIG_CMD_AMBAPP @@ -312,13 +313,22 @@ static int initr_noncached(void) #ifdef CONFIG_DM static int initr_dm(void) { + int ret; + /* 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 + 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; #endif - return dm_init_and_scan(false); + + return 0; } #endif