I was under the assumption that UEFI is a spec/implementation.
Therefore you package it with another bootloader (e.g. Grub2).
There's no such thing as a singular UEFI bootloader.
In essence U-boot is a bootloader all by itself, but there is no such idea of a "one and done" UEFI bootloader. There are various options of UEFI capable bootloaders.
Is this correct?
42 Answers
Short Answer with Breakdown
UEFI is firmware for computers developed and published by Intel. Unlike most BIOS firmware, UEFI firmware can be found on systems which are not in the IBM PC compatible class.
Extensible Firmware
UEFI is an extension of firmware like BIOS but (1)it can read from entries from disk partitions by not just booting from a disk but (2)booting from a specific boot loader in a specific location on a specific disk.
Bootloader Compatibility for Execution by UEFI
The UEFI spec defines the executable format requiring all UEFI firmwares to be capable of executing code in that format. When a bootloader is written for native UEFI, it is written in this format.
Backwards Compatible
For backward compatibility, most UEFI firmware can boot a system just like BIOS firmware and look for a MBR and run the boot loader from there as well. Depending on the firmware this may be called BIOS legacy mode, BIOS compatibility mode, or other similar terms.
Comparison Reference
UEFI and U-Boot behave very differently
U-Boot
- Boot variables specify kernel, initrd and command line
- Currently no default behaviour for booting automatically
UEFI
- Specification for how to choose boot device.
- Specification for ABI and execution environment.
Consider UEFI more like a BIOS, or a layer to get things started for a computer. If you were to look at the workflow of how a computer starts, you might say it starts with the CMOS, then to the BIOS then an OS with a boot loader. So you could say Grub2 is a UEFI bootloader, but you can also simply state:
A UEFI Bootloader is any bootloader capable of reading from a UEFI type firmware.
2