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

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Tue May 2 11:43:23 CEST 2023


On 5/2/23 10:42, Marcin Juszkiewicz wrote:
> W dniu 1.05.2023 o 16:26, Heinrich Schuchardt pisze:
>> 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.
> 
> 1-4MB of SPI flash should be mandatory for all devices. Or use of eMMC 
> boot partitions.

I would be happy if all boards would have U-Boot or EDK II preinstalled 
on SPI flash but there are enough boards that don't have SPI flash.

> 
>> 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
> 
> Please don't. Or choose something far from end of GPT data. This way it 
> can be covered with "BIOS boot" partition.
> 
>> - load file from FAT file system
> 
> On GPT disk you mean 0700 (Microsoft FAT) or EF00 (EFI System) partition?
> 
>> - load from given partition number
> 
> Please don't. User may want to use same disk image on several systems. 
> And vendors would choose 1st/2nd/3rd just because they can. Also not 
> every partitioning tool is fine with larger numbers.

I enumerated what has been used in the past. I think partition type 
GUIDs are the only sane choice.

> 
>> - load from partition with boot flag set (MBR partioning only)
> 
> GPT partitions can have several flags set. ChromeOS used it to select 
> which kernel/rootfs to use as A/B.
> 
>> - 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.
> 
> Who would assign those GUIDs? How often random vendors will choose 
> already existing one? There are several SBC vendors not caring at all 
> about anything other than sales.

GUIDs should not be reused as that would not allow to load board 
specific firmware.

Best regards

Heinrich


More information about the U-Boot-Custodians mailing list