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, only the script boot method is enabled:
bootmeths=script
This means U-Boot looks for a boot script (e.g., boot.scr.uimg) on each boot device in boot_targets and runs the first one it finds. The EFI, extlinux and PXE boot methods are compiled out of the Ampliphy U-Boot configuration.
Note
Older Ampliphy releases enabled additional boot methods (script efi extlinux pxe). They were removed because an unsigned EFI or extlinux boot path could bypass the verified boot script on secure boot systems.
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.
Note
The efi MACHINE_FEATURE and the EFI/GRUB artifacts generated by the bootimg_efi wic plugin are no longer part of the K3 machine configuration. The SD card and eMMC images use the plain k3-sdimage.wks layout with the boot files in the first VFAT partition.
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.