X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=common%2Fboard_r.c;h=150e8cd424f64b6ebe435bf817f0483492d9a153;hb=06985289d452ad2423145cfed8cece61a7f8cec6;hp=472987d5d52f83e64d62a892c4adc4ca9db3a4c2;hpb=151b8339ccd33428d249e75bd036bd7eb33c1ef6;p=oweals%2Fu-boot.git diff --git a/common/board_r.c b/common/board_r.c index 472987d5d5..150e8cd424 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -48,6 +48,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -154,6 +155,13 @@ static int initr_reloc_global_data(void) gd->fdt_blob += gd->reloc_off; #endif #ifdef CONFIG_EFI_LOADER + /* + * On the ARM architecture gd is mapped to a fixed register (r9 or x18). + * As this register may be overwritten by an EFI payload we save it here + * and restore it on every callback entered. + */ + efi_save_gd(); + efi_runtime_relocate(gd->relocaddr, NULL); #endif @@ -670,6 +678,9 @@ static init_fnc_t init_sequence_r[] = { #ifdef CONFIG_DM initr_dm, #endif +#if defined(CONFIG_WDT) + initr_watchdog, +#endif #if defined(CONFIG_ARM) || defined(CONFIG_NDS32) || defined(CONFIG_RISCV) || \ defined(CONFIG_SANDBOX) board_init, /* Setup chipselects */