Message ID | 20200408225749.171380-1-sjg@chromium.org |
---|---|
Headers | show |
Series | dm: Add programmatic generation of ACPI tables (part A) | expand |
Hi Bin, On Wed, 8 Apr 2020 at 16:57, Simon Glass <sjg at chromium.org> wrote: > > This is split from the original series in an attempt to get things applied > in chunks. > > The first 20 or so patches here have been reviewed and the changes here > incorporate those comments. > > Changes in v5: > - Tweak unused naming and comments > - Capitalise ACPI_OPS_PTR since it includes a comma > - Capitalise ACPI_OPS_PTR since it includes a comma > - Update commit message to mention dropping the #ifdef CONFIG_X86 > - Mess with the table ordering a little more > - Add #ifndef CONFIG_SANDBOX to maintain bisectability without merging patches > - Drop bisectability changes > > Changes in v4: > - Fix indentation of unused > - Calculate the padding > - Put 'interrupts-extended' property on one line > - Rename acpi-probed to linux,probed > - Note that linux,probed is an out-of-tree feature > - Move ACPI makefile line outside the ifdef CONFIG_SPL_BUILD > - Add a comment about the MADT table version > - Add SPCR > - Update comment to include tables defined or reserved by ACPI > - Drop ASL_REVISION > - Separate out the log newline > - Update comment in acpi_inc_align() to show the alignment > - Put back cast on table_compute_checksum() > - Rename list_fact() to list_fadt() > - Add a comment to dump_hdr() > > Changes in v3: > Drop acpi,name in example > - Fix indenting error mentioned by Andy Shevchenko > - Fix stray #endif > - Drop 'Intel' from 'Intel ACPI' > - Reword commit message to drop the bit about ACPI being complicated > - Compute ACPI_NAME_MAX from ACPI_NAME_LEN > - Rename acpi_return_name() to acpi_copy_name() > - Use strncpy() instead of strcpy() in acpi_copy_name() > - Split out hid-over-i2c into its own patch > - Drop mention of PRIC > - Rename acpi,desc to acpi,ddn > - Correct description of acpi,probed > - Drop hid-descr-addr > - Just add the device.txt binding file in this patch > - Change the example to ELAN > - Add a pointer to information about acpi,compatible > - Add new patch to move acpi_s3.h to include/acpi/ > - Update commit message to say that we move most of its contents > - Move acpi_table.h to include/acpi > - Add forward declarations for the functions > - Fix file comment for acpi_table.c > - Fix a few typos > - Make use of BIT() > - Fix DMA_ typo > - Add missing error check in acpi_create_dmar() > - Drop duplicate assert > - Add new patch to add hexdump.h to the unit test header > - Rename acpi_align_large() to acpi_align64() > - Fix 'RSDP' typo > - Fix 'XDST' typo > - Move acpi_align_large() out of dm_test_acpi_setup_base_tables() > - Beef up the comment explaining how the unaligned address is used > > Changes in v2: > - Don't bracket the definitions with DM_SPI > - Add trailing commas to enum > - Drop the other comment change since it is already applied > - Drop the Chrome OS pieces > - Rename the 'coreboot' console to 'U-Boot' > - Move LOGC_ACPI definition to this patch > - Fix definition of HID > - Infer hid-over-i2c CID value > - Add the hid-over-i2c binding document > - Add in the acpi_table.h header file to this patch > - Move the sandbox acpi_table.h header file to an earlier patch > - Use #defines for MADT and MCFG version numbers > - Drop two unnecessary __packed > - Move __packed to after struct > - Drop definition of ACPI_TABLE_CREATOR > - Make _acpi_write_dev_tables() static and switch argument order > - Generalise the ACPI function recursion with acpi_recurse_method() > > Simon Glass (29): > cpu: Support querying the address width > spi: Add SPI mode enums > tpm: cr50: Release locality on exit > tpm: cr50: Add a comment for cr50_priv > tpm: cr50: Use the correct GPIO binding > tpm: Don't cleanup unless an error happens > dm: pci: Allow disabling auto-config for a device > x86: Correct wording of coreboot source code > x86: apl: Move p2sb ofdata reading to the correct method > pci: Adjust dm_pci_read_bar32() to return errors correctly > x86: apl: Add Global NVS table header > dm: core: Add basic ACPI support > dts: Add a binding for hid-over-i2c > acpi: Add a binding for ACPI settings in the device tree > acpi: Add a simple sandbox test > x86: Move acpi_s3.h to include/acpi/ > x86: Move acpi_table header to main include/ directory > acpi: Add an __ACPI__ preprocessor symbol > acpi: Add a central location for table version numbers > acpi: Add support for DMAR > test: Add hexdump.h to the unit test header > acpi: Add a method to write tables for a device > acpi: Convert part of acpi_table to use acpi_ctx > x86: Allow devices to write ACPI tables > acpi: Drop code for missing XSDT from acpi_write_rsdp() > acpi: Move acpi_add_table() to generic code > acpi: Put table-setup code in its own function > acpi: Move the xsdt pointer to acpi_ctx > acpi: Add an acpi command > > arch/sandbox/dts/test.dts | 8 + > arch/sandbox/include/asm/acpi_table.h | 9 + > arch/sandbox/include/asm/global_data.h | 1 + > arch/x86/cpu/apollolake/cpu_spl.c | 2 +- > arch/x86/cpu/apollolake/fsp_s.c | 2 +- > arch/x86/cpu/apollolake/pmc.c | 2 +- > arch/x86/cpu/baytrail/acpi.c | 6 +- > arch/x86/cpu/coreboot/timestamp.c | 4 +- > arch/x86/cpu/cpu.c | 4 +- > arch/x86/cpu/intel_common/p2sb.c | 33 +- > arch/x86/cpu/quark/acpi.c | 2 +- > arch/x86/cpu/tangier/acpi.c | 4 +- > arch/x86/cpu/wakeup.S | 2 +- > arch/x86/dts/chromebook_coral.dts | 2 +- > arch/x86/include/asm/acpi_table.h | 381 +----------- > .../include/asm/arch-apollolake/global_nvs.h | 36 ++ > .../x86/include/asm/arch-coreboot/timestamp.h | 4 +- > arch/x86/include/asm/global_data.h | 1 + > arch/x86/include/asm/intel_pinctrl_defs.h | 2 - > arch/x86/lib/acpi.c | 2 +- > arch/x86/lib/acpi_s3.c | 4 +- > arch/x86/lib/acpi_table.c | 241 ++------ > arch/x86/lib/coreboot_table.c | 2 +- > arch/x86/lib/fsp/fsp_common.c | 2 +- > arch/x86/lib/fsp1/fsp_common.c | 2 +- > arch/x86/lib/fsp2/fsp_dram.c | 2 +- > arch/x86/lib/tables.c | 2 +- > arch/x86/lib/zimage.c | 2 +- > cmd/Kconfig | 14 + > cmd/Makefile | 1 + > cmd/acpi.c | 186 ++++++ > configs/tools-only_defconfig | 1 + > doc/device-tree-bindings/device.txt | 36 ++ > .../gpio/intel,apl-gpio.txt | 2 +- > .../input/hid-over-i2c.txt | 44 ++ > .../interrupt-controller/intel,acpi-gpe.txt | 2 +- > doc/device-tree-bindings/pci/x86-pci.txt | 23 + > drivers/core/Kconfig | 9 + > drivers/core/Makefile | 1 + > drivers/core/acpi.c | 95 +++ > drivers/cpu/cpu_sandbox.c | 1 + > drivers/pci/pci-uclass.c | 11 +- > drivers/pci/pci_rom.c | 4 +- > drivers/power/acpi_pmc/acpi-pmc-uclass.c | 2 +- > drivers/sysreset/sysreset_x86.c | 2 +- > drivers/tpm/cr50_i2c.c | 24 +- > drivers/tpm/tpm-uclass.c | 13 +- > include/{ => acpi}/acpi_s3.h | 0 > include/acpi/acpi_table.h | 577 ++++++++++++++++++ > include/cpu.h | 2 + > include/dm/acpi.h | 114 ++++ > include/dm/device.h | 5 + > include/dm/uclass-id.h | 1 + > include/log.h | 2 + > include/spi.h | 33 + > include/test/ut.h | 1 + > lib/Makefile | 1 + > lib/acpi/Makefile | 4 + > lib/acpi/acpi_table.c | 259 ++++++++ > lib/efi_loader/efi_acpi.c | 2 +- > scripts/Makefile.lib | 4 +- > test/dm/Makefile | 1 + > test/dm/acpi.c | 317 ++++++++++ > test/dm/cpu.c | 1 + > 64 files changed, 1921 insertions(+), 638 deletions(-) > create mode 100644 arch/sandbox/include/asm/acpi_table.h > create mode 100644 arch/x86/include/asm/arch-apollolake/global_nvs.h > create mode 100644 cmd/acpi.c > create mode 100644 doc/device-tree-bindings/device.txt > create mode 100644 doc/device-tree-bindings/input/hid-over-i2c.txt > create mode 100644 drivers/core/acpi.c > rename include/{ => acpi}/acpi_s3.h (100%) > create mode 100644 include/acpi/acpi_table.h > create mode 100644 include/dm/acpi.h > create mode 100644 lib/acpi/Makefile > create mode 100644 lib/acpi/acpi_table.c > create mode 100644 test/dm/acpi.c Any thoughts on this series and the chain-loading one please? I would like to move on to part B. Regards, SImon
Hi Simon, On Wed, Apr 15, 2020 at 10:25 PM Simon Glass <sjg at chromium.org> wrote: > > Hi Bin, > > On Wed, 8 Apr 2020 at 16:57, Simon Glass <sjg at chromium.org> wrote: > > > > This is split from the original series in an attempt to get things applied > > in chunks. > > > > The first 20 or so patches here have been reviewed and the changes here > > incorporate those comments. > > > > Changes in v5: > > - Tweak unused naming and comments > > - Capitalise ACPI_OPS_PTR since it includes a comma > > - Capitalise ACPI_OPS_PTR since it includes a comma > > - Update commit message to mention dropping the #ifdef CONFIG_X86 > > - Mess with the table ordering a little more > > - Add #ifndef CONFIG_SANDBOX to maintain bisectability without merging patches > > - Drop bisectability changes > > > > Changes in v4: > > - Fix indentation of unused > > - Calculate the padding > > - Put 'interrupts-extended' property on one line > > - Rename acpi-probed to linux,probed > > - Note that linux,probed is an out-of-tree feature > > - Move ACPI makefile line outside the ifdef CONFIG_SPL_BUILD > > - Add a comment about the MADT table version > > - Add SPCR > > - Update comment to include tables defined or reserved by ACPI > > - Drop ASL_REVISION > > - Separate out the log newline > > - Update comment in acpi_inc_align() to show the alignment > > - Put back cast on table_compute_checksum() > > - Rename list_fact() to list_fadt() > > - Add a comment to dump_hdr() > > > > Changes in v3: > > Drop acpi,name in example > > - Fix indenting error mentioned by Andy Shevchenko > > - Fix stray #endif > > - Drop 'Intel' from 'Intel ACPI' > > - Reword commit message to drop the bit about ACPI being complicated > > - Compute ACPI_NAME_MAX from ACPI_NAME_LEN > > - Rename acpi_return_name() to acpi_copy_name() > > - Use strncpy() instead of strcpy() in acpi_copy_name() > > - Split out hid-over-i2c into its own patch > > - Drop mention of PRIC > > - Rename acpi,desc to acpi,ddn > > - Correct description of acpi,probed > > - Drop hid-descr-addr > > - Just add the device.txt binding file in this patch > > - Change the example to ELAN > > - Add a pointer to information about acpi,compatible > > - Add new patch to move acpi_s3.h to include/acpi/ > > - Update commit message to say that we move most of its contents > > - Move acpi_table.h to include/acpi > > - Add forward declarations for the functions > > - Fix file comment for acpi_table.c > > - Fix a few typos > > - Make use of BIT() > > - Fix DMA_ typo > > - Add missing error check in acpi_create_dmar() > > - Drop duplicate assert > > - Add new patch to add hexdump.h to the unit test header > > - Rename acpi_align_large() to acpi_align64() > > - Fix 'RSDP' typo > > - Fix 'XDST' typo > > - Move acpi_align_large() out of dm_test_acpi_setup_base_tables() > > - Beef up the comment explaining how the unaligned address is used > > > > Changes in v2: > > - Don't bracket the definitions with DM_SPI > > - Add trailing commas to enum > > - Drop the other comment change since it is already applied > > - Drop the Chrome OS pieces > > - Rename the 'coreboot' console to 'U-Boot' > > - Move LOGC_ACPI definition to this patch > > - Fix definition of HID > > - Infer hid-over-i2c CID value > > - Add the hid-over-i2c binding document > > - Add in the acpi_table.h header file to this patch > > - Move the sandbox acpi_table.h header file to an earlier patch > > - Use #defines for MADT and MCFG version numbers > > - Drop two unnecessary __packed > > - Move __packed to after struct > > - Drop definition of ACPI_TABLE_CREATOR > > - Make _acpi_write_dev_tables() static and switch argument order > > - Generalise the ACPI function recursion with acpi_recurse_method() > > > > Simon Glass (29): > > cpu: Support querying the address width > > spi: Add SPI mode enums > > tpm: cr50: Release locality on exit > > tpm: cr50: Add a comment for cr50_priv > > tpm: cr50: Use the correct GPIO binding > > tpm: Don't cleanup unless an error happens > > dm: pci: Allow disabling auto-config for a device > > x86: Correct wording of coreboot source code > > x86: apl: Move p2sb ofdata reading to the correct method > > pci: Adjust dm_pci_read_bar32() to return errors correctly > > x86: apl: Add Global NVS table header > > dm: core: Add basic ACPI support > > dts: Add a binding for hid-over-i2c > > acpi: Add a binding for ACPI settings in the device tree > > acpi: Add a simple sandbox test > > x86: Move acpi_s3.h to include/acpi/ > > x86: Move acpi_table header to main include/ directory > > acpi: Add an __ACPI__ preprocessor symbol > > acpi: Add a central location for table version numbers > > acpi: Add support for DMAR > > test: Add hexdump.h to the unit test header > > acpi: Add a method to write tables for a device > > acpi: Convert part of acpi_table to use acpi_ctx > > x86: Allow devices to write ACPI tables > > acpi: Drop code for missing XSDT from acpi_write_rsdp() > > acpi: Move acpi_add_table() to generic code > > acpi: Put table-setup code in its own function > > acpi: Move the xsdt pointer to acpi_ctx > > acpi: Add an acpi command > > > > arch/sandbox/dts/test.dts | 8 + > > arch/sandbox/include/asm/acpi_table.h | 9 + > > arch/sandbox/include/asm/global_data.h | 1 + > > arch/x86/cpu/apollolake/cpu_spl.c | 2 +- > > arch/x86/cpu/apollolake/fsp_s.c | 2 +- > > arch/x86/cpu/apollolake/pmc.c | 2 +- > > arch/x86/cpu/baytrail/acpi.c | 6 +- > > arch/x86/cpu/coreboot/timestamp.c | 4 +- > > arch/x86/cpu/cpu.c | 4 +- > > arch/x86/cpu/intel_common/p2sb.c | 33 +- > > arch/x86/cpu/quark/acpi.c | 2 +- > > arch/x86/cpu/tangier/acpi.c | 4 +- > > arch/x86/cpu/wakeup.S | 2 +- > > arch/x86/dts/chromebook_coral.dts | 2 +- > > arch/x86/include/asm/acpi_table.h | 381 +----------- > > .../include/asm/arch-apollolake/global_nvs.h | 36 ++ > > .../x86/include/asm/arch-coreboot/timestamp.h | 4 +- > > arch/x86/include/asm/global_data.h | 1 + > > arch/x86/include/asm/intel_pinctrl_defs.h | 2 - > > arch/x86/lib/acpi.c | 2 +- > > arch/x86/lib/acpi_s3.c | 4 +- > > arch/x86/lib/acpi_table.c | 241 ++------ > > arch/x86/lib/coreboot_table.c | 2 +- > > arch/x86/lib/fsp/fsp_common.c | 2 +- > > arch/x86/lib/fsp1/fsp_common.c | 2 +- > > arch/x86/lib/fsp2/fsp_dram.c | 2 +- > > arch/x86/lib/tables.c | 2 +- > > arch/x86/lib/zimage.c | 2 +- > > cmd/Kconfig | 14 + > > cmd/Makefile | 1 + > > cmd/acpi.c | 186 ++++++ > > configs/tools-only_defconfig | 1 + > > doc/device-tree-bindings/device.txt | 36 ++ > > .../gpio/intel,apl-gpio.txt | 2 +- > > .../input/hid-over-i2c.txt | 44 ++ > > .../interrupt-controller/intel,acpi-gpe.txt | 2 +- > > doc/device-tree-bindings/pci/x86-pci.txt | 23 + > > drivers/core/Kconfig | 9 + > > drivers/core/Makefile | 1 + > > drivers/core/acpi.c | 95 +++ > > drivers/cpu/cpu_sandbox.c | 1 + > > drivers/pci/pci-uclass.c | 11 +- > > drivers/pci/pci_rom.c | 4 +- > > drivers/power/acpi_pmc/acpi-pmc-uclass.c | 2 +- > > drivers/sysreset/sysreset_x86.c | 2 +- > > drivers/tpm/cr50_i2c.c | 24 +- > > drivers/tpm/tpm-uclass.c | 13 +- > > include/{ => acpi}/acpi_s3.h | 0 > > include/acpi/acpi_table.h | 577 ++++++++++++++++++ > > include/cpu.h | 2 + > > include/dm/acpi.h | 114 ++++ > > include/dm/device.h | 5 + > > include/dm/uclass-id.h | 1 + > > include/log.h | 2 + > > include/spi.h | 33 + > > include/test/ut.h | 1 + > > lib/Makefile | 1 + > > lib/acpi/Makefile | 4 + > > lib/acpi/acpi_table.c | 259 ++++++++ > > lib/efi_loader/efi_acpi.c | 2 +- > > scripts/Makefile.lib | 4 +- > > test/dm/Makefile | 1 + > > test/dm/acpi.c | 317 ++++++++++ > > test/dm/cpu.c | 1 + > > 64 files changed, 1921 insertions(+), 638 deletions(-) > > create mode 100644 arch/sandbox/include/asm/acpi_table.h > > create mode 100644 arch/x86/include/asm/arch-apollolake/global_nvs.h > > create mode 100644 cmd/acpi.c > > create mode 100644 doc/device-tree-bindings/device.txt > > create mode 100644 doc/device-tree-bindings/input/hid-over-i2c.txt > > create mode 100644 drivers/core/acpi.c > > rename include/{ => acpi}/acpi_s3.h (100%) > > create mode 100644 include/acpi/acpi_table.h > > create mode 100644 include/dm/acpi.h > > create mode 100644 lib/acpi/Makefile > > create mode 100644 lib/acpi/acpi_table.c > > create mode 100644 test/dm/acpi.c > > Any thoughts on this series and the chain-loading one please? > > I would like to move on to part B. Yes, I am looking at this series. Please see my reply in another thread. Regards, Bin