|
@@ -1,7 +1,64 @@
|
|
|
.. SPDX-License-Identifier: GPL-2.0+
|
|
|
|
|
|
-EFI subsystem
|
|
|
-=============
|
|
|
+UEFI subsystem
|
|
|
+==============
|
|
|
+
|
|
|
+Lauching UEFI images
|
|
|
+--------------------
|
|
|
+
|
|
|
+Bootefi command
|
|
|
+~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+The bootefi command is used to start UEFI applications or to install UEFI
|
|
|
+drivers. It takes two parameters
|
|
|
+
|
|
|
+ bootefi <image address> [fdt address]
|
|
|
+
|
|
|
+* image address - the memory address of the UEFI binary
|
|
|
+* fdt address - the memory address of the flattened device tree
|
|
|
+
|
|
|
+The environment variable 'bootargs' is passed as load options in the UEFI system
|
|
|
+table. The Linux kernel EFI stub uses the load options as command line
|
|
|
+arguments.
|
|
|
+
|
|
|
+.. kernel-doc:: cmd/bootefi.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
+Boot manager
|
|
|
+~~~~~~~~~~~~
|
|
|
+
|
|
|
+The UEFI specification foresees to define boot entries and boot sequence via UEFI
|
|
|
+variables. Booting according to these variables is possible via
|
|
|
+
|
|
|
+ bootefi bootmgr [fdt address]
|
|
|
+
|
|
|
+* fdt address - the memory address of the flattened device tree
|
|
|
+
|
|
|
+The relevant variables are:
|
|
|
+
|
|
|
+* Boot0000-BootFFFF define boot entries
|
|
|
+* BootNext specifies next boot option to be booted
|
|
|
+* BootOrder specifies in which sequence the boot options shall be tried if
|
|
|
+ BootNext is not defined or booting via BootNext fails
|
|
|
+
|
|
|
+.. kernel-doc:: lib/efi_loader/efi_bootmgr.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
+Efidebug command
|
|
|
+~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+The efidebug command is used to set and display boot options as well as to
|
|
|
+display information about internal data of the UEFI subsystem (devices,
|
|
|
+drivers, handles, loaded images, and the memory map).
|
|
|
+
|
|
|
+.. kernel-doc:: cmd/efidebug.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
+Initialization of the UEFI sub-system
|
|
|
+-------------------------------------
|
|
|
+
|
|
|
+.. kernel-doc:: lib/efi_loader/efi_setup.c
|
|
|
+ :internal:
|
|
|
|
|
|
Boot services
|
|
|
-------------
|
|
@@ -15,8 +72,34 @@ Image relocation
|
|
|
.. kernel-doc:: lib/efi_loader/efi_image_loader.c
|
|
|
:internal:
|
|
|
|
|
|
+Memory services
|
|
|
+~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+.. kernel-doc:: lib/efi_loader/efi_memory.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
Runtime services
|
|
|
----------------
|
|
|
|
|
|
.. kernel-doc:: lib/efi_loader/efi_runtime.c
|
|
|
:internal:
|
|
|
+
|
|
|
+Variable services
|
|
|
+~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+.. kernel-doc:: lib/efi_loader/efi_variable.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
+UEFI drivers
|
|
|
+------------
|
|
|
+
|
|
|
+UEFI driver uclass
|
|
|
+~~~~~~~~~~~~~~~~~~
|
|
|
+.. kernel-doc:: lib/efi_driver/efi_uclass.c
|
|
|
+ :internal:
|
|
|
+
|
|
|
+Block device driver
|
|
|
+~~~~~~~~~~~~~~~~~~~
|
|
|
+
|
|
|
+.. kernel-doc:: lib/efi_driver/efi_block_device.c
|
|
|
+ :internal:
|