
On Wed, Sep 23, 2020 at 2:46 AM Simon Glass sjg@chromium.org wrote:
Note: This is part D of this effort. With this, Coral includes all required ACPI tables.
At present on x86 U-Boot supports creating ACPI (Advanced Configuration and Power Interface) tables using the Intel ACPI Source Language (ASL) compiler.
This is good enough for basic operation but some devices need to add their information dynamically at runtime. An example is a device that needs to report its enable GPIO. This is described in the device tree, so we want to add code in the driver to convert that device-tree description into an ACPI description for use on Linux.
This series adds support for generation of ACPI tables and fragments by devices. The core support is built into driver model.
Several files are brought over from coreboot to do the actual generation.
As an example of using this new feature, chromebook_coral is updated to write out a wide array of ACPI tables including DSDT and SSDT.
This initial version of the series lays out the general approach. More work is needed to figure out the difference between CONFIG_ACPIGEN and CONFIG_GENERATE_ACPI_TABLE with respect to what is built.
Changes in v4:
- Add Andy's documentation to struct acpi_gpio
- Add logging when writinge NHLT
- Add new patch to use I2cSerialBusV2() instead of I2cSerialBus()
- Change table version to 3
- Correct DPTF enable property
- Correct comment for dm_test_acpi_write_prw()
- Correct compatible string for gma device
Drop extra acpi_align() in apl_acpi_hb_write_tables()
v4 has been applied to u-boot-x86/next, thanks!