On Mon, May 01, 2023 at 04:26:25PM +0200, Heinrich Schuchardt wrote:
<snip>
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.
EBBR currently recommends new devices load such firmware from the EFI System Partition and provides guidance on using the directory structure to avoid collisions: https://arm-software.github.io/ebbr/index.html#firmware-partition-filesystem
This guidance describes "ideal" ROM-code and AFAIK is currently aspirational since EBBR has not yet been around long enough to have any impact on what SoC vendors ship in their ROM code.
Using ESP is optional and certainly there is no guidance in the spec about selecting GUIDs to avoid collisions (e.g. don't use the same GUID in next-gen chips that require different firmware).
IMHO guidance w.r.t. GUID colision avoidance is only useful if we believe *future* SoC vendors will be unable to follow the current prefer-to-use-ESP guidance (because anti-colision guidance will likely take just as long to be implemented in SoC ROM code as prefer-to-use-ESP guidance).
Daniel.