ACPICA: ACPI 6.4: add support for PHAT table
authorErik Kaneda <erik.kaneda@intel.com>
Tue, 6 Apr 2021 21:30:23 +0000 (14:30 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 7 Apr 2021 17:09:01 +0000 (19:09 +0200)
ACPICA commit de805b6a355c01f3aff4044a4ba60e9845b7668c

This table displays health information about the platform firmware. For
full definition, see the ACPI specification.

Link: https://github.com/acpica/acpica/commit/de805b6a
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
include/acpi/actbl2.h

index d8e1db5d5e55e391499e578e96eecbf1e1256a0c..8383446295a58d830b54e138e3c8740051240e8b 100644 (file)
@@ -36,6 +36,7 @@
 #define ACPI_SIG_NFIT           "NFIT" /* NVDIMM Firmware Interface Table */
 #define ACPI_SIG_PCCT           "PCCT" /* Platform Communications Channel Table */
 #define ACPI_SIG_PDTT           "PDTT" /* Platform Debug Trigger Table */
+#define ACPI_SIG_PHAT           "PHAT" /* Platform Health Assessment Table */
 #define ACPI_SIG_PMTT           "PMTT" /* Platform Memory Topology Table */
 #define ACPI_SIG_PPTT           "PPTT" /* Processor Properties Topology Table */
 #define ACPI_SIG_RASF           "RASF" /* RAS Feature table */
@@ -1401,6 +1402,66 @@ struct acpi_pdtt_channel {
 #define ACPI_PDTT_WAIT_COMPLETION           (1<<1)
 #define ACPI_PDTT_TRIGGER_ORDER             (1<<2)
 
+/*******************************************************************************
+ *
+ * PHAT - Platform Health Assessment Table (ACPI 6.4)
+ *        Version 1
+ *
+ ******************************************************************************/
+
+struct acpi_table_phat {
+       struct acpi_table_header header;        /* Common ACPI table header */
+};
+
+/* Common header for PHAT subtables that follow main table */
+
+struct acpi_phat_header {
+       u16 type;
+       u16 length;
+       u8 revision;
+};
+
+/* Values for Type field above */
+
+#define ACPI_PHAT_TYPE_FW_VERSION_DATA  0
+#define ACPI_PHAT_TYPE_FW_HEALTH_DATA   1
+#define ACPI_PHAT_TYPE_RESERVED         2      /* 0x02-0xFFFF are reserved */
+
+/*
+ * PHAT subtables, correspond to Type in struct acpi_phat_header
+ */
+
+/* 0: Firmware Version Data Record */
+
+struct acpi_phat_version_data {
+       struct acpi_phat_header header;
+       u8 reserved[3];
+       u32 element_count;
+};
+
+struct acpi_phat_version_element {
+       u8 guid[16];
+       u64 version_value;
+       u32 producer_id;
+};
+
+/* 1: Firmware Health Data Record */
+
+struct acpi_phat_health_data {
+       struct acpi_phat_header header;
+       u8 reserved[2];
+       u8 health;
+       u8 device_guid[16];
+       u32 device_specific_offset;     /* Zero if no Device-specific data */
+};
+
+/* Values for Health field above */
+
+#define ACPI_PHAT_ERRORS_FOUND          0
+#define ACPI_PHAT_NO_ERRORS             1
+#define ACPI_PHAT_UNKNOWN_ERRORS        2
+#define ACPI_PHAT_ADVISORY              3
+
 /*******************************************************************************
  *
  * PMTT - Platform Memory Topology Table (ACPI 5.0)