diff options
Diffstat (limited to 'common/board_r.c')
-rw-r--r-- | common/board_r.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/common/board_r.c b/common/board_r.c index 472987d5d5..1ad44bbe3f 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -154,6 +154,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 |