path: root/lib/efi_loader/efi_boottime.c
diff options
authorAlexander Graf <>2016-03-04 01:10:01 +0100
committerTom Rini <>2016-03-15 18:03:10 -0400
commit50149ea37a21dcbed675297f1536c31a7db39c19 (patch)
treed6a18d12c1306cbc1306baed0aeea5ff2f5d2ae4 /lib/efi_loader/efi_boottime.c
parentc1311ad4e0d1759788601513fac0f65620d40472 (diff)
efi_loader: Add runtime services
After booting has finished, EFI allows firmware to still interact with the OS using the "runtime services". These callbacks live in a separate address space, since they are available long after U-Boot has been overwritten by the OS. This patch adds enough framework for arbitrary code inside of U-Boot to become a runtime service with the right section attributes set. For now, we don't make use of it yet though. We could maybe in the future map U-boot environment variables to EFI variables here. Signed-off-by: Alexander Graf <> Reviewed-by: Simon Glass <> Tested-by: Simon Glass <>
Diffstat (limited to 'lib/efi_loader/efi_boottime.c')
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index e60fae925b..87400dee1a 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -39,7 +39,7 @@ static bool efi_is_direct_boot = true;
* In most cases we want to pass an FDT to the payload, so reserve one slot of
* config table space for it. The pointer gets populated by do_bootefi_exec().
-static struct efi_configuration_table efi_conf_table[1];
+static struct efi_configuration_table EFI_RUNTIME_DATA efi_conf_table[1];
* The "gd" pointer lives in a register on ARM and AArch64 that we declare
@@ -761,10 +761,10 @@ static const struct efi_boot_services efi_boot_services = {
-static uint16_t firmware_vendor[] =
+static uint16_t EFI_RUNTIME_DATA firmware_vendor[] =
{ 'D','a','s',' ','U','-','b','o','o','t',0 };
-struct efi_system_table systab = {
+struct efi_system_table EFI_RUNTIME_DATA systab = {
.hdr = {
.revision = 0x20005, /* 2.5 */
OpenPOWER on IntegriCloud