Hi all,
you can stop staring at your calendar, it's not April 1st. But actually I'm not sure myself if I'm serious with this :D
Recent discussions made me look at the current USF spec, in par- ticular the Universal Payload part [1]. Admittedly I only scrolled through it. There are some things in it (beside the HOBs that some would rather put in FDT) that seem incompatible to our current payload mechanism. For instance, payload modules.
The whole thing seemed so similar to Multiboot (with HOBs) that I had another look at Multiboot2[2]. The spec looks odd, but it seems like another thing similar to coreboot tables. There are two types of `tags` which is confusing, but the interesting one is the one to pass information to the loaded program:
+-------------------+ u32 | type | u32 | size | +-------------------+
It's also very flat. But most of all it's an existing open standard!
Thoughts are tumbling in my head right now: The whole Multiboot spec thing seems too complex to put into ramstage. But so does the Universal Payload thing! If we'd end up with a shim after ramstage anyway, we could as well use the existing standard.
This might also pave the way for more kernels as payloads...
WDYT?
Nico
[1] https://universalscalablefirmware.github.io/documentation/2_universal_payloa... [2] https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html