linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3 v2] Update ACPI documentation for Arm systems
@ 2023-06-06  9:35 Jose Marinho
  2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Jose Marinho @ 2023-06-06  9:35 UTC (permalink / raw)
  Cc: Jose Marinho, Catalin Marinas, Jeremy Linton, James Morse,
	Rob Herring, Will Deacon, Jonathan Corbet, Hanjun Guo,
	linux-arm-kernel, linux-doc, linux-acpi

This set of patches updates the Linux kernel ACPI documentation for Arm
systems. The intent is to integrate the developments in the BBR
specification that happened over the last couple of years.

Cc: Catalin Marinas <catalin.marinas@arm.com>
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

v2:
 - Clarify that the RAS tables are conditionaly required when ACPI
   Platform Error Interfaces are required: Hanjun Guo.
 - Clarify that HMAT is required if NUMA is supported and the system
   contains heterogeneous memory: Hanjun Guo.


Jose Marinho (3):
  Documentation/arm64: Update ARM and arch reference
  Documentation/arm64: Update references in arm-acpi
  Documentation/arm64: Update ACPI tables from BBR

 Documentation/arm64/acpi_object_usage.rst |  81 ++++++++++-
 Documentation/arm64/arm-acpi.rst          | 168 ++++++++++++++--------
 2 files changed, 183 insertions(+), 66 deletions(-)

-- 
2.40.0.141.g8d90352acc


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
@ 2023-06-06  9:35 ` Jose Marinho
  2023-06-06 11:50   ` Robin Murphy
  2023-06-19 12:22   ` Wilczynski, Michal
  2023-06-06  9:35 ` [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi Jose Marinho
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 12+ messages in thread
From: Jose Marinho @ 2023-06-06  9:35 UTC (permalink / raw)
  Cc: Jose Marinho, Catalin Marinas, Jeremy Linton, James Morse,
	Rob Herring, Will Deacon, Jonathan Corbet, Hanjun Guo,
	linux-arm-kernel, linux-doc, linux-acpi, Samer El-Haj-Mahmoud

This patch clarifies that both Armv8 and v9 are in scope, not
just Armv8 systems.
Also, ARM is re-written as Arm.

Cc: Catalin Marinas <catalin.marinas@arm.com>
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: Jose Marinho <jose.marinho@arm.com>
Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
---
 Documentation/arm64/arm-acpi.rst | 41 ++++++++++++++++----------------
 1 file changed, 21 insertions(+), 20 deletions(-)

diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
index 47ecb9930dde..1cafe38fc7f9 100644
--- a/Documentation/arm64/arm-acpi.rst
+++ b/Documentation/arm64/arm-acpi.rst
@@ -1,40 +1,41 @@
-=====================
-ACPI on ARMv8 Servers
-=====================
+===================
+ACPI on Arm systems
+===================
 
-ACPI can be used for ARMv8 general purpose servers designed to follow
-the ARM SBSA (Server Base System Architecture) [0] and SBBR (Server
+ACPI can be used for Armv8 and Armv9 systems designed to follow
+the Arm SBSA (Server Base System Architecture) [0] and SBBR (Server
 Base Boot Requirements) [1] specifications.  Please note that the SBBR
 can be retrieved simply by visiting [1], but the SBSA is currently only
 available to those with an ARM login due to ARM IP licensing concerns.
 
-The ARMv8 kernel implements the reduced hardware model of ACPI version
+
+The Arm kernel implements the reduced hardware model of ACPI version
 5.1 or later.  Links to the specification and all external documents
 it refers to are managed by the UEFI Forum.  The specification is
 available at http://www.uefi.org/specifications and documents referenced
 by the specification can be found via http://www.uefi.org/acpi.
 
-If an ARMv8 system does not meet the requirements of the SBSA and SBBR,
+If an Arm system does not meet the requirements of the BSA and BBR,
 or cannot be described using the mechanisms defined in the required ACPI
 specifications, then ACPI may not be a good fit for the hardware.
 
 While the documents mentioned above set out the requirements for building
-industry-standard ARMv8 servers, they also apply to more than one operating
+industry-standard Arm systems, they also apply to more than one operating
 system.  The purpose of this document is to describe the interaction between
-ACPI and Linux only, on an ARMv8 system -- that is, what Linux expects of
+ACPI and Linux only, on an Arm system -- that is, what Linux expects of
 ACPI and what ACPI can expect of Linux.
 
 
-Why ACPI on ARM?
+Why ACPI on Arm?
 ----------------
 Before examining the details of the interface between ACPI and Linux, it is
 useful to understand why ACPI is being used.  Several technologies already
 exist in Linux for describing non-enumerable hardware, after all.  In this
 section we summarize a blog post [2] from Grant Likely that outlines the
-reasoning behind ACPI on ARMv8 servers.  Actually, we snitch a good portion
+reasoning behind ACPI on Arm systems.  Actually, we snitch a good portion
 of the summary text almost directly, to be honest.
 
-The short form of the rationale for ACPI on ARM is:
+The short form of the rationale for ACPI on Arm is:
 
 -  ACPI’s byte code (AML) allows the platform to encode hardware behavior,
    while DT explicitly does not support this.  For hardware vendors, being
@@ -47,7 +48,7 @@ The short form of the rationale for ACPI on ARM is:
 
 -  In the enterprise server environment, ACPI has established bindings (such
    as for RAS) which are currently used in production systems.  DT does not.
-   Such bindings could be defined in DT at some point, but doing so means ARM
+   Such bindings could be defined in DT at some point, but doing so means Arm
    and x86 would end up using completely different code paths in both firmware
    and the kernel.
 
@@ -108,7 +109,7 @@ recent version of the kernel.
 
 Relationship with Device Tree
 -----------------------------
-ACPI support in drivers and subsystems for ARMv8 should never be mutually
+ACPI support in drivers and subsystems for Arm should never be mutually
 exclusive with DT support at compile time.
 
 At boot time the kernel will only use one description method depending on
@@ -121,11 +122,11 @@ time).
 
 Booting using ACPI tables
 -------------------------
-The only defined method for passing ACPI tables to the kernel on ARMv8
+The only defined method for passing ACPI tables to the kernel on Arm
 is via the UEFI system configuration table.  Just so it is explicit, this
 means that ACPI is only supported on platforms that boot via UEFI.
 
-When an ARMv8 system boots, it can either have DT information, ACPI tables,
+When an Arm system boots, it can either have DT information, ACPI tables,
 or in some very unusual cases, both.  If no command line parameters are used,
 the kernel will try to use DT for device enumeration; if there is no DT
 present, the kernel will try to use ACPI tables, but only if they are present.
@@ -448,7 +449,7 @@ ASWG
 ----
 The ACPI specification changes regularly.  During the year 2014, for instance,
 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
+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.
@@ -456,7 +457,7 @@ is 6.1 release in January 2016.
 Participation in this group is open to all UEFI members.  Please see
 http://www.uefi.org/workinggroup for details on group membership.
 
-It is the intent of the ARMv8 ACPI kernel code to follow the ACPI specification
+It is the intent of the Arm ACPI kernel code to follow the ACPI specification
 as closely as possible, and to only implement functionality that complies with
 the released standards from UEFI ASWG.  As a practical matter, there will be
 vendors that provide bad ACPI tables or violate the standards in some way.
@@ -470,12 +471,12 @@ likely be willing to assist in submitting ECRs.
 
 Linux Code
 ----------
-Individual items specific to Linux on ARM, contained in the Linux
+Individual items specific to Linux on Arm, contained in the Linux
 source code, are in the list that follows:
 
 ACPI_OS_NAME
                        This macro defines the string to be returned when
-                       an ACPI method invokes the _OS method.  On ARM64
+                       an ACPI method invokes the _OS method.  On Arm64
                        systems, this macro will be "Linux" by default.
                        The command line parameter acpi_os=<string>
                        can be used to set it to some other value.  The
-- 
2.40.0.141.g8d90352acc


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
  2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
@ 2023-06-06  9:35 ` Jose Marinho
  2023-06-06 11:56   ` Robin Murphy
  2023-06-06  9:35 ` [PATCH 3/3 v2] Documentation/arm64: Update ACPI tables from BBR Jose Marinho
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: Jose Marinho @ 2023-06-06  9:35 UTC (permalink / raw)
  Cc: Jose Marinho, Catalin Marinas, Jeremy Linton, James Morse,
	Rob Herring, Will Deacon, Jonathan Corbet, Hanjun Guo,
	linux-arm-kernel, linux-doc, linux-acpi, Samer El-Haj-Mahmoud

This patch:
- Updates the reference to the DSD document,
- Removes the unused reference to AMD Seattle,
- Updates the references to BBR, BSA and SBSA.

Cc: Catalin Marinas <catalin.marinas@arm.com>
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: Jose Marinho <jose.marinho@arm.com>
Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
---
 Documentation/arm64/arm-acpi.rst | 56 +++++++++++++-------------------
 1 file changed, 23 insertions(+), 33 deletions(-)

diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
index 1cafe38fc7f9..01171b10828a 100644
--- a/Documentation/arm64/arm-acpi.rst
+++ b/Documentation/arm64/arm-acpi.rst
@@ -3,11 +3,11 @@ ACPI on Arm systems
 ===================
 
 ACPI can be used for Armv8 and Armv9 systems designed to follow
-the Arm SBSA (Server Base System Architecture) [0] and SBBR (Server
-Base Boot Requirements) [1] specifications.  Please note that the SBBR
-can be retrieved simply by visiting [1], but the SBSA is currently only
-available to those with an ARM login due to ARM IP licensing concerns.
-
+the BSA (Arm Base System Architecture) [0] and BBR (Arm
+Base Boot Requirements) [1] specifications.  Both BSA and BBR are publicly
+accessible documents.
+Arm Servers, in addition to being BSA compliant, comply with a set
+of rules defined in SBSA (Server Base System Architecture) [2].
 
 The Arm kernel implements the reduced hardware model of ACPI version
 5.1 or later.  Links to the specification and all external documents
@@ -31,7 +31,7 @@ Why ACPI on Arm?
 Before examining the details of the interface between ACPI and Linux, it is
 useful to understand why ACPI is being used.  Several technologies already
 exist in Linux for describing non-enumerable hardware, after all.  In this
-section we summarize a blog post [2] from Grant Likely that outlines the
+section we summarize a blog post [3] from Grant Likely that outlines the
 reasoning behind ACPI on Arm systems.  Actually, we snitch a good portion
 of the summary text almost directly, to be honest.
 
@@ -270,16 +270,14 @@ Drivers should look for device properties in the _DSD object ONLY; the _DSD
 object is described in the ACPI specification section 6.2.5, but this only
 describes how to define the structure of an object returned via _DSD, and
 how specific data structures are defined by specific UUIDs.  Linux should
-only use the _DSD Device Properties UUID [5]:
+only use the _DSD Device Properties UUID [4]:
 
    - UUID: daffd814-6eba-4d8c-8a91-bc9bbf4aa301
 
-   - https://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf
-
-The UEFI Forum provides a mechanism for registering device properties [4]
-so that they may be used across all operating systems supporting ACPI.
-Device properties that have not been registered with the UEFI Forum should
-not be used.
+Common device properties can be registered by creating a pull request to [4] so
+that they may be used across all operating systems supporting ACPI.
+Device properties that have not been registered with the UEFI Forum can be used
+but not as "uefi-" common properties.
 
 Before creating new device properties, check to be sure that they have not
 been defined before and either registered in the Linux kernel documentation
@@ -307,7 +305,7 @@ process.
 
 Once registration and review have been completed, the kernel provides an
 interface for looking up device properties in a manner independent of
-whether DT or ACPI is being used.  This API should be used [6]; it can
+whether DT or ACPI is being used.  This API should be used [5]; it can
 eliminate some duplication of code paths in driver probing functions and
 discourage divergence between DT bindings and ACPI device properties.
 
@@ -491,31 +489,23 @@ Documentation/arm64/acpi_object_usage.rst.
 
 References
 ----------
-[0] http://silver.arm.com
-    document ARM-DEN-0029, or newer:
-    "Server Base System Architecture", version 2.3, dated 27 Mar 2014
+[0] https://developer.arm.com/documentation/den0094/latest
+    document Arm-DEN-0094: "Arm Base System Architecture", version 1.0C, dated 6 Oct 2022
+
+[1] https://developer.arm.com/documentation/den0044/latest
+    Document Arm-DEN-0044: "Arm Base Boot Requirements", version 2.0G, dated 15 Apr 2022
 
-[1] http://infocenter.arm.com/help/topic/com.arm.doc.den0044a/Server_Base_Boot_Requirements.pdf
-    Document ARM-DEN-0044A, or newer: "Server Base Boot Requirements, System
-    Software on ARM Platforms", dated 16 Aug 2014
+[2] https://developer.arm.com/documentation/den0029/latest
+    Document Arm-DEN-0029: "Arm Server Base System Architecture", version 7.1, dated 06 Oct 2022
 
-[2] http://www.secretlab.ca/archives/151,
+[3] http://www.secretlab.ca/archives/151,
     10 Jan 2015, Copyright (c) 2015,
     Linaro Ltd., written by Grant Likely.
 
-[3] AMD ACPI for Seattle platform documentation
-    http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Seattle_ACPI_Guide.pdf
-
-
-[4] http://www.uefi.org/acpi
-    please see the link for the "ACPI _DSD Device
-    Property Registry Instructions"
-
-[5] http://www.uefi.org/acpi
-    please see the link for the "_DSD (Device
-    Specific Data) Implementation Guide"
+[4] _DSD (Device Specific Data) Implementation Guide
+    https://github.com/UEFI/DSD-Guide/blob/main/dsd-guide.pdf
 
-[6] Kernel code for the unified device
+[5] Kernel code for the unified device
     property interface can be found in
     include/linux/property.h and drivers/base/property.c.
 
-- 
2.40.0.141.g8d90352acc


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/3 v2] Documentation/arm64: Update ACPI tables from BBR
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
  2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
  2023-06-06  9:35 ` [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi Jose Marinho
@ 2023-06-06  9:35 ` Jose Marinho
  2023-06-06 13:37 ` [PATCH 0/3 v2] Update ACPI documentation for Arm systems Sudeep Holla
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Jose Marinho @ 2023-06-06  9:35 UTC (permalink / raw)
  Cc: Jose Marinho, Catalin Marinas, Jeremy Linton, James Morse,
	Rob Herring, Will Deacon, Jonathan Corbet, Hanjun Guo,
	linux-arm-kernel, linux-doc, linux-acpi, Samer El-Haj-Mahmoud

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: Catalin Marinas <catalin.marinas@arm.com>
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: Jose Marinho <jose.marinho@arm.com>
Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
---
 Documentation/arm64/acpi_object_usage.rst | 81 +++++++++++++++++++++--
 Documentation/arm64/arm-acpi.rst          | 72 +++++++++++++++++---
 2 files changed, 140 insertions(+), 13 deletions(-)

diff --git a/Documentation/arm64/acpi_object_usage.rst b/Documentation/arm64/acpi_object_usage.rst
index 484ef9676653..1da22200fdf8 100644
--- a/Documentation/arm64/acpi_object_usage.rst
+++ b/Documentation/arm64/acpi_object_usage.rst
@@ -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**
diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
index 01171b10828a..abb5958c52b9 100644
--- a/Documentation/arm64/arm-acpi.rst
+++ b/Documentation/arm64/arm-acpi.rst
@@ -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.
-- 
2.40.0.141.g8d90352acc


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference
  2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
@ 2023-06-06 11:50   ` Robin Murphy
  2023-06-19 12:22   ` Wilczynski, Michal
  1 sibling, 0 replies; 12+ messages in thread
From: Robin Murphy @ 2023-06-06 11:50 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, Hanjun Guo, linux-arm-kernel,
	linux-doc, linux-acpi, Samer El-Haj-Mahmoud

On 2023-06-06 10:35, Jose Marinho wrote:
> This patch clarifies that both Armv8 and v9 are in scope, not
> just Armv8 systems.
> Also, ARM is re-written as Arm.
> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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: Jose Marinho <jose.marinho@arm.com>
> Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> ---
>   Documentation/arm64/arm-acpi.rst | 41 ++++++++++++++++----------------
>   1 file changed, 21 insertions(+), 20 deletions(-)
> 
> diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
> index 47ecb9930dde..1cafe38fc7f9 100644
> --- a/Documentation/arm64/arm-acpi.rst
> +++ b/Documentation/arm64/arm-acpi.rst
> @@ -1,40 +1,41 @@
> -=====================
> -ACPI on ARMv8 Servers
> -=====================
> +===================
> +ACPI on Arm systems
> +===================
>   
> -ACPI can be used for ARMv8 general purpose servers designed to follow
> -the ARM SBSA (Server Base System Architecture) [0] and SBBR (Server
> +ACPI can be used for Armv8 and Armv9 systems designed to follow
> +the Arm SBSA (Server Base System Architecture) [0] and SBBR (Server
>   Base Boot Requirements) [1] specifications.  Please note that the SBBR
>   can be retrieved simply by visiting [1], but the SBSA is currently only
>   available to those with an ARM login due to ARM IP licensing concerns.
>   
> -The ARMv8 kernel implements the reduced hardware model of ACPI version
> +
> +The Arm kernel implements the reduced hardware model of ACPI version
>   5.1 or later.  Links to the specification and all external documents
>   it refers to are managed by the UEFI Forum.  The specification is
>   available at http://www.uefi.org/specifications and documents referenced
>   by the specification can be found via http://www.uefi.org/acpi.
>   
> -If an ARMv8 system does not meet the requirements of the SBSA and SBBR,
> +If an Arm system does not meet the requirements of the BSA and BBR,
>   or cannot be described using the mechanisms defined in the required ACPI
>   specifications, then ACPI may not be a good fit for the hardware.
>   
>   While the documents mentioned above set out the requirements for building
> -industry-standard ARMv8 servers, they also apply to more than one operating
> +industry-standard Arm systems, they also apply to more than one operating
>   system.  The purpose of this document is to describe the interaction between
> -ACPI and Linux only, on an ARMv8 system -- that is, what Linux expects of
> +ACPI and Linux only, on an Arm system -- that is, what Linux expects of
>   ACPI and what ACPI can expect of Linux.
>   
>   
> -Why ACPI on ARM?
> +Why ACPI on Arm?
>   ----------------
>   Before examining the details of the interface between ACPI and Linux, it is
>   useful to understand why ACPI is being used.  Several technologies already
>   exist in Linux for describing non-enumerable hardware, after all.  In this
>   section we summarize a blog post [2] from Grant Likely that outlines the
> -reasoning behind ACPI on ARMv8 servers.  Actually, we snitch a good portion
> +reasoning behind ACPI on Arm systems.  Actually, we snitch a good portion
>   of the summary text almost directly, to be honest.
>   
> -The short form of the rationale for ACPI on ARM is:
> +The short form of the rationale for ACPI on Arm is:
>   
>   -  ACPI’s byte code (AML) allows the platform to encode hardware behavior,
>      while DT explicitly does not support this.  For hardware vendors, being
> @@ -47,7 +48,7 @@ The short form of the rationale for ACPI on ARM is:
>   
>   -  In the enterprise server environment, ACPI has established bindings (such
>      as for RAS) which are currently used in production systems.  DT does not.
> -   Such bindings could be defined in DT at some point, but doing so means ARM
> +   Such bindings could be defined in DT at some point, but doing so means Arm
>      and x86 would end up using completely different code paths in both firmware
>      and the kernel.
>   
> @@ -108,7 +109,7 @@ recent version of the kernel.
>   
>   Relationship with Device Tree
>   -----------------------------
> -ACPI support in drivers and subsystems for ARMv8 should never be mutually
> +ACPI support in drivers and subsystems for Arm should never be mutually
>   exclusive with DT support at compile time.
>   
>   At boot time the kernel will only use one description method depending on
> @@ -121,11 +122,11 @@ time).
>   
>   Booting using ACPI tables
>   -------------------------
> -The only defined method for passing ACPI tables to the kernel on ARMv8
> +The only defined method for passing ACPI tables to the kernel on Arm
>   is via the UEFI system configuration table.  Just so it is explicit, this
>   means that ACPI is only supported on platforms that boot via UEFI.
>   
> -When an ARMv8 system boots, it can either have DT information, ACPI tables,
> +When an Arm system boots, it can either have DT information, ACPI tables,
>   or in some very unusual cases, both.  If no command line parameters are used,
>   the kernel will try to use DT for device enumeration; if there is no DT
>   present, the kernel will try to use ACPI tables, but only if they are present.
> @@ -448,7 +449,7 @@ ASWG
>   ----
>   The ACPI specification changes regularly.  During the year 2014, for instance,
>   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
> +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.
> @@ -456,7 +457,7 @@ is 6.1 release in January 2016.
>   Participation in this group is open to all UEFI members.  Please see
>   http://www.uefi.org/workinggroup for details on group membership.
>   
> -It is the intent of the ARMv8 ACPI kernel code to follow the ACPI specification
> +It is the intent of the Arm ACPI kernel code to follow the ACPI specification
>   as closely as possible, and to only implement functionality that complies with
>   the released standards from UEFI ASWG.  As a practical matter, there will be
>   vendors that provide bad ACPI tables or violate the standards in some way.
> @@ -470,12 +471,12 @@ likely be willing to assist in submitting ECRs.
>   
>   Linux Code
>   ----------
> -Individual items specific to Linux on ARM, contained in the Linux
> +Individual items specific to Linux on Arm, contained in the Linux
>   source code, are in the list that follows:
>   
>   ACPI_OS_NAME
>                          This macro defines the string to be returned when
> -                       an ACPI method invokes the _OS method.  On ARM64
> +                       an ACPI method invokes the _OS method.  On Arm64

Super-nit: that one should probably be just "Arm" as well, but then this 
whole section appears to be erroneous - I don't see anything in mainline 
obviously setting ACPI_OS_NAME to anything other than the ACPICA default 
of "Microsoft Windows NT", and there is no "acpi_os=" parameter - so it 
seems futile to worry about the trivialities within.

Reviewed-by: Robin Murphy <robin.murphy@arm.com>

>                          systems, this macro will be "Linux" by default.
>                          The command line parameter acpi_os=<string>
>                          can be used to set it to some other value.  The

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi
  2023-06-06  9:35 ` [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi Jose Marinho
@ 2023-06-06 11:56   ` Robin Murphy
  0 siblings, 0 replies; 12+ messages in thread
From: Robin Murphy @ 2023-06-06 11:56 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, Hanjun Guo, linux-arm-kernel,
	linux-doc, linux-acpi, Samer El-Haj-Mahmoud

On 2023-06-06 10:35, Jose Marinho wrote:
> This patch:
> - Updates the reference to the DSD document,
> - Removes the unused reference to AMD Seattle,
> - Updates the references to BBR, BSA and SBSA.

Reviewed-by: Robin Murphy <robin.murphy@arm.com>

> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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: Jose Marinho <jose.marinho@arm.com>
> Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> ---
>   Documentation/arm64/arm-acpi.rst | 56 +++++++++++++-------------------
>   1 file changed, 23 insertions(+), 33 deletions(-)
> 
> diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
> index 1cafe38fc7f9..01171b10828a 100644
> --- a/Documentation/arm64/arm-acpi.rst
> +++ b/Documentation/arm64/arm-acpi.rst
> @@ -3,11 +3,11 @@ ACPI on Arm systems
>   ===================
>   
>   ACPI can be used for Armv8 and Armv9 systems designed to follow
> -the Arm SBSA (Server Base System Architecture) [0] and SBBR (Server
> -Base Boot Requirements) [1] specifications.  Please note that the SBBR
> -can be retrieved simply by visiting [1], but the SBSA is currently only
> -available to those with an ARM login due to ARM IP licensing concerns.
> -
> +the BSA (Arm Base System Architecture) [0] and BBR (Arm
> +Base Boot Requirements) [1] specifications.  Both BSA and BBR are publicly
> +accessible documents.
> +Arm Servers, in addition to being BSA compliant, comply with a set
> +of rules defined in SBSA (Server Base System Architecture) [2].
>   
>   The Arm kernel implements the reduced hardware model of ACPI version
>   5.1 or later.  Links to the specification and all external documents
> @@ -31,7 +31,7 @@ Why ACPI on Arm?
>   Before examining the details of the interface between ACPI and Linux, it is
>   useful to understand why ACPI is being used.  Several technologies already
>   exist in Linux for describing non-enumerable hardware, after all.  In this
> -section we summarize a blog post [2] from Grant Likely that outlines the
> +section we summarize a blog post [3] from Grant Likely that outlines the
>   reasoning behind ACPI on Arm systems.  Actually, we snitch a good portion
>   of the summary text almost directly, to be honest.
>   
> @@ -270,16 +270,14 @@ Drivers should look for device properties in the _DSD object ONLY; the _DSD
>   object is described in the ACPI specification section 6.2.5, but this only
>   describes how to define the structure of an object returned via _DSD, and
>   how specific data structures are defined by specific UUIDs.  Linux should
> -only use the _DSD Device Properties UUID [5]:
> +only use the _DSD Device Properties UUID [4]:
>   
>      - UUID: daffd814-6eba-4d8c-8a91-bc9bbf4aa301
>   
> -   - https://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf
> -
> -The UEFI Forum provides a mechanism for registering device properties [4]
> -so that they may be used across all operating systems supporting ACPI.
> -Device properties that have not been registered with the UEFI Forum should
> -not be used.
> +Common device properties can be registered by creating a pull request to [4] so
> +that they may be used across all operating systems supporting ACPI.
> +Device properties that have not been registered with the UEFI Forum can be used
> +but not as "uefi-" common properties.
>   
>   Before creating new device properties, check to be sure that they have not
>   been defined before and either registered in the Linux kernel documentation
> @@ -307,7 +305,7 @@ process.
>   
>   Once registration and review have been completed, the kernel provides an
>   interface for looking up device properties in a manner independent of
> -whether DT or ACPI is being used.  This API should be used [6]; it can
> +whether DT or ACPI is being used.  This API should be used [5]; it can
>   eliminate some duplication of code paths in driver probing functions and
>   discourage divergence between DT bindings and ACPI device properties.
>   
> @@ -491,31 +489,23 @@ Documentation/arm64/acpi_object_usage.rst.
>   
>   References
>   ----------
> -[0] http://silver.arm.com
> -    document ARM-DEN-0029, or newer:
> -    "Server Base System Architecture", version 2.3, dated 27 Mar 2014
> +[0] https://developer.arm.com/documentation/den0094/latest
> +    document Arm-DEN-0094: "Arm Base System Architecture", version 1.0C, dated 6 Oct 2022
> +
> +[1] https://developer.arm.com/documentation/den0044/latest
> +    Document Arm-DEN-0044: "Arm Base Boot Requirements", version 2.0G, dated 15 Apr 2022
>   
> -[1] http://infocenter.arm.com/help/topic/com.arm.doc.den0044a/Server_Base_Boot_Requirements.pdf
> -    Document ARM-DEN-0044A, or newer: "Server Base Boot Requirements, System
> -    Software on ARM Platforms", dated 16 Aug 2014
> +[2] https://developer.arm.com/documentation/den0029/latest
> +    Document Arm-DEN-0029: "Arm Server Base System Architecture", version 7.1, dated 06 Oct 2022
>   
> -[2] http://www.secretlab.ca/archives/151,
> +[3] http://www.secretlab.ca/archives/151,
>       10 Jan 2015, Copyright (c) 2015,
>       Linaro Ltd., written by Grant Likely.
>   
> -[3] AMD ACPI for Seattle platform documentation
> -    http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/Seattle_ACPI_Guide.pdf
> -
> -
> -[4] http://www.uefi.org/acpi
> -    please see the link for the "ACPI _DSD Device
> -    Property Registry Instructions"
> -
> -[5] http://www.uefi.org/acpi
> -    please see the link for the "_DSD (Device
> -    Specific Data) Implementation Guide"
> +[4] _DSD (Device Specific Data) Implementation Guide
> +    https://github.com/UEFI/DSD-Guide/blob/main/dsd-guide.pdf
>   
> -[6] Kernel code for the unified device
> +[5] Kernel code for the unified device
>       property interface can be found in
>       include/linux/property.h and drivers/base/property.c.
>   

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3 v2] Update ACPI documentation for Arm systems
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
                   ` (2 preceding siblings ...)
  2023-06-06  9:35 ` [PATCH 3/3 v2] Documentation/arm64: Update ACPI tables from BBR Jose Marinho
@ 2023-06-06 13:37 ` Sudeep Holla
  2023-06-06 23:54 ` Jeremy Linton
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: Sudeep Holla @ 2023-06-06 13:37 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, Hanjun Guo, linux-arm-kernel,
	linux-doc, linux-acpi

On Tue, Jun 06, 2023 at 10:35:25AM +0100, Jose Marinho wrote:
> This set of patches updates the Linux kernel ACPI documentation for Arm
> systems. The intent is to integrate the developments in the BBR
> specification that happened over the last couple of years.
> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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
> 
> v2:
>  - Clarify that the RAS tables are conditionaly required when ACPI
>    Platform Error Interfaces are required: Hanjun Guo.
>  - Clarify that HMAT is required if NUMA is supported and the system
>    contains heterogeneous memory: Hanjun Guo.
>

LGTM overall, thanks for updating.

Acked-by: Sudeep Holla <sudeep.holla@arm.com>

-- 
Regards,
Sudeep

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3 v2] Update ACPI documentation for Arm systems
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
                   ` (3 preceding siblings ...)
  2023-06-06 13:37 ` [PATCH 0/3 v2] Update ACPI documentation for Arm systems Sudeep Holla
@ 2023-06-06 23:54 ` Jeremy Linton
  2023-06-07 11:02 ` Hanjun Guo
  2023-06-14 17:18 ` Catalin Marinas
  6 siblings, 0 replies; 12+ messages in thread
From: Jeremy Linton @ 2023-06-06 23:54 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, James Morse, Rob Herring, Will Deacon,
	Jonathan Corbet, Hanjun Guo, linux-arm-kernel, linux-doc,
	linux-acpi

Hi,

On 6/6/23 04:35, Jose Marinho wrote:
> This set of patches updates the Linux kernel ACPI documentation for Arm
> systems. The intent is to integrate the developments in the BBR
> specification that happened over the last couple of years.

Thanks for doing this, it has been sorely needed. The changes all look 
good to me too, so:

Reviewed-by: Jeremy Linton <jeremy.linton@arm.com>


Now all that said, at some point it will be worthwhile to reopen the 
discussion around a few of the more "controversial" parts of this 
document so they better reflect the current state of machines utilizing 
ACPI.


> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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
> 
> v2:
>   - Clarify that the RAS tables are conditionaly required when ACPI
>     Platform Error Interfaces are required: Hanjun Guo.
>   - Clarify that HMAT is required if NUMA is supported and the system
>     contains heterogeneous memory: Hanjun Guo.
> 
> 
> Jose Marinho (3):
>    Documentation/arm64: Update ARM and arch reference
>    Documentation/arm64: Update references in arm-acpi
>    Documentation/arm64: Update ACPI tables from BBR
> 
>   Documentation/arm64/acpi_object_usage.rst |  81 ++++++++++-
>   Documentation/arm64/arm-acpi.rst          | 168 ++++++++++++++--------
>   2 files changed, 183 insertions(+), 66 deletions(-)
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3 v2] Update ACPI documentation for Arm systems
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
                   ` (4 preceding siblings ...)
  2023-06-06 23:54 ` Jeremy Linton
@ 2023-06-07 11:02 ` Hanjun Guo
  2023-06-14 17:18 ` Catalin Marinas
  6 siblings, 0 replies; 12+ messages in thread
From: Hanjun Guo @ 2023-06-07 11:02 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, linux-arm-kernel, linux-doc,
	linux-acpi

On 2023/6/6 17:35, Jose Marinho wrote:
> This set of patches updates the Linux kernel ACPI documentation for Arm
> systems. The intent is to integrate the developments in the BBR
> specification that happened over the last couple of years.
> 
> Cc: Catalin Marinas<catalin.marinas@arm.com>
> 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
> 
> v2:
>   - Clarify that the RAS tables are conditionaly required when ACPI
>     Platform Error Interfaces are required: Hanjun Guo.
>   - Clarify that HMAT is required if NUMA is supported and the system
>     contains heterogeneous memory: Hanjun Guo.

Thanks for updating the document,

Reviewed-by: Hanjun Guo <guohanjun@huawei.com>

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 0/3 v2] Update ACPI documentation for Arm systems
  2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
                   ` (5 preceding siblings ...)
  2023-06-07 11:02 ` Hanjun Guo
@ 2023-06-14 17:18 ` Catalin Marinas
  6 siblings, 0 replies; 12+ messages in thread
From: Catalin Marinas @ 2023-06-14 17:18 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Will Deacon, Jeremy Linton, James Morse, Rob Herring,
	Jonathan Corbet, Hanjun Guo, linux-arm-kernel, linux-doc,
	linux-acpi

On Tue, 06 Jun 2023 10:35:25 +0100, Jose Marinho wrote:
> This set of patches updates the Linux kernel ACPI documentation for Arm
> systems. The intent is to integrate the developments in the BBR
> specification that happened over the last couple of years.
> 
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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
> 
> [...]

Applied to arm64 (for-next/acpi-doc), thanks!

[1/3] Documentation/arm64: Update ARM and arch reference
      https://git.kernel.org/arm64/c/137477c8daac
[2/3] Documentation/arm64: Update references in arm-acpi
      https://git.kernel.org/arm64/c/8c350dfc9065
[3/3] Documentation/arm64: Update ACPI tables from BBR
      https://git.kernel.org/arm64/c/3927eaff464f

-- 
Catalin


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference
  2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
  2023-06-06 11:50   ` Robin Murphy
@ 2023-06-19 12:22   ` Wilczynski, Michal
  2023-06-20  6:51     ` Hanjun Guo
  1 sibling, 1 reply; 12+ messages in thread
From: Wilczynski, Michal @ 2023-06-19 12:22 UTC (permalink / raw)
  To: Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, Hanjun Guo, linux-arm-kernel,
	linux-doc, linux-acpi, Samer El-Haj-Mahmoud



On 6/6/2023 11:35 AM, Jose Marinho wrote:
> This patch clarifies that both Armv8 and v9 are in scope, not
> just Armv8 systems.
> Also, ARM is re-written as Arm.
>
> Cc: Catalin Marinas <catalin.marinas@arm.com>
> 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: Jose Marinho <jose.marinho@arm.com>
> Reviewed-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
> ---
>  Documentation/arm64/arm-acpi.rst | 41 ++++++++++++++++----------------
>  1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/Documentation/arm64/arm-acpi.rst b/Documentation/arm64/arm-acpi.rst
> index 47ecb9930dde..1cafe38fc7f9 100644
> --- a/Documentation/arm64/arm-acpi.rst
> +++ b/Documentation/arm64/arm-acpi.rst
> @@ -1,40 +1,41 @@
> -=====================
> -ACPI on ARMv8 Servers
> -=====================
> +===================
> +ACPI on Arm systems
> +===================
>  
> -ACPI can be used for ARMv8 general purpose servers designed to follow
> -the ARM SBSA (Server Base System Architecture) [0] and SBBR (Server
> +ACPI can be used for Armv8 and Armv9 systems designed to follow
> +the Arm SBSA (Server Base System Architecture) [0] and SBBR (Server
>  Base Boot Requirements) [1] specifications.  Please note that the SBBR
>  can be retrieved simply by visiting [1], but the SBSA is currently only
>  available to those with an ARM login due to ARM IP licensing concerns.
>  
> -The ARMv8 kernel implements the reduced hardware model of ACPI version
> +
> +The Arm kernel implements the reduced hardware model of ACPI version
>  5.1 or later.  Links to the specification and all external documents
>  it refers to are managed by the UEFI Forum.  The specification is
>  available at http://www.uefi.org/specifications and documents referenced
>  by the specification can be found via http://www.uefi.org/acpi.
>  
> -If an ARMv8 system does not meet the requirements of the SBSA and SBBR,
> +If an Arm system does not meet the requirements of the BSA and BBR,
>  or cannot be described using the mechanisms defined in the required ACPI
>  specifications, then ACPI may not be a good fit for the hardware.
>  
>  While the documents mentioned above set out the requirements for building
> -industry-standard ARMv8 servers, they also apply to more than one operating
> +industry-standard Arm systems, they also apply to more than one operating
>  system.  The purpose of this document is to describe the interaction between
> -ACPI and Linux only, on an ARMv8 system -- that is, what Linux expects of
> +ACPI and Linux only, on an Arm system -- that is, what Linux expects of
>  ACPI and what ACPI can expect of Linux.
>  
>  
> -Why ACPI on ARM?
> +Why ACPI on Arm?
>  ----------------
>  Before examining the details of the interface between ACPI and Linux, it is
>  useful to understand why ACPI is being used.  Several technologies already
>  exist in Linux for describing non-enumerable hardware, after all.  In this
>  section we summarize a blog post [2] from Grant Likely that outlines the
> -reasoning behind ACPI on ARMv8 servers.  Actually, we snitch a good portion
> +reasoning behind ACPI on Arm systems.  Actually, we snitch a good portion
>  of the summary text almost directly, to be honest.
>  
> -The short form of the rationale for ACPI on ARM is:
> +The short form of the rationale for ACPI on Arm is:
>  
>  -  ACPI’s byte code (AML) allows the platform to encode hardware behavior,
>     while DT explicitly does not support this.  For hardware vendors, being
> @@ -47,7 +48,7 @@ The short form of the rationale for ACPI on ARM is:
>  
>  -  In the enterprise server environment, ACPI has established bindings (such
>     as for RAS) which are currently used in production systems.  DT does not.
> -   Such bindings could be defined in DT at some point, but doing so means ARM
> +   Such bindings could be defined in DT at some point, but doing so means Arm
>     and x86 would end up using completely different code paths in both firmware
>     and the kernel.
>  
> @@ -108,7 +109,7 @@ recent version of the kernel.
>  
>  Relationship with Device Tree
>  -----------------------------
> -ACPI support in drivers and subsystems for ARMv8 should never be mutually
> +ACPI support in drivers and subsystems for Arm should never be mutually
>  exclusive with DT support at compile time.
>  
>  At boot time the kernel will only use one description method depending on
> @@ -121,11 +122,11 @@ time).
>  
>  Booting using ACPI tables
>  -------------------------
> -The only defined method for passing ACPI tables to the kernel on ARMv8
> +The only defined method for passing ACPI tables to the kernel on Arm
>  is via the UEFI system configuration table.  Just so it is explicit, this
>  means that ACPI is only supported on platforms that boot via UEFI.
>  
> -When an ARMv8 system boots, it can either have DT information, ACPI tables,
> +When an Arm system boots, it can either have DT information, ACPI tables,
>  or in some very unusual cases, both.  If no command line parameters are used,
>  the kernel will try to use DT for device enumeration; if there is no DT
>  present, the kernel will try to use ACPI tables, but only if they are present.
> @@ -448,7 +449,7 @@ ASWG
>  ----
>  The ACPI specification changes regularly.  During the year 2014, for instance,
>  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
> +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.
> @@ -456,7 +457,7 @@ is 6.1 release in January 2016.
>  Participation in this group is open to all UEFI members.  Please see
>  http://www.uefi.org/workinggroup for details on group membership.

Not part of this patch, but while at it maybe fix the  http://www.uefi.org/workinggroup
that doesn't work - it returns 404.


>  
> -It is the intent of the ARMv8 ACPI kernel code to follow the ACPI specification
> +It is the intent of the Arm ACPI kernel code to follow the ACPI specification
>  as closely as possible, and to only implement functionality that complies with
>  the released standards from UEFI ASWG.  As a practical matter, there will be
>  vendors that provide bad ACPI tables or violate the standards in some way.
> @@ -470,12 +471,12 @@ likely be willing to assist in submitting ECRs.
>  
>  Linux Code
>  ----------
> -Individual items specific to Linux on ARM, contained in the Linux
> +Individual items specific to Linux on Arm, contained in the Linux
>  source code, are in the list that follows:
>  
>  ACPI_OS_NAME
>                         This macro defines the string to be returned when
> -                       an ACPI method invokes the _OS method.  On ARM64
> +                       an ACPI method invokes the _OS method.  On Arm64
>                         systems, this macro will be "Linux" by default.
>                         The command line parameter acpi_os=<string>
>                         can be used to set it to some other value.  The


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference
  2023-06-19 12:22   ` Wilczynski, Michal
@ 2023-06-20  6:51     ` Hanjun Guo
  0 siblings, 0 replies; 12+ messages in thread
From: Hanjun Guo @ 2023-06-20  6:51 UTC (permalink / raw)
  To: Wilczynski, Michal, Jose Marinho
  Cc: Catalin Marinas, Jeremy Linton, James Morse, Rob Herring,
	Will Deacon, Jonathan Corbet, linux-arm-kernel, linux-doc,
	linux-acpi, Samer El-Haj-Mahmoud

On 2023/6/19 20:22, Wilczynski, Michal wrote:
>>   Participation in this group is open to all UEFI members.  Please see
>>   http://www.uefi.org/workinggroup  for details on group membership.
 >
> Not part of this patch, but while at it maybe fix thehttp://www.uefi.org/workinggroup
> that doesn't work - it returns 404.

Thank you. I think it's https://uefi.org/membership now.

Thanks
Hanjun

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-06-20  6:51 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-06  9:35 [PATCH 0/3 v2] Update ACPI documentation for Arm systems Jose Marinho
2023-06-06  9:35 ` [PATCH 1/3 v2] Documentation/arm64: Update ARM and arch reference Jose Marinho
2023-06-06 11:50   ` Robin Murphy
2023-06-19 12:22   ` Wilczynski, Michal
2023-06-20  6:51     ` Hanjun Guo
2023-06-06  9:35 ` [PATCH 2/3 v2] Documentation/arm64: Update references in arm-acpi Jose Marinho
2023-06-06 11:56   ` Robin Murphy
2023-06-06  9:35 ` [PATCH 3/3 v2] Documentation/arm64: Update ACPI tables from BBR Jose Marinho
2023-06-06 13:37 ` [PATCH 0/3 v2] Update ACPI documentation for Arm systems Sudeep Holla
2023-06-06 23:54 ` Jeremy Linton
2023-06-07 11:02 ` Hanjun Guo
2023-06-14 17:18 ` Catalin Marinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).