diff options
author | Alexander Graf <agraf@suse.de> | 2016-03-04 01:10:01 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-03-15 18:03:10 -0400 |
commit | 50149ea37a21dcbed675297f1536c31a7db39c19 (patch) | |
tree | d6a18d12c1306cbc1306baed0aeea5ff2f5d2ae4 /lib/efi_loader/efi_boottime.c | |
parent | c1311ad4e0d1759788601513fac0f65620d40472 (diff) | |
download | talos-obmc-uboot-50149ea37a21dcbed675297f1536c31a7db39c19.tar.gz talos-obmc-uboot-50149ea37a21dcbed675297f1536c31a7db39c19.zip |
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 <agraf@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'lib/efi_loader/efi_boottime.c')
-rw-r--r-- | lib/efi_loader/efi_boottime.c | 6 |
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 = { .signature = EFI_SYSTEM_TABLE_SIGNATURE, .revision = 0x20005, /* 2.5 */ |