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/utp
parent
74522c898b
commit
996a18a714
|
@ -4,6 +4,28 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0+
|
# 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
|
U-Boot on EFI
|
||||||
=============
|
=============
|
||||||
This document provides information about U-Boot running on top of EFI, either
|
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
|
common/cmd_efi.c
|
||||||
the 'efi' command
|
the 'efi' command
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
Ben Stoltz, Simon Glass
|
Ben Stoltz, Simon Glass
|
||||||
Google, Inc
|
Google, Inc
|
||||||
|
@ -242,3 +263,63 @@ July 2015
|
||||||
|
|
||||||
[1] http://www.qemu.org
|
[1] http://www.qemu.org
|
||||||
[2] http://www.tianocore.org/ovmf/
|
[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
|
||||||
|
|
Loading…
Reference in New Issue