Standard Boot
What is Standard Boot?
Standard Boot is U-Boot’s built-in framework for automatically discovering and booting an operating system without relying on board-specific scripts. It uses three abstractions:
bootdev: Represents devices like MMC or Ethernet.
bootmeth: Describes the method to locate and start an OS (e.g., EFI, Script, Distro Boot).
bootflow: A self-contained description that tells U-Boot how to boot.
For Linux, modern distributions ship bootflows so that U-Boot can automatically detect and boot them, supporting multiple device classes (e.g., uSD, eMMC, Ethernet) and modern boot standards like EFI.
See also Standard Boot Overview.
What is Ampliphy?
Ampliphy is PHYTEC’s integration and verification distribution based on Poky. It is used to build images for our development kits and hardware. Ampliphy also acts as a staging area for upstream contributions and customer-specific projects.
Standard Boot in Ampliphy
Ampliphy configures U-Boot Standard Boot out of the box. All necessary environment variables are pre-set, so no additional user setup is needed. Notable environment settings:
boot_targets: Defines the list and order of devices U-Boot will attempt to boot from.
Other variables used by Standard Boot methods (bootmeth).
Boot Priority and Multiple Devices
If multiple bootable devices are available, U-Boot follows the order defined in boot_targets.
Example: If boot_targets is set to mmc1 mmc0 dhcp:
U-Boot will first try mmc1 (e.g., uSD card).
If unavailable or invalid, it proceeds to mmc0 (eMMC).
If still no boot, it attempts network boot via dhcp.
Note
If boot_targets has its default value, U-Boot promotes the currently used device to the front of the list to favor it If boot_targets has been manually customized, this dynamic adjustment is skipped.
More about boot_targets.
Boot Method Priority
Besides choosing the boot device, U-Boot also decides how to boot from a device, based on the list in bootmeths.
In our U-Boot, bootmeths is set to:
bootmeths=script efi extlinux pxe
This means:
U-Boot first attempts to find and run a boot script (e.g., boot.scr.uimg).
If no boot script is available, U-Boot tries to boot via EFI (e.g., bootaa64.efi from an EFI system partition).
If EFI boot fails, U-Boot tries to find an extlinux.conf for booting via extlinux method.
Finally, if no local methods succeed, it attempts network boot via PXE.
Tip
This flexible fallback sequence ensures that Ampliphy images are compatible with both traditional script-based boots and modern EFI-based distributions without needing manual reconfiguration.
More about bootmeths.
Supported Boot Devices
On K3-based platforms supported by Ampliphy, the following boot devices are available with standard boot:
uSD card
eMMC
SPI Flash
Ethernet (network boot)
See the ampliphy-boot recipe for details.
Details:
On uSD and eMMC, a boot.scr.uimg boot script is installed automatically into the boot partition via IMAGE_BOOT_FILES.
For network or SPI Flash boots, scripts are placed into the deploy directory during the BSP build process. Consult the following guides for more instructions on how to proceed with SPI and Network boot scripts, See Flashing the SPI NOR Flash and Network.
To enable EFI-based booting instead of boot scripts, ensure the efi MACHINE_FEATURE is enabled in your build configuration. On our K3 platforms efi MACHINE_FEATURE is enabled per default.
Legacy Boot Script Fallback
Older Ampliphy releases or images missing bootflows rely on U-Boot’s legacy boot scripts. When no bootflow is found, U-Boot falls back to its default environment scripts, executing the board’s legacy boot sequence.