Blame view
doc/README.efi
2.06 KB
1aa5e9365 efi: Add a README... |
1 2 3 4 5 |
# # Copyright (C) 2015 Google, Inc # # SPDX-License-Identifier: GPL-2.0+ # |
f3b5056c4 efi_loader: split... |
6 |
EFI on U-Boot |
1aa5e9365 efi: Add a README... |
7 |
============= |
f3b5056c4 efi_loader: split... |
8 9 |
This document provides information about the implementation of the UEFI API [1] in U-Boot. |
1aa5e9365 efi: Add a README... |
10 |
|
1aa5e9365 efi: Add a README... |
11 |
|
f3b5056c4 efi_loader: split... |
12 |
=========== Table of Contents =========== |
1aa5e9365 efi: Add a README... |
13 |
|
f3b5056c4 efi_loader: split... |
14 15 |
Motivation How do I get it? |
1aa5e9365 efi: Add a README... |
16 |
Status |
1aa5e9365 efi: Add a README... |
17 |
Future work |
1aa5e9365 efi: Add a README... |
18 |
|
1aa5e9365 efi: Add a README... |
19 |
|
f3b5056c4 efi_loader: split... |
20 21 |
Motivation ---------- |
996a18a71 efi_loader: Add R... |
22 |
|
f3b5056c4 efi_loader: split... |
23 |
With this API support in place, you can run any UEFI payload (such as the Linux |
996a18a71 efi_loader: Add R... |
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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. |
c7ae3dfdc efi: Add support ... |
56 57 58 59 60 61 62 63 64 65 66 67 |
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. |
996a18a71 efi_loader: Add R... |
68 69 70 71 72 73 74 75 76 77 78 79 80 |
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 |
f3b5056c4 efi_loader: split... |
81 82 |
[1] http://uefi.org/ |