On Mon, Oct 23, 2023 at 02:44:45PM +0200, Heinrich Schuchardt wrote:
On 23.10.23 13:30, Daniel Thompson wrote:
On Fri, Oct 20, 2023 at 09:10:45AM -0500, Jon Humphreys wrote:
Heinrich Schuchardt heinrich.schuchardt@canonical.com writes:
I personally would prefer firmware using the firmware folder in the ESP over using a firmware partition because the partitioning scheme would not be firmware specific.
I argue the opposite (again I'm new to this so open to learning!). My view: we want all the firmware bits to be owned and specific to the board and the board/firmware presents a standard API to the OS. The OS should own the ESP so it can modify it, set boot order, etc. For these reasons, you want the firmware location to be different than the ESP. For updateability, of course the firmware's location can't be unknown to the OS.
But my point in this is about where it comes from. The firmware must come from the board provider, and the ESP from the OS provider, so they must be in different locations.
As I type this, I realize I have 2 assumptions that may not be correct:
- the ESP should come from the OS provider. True? At least this seems
to be the common practice.
Pretty much.
On a system with multiple OSes they are something of a shared space between multiple OS providers. That means the OS providers try not to stand on each others toes! That means, in general, OS installers are designed to leave the ESP mostly as they found it (apart from installing their bootloaders).
However an installer typically won't do much to stop the user choosing to reformat or resizing the ESP since, on systems without firmware in the ESP, this is an entirely legitimate thing to do when entirely replacing one OS with another.
- the EBBR wants the OS to have direct access to the firmware for
updates. True? Or is the thinking that the OS should not have direct access but should only update via other mechanisms like capsule update?
Not as far as I remember. Capsules are the preferred update mechanism.
I prefer if the firmware is provided with the board and is not installed on any medium that the OS manages, e.g. SPI flash or an eMMC boot partitions.
Unfortunately many boards don't follow this approach. Their boot ROM loads the firmware from SD card or another mountable device.
The whole discussion is about these cases only.
Often it is the Linux distribution that supplies the firmware. See the u-boot source package in Debian and derivatives.
If the firmware lives on a block device also used by the operating system, we must find a solution minimizing conflicts.
No objection so far... we are definitely talking about least-bad solutions rather than the best ones!
Files in a firmware directory on the ESP have little impact on operating systems. I would prefer this to having device specific partitioning requirements.
I agree the impact on OS is modest but for fixed shared storage I still favour what is proposed by EBBR today: a separate partition that can be marked as a Required Partition (sure an ESP can also be marked as a Required Partition but I think the meaning of that would be ambiguous to an installer).
It's all very "last percent" though. As we already agreeds, most major fixed storage media supports something akin to an eMMC boot partition, UFS boot LU or NVMe namespace.
A "new" boot ROM is better of supporting loading firmware from these LUs. Thus loading firmware from firmware partition or ESP ends up being exclusively used for provisioning/debrick/recovery boots.
Daniel.