Commit 3927eaff authored by Jose Marinho's avatar Jose Marinho Committed by Catalin Marinas
Browse files

Documentation/arm64: Update ACPI tables from BBR

The BBR specification requires (or conditionally requires) a set of ACPI
tables for a proper working system.
This commit updates:
- the list of ACPI tables to reflect the contents of
BBR version 2.0 (see https://developer.arm.com/documentation/den0044/g

).
- the list of ACPI tables in acpi_object_usage. This last update ensures
that both files remain coherent.

Cc: Jeremy Linton <Jeremy.Linton@arm.com>
Cc: James Morse <James.Morse@arm.com>
Cc: Rob Herring <Rob.Herring@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Hanjun Guo <guohanjun@huawei.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-doc@vger.kernel.org
Cc: linux-acpi@vger.kernel.org

Signed-off-by: default avatarJose Marinho <jose.marinho@arm.com>
Reviewed-by: default avatarSamer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Reviewed-by: default avatarJeremy Linton <jeremy.linton@arm.com>
Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
Link: https://lore.kernel.org/r/20230606093528.1494344-4-jose.marinho@arm.com


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 8c350dfc
Loading
Loading
Loading
Loading
+76 −5
Original line number Diff line number Diff line
@@ -17,16 +17,37 @@ For ACPI on arm64, tables also fall into the following categories:

       -  Recommended: BERT, EINJ, ERST, HEST, PCCT, SSDT

       -  Optional: BGRT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT, IBFT,
          IORT, MCHI, MPST, MSCT, NFIT, PMTT, RASF, SBST, SLIT, SPMI, SRAT,
          STAO, TCPA, TPM2, UEFI, XENV
       -  Optional: AGDI, BGRT, CEDT, CPEP, CSRT, DBG2, DRTM, ECDT, FACS, FPDT,
          HMAT, IBFT, IORT, MCHI, MPAM, MPST, MSCT, NFIT, PMTT, PPTT, RASF, SBST,
          SDEI, SLIT, SPMI, SRAT, STAO, TCPA, TPM2, UEFI, XENV

       -  Not supported: BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT, MSDM, OEMx,
          PSDT, RSDT, SLIC, WAET, WDAT, WDRT, WPBT
       -  Not supported: AEST, APMT, BOOT, DBGP, DMAR, ETDT, HPET, IVRS, LPIT,
          MSDM, OEMx, PDTT, PSDT, RAS2, RSDT, SLIC, WAET, WDAT, WDRT, WPBT

====== ========================================================================
Table  Usage for ARMv8 Linux
====== ========================================================================
AEST   Signature Reserved (signature == "AEST")

       **Arm Error Source Table**

       This table informs the OS of any error nodes in the system that are
       compliant with the Arm RAS architecture.

AGDI   Signature Reserved (signature == "AGDI")

       **Arm Generic diagnostic Dump and Reset Device Interface Table**

       This table describes a non-maskable event, that is used by the platform
       firmware, to request the OS to generate a diagnostic dump and reset the device.

APMT   Signature Reserved (signature == "APMT")

       **Arm Performance Monitoring Table**

       This table describes the properties of PMU support implmented by
       components in the system.

BERT   Section 18.3 (signature == "BERT")

       **Boot Error Record Table**
@@ -47,6 +68,13 @@ BGRT Section 5.2.22 (signature == "BGRT")
       Optional, not currently supported, with no real use-case for an
       ARM server.

CEDT   Signature Reserved (signature == "CEDT")

       **CXL Early Discovery Table**

       This table allows the OS to discover any CXL Host Bridges and the Host
       Bridge registers.

CPEP   Section 5.2.18 (signature == "CPEP")

       **Corrected Platform Error Polling table**
@@ -184,6 +212,15 @@ HEST Section 18.3.2 (signature == "HEST")
       Must be supplied if RAS support is provided by the platform.  It
       is recommended this table be supplied.

HMAT   Section 5.2.28 (signature == "HMAT")

       **Heterogeneous Memory Attribute Table**

       This table describes the memory attributes, such as memory side cache
       attributes and bandwidth and latency details, related to Memory Proximity
       Domains. The OS uses this information to optimize the system memory
       configuration.

HPET   Signature Reserved (signature == "HPET")

       **High Precision Event timer Table**
@@ -241,6 +278,13 @@ MCHI Signature Reserved (signature == "MCHI")

       Optional, not currently supported.

MPAM   Signature Reserved (signature == "MPAM")

       **Memory Partitioning And Monitoring table**

       This table allows the OS to discover the MPAM controls implemented by
       the subsystems.

MPST   Section 5.2.21 (signature == "MPST")

       **Memory Power State Table**
@@ -281,18 +325,39 @@ PCCT Section 14.1 (signature == "PCCT)
       Recommend for use on arm64; use of PCC is recommended when using CPPC
       to control performance and power for platform processors.

PDTT   Section 5.2.29 (signature == "PDTT")

       **Platform Debug Trigger Table**

       This table describes PCC channels used to gather debug logs of
       non-architectural features.


PMTT   Section 5.2.21.12 (signature == "PMTT")

       **Platform Memory Topology Table**

       Optional, not currently supported.

PPTT   Section 5.2.30 (signature == "PPTT")

       **Processor Properties Topology Table**

       This table provides the processor and cache topology.

PSDT   Section 5.2.11.3 (signature == "PSDT")

       **Persistent System Description Table**

       Obsolete table, will not be supported.

RAS2   Section 5.2.21 (signature == "RAS2")

       **RAS Features 2 table**

       This table provides interfaces for the RAS capabilities implemented in
       the platform.

RASF   Section 5.2.20 (signature == "RASF")

       **RAS Feature table**
@@ -318,6 +383,12 @@ SBST Section 5.2.14 (signature == "SBST")

       Optional, not currently supported.

SDEI   Signature Reserved (signature == "SDEI")

       **Software Delegated Exception Interface table**

       This table advertises the presence of the SDEI interface.

SLIC   Signature Reserved (signature == "SLIC")

       **Software LIcensing table**
+64 −8
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ hardware reduced mode must be set to zero.

For the ACPI core to operate properly, and in turn provide the information
the kernel needs to configure devices, it expects to find the following
tables (all section numbers refer to the ACPI 6.1 specification):
tables (all section numbers refer to the ACPI 6.5 specification):

    -  RSDP (Root System Description Pointer), section 5.2.5

@@ -185,20 +185,76 @@ tables (all section numbers refer to the ACPI 6.1 specification):

    -  GTDT (Generic Timer Description Table), section 5.2.24

    -  PPTT (Processor Properties Topology Table), section 5.2.30

    -  DBG2 (DeBuG port table 2), section 5.2.6, specifically Table 5-6.

    -  APMT (Arm Performance Monitoring unit Table), section 5.2.6, specifically Table 5-6.

    -  AGDI (Arm Generic diagnostic Dump and Reset Device Interface Table), section 5.2.6, specifically Table 5-6.

    -  If PCI is supported, the MCFG (Memory mapped ConFiGuration
       Table), section 5.2.6, specifically Table 5-31.
       Table), section 5.2.6, specifically Table 5-6.

    -  If booting without a console=<device> kernel parameter is
       supported, the SPCR (Serial Port Console Redirection table),
       section 5.2.6, specifically Table 5-31.
       section 5.2.6, specifically Table 5-6.

    -  If necessary to describe the I/O topology, SMMUs and GIC ITSs,
       the IORT (Input Output Remapping Table, section 5.2.6, specifically
       Table 5-31).
       Table 5-6).

    -  If NUMA is supported, the following tables are required:

       - SRAT (System Resource Affinity Table), section 5.2.16

       - SLIT (System Locality distance Information Table), section 5.2.17

    -  If NUMA is supported, and the system contains heterogeneous memory,
       the HMAT (Heterogeneous Memory Attribute Table), section 5.2.28.

    -  If the ACPI Platform Error Interfaces are required, the following
       tables are conditionally required:

       - BERT (Boot Error Record Table, section 18.3.1)

       - EINJ (Error INJection table, section 18.6.1)

       - ERST (Error Record Serialization Table, section 18.5)

       - HEST (Hardware Error Source Table, section 18.3.2)

       - SDEI (Software Delegated Exception Interface table, section 5.2.6,
         specifically Table 5-6)

       - AEST (Arm Error Source Table, section 5.2.6,
         specifically Table 5-6)

       - RAS2 (ACPI RAS2 feature table, section 5.2.21)

    -  If the system contains controllers using PCC channel, the
       PCCT (Platform Communications Channel Table), section 14.1

    -  If the system contains a controller to capture board-level system state,
       and communicates with the host via PCC, the PDTT (Platform Debug Trigger
       Table), section 5.2.29.

    -  If NVDIMM is supported, the NFIT (NVDIMM Firmware Interface Table), section 5.2.26

    -  If video framebuffer is present, the BGRT (Boot Graphics Resource Table), section 5.2.23

    -  If IPMI is implemented, the SPMI (Server Platform Management Interface),
       section 5.2.6, specifically Table 5-6.

    -  If the system contains a CXL Host Bridge, the CEDT (CXL Early Discovery
       Table), section 5.2.6, specifically Table 5-6.

    -  If the system supports MPAM, the MPAM (Memory Partitioning And Monitoring table), section 5.2.6,
       specifically Table 5-6.

    -  If the system lacks persistent storage, the IBFT (ISCSI Boot Firmware
       Table), section 5.2.6, specifically Table 5-6.

    -  If NUMA is supported, the SRAT (System Resource Affinity Table)
       and SLIT (System Locality distance Information Table), sections
       5.2.16 and 5.2.17, respectively.

If the above tables are not all present, the kernel may or may not be
able to boot properly since it may not be able to configure all of the
@@ -450,7 +506,7 @@ version 5.1 was released and version 6.0 substantially completed, with most of
the changes being driven by Arm-specific requirements.  Proposed changes are
presented and discussed in the ASWG (ACPI Specification Working Group) which
is a part of the UEFI Forum.  The current version of the ACPI specification
is 6.1 release in January 2016.
is 6.5 release in August 2022.

Participation in this group is open to all UEFI members.  Please see
http://www.uefi.org/workinggroup for details on group membership.