Lines Matching full:uefi
7 # UEFI on U-Boot
9 The Unified Extensible Firmware Interface Specification (UEFI) [1] has become
17 The implementation of UEFI in U-Boot strives to reach the minimum requirements
21 A full blown UEFI implementation would contradict the U-Boot design principle
24 ## Building for UEFI
26 The UEFI standard supports only little-endian systems. The UEFI support can be
35 loaded UEFI application [3], requires
40 ### Executing a UEFI binary
42 The bootefi command is used to start UEFI applications or to install UEFI
47 * image address - the memory address of the UEFI binary
59 The environment variable 'bootargs' is passed as load options in the UEFI system
65 The UEFI specification foresees to define boot entries and boot sequence via UEFI
70 As of U-Boot v2018.03 UEFI variables are not persisted and cannot be set at
75 A hello world UEFI application can be built with
93 Running on UEFI 2.7
104 An UEFI self-test suite can be embedded in U-Boot by building with
108 For testing the UEFI implementation the bootefi command can be used to start the
136 ## The UEFI life cycle
138 After the U-Boot platform has been initialized the UEFI API provides two kinds
144 The API can be extended by loading UEFI drivers which come in two variants
149 UEFI drivers are installed with U-Boot's bootefi command. With the same command
150 UEFI applications can be executed.
152 Loaded images of UEFI drivers stay in memory after returning to U-Boot while
155 An UEFI application (e.g. an operating system) that wants to take full control
156 of the system calls ExitBootServices. After a UEFI application calls
164 So this is a point of no return. Afterwards the UEFI application can only return
167 ## The UEFI object model
169 UEFI offers a flexible and expandable object model. The objects in the UEFI API
193 ## The UEFI events
195 In the UEFI terminology an event is a data object referencing a notification
214 ## The UEFI driver model
235 ## U-Boot devices mapped as UEFI devices
237 Some of the U-Boot devices are mapped as UEFI devices
246 The development target is to integrate the setup of these UEFI devices with the
249 installed. The UEFI driver then would be attached by calling ConnectController.
252 ## UEFI devices mapped as U-Boot devices
254 UEFI drivers binaries and applications may create new (virtual) devices, install
255 a protocol and call the ConnectController service. Now the matching UEFI driver
259 It is the task of the UEFI driver to create a corresponding U-Boot device and to
264 ### UEFI uclass
266 An UEFI uclass driver (lib/efi_driver/efi_uclass.c) has been created that
267 takes care of initializing the UEFI drivers and providing the
268 EFI_DRIVER_BINDING_PROTOCOL implementation for the UEFI drivers.
270 A linker created list is used to keep track of the UEFI drivers. To create an
271 entry in the list the UEFI driver uses the U_BOOT_DRIVER macro specifying
274 /* Identify as UEFI driver */
290 uclass checks if the protocol GUID matches the protocol GUID of the UEFI driver.
291 In the start() function the bind() function of the UEFI driver is called after
294 controllers created by the UEFI driver and the UEFI driver. (In U-Boot v2013.03
297 ### UEFI block IO driver
299 The UEFI block IO driver supports devices exposing the EFI_BLOCK_IO_PROTOCOL.
329 * UEFI drivers
330 * support DisconnectController for UEFI block devices.
334 * UEFI variables
343 * [1](http://uefi.org/specifications)
344 http://uefi.org/specifications - UEFI specifications