[PATCH v5 00/29] dm: Add programmatic generation of ACPI tables (part A)

Simon Glass sjg at chromium.org
Wed Apr 15 16:24:47 CEST 2020


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


More information about the U-Boot mailing list