Blame view

doc/README.efi 2.06 KB
d41ce506b   Eric Lee   Initial Release, ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  #
  # 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/