[U-Boot] [PATCH 06/16] efi_loader: Add runtime services
Simon Glass
sjg at chromium.org
Wed Feb 3 04:31:17 CET 2016
On 1 February 2016 at 19:45, Alexander Graf <agraf at suse.de> wrote:
> 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 at suse.de>
>
> ---
>
> v1 -> v2:
>
> - Fix runtime service sections
> - Add runtime detach
> - Enable runtime relocations
> - Add get_time
> - Fix relocation
> - Fix 32bit
> - Add am335x support
> - Move section definition to header
> - Add systab to runtime section
> - Add self-relocation hook table
> - Fix self-relocation
> - Relocate efi_runtime section early during bootup
> - Fix return values for a number of callbacks to be more UEFI compliant
> - Move to GPLv2+
>
> v2 -> v3:
>
> - Patch reset to NULL
> - Add EFIAPI to function prototypes
> - Document header
> - Add dm.h include
> - Remove non-dm rtc support
> - Return DEVICE_ERROR in rtc path
> ---
> arch/arm/config.mk | 4 +
> arch/arm/cpu/armv8/u-boot.lds | 16 +++
> arch/arm/cpu/u-boot.lds | 30 +++++
> arch/arm/lib/sections.c | 4 +
> board/ti/am335x/u-boot.lds | 30 +++++
> common/board_r.c | 4 +
> include/efi_loader.h | 17 +++
> lib/efi_loader/efi_boottime.c | 6 +-
> lib/efi_loader/efi_runtime.c | 290 ++++++++++++++++++++++++++++++++++++++++++
> 9 files changed, 398 insertions(+), 3 deletions(-)
> create mode 100644 lib/efi_loader/efi_runtime.c
Reviewed-by: Simon Glass <sjg at chromium.org>
Tested on Beaglebone Black and Minnowboard MAX:
Tested-by: Simon Glass <sjg at chromium.org>
More information about the U-Boot
mailing list