diff options
author | Alexander Graf <agraf@suse.de> | 2016-03-04 01:10:09 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-03-15 21:30:12 -0400 |
commit | 996a18a7142442767821f4c8bb560cb081d6948f (patch) | |
tree | c19465b8930641afebef1f4ef515093b4b09069f /doc/README.efi | |
parent | 74522c898b35e641cde9ea6a20625a3d80e56e53 (diff) | |
download | u-boot-996a18a7142442767821f4c8bb560cb081d6948f.zip u-boot-996a18a7142442767821f4c8bb560cb081d6948f.tar.gz u-boot-996a18a7142442767821f4c8bb560cb081d6948f.tar.bz2 |
efi_loader: Add README section in README.efi
To preserve all cover letter knowledge of the status on UEFI payload
support, let's add some sections to README.efi.
Signed-off-by: Alexander Graf <agraf@suse.de>
v3 -> v4:
- Add section about config options
- s/10kb/10KB/
Diffstat (limited to 'doc/README.efi')
-rw-r--r-- | doc/README.efi | 83 |
1 files changed, 82 insertions, 1 deletions
diff --git a/doc/README.efi b/doc/README.efi index 23a3cdd..1fd3f00 100644 --- a/doc/README.efi +++ b/doc/README.efi @@ -4,6 +4,28 @@ # SPDX-License-Identifier: GPL-2.0+ # +=========== Table of Contents =========== + + 1 U-Boot on EFI + 1.1 In God's Name, Why? + 1.2 Status + 1.3 Build Instructions + 1.4 Trying it out + 1.5 Inner workings + 1.6 EFI Application + 1.7 EFI Payload + 1.8 Tables + 1.9 Interrupts + 1.10 32/64-bit + 1.11 Future work + 1.12 Where is the code? + + 2 EFI on U-Boot + 2.1 In God's Name, Why? + 2.2 How do I get it? + 2.3 Status + 2.4 Future work + U-Boot on EFI ============= This document provides information about U-Boot running on top of EFI, either @@ -234,7 +256,6 @@ board/efi/efi-x86/efi.c common/cmd_efi.c the 'efi' command - -- Ben Stoltz, Simon Glass Google, Inc @@ -242,3 +263,63 @@ July 2015 [1] http://www.qemu.org [2] http://www.tianocore.org/ovmf/ + +------------------------------------------------------------------------------- + +EFI on U-Boot +============= + +In addition to support for running U-Boot as a UEFI application, U-Boot itself +can also expose the UEFI interfaces and thus allow UEFI payloads to run under +it. + +In God's Name, Why? +------------------- + +With this support in place, you can run any UEFI payload (such as the Linux +kernel, grub2 or gummiboot) on U-Boot. This dramatically simplifies boot loader +configuration, as U-Boot based systems now look and feel (almost) the same way +as TianoCore based systems. + +How do I get it? +---------------- + +EFI support for 32bit ARM and AArch64 is already included in U-Boot. All you +need to do is enable + + CONFIG_CMD_BOOTEFI=y + CONFIG_EFI_LOADER=y + +in your .config file and you will automatically get a bootefi command to run +an efi application as well as snippet in the default distro boot script that +scans for removable media efi binaries as fallback. + +Status +------ + +I am successfully able to run grub2 and Linux EFI binaries with this code on +ARMv7 as well as AArch64 systems. + +When enabled, the resulting U-Boot binary only grows by ~10KB, so it's very +light weight. + +All storage devices are directly accessible from the uEFI payload + +Removable media booting (search for /efi/boot/boota{a64,arm}.efi) is supported. + +Simple use cases like "Plug this SD card into my ARM device and it just +boots into grub which boots into Linux", work very well. + +Future work +----------- + +Of course, there are still a few things one could do on top: + + - Improve disk media detection (don't scan, use what information we +have) + - Add EFI variable support using NVRAM + - Add GFX support + - Make EFI Shell work + - Network device support + - Support for payload exit + - Payload Watchdog support |