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

Simon Glass sjg at chromium.org
Mon Mar 9 04:44:24 CET 2020


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 v2:
- Don't bracket the definitions with DM_SPI
- 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()
- Drop CID value from i2c struct
- Switch parameter order of _acpi_fill_ssdt() and make it static
- Generalise the ACPI function recursion with acpi_recurse_method()
- Generalise the ACPI function recursion with acpi_recurse_method()
- Move ACPI_TABLE_CREATOR to here
- Generalise the ACPI function recursion with acpi_recurse_method()

Simon Glass (39):
  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
  acpi: Add a binding for ACPI settings in the device tree
  acpi: Add a simple sandbox test
  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
  acpi: Move acpi_fill_header() to generic code
  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
  acpi: Add some tables required by the generation code
  acpi: Add generation code for devices
  acpi: Add functions to generate ACPI code
  gpio: Add a method to convert a GPIO to ACPI
  irq: Add a method to convert an interrupt to ACPI
  acpi: Add support for SSDT generation
  x86: acpi: Move MADT up a bit
  acpi: Record the items added to SSDT
  acpi: Support ordering SSDT data by device
  x86: Allow devices to write an SSDT
  acpi: Add support for DSDT generation
  x86: Allow devices to write to DSDT

 arch/sandbox/dts/test.dts                     |   13 +
 arch/sandbox/include/asm/acpi_table.h         |    9 +
 arch/sandbox/include/asm/global_data.h        |    1 +
 arch/x86/cpu/baytrail/acpi.c                  |    2 +-
 arch/x86/cpu/coreboot/timestamp.c             |    4 +-
 arch/x86/cpu/cpu.c                            |    2 +-
 arch/x86/cpu/intel_common/p2sb.c              |   35 +-
 arch/x86/cpu/quark/acpi.c                     |    2 +-
 arch/x86/cpu/tangier/acpi.c                   |    2 +-
 arch/x86/dts/chromebook_coral.dts             |    2 +-
 arch/x86/include/asm/acpi_table.h             |  376 ----
 .../include/asm/arch-apollolake/global_nvs.h  |   37 +
 .../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                        |    2 +-
 arch/x86/lib/acpi_table.c                     |  312 ++-
 arch/x86/lib/tables.c                         |    2 +-
 arch/x86/lib/zimage.c                         |    2 +-
 cmd/Kconfig                                   |   14 +
 cmd/Makefile                                  |    1 +
 cmd/acpi.c                                    |  179 ++
 doc/device-tree-bindings/chosen.txt           |    9 +
 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      |   24 +
 drivers/core/Kconfig                          |    9 +
 drivers/core/Makefile                         |    1 +
 drivers/core/acpi.c                           |  267 +++
 drivers/cpu/cpu_sandbox.c                     |    1 +
 drivers/gpio/gpio-uclass.c                    |   21 +
 drivers/misc/irq-uclass.c                     |   18 +-
 drivers/pci/pci-uclass.c                      |   11 +-
 drivers/tpm/cr50_i2c.c                        |   24 +-
 drivers/tpm/tpm-uclass.c                      |   13 +-
 include/acpi_device.h                         |  744 ++++++++
 include/acpi_table.h                          |  632 +++++++
 include/acpigen.h                             |  482 +++++
 include/asm-generic/gpio.h                    |   27 +
 include/cpu.h                                 |    2 +
 include/dm/acpi.h                             |  167 ++
 include/dm/device.h                           |    5 +
 include/dm/uclass-id.h                        |    1 +
 include/irq.h                                 |   43 +
 include/log.h                                 |    2 +
 include/spi.h                                 |   33 +
 lib/Makefile                                  |    1 +
 lib/acpi/Makefile                             |    6 +
 lib/acpi/acpi_device.c                        | 1204 ++++++++++++
 lib/acpi/acpi_table.c                         |  259 +++
 lib/acpi/acpigen.c                            | 1683 +++++++++++++++++
 lib/efi_loader/efi_acpi.c                     |    2 +-
 scripts/Makefile.lib                          |    4 +-
 test/dm/Makefile                              |    1 +
 test/dm/acpi.c                                |  399 ++++
 test/dm/cpu.c                                 |    1 +
 59 files changed, 6555 insertions(+), 631 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
 create mode 100644 include/acpi_device.h
 create mode 100644 include/acpi_table.h
 create mode 100644 include/acpigen.h
 create mode 100644 include/dm/acpi.h
 create mode 100644 lib/acpi/Makefile
 create mode 100644 lib/acpi/acpi_device.c
 create mode 100644 lib/acpi/acpi_table.c
 create mode 100644 lib/acpi/acpigen.c
 create mode 100644 test/dm/acpi.c

-- 
2.25.1.481.gfbce0eb801-goog



More information about the U-Boot mailing list