[PATCH 1/2] ACPI: AGDI: Add AGDI tables to drivers/acpi

From: Ilkka Koskinen
Date: Thu Dec 02 2021 - 21:44:05 EST


ACPI for Arm Components 1.1 Platform Design Document v1.1 [0] specifices
Arm Generic Diagnostic Device Interface (AGDI). It allows an admin to
issue diagnostic dump and reset via an SDEI event or an interrupt. This
patch adds support to ACPI/AGDI tables.

[0] https://developer.arm.com/documentation/den0093/latest/

Signed-off-by: Ilkka Koskinen <ilkka@xxxxxxxxxxxxxxxxxxxxxx>
---
drivers/acpi/tables.c | 2 +-
include/acpi/actbl2.h | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 71419eb16e09..5e3169bcb9fb 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -500,7 +500,7 @@ static const char table_sigs[][ACPI_NAMESEG_SIZE] __initconst = {
ACPI_SIG_WDDT, ACPI_SIG_WDRT, ACPI_SIG_DSDT, ACPI_SIG_FADT,
ACPI_SIG_PSDT, ACPI_SIG_RSDT, ACPI_SIG_XSDT, ACPI_SIG_SSDT,
ACPI_SIG_IORT, ACPI_SIG_NFIT, ACPI_SIG_HMAT, ACPI_SIG_PPTT,
- ACPI_SIG_NHLT };
+ ACPI_SIG_NHLT, ACPI_SIG_AGDI };

#define ACPI_HEADER_SIZE sizeof(struct acpi_table_header)

diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index 71ca090fd61b..66ca85b9f5fe 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -24,6 +24,7 @@
* file. Useful because they make it more difficult to inadvertently type in
* the wrong signature.
*/
+#define ACPI_SIG_AGDI "AGDI" /* ARM Generic Diagnostic Dump and Reset Device Interface */
#define ACPI_SIG_BDAT "BDAT" /* BIOS Data ACPI Table */
#define ACPI_SIG_IORT "IORT" /* IO Remapping Table */
#define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */
@@ -237,6 +238,25 @@ typedef struct acpi_aest_node_interrupt {
#define ACPI_AEST_NODE_ERROR_RECOVERY 1
#define ACPI_AEST_XRUPT_RESERVED 2 /* 2 and above are reserved */

+/*******************************************************************************
+ * AGDI - Generic Diagnostic Dump and Reset Device Interface
+ *
+ * Document number: ARM DEN0093
+ *
+ *******************************************************************************/
+
+struct acpi_table_agdi {
+ struct acpi_table_header header;
+ u8 flags;
+ u8 reserved[3];
+ u32 sdei_event;
+ u32 gsiv;
+};
+
+/* Masks for Flags field above for AGDI table */
+
+#define ACPI_AGDI_SIGNALING_MODE (1)
+
/*******************************************************************************
*
* BDAT - BIOS Data ACPI Table
--
2.17.1