1.. SPDX-License-Identifier: GPL-2.0+ 2 3UEFI subsystem 4============== 5 6Lauching UEFI images 7-------------------- 8 9Bootefi command 10~~~~~~~~~~~~~~~ 11 12The bootefi command is used to start UEFI applications or to install UEFI 13drivers. It takes two parameters 14 15 bootefi <image address> [fdt address] 16 17* image address - the memory address of the UEFI binary 18* fdt address - the memory address of the flattened device tree 19 20The environment variable 'bootargs' is passed as load options in the UEFI system 21table. The Linux kernel EFI stub uses the load options as command line 22arguments. 23 24.. kernel-doc:: cmd/bootefi.c 25 :internal: 26 27Boot manager 28~~~~~~~~~~~~ 29 30The UEFI specification foresees to define boot entries and boot sequence via UEFI 31variables. Booting according to these variables is possible via 32 33 bootefi bootmgr [fdt address] 34 35* fdt address - the memory address of the flattened device tree 36 37The relevant variables are: 38 39* Boot0000-BootFFFF define boot entries 40* BootNext specifies next boot option to be booted 41* BootOrder specifies in which sequence the boot options shall be tried if 42 BootNext is not defined or booting via BootNext fails 43 44.. kernel-doc:: lib/efi_loader/efi_bootmgr.c 45 :internal: 46 47Efidebug command 48~~~~~~~~~~~~~~~~ 49 50The efidebug command is used to set and display boot options as well as to 51display information about internal data of the UEFI subsystem (devices, 52drivers, handles, loaded images, and the memory map). 53 54.. kernel-doc:: cmd/efidebug.c 55 :internal: 56 57Initialization of the UEFI sub-system 58------------------------------------- 59 60.. kernel-doc:: lib/efi_loader/efi_setup.c 61 :internal: 62 63Boot services 64------------- 65 66.. kernel-doc:: lib/efi_loader/efi_boottime.c 67 :internal: 68 69Image relocation 70~~~~~~~~~~~~~~~~ 71 72.. kernel-doc:: lib/efi_loader/efi_image_loader.c 73 :internal: 74 75Memory services 76~~~~~~~~~~~~~~~ 77 78.. kernel-doc:: lib/efi_loader/efi_memory.c 79 :internal: 80 81Runtime services 82---------------- 83 84.. kernel-doc:: lib/efi_loader/efi_runtime.c 85 :internal: 86 87Variable services 88~~~~~~~~~~~~~~~~~ 89 90.. kernel-doc:: lib/efi_loader/efi_variable.c 91 :internal: 92 93UEFI drivers 94------------ 95 96UEFI driver uclass 97~~~~~~~~~~~~~~~~~~ 98.. kernel-doc:: lib/efi_driver/efi_uclass.c 99 :internal: 100 101Block device driver 102~~~~~~~~~~~~~~~~~~~ 103 104.. kernel-doc:: lib/efi_driver/efi_block_device.c 105 :internal: 106 107Protocols 108--------- 109 110Block IO protocol 111~~~~~~~~~~~~~~~~~ 112 113.. kernel-doc:: lib/efi_loader/efi_disk.c 114 :internal: 115 116File protocol 117~~~~~~~~~~~~~ 118 119.. kernel-doc:: lib/efi_loader/efi_file.c 120 :internal: 121 122Graphical output protocol 123~~~~~~~~~~~~~~~~~~~~~~~~~ 124 125.. kernel-doc:: lib/efi_loader/efi_gop.c 126 :internal: 127 128Network protocols 129~~~~~~~~~~~~~~~~~ 130 131.. kernel-doc:: lib/efi_loader/efi_net.c 132 :internal: 133 134Text IO protocols 135~~~~~~~~~~~~~~~~~ 136 137.. kernel-doc:: lib/efi_loader/efi_console.c 138 :internal: 139