]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Add the Platform Health Assessment Table (PHAT)
authorChris Jones <christopher.jones@arm.com>
Wed, 21 Jul 2021 10:35:06 +0000 (11:35 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 11 Aug 2021 01:53:28 +0000 (01:53 +0000)
Bugzilla: 3516 (https://bugzilla.tianocore.org/show_bug.cgi?id=3516)

Make changes to ACPI 6.4 header according to the latest specification:
- ACPI 6.4 January 2021, Table 5.5, Section 5.2.30
- Mantis ID 2094 (https://mantis.uefi.org/mantis/view.php?id=2094)

Signed-off-by: Chris Jones <christopher.jones@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
MdePkg/Include/IndustryStandard/Acpi64.h

index 5864870e2ba60eca0e8b04b7b2ab1217895b4994..cd093003805799541696516e809d0c800137510e 100644 (file)
@@ -2713,6 +2713,80 @@ typedef struct {
   UINT16                        SpinRev;\r
 } EFI_ACPI_6_4_PPTT_STRUCTURE_ID;\r
 \r
+///\r
+/// Platform Health Assessment Table (PHAT) Format\r
+///\r
+typedef struct {\r
+  EFI_ACPI_DESCRIPTION_HEADER   Header;\r
+//UINT8                         PlatformTelemetryRecords[];\r
+} EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE;\r
+\r
+#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_REVISION 0x01\r
+\r
+///\r
+/// PHAT Record Format\r
+///\r
+typedef struct {\r
+  UINT16  PlatformHealthAssessmentRecordType;\r
+  UINT16  RecordLength;\r
+  UINT8   Revision;\r
+//UINT8   Data[];\r
+} EFI_ACPI_6_4_PHAT_RECORD;\r
+\r
+///\r
+/// PHAT Record Type Format\r
+///\r
+#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_VERSION_DATA_RECORD  0x0000\r
+#define EFI_ACPI_6_4_PHAT_RECORD_TYPE_FIRMWARE_HEALTH_DATA_RECORD   0x0001\r
+\r
+///\r
+/// PHAT Version Element\r
+///\r
+typedef struct {\r
+  GUID    ComponentId;\r
+  UINT64  VersionValue;\r
+  UINT32  ProducerId;\r
+} EFI_ACPI_6_4_PHAT_VERSION_ELEMENT;\r
+\r
+///\r
+/// PHAT Firmware Version Data Record\r
+///\r
+typedef struct {\r
+  UINT16  PlatformRecordType;\r
+  UINT16  RecordLength;\r
+  UINT8   Revision;\r
+  UINT8   Reserved[3];\r
+  UINT32  RecordCount;\r
+//UINT8   PhatVersionElement[];\r
+} EFI_ACPI_6_4_PHAT_FIRMWARE_VERISON_DATA_RECORD;\r
+\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_VERSION_DATA_RECORD_REVISION   0x01\r
+\r
+///\r
+/// Firmware Health Data Record Structure\r
+///\r
+typedef struct {\r
+  UINT16  PlatformRecordType;\r
+  UINT16  RecordLength;\r
+  UINT8   Revision;\r
+  UINT16  Reserved;\r
+  UINT8   AmHealthy;\r
+  GUID    DeviceSignature;\r
+  UINT32  DeviceSpecificDataOffset;\r
+//UINT8   DevicePath[];\r
+//UINT8   DeviceSpecificData[];\r
+} EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_STRUCTURE;\r
+\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_REVISION  0x01\r
+\r
+///\r
+/// Firmware Health Data Record device health state\r
+///\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ERRORS_FOUND      0x00\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_NO_ERRORS_FOUND   0x01\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_UNKNOWN           0x02\r
+#define EFI_ACPI_6_4_PHAT_FIRMWARE_HEALTH_DATA_RECORD_ADVISORY          0x03\r
+\r
 //\r
 // Known table signatures\r
 //\r
@@ -2957,6 +3031,11 @@ typedef struct {
 ///\r
 #define EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE  SIGNATURE_32('P', 'C', 'C', 'T')\r
 \r
+///\r
+/// "PHAT" Platform Health Assessment Table\r
+///\r
+#define EFI_ACPI_6_4_PLATFORM_HEALTH_ASSESSMENT_TABLE_SIGNATURE SIGNATURE_32('P', 'H', 'A', 'T')\r
+\r
 ///\r
 /// "SDEI" Software Delegated Exceptions Interface Table\r
 ///\r