Skip to content

make ACPI support a payload responsibility #12

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

Closed
marksdoran opened this issue Feb 24, 2021 · 2 comments
Closed

make ACPI support a payload responsibility #12

marksdoran opened this issue Feb 24, 2021 · 2 comments

Comments

@marksdoran
Copy link

I see from the current state of the spec that building an ACPI table is part of the work that a bootloader should do and that it's considered part of the handoff state to the payload. Asking a few questions around this I learn that this arises from the wish for [some] payloads to support Windows boot (which absolutely requires ACPI) and yet avoid putting some of the very platform specific knowledge into the payload that is more readily handled in the bootloader phase.

I'd like to suggest that making the bootloader do full ACPI support may be an unreasonable burden to address the requirement. An alternate design might be to export the platform specifics from the bootloader and enable the payload to assemble a complete ACPI table if that is necessary for its purposes.

The typical means of export appears from the spec to be HOB list entries. For the kinds of information that would need to end up in an ACPI table it seems more logical to ask the bootloader to provide information in HOBs but to leverage the ACPI individual table entry formats to do that. So imagine a self-describing HOB (see issue #9), that wraps a single table that follows the ACPI defined format for the information that it contains. Multiply that by the number of tables required to convey the platform specific information. Allow the payload to search the HOB list for ACPI-looking things that it can then assemble into a full ACPI table structure.

At the heart of the matter, if there's a perception that the bootloader has to spit out a fully conforming ACPI table structure, RSDT and all, then I believe that's worth re-examining to see if we can avoid the burden of full ACPI compliance in bootloaders that want to support the range of conforming payloads. That particularly applies to bootloaders that are unlikely to be used in the context of payloads that can boot Windows.

@gdong1
Copy link
Contributor

gdong1 commented Mar 5, 2021

Thanks for the feedback.
The idea behind putting the ACPI responsibility to the bootloader is to enable platform independent payload.
Couple of additional reasons for the bootloader to provide the ACPI tables:

  1. As you noted, there are platform specific information which only the bootloader is aware of.
  2. We want to support simple payloads to boot embedded OS and act as pass through ACPI table from bootloader to OS.
    We realize there are certain use cases where the payload may have to enhance/modify the ACPI table provided by the bootloader. The spec can be worded to allow payloads to construct their own ACPI tables if desired.

gdong1 added a commit that referenced this issue Apr 18, 2021
Clarify the ACPI table requirement per issue #12.

Signed-off-by: Guo Dong <[email protected]>
gdong1 added a commit that referenced this issue Apr 18, 2021
Clarify the ACPI table requirement per issue #12.

Signed-off-by: Guo Dong <[email protected]>
@gdong1
Copy link
Contributor

gdong1 commented Apr 20, 2021

Spec was updated to version 0.75 including ACPI requirement clarification.

@gdong1 gdong1 closed this as completed Apr 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants