X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=common%2Fboard_r.c;h=d959ad3c6f90ea2c2a422b6878c11a5437764a2c;hb=19e8649e59f5632792ecccbf04a2401eddb03e44;hp=6c238652790c2d1aa839015a359e3f69e9a09c7b;hpb=9ef2835f26652092a61b0cb0551ef4f36be27946;p=oweals%2Fu-boot.git diff --git a/common/board_r.c b/common/board_r.c index 6c23865279..d959ad3c6f 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 @@ -64,6 +65,7 @@ #ifdef CONFIG_AVR32 #include #endif +#include DECLARE_GLOBAL_DATA_PTR; @@ -176,6 +178,9 @@ static int initr_reloc_global_data(void) */ gd->fdt_blob += gd->reloc_off; #endif +#ifdef CONFIG_EFI_LOADER + efi_runtime_relocate(gd->relocaddr, NULL); +#endif return 0; } @@ -312,13 +317,24 @@ 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 gd->timer = NULL; #endif - return dm_init_and_scan(false); + ret = dm_init_and_scan(false); + if (ret) + return ret; +#ifdef CONFIG_TIMER_EARLY + ret = dm_timer_init(); + if (ret) + return ret; +#endif + + return 0; } #endif @@ -604,7 +620,7 @@ static int initr_ambapp_print(void) } #endif -#if defined(CONFIG_CMD_SCSI) +#if defined(CONFIG_SCSI) static int initr_scsi(void) { puts("SCSI: "); @@ -780,6 +796,9 @@ init_fnc_t init_sequence_r[] = { */ #ifdef CONFIG_CLOCKS set_cpu_clk_info, /* Setup clock information */ +#endif +#ifdef CONFIG_EFI_LOADER + efi_memory_init, #endif stdio_init_tables, initr_serial, @@ -904,7 +923,7 @@ init_fnc_t init_sequence_r[] = { initr_ambapp_print, #endif #endif -#ifdef CONFIG_CMD_SCSI +#ifdef CONFIG_SCSI INIT_FUNC_WATCHDOG_RESET initr_scsi, #endif