123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- .. SPDX-License-Identifier: GPL-2.0+
- 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
- -------------
- .. kernel-doc:: lib/efi_loader/efi_boottime.c
- :internal:
- Image relocation
- ~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_image_loader.c
- :internal:
- Memory services
- ~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_memory.c
- :internal:
- SetWatchdogTimer service
- ~~~~~~~~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_watchdog.c
- :internal:
- Runtime services
- ----------------
- .. kernel-doc:: lib/efi_loader/efi_runtime.c
- :internal:
- Variable services
- ~~~~~~~~~~~~~~~~~
- .. kernel-doc:: include/efi_variable.h
- :internal:
- .. 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:
- Protocols
- ---------
- Block IO protocol
- ~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_disk.c
- :internal:
- File protocol
- ~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_file.c
- :internal:
- Graphical output protocol
- ~~~~~~~~~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_gop.c
- :internal:
- Load file 2 protocol
- ~~~~~~~~~~~~~~~~~~~~
- The load file 2 protocol can be used by the Linux kernel to load the initial
- RAM disk. U-Boot can be configured to provide an implementation.
- .. kernel-doc:: lib/efi_loader/efi_load_initrd.c
- :internal:
- Network protocols
- ~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_net.c
- :internal:
- Random number generator protocol
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_rng.c
- :internal:
- Text IO protocols
- ~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_console.c
- :internal:
- Unicode Collation protocol
- ~~~~~~~~~~~~~~~~~~~~~~~~~~
- .. kernel-doc:: lib/efi_loader/efi_unicode_collation.c
- :internal:
- Unit testing
- ------------
- The following library functions are provided to support writing UEFI unit tests.
- The should not be used elsewhere.
- .. kernel-doc:: include/efi_selftest.h
- :internal:
|