October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
Embedded Linux

How U-Boot, UEFI, and GRUB Work Together

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

U-Boot, UEFI, and GRUB are different layers, not a mandatory three-stage boot sequence. U-Boot can boot Linux directly with its native commands, or it can provide UEFI services and launch GRUB as an EFI application. On a conventional UEFI computer, platform firmware may start GRUB without U-Boot at all.

The roles of U-Boot, UEFI, and GRUB

Think of the components as selectable parts of a boot path:

Component Role
U-Boot A bootloader commonly used on embedded boards. It can load a kernel with its own commands or, when built with UEFI support, provide UEFI services and execute EFI programs.
UEFI An interface and boot-policy model. Its boot manager uses variables such as BootNext and BootOrder to select EFI drivers and applications.
GRUB An EFI application or standalone bootloader that can load a supported operating system, invoke another loader, or use one of its other documented boot methods.

UEFI is therefore not another name for GRUB. U-Boot may implement enough of the UEFI interface to run GRUB, but its implementation is intentionally not a complete, unrestricted PC-style UEFI firmware.

The three practical boot arrangements

Arrangement What happens When it fits
U-Boot native boot U-Boot loads the kernel, optional initramfs, and hardware description with commands such as booti, bootm, or bootz. The board already has a reliable U-Boot boot script and does not need EFI services.
U-Boot UEFI → GRUB U-Boot supplies UEFI services, starts GRUB’s EFI binary, and passes a device tree or other hardware description. An embedded design needs an EFI loader, GRUB configuration, or an OS installation organized around EFI files.
Platform UEFI → GRUB Firmware other than U-Boot uses its UEFI boot manager to select and execute GRUB. A system already has full UEFI firmware and no U-Boot stage.
GRUB → another loader GRUB chain-loads a second bootloader instead of loading the operating system itself. GRUB lacks suitable native support for the target OS or the platform design requires another loader.

How U-Boot launches GRUB as a UEFI application

A documented U-Boot handoff follows this general sequence. Exact device names, partitions, addresses, filesystem drivers, and hardware-description requirements vary by board.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
ASUS DDR3 2200 Intel LGA 1155 Motherboards P8H61-I R2.0
  • Windows 8 Support Ready Upgraded Hardware and Native BIOS Support, with Fast Boot Feature
  • GPU Boost Two simple ways to get quick free graphics upgrade
  • Anti-Surge Protection Safeguard your device by providing voltage protection to all major onboard components
  • UEFI BIOS BIOS control via a Graphical Interface with mouse controlled support featuring unparalleled control options, 2.2TB or higher native HD support, and Quick Boot features
  • USB 3.0 Support Fully unleash High Speed Transfer Technology with USB 3.0
  1. Board firmware starts U-Boot. The first stage may be ROM code, vendor firmware, or another board-specific loader.
  2. Build U-Boot with EFI support. The documented configuration includes CONFIG_EFI_LOADER=y and CONFIG_CMD_BOOTEFI=y. A particular distribution, board defconfig, or vendor tree may enable additional options.
  3. Load a device tree and the GRUB EFI image. U-Boot’s example loads a device tree from one partition and efi/debian/grubaa64.efi from another. The path is an example, not a universal storage layout.
  4. Invoke bootefi. The command receives the memory address of the EFI image and, where required, the address of the device tree.
  5. Let GRUB continue the boot. GRUB can load a supported kernel directly or chain-load another bootloader.

An illustrative command pattern is:

load mmc 0:1 ${fdt_addr_r} board.dtb
load mmc 0:2 ${kernel_addr_r} efi/debian/grubaa64.efi
bootefi ${kernel_addr_r} ${fdt_addr_r}

Replace the device, partition numbers, filenames, and environment variables with values valid for the target board. In U-Boot’s manual-loading behavior, the last PE/COFF file loaded supplies the file path exposed through the loaded-image protocol. That is why the documented example loads GRUB after the device tree; copying only part of the sequence can produce a misleading or broken handoff.

Using U-Boot’s UEFI boot manager

Instead of hard-coding a file and address, U-Boot can ask its UEFI boot manager to follow boot options stored in UEFI variables:

bootefi bootmgr

BootNext identifies a one-time next boot choice. If it is not set, the manager follows the entries listed in BootOrder. Those entries identify EFI applications and their load paths, along with optional arguments.

Rank #2
GIGABYTE GA-B250M-DS3H LGA1151 Intel Micro ATX DDR4 Motherboard
  • Supports 7th/6th Generation Intel Core Processors.Intel optane memory ready
  • Dual Channel DDR4, 4DIMMs
  • Relate ALC887 Codec
  • Gigabyte UEFI Dual BIOS
  • Pie Gen3 x4 M.2 Connector with up to 32Gb/s Data Transfer

This approach is useful when an operating-system installer or a configuration tool creates standard UEFI entries. It only works as expected when the U-Boot build includes the relevant boot-manager and variable-management features and when variables are stored persistently on that board.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why U-Boot can skip both UEFI and GRUB

U-Boot’s native Linux commands provide a separate path:

  • booti starts a Linux kernel in the arm64 Image format.
  • bootz starts a Linux zImage.
  • bootm starts U-Boot image formats and related packaged images.

These commands can be combined with U-Boot’s kernel, initramfs, and device-tree loading mechanisms. They do not require U-Boot’s UEFI subsystem and do not require GRUB. This is often the simplest design when the board’s boot script already knows the storage layout and the kernel does not depend on EFI runtime services.

Rank #3
Gigabyte Intel Z77 LGA 1155 AMD CrossFireX/NVIDIA SLI Dual LAN Dual UEFI BIOS ATX Motherboard GA-Z77X-UD5H
  • CPU: Support for Intel Core i7/i5/i3/Pentium/Celeron processors in the LGA1155 package. Chipset: Intel Z77 Express Chipset
  • Memory: 4 x 1.5V DDR3 DIMM sockets supporting up to 32 GB of system memory. Dual channel memory architecture. Support for DDR3 1600/1333/1066 MHz memory modules. Support for non-ECC memory modules. Support for Extreme Memory Profile (XMP) memory modules
  • Audio: Realtek ALC898 codec. Support for X-Fi Xtreme Fidelity and EAX Advanced HD 5.0 technologies. LAN: 1 x Atheros GbE LAN chip (10/100/1000 Mbit) (LAN1). 1 x Intel GbE LAN chip (10/100/1000 Mbit) (LAN2).
  • Support for AMD CrossFireX/ NVIDIA SLI technology. Expension Slots: 1 x PCI Express x16 slot, running at x16. 1 x PCI Express x16 slot, running at x8. 1 x PCI Express x16 slot, running at x4. 3 x PCI Express x1 slots. 1 x PCI slot.
  • Storage Interface: 2 x SATA 6Gb/s connectors. 4 x SATA 3Gb/s connectors. 1 x mSATA connector. Support for RAID 0/1/5/10. 2 x Marvell 88SE9172 chips: 3 x SATA 6Gb/s connectors. 1 x eSATA 6Gb/s connector.

What GRUB does after it starts

GRUB has three documented boot methods:

  1. Direct loading: GRUB loads an operating-system kernel and the files it needs.
  2. kexec from userspace: a running system prepares and enters another kernel.
  3. Chain-loading: GRUB transfers control to another bootloader.

Direct loading or kexec is generally preferable when the target and GRUB support them. Chain-loading adds another compatibility boundary and maintenance point, but it is appropriate when GRUB cannot directly boot the operating system or when the platform’s design requires a second loader.

Hardware description and the operating-system handoff

Starting an EFI binary is not the same as completing an operating-system boot. The kernel must receive a valid hardware description, normally through ACPI or a device tree. With U-Boot, bootefi can be given an explicit FDT address or use the board’s configured environment values. A command sequence that launches GRUB but supplies the wrong device tree, no device tree, or an incompatible ACPI arrangement can fail after the apparent EFI handoff.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configuration details to verify on a real board

  • U-Boot configuration: confirm that CONFIG_EFI_LOADER, CONFIG_CMD_BOOTEFI, and any boot-manager or filesystem options needed by the image are enabled.
  • CPU architecture and EFI binary: use a GRUB EFI image built for the board’s architecture, such as an arm64 image on a 64-bit ARM system.
  • Storage access: verify that U-Boot can read the partition, filesystem, and filename containing GRUB and the device tree.
  • Variable persistence: determine whether changes to BootNext, BootOrder, and related variables survive a reset or power loss. Persistence is board-specific.
  • Hardware description: establish whether the kernel expects a device tree, ACPI, or a vendor-specific handoff.
  • Secure Boot: check which keys and signature variables are enrolled and whether every EFI component in the chain is trusted.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Common failure modes

Unknown command 'bootefi'

The U-Boot build may lack CONFIG_CMD_BOOTEFI, or the vendor build may expose a different command set. Inspect the build configuration and the board’s command help rather than assuming every U-Boot binary includes EFI commands.

GRUB loads, but the kernel does not start

Check the device-tree or ACPI handoff, kernel architecture, memory addresses, and GRUB’s access to the kernel and initramfs. A successful EFI application launch does not prove that the operating-system handoff is valid.

bootefi bootmgr finds no entry

Inspect the UEFI variables and confirm that the U-Boot build can read and write the variable storage used by the board. A variable-management menu such as eficonfig may be available, but its presence and behavior are configuration-dependent.

Boot entries disappear after power loss

The board may keep variables only in volatile storage or may require a specific persistent backend. U-Boot documentation describes tamper-resistant storage using OP-TEE and RPMB-backed eMMC for a particular configuration; that mechanism should not be generalized to every board.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Secure Boot rejects GRUB

Review the trust chain, enrolled signature databases, and each image’s signing status. Secure Boot policy is separate from the choice between native U-Boot boot and U-Boot’s UEFI path.

Choosing the right path

  • Choose U-Boot native boot when the board’s existing scripts reliably load the kernel and no EFI-specific service is required.
  • Choose U-Boot UEFI → GRUB when you need UEFI-style loader discovery, an EFI-based operating-system layout, or GRUB’s configuration and chain-loading features.
  • Choose UEFI firmware → GRUB when the platform already provides UEFI and U-Boot is not part of the firmware path.
  • Add GRUB chain-loading only when direct loading is unsuitable or unsupported for the target operating system.

The correct sequence depends on the board’s U-Boot build, storage layout, hardware-description model, variable backend, and trust policy. A command recipe that is correct for one board can be invalid on another even when both use U-Boot and GRUB.

Quick Recap

Bestseller No. 1
ASUS DDR3 2200 Intel LGA 1155 Motherboards P8H61-I R2.0
ASUS DDR3 2200 Intel LGA 1155 Motherboards P8H61-I R2.0
Windows 8 Support Ready Upgraded Hardware and Native BIOS Support, with Fast Boot Feature; GPU Boost Two simple ways to get quick free graphics upgrade
$75.00
Bestseller No. 2
GIGABYTE GA-B250M-DS3H LGA1151 Intel Micro ATX DDR4 Motherboard
GIGABYTE GA-B250M-DS3H LGA1151 Intel Micro ATX DDR4 Motherboard
Supports 7th/6th Generation Intel Core Processors.Intel optane memory ready; Dual Channel DDR4, 4DIMMs
$99.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.