#
# Copyright (C) 2015 Google, Inc
#
# SPDX-License-Identifier:	GPL-2.0+
#

EFI on U-Boot
=============
This document provides information about the implementation of the UEFI API [1]
in U-Boot.


=========== Table of Contents ===========

Motivation
How do I get it?
Status
Future work


Motivation
----------

With this API 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.


Running HelloWord.efi
---------------------

You can run a simple 'hello world' EFI program in U-Boot.
Enable the option CONFIG_CMD_BOOTEFI_HELLO.

Then you can boot into U-Boot and type:

   > bootefi hello

The 'hello world EFI' program will then run, print a message and exit.


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

[1] http://uefi.org/
