[RISC-V][tech-os-a-see] Recommendation for identifying partition with firmware to be loaded from SD-card

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Mon May 1 16:45:59 CEST 2023


On 5/1/23 16:31, Aaron Durbin wrote:
> Hi,
> 
> On Mon, May 1, 2023 at 8:26 AM Heinrich Schuchardt 
> <heinrich.schuchardt at canonical.com 
> <mailto:heinrich.schuchardt at canonical.com>> wrote:
> 
>     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.
> 
> 
> Who is loading the firmware that is identified by a GUID?  And how does 
> that tie into Linux distros? I don't see anything wrong w/ the 
> recommendation, but I didn't completely follow which piece of software 
> is loading firmware and how the GUID reduces the problems. Also, is this 
> "SoC specific partition type GUID" unique per SoC? Or is it expected to 
> be a global GUID?

Booting firmware starts at boot ROM which may either directly load a 
piece of software from SD-card or may load a piece of software from 
flash which in turn will load the next step boot loader from the SD-card.

 From the view of a distro it is best if each board uses a separate 
GUID. This allows to add multiple U-Boot versions (or other boot 
software) on the same SD-card.

Best regards

Heinrich


More information about the U-Boot-Custodians mailing list