
On Wed, Nov 8, 2023 at 5:38 AM Ard Biesheuvel ardb@kernel.org wrote:
On Tue, 7 Nov 2023 at 19:07, Rob Herring robh@kernel.org wrote:
All of this:
On Mon, 16 Oct 2023 at 15:54, Simon Glass sjg@chromium.org wrote:
It is not specific to EDK2. Imagine this boot sequence:
- Platform Init (U-Boot) starts up
- U-Boot uses its platform knowledge to sets some ACPI tables and put
various things in memory
- U-Boot sets up some runtime code and data for the OS
- U-Boot jumps to the Tianocore payload **
- Payload (Tianocore) wants to know where the ACPI tables are, for example
- Tianocore needs to provide boot services to the OS, so needs to know
the memory map, etc.
** At this point we want to use DT to pass the required information.
Of course, Platform Init could be coreboot or Tianocore or some strange private binary. Payload could be U-Boot or something else. That is the point of this effort, to build interoperability.
[...]
Perhaps the problem here is that Linux has tied itself up in knots with its EFI stuff and DT fixups and what-not. But this is not that. It is a simple handoff between two pieces of firmware, Platform Init and Payload. It has nothing to do with the OS. With Tianocore they are typically combined, but with this usage they are split, and we can swap out one project for another on either side of the DT interface.
Is perhaps the clearest description of the problem you want to solve. It's clearly related to EFI though not the interface to the OS. IIRC, "platform init" and "payload" are terms in the UEFI spec, right?
No they are not. This is from the universal payload specification that is being drafted here
https://universalpayload.github.io/spec/index.html
but the UEFI specification does not use this terminology.
Then I'm confused as to what this is:
https://uefi.org/specs/PI/1.8/index.html
Rob