-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HOBS should be self-describing structures #9
Comments
Hi, Ron, |
For the parameters from the bootloader to the payload, it involves parameter format and parameter content. Hand Off Block (HOB) -- Currently proposed by the spec.
Using a simple header before each actual data could save memory size. For example coreboot uses 'tag' and 'size' for coreboot data structure. Self-describing Data Structure
|
Based on some feedbacks and investigation, we would like to use Concise Binary Object Representation (CBOR) to replace HOB list as the data format to pass to payload from bootloader. The details on CBOR could be found from |
I think what Ron meant was that the interface from and to FSP should be using self describing structures and CBOR seems like a really nice fit for instance to replace FSP UPDs or output HOBs. To pass data to the payload there is likely no value to reinvent the wheel. Most payloads for instance already support the coreboot tables. Converting all of them to a new format is likely much work with little gain. Also CBOR is likely to be too complicated for some payloads. For instance coreboot does not know how to load x86 Linux kernels. This is done by prepending a assembly written position independent trampoline (146 LOC) that parses the coreboot tables, fills in Linux Zero page and boot to it. I highly doubt that this is possible with more complicated structures or does CBOR have a x86 assembly parser? |
When this issue was filed on Nov 3 2020, only universal payload is available in this website so I don't believe Ron meant the interface for FSP. |
HOBS should not be binary blobs with no way to determine what is in them.
Protobufs might be overkill but some form of self-describing structure is essential.
The text was updated successfully, but these errors were encountered: