Recommendation for identifying partition with firmware to be loaded from SD-card

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Mon May 1 16:26:25 CEST 2023


Linux distributions are interested in providing a single image which
enables a high number of boards to boot. This is simple if the boot
firmware (EDK II or U-Boot) is installed on flash.

For boards that expect to load a boot loader like U-Boot from an SD-card
it is necessary that the firmware locations for different boards
on the SD-card don't collide.

When loading from SD-card or eMMC the sector at which the binary
starts has to be identified. The following has been implemented:

- start from hard coded sector number
- load file from FAT file system
- load from given partition number
- load from partition with boot flag set (MBR partioning only)
- load from partition with specific type GUID

Loading by partition type GUID seems the most appropriate to avoid
collisions between the firmware for different boards.

Often firmware is separated into multiple parts due to firmware
restrictions, e.g. U-Boot SPL and main U-Boot (e.g. as .itb file).

Here the same considerations apply. Using a partition type GUID to
identify further firmware parts to be loaded is best suited to
avoid collisions.

I would suggest to add a recommendation to the EBBR specification
to use SoC specific partition type GUIDs to identify firmware to
be loaded from SD-card.

Please, provide your feedback.

Best regards

Heinrich


More information about the U-Boot-Custodians mailing list