]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg: Update PMTT to ACPI 6.4
authorChris Jones <christopher.jones@arm.com>
Tue, 20 Jul 2021 16:54:45 +0000 (17:54 +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, Section 5.2.21.12
- Mantis ID 1975 (https://mantis.uefi.org/mantis/view.php?id=1975)

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 9a1339c78e915d451847190ec7000e4961b6cac5..e66e1b5a7ab25daf690ef4b21d665fb88d15e8ab 100644 (file)
@@ -1014,73 +1014,78 @@ typedef struct {
 } EFI_ACPI_6_4_MPST_MEMORY_POWER_STATE_CHARACTERISTICS_TABLE;\r
 \r
 ///\r
-/// Memory Topology Table definition.\r
+/// Platform Memory Topology Table definition.\r
 ///\r
 typedef struct {\r
-  EFI_ACPI_DESCRIPTION_HEADER Header;\r
-  UINT32                      Reserved;\r
-} EFI_ACPI_6_4_MEMORY_TOPOLOGY_TABLE;\r
+  EFI_ACPI_DESCRIPTION_HEADER             Header;\r
+  UINT32                                  NumberOfMemoryDevices;\r
+//EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  MemoryDeviceStructure[NumberOfMemoryDevices];\r
+} EFI_ACPI_6_4_PLATFORM_MEMORY_TOPOLOGY_TABLE;\r
 \r
 ///\r
 /// PMTT Version (as defined in ACPI 6.4 spec.)\r
 ///\r
-#define EFI_ACPI_6_4_MEMORY_TOPOLOGY_TABLE_REVISION 0x01\r
+#define EFI_ACPI_6_4_MEMORY_TOPOLOGY_TABLE_REVISION 0x02\r
 \r
 ///\r
-/// Common Memory Aggregator Device Structure.\r
+/// Common Memory Device.\r
 ///\r
 typedef struct {\r
-  UINT8                       Type;\r
-  UINT8                       Reserved;\r
-  UINT16                      Length;\r
-  UINT16                      Flags;\r
-  UINT16                      Reserved1;\r
-} EFI_ACPI_6_4_PMTT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;\r
+  UINT8                                   Type;\r
+  UINT8                                   Reserved;\r
+  UINT16                                  Length;\r
+  UINT16                                  Flags;\r
+  UINT16                                  Reserved1;\r
+  UINT32                                  NumberOfMemoryDevices;\r
+//UINT8                                   TypeSpecificData[];\r
+//EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  MemoryDeviceStructure[NumberOfMemoryDevices];\r
+} EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE;\r
 \r
 ///\r
-/// Memory Aggregator Device Type\r
+/// Memory Device Type.\r
 ///\r
-#define EFI_ACPI_6_4_PMTT_MEMORY_AGGREGATOR_DEVICE_TYPE_SOCKET            0x1\r
-#define EFI_ACPI_6_4_PMTT_MEMORY_AGGREGATOR_DEVICE_TYPE_MEMORY_CONTROLLER 0x2\r
-#define EFI_ACPI_6_4_PMTT_MEMORY_AGGREGATOR_DEVICE_TYPE_DIMM              0x3\r
+#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_SOCKET               0x1\r
+#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_MEMORY_CONTROLLER    0x2\r
+#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_DIMM                 0x3\r
+#define EFI_ACPI_6_4_PMTT_MEMORY_DEVICE_TYPE_VENDOR_SPECIFIC_TYPE 0xFF\r
+\r
+///\r
+/// Socket Type Data.\r
+///\r
+typedef struct {\r
+  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  CommonMemoryDeviceHeader;\r
+  UINT16                                  SocketIdentifier;\r
+  UINT16                                  Reserved;\r
+//EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  MemoryDeviceStructure[];\r
+} EFI_ACPI_6_4_PMTT_SOCKET_TYPE_DATA;\r
 \r
 ///\r
-/// Socket Memory Aggregator Device Structure.\r
+/// Memory Controller Type Data.\r
 ///\r
 typedef struct {\r
-  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE  Header;\r
-  UINT16                                                       SocketIdentifier;\r
-  UINT16                                                       Reserved;\r
-//EFI_ACPI_6_4_PMTT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE  MemoryController[];\r
-} EFI_ACPI_6_4_PMTT_SOCKET_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;\r
+  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  CommonMemoryDeviceHeader;\r
+  UINT16                                  MemoryControllerIdentifier;\r
+  UINT16                                  Reserved;\r
+//EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  MemoryDeviceStructure[];\r
+} EFI_ACPI_6_4_PMTT_MEMORY_CONTROLLER_TYPE_DATA;\r
 \r
 ///\r
-/// MemoryController Memory Aggregator Device Structure.\r
+/// DIMM Type Specific Data.\r
 ///\r
 typedef struct {\r
-  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE  Header;\r
-  UINT32                                                       ReadLatency;\r
-  UINT32                                                       WriteLatency;\r
-  UINT32                                                       ReadBandwidth;\r
-  UINT32                                                       WriteBandwidth;\r
-  UINT16                                                       OptimalAccessUnit;\r
-  UINT16                                                       OptimalAccessAlignment;\r
-  UINT16                                                       Reserved;\r
-  UINT16                                                       NumberOfProximityDomains;\r
-//UINT32                                                       ProximityDomain[NumberOfProximityDomains];\r
-//EFI_ACPI_6_4_PMTT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE    PhysicalComponent[];\r
-} EFI_ACPI_6_4_PMTT_MEMORY_CONTROLLER_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;\r
+  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE  CommonMemoryDeviceHeader;\r
+  UINT32                                  SmbiosHandle;\r
+} EFI_ACPI_6_4_PMTT_DIMM_TYPE_SPECIFIC_DATA;\r
 \r
 ///\r
-/// DIMM Memory Aggregator Device Structure.\r
+/// Vendor Specific Type Data.\r
 ///\r
 typedef struct {\r
-  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_AGGREGATOR_DEVICE_STRUCTURE  Header;\r
-  UINT16                                                       PhysicalComponentIdentifier;\r
-  UINT16                                                       Reserved;\r
-  UINT32                                                       SizeOfDimm;\r
-  UINT32                                                       SmbiosHandle;\r
-} EFI_ACPI_6_4_PMTT_DIMM_MEMORY_AGGREGATOR_DEVICE_STRUCTURE;\r
+  EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE        CommonMemoryDeviceHeader;\r
+  UINT8                                         TypeUuid[16];\r
+//EFI_ACPI_6_4_PMTT_VENDOR_SPECIFIC_TYPE_DATA   VendorSpecificData[];\r
+//EFI_ACPI_6_4_PMTT_COMMON_MEMORY_DEVICE        MemoryDeviceStructure[];\r
+} EFI_ACPI_6_4_PMTT_VENDOR_SPECIFIC_TYPE_DATA;\r
 \r
 ///\r
 /// Boot Graphics Resource Table definition.\r