On 10/20/23 08:01, Jon Humphreys wrote:
Heinrich Schuchardt heinrich.schuchardt@canonical.com writes:
High Jon,
thanks for pointing out where the specification is unclear.
I guess a half-sentence is missing saying "if both a dedicated firmware partition and the EFI system partition are both supported by the firmware".
If I follow you, more precisely it is if a *separate* dedicated firmware partition and ESP are supported as firmware locations.
For example, with TI ROM, it always loads the firmware from the boot partition. So designating the dedicated firmware partition is done by making it the boot partition. It also supports firmware in the ESP, but only if you make the ESP the boot partition. Which then they are really the same partition.
How does the TI ROM identify the boot partition? Is that bit 2 "Legacy BIOS Bootable" in the GPT partition attributes field?
But I question the purpose of the sentence at the end of 4.2:
In both cases, the recommended boot sequence is to first search for firmware in a dedicated firmware partition, and second search for firmware in the ESP.
because it is stated at the beginning of 4:
In general, EBBR compliant platforms should use dedicated storage for boot firmware images and data, independent of the storage used for OS partitions and the EFI System Partition (ESP).
Was the point of the sentence in 4.2 really that the EBBR prefers the choice of firmware placement in a dedicated partition, but if you have to, it can be in the ESP, *and* that this choice should be the same for fixed and removable storage?
The EBBR is still evolving. If you have a suggestion for improvement, please, create an incident or merge request on Github.
Created https://github.com/ARM-software/ebbr/issues/113 for clarification of 4.2.2.
Great.
Consider joining one of our meetings. See https://github.com/ARM-software/ebbr/wiki/EBBR-Meetings#datetime
I had wanted to bring this up in person, but I am on vacation for the next 2 weeks. I hope I can make the following meeting.
As a side question, I'm not sure of the practicality of recommending a boot sequence that looks in two places, at least for the very first firmware stages, as ROM usually is very simple and only looks in a single location.
The documentation is not only about what a boot ROM does. E.g. I have seen a boot ROM loading U-Boot SPL from flash and U-Boot SPL loading EDK II from /EFI/vendor/board/firmware.itb. But U-Boot SPL in this case would only scan the ESP.
So that raises another issue. Your statement above implies, I think, that different stages of firmware can live in different places, which does happen.
But I had read the spec as implying that firmware must be at a single location.
Can you clarify?
I agree with you that we should put some more thought into this chapter of the EBBR.
Firmware always lives in multiple locations, if you count the boot ROM as firmware.
The central target of the EBBR specification is that operating systems can boot without special adaptation to a specific firmware.
From a distro perspective the best solution is a compliant firmware that the distro does not have to care about because it is not on any medium controlled by the operating system. This is for instance given if a compliant EDK II or U-Boot is on SPI flash or in an eMMC boot partition.
Unfortunately not all hardware lives up to this. E.g. SPI flash may be missing or too small. In this case it is still preferable if the impact of having the firmware on a medium governed by the operating system remains small.
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.
Best regards
Heinrich