From 734d7c6dc775f4aa54ab59b701926edec559756b Mon Sep 17 00:00:00 2001 From: Oleksandr Tymoshenko Date: Mon, 18 May 2026 21:29:10 +0000 Subject: MdePkg: Add constants for HMAT structures' fields Add constants for HMAT table's SSLBI and ProximityDoman structures to industry standards headers for Acpi 6.4, 6.5, and 6.6. Co-authored-by: Sophia Wang Signed-off-by: Oleksandr Tymoshenko --- MdePkg/Include/IndustryStandard/Acpi64.h | 34 ++++++++++++++++++++++++++++++++ MdePkg/Include/IndustryStandard/Acpi65.h | 34 ++++++++++++++++++++++++++++++++ MdePkg/Include/IndustryStandard/Acpi66.h | 34 ++++++++++++++++++++++++++++++++ MdePkg/MdePkg.ci.yaml | 3 ++- 4 files changed, 104 insertions(+), 1 deletion(-) diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h b/MdePkg/Include/IndustryStandard/Acpi64.h index 5ea20ba9a2..0b9c3febf9 100644 --- a/MdePkg/Include/IndustryStandard/Acpi64.h +++ b/MdePkg/Include/IndustryStandard/Acpi64.h @@ -2149,6 +2149,40 @@ typedef struct { #define EFI_ACPI_6_4_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO 0x01 #define EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO 0x02 +/// +/// HMAT Memory Proximity Domain Attributes Flags +/// +#define EFI_ACPI_6_4_HMAT_PROXIMITY_DOMAIN_INITIATOR_VALID 1 + +/// +/// HMAT System Locality Latency and Bandwidth Info Flags +/// +#define EFI_ACPI_6_4_HMAT_MEMORY_HIERARCHY_MEMORY 0 +#define EFI_ACPI_6_4_HMAT_MEMORY_HIERARCHY_L1_CACHE 1 +#define EFI_ACPI_6_4_HMAT_MEMORY_HIERARCHY_L2_CACHE 2 +#define EFI_ACPI_6_4_HMAT_MEMORY_HIERARCHY_L3_CACHE 3 + +#define EFI_ACPI_6_4_HMAT_ACCESS_ATTRIBUTES_MIN_TRANSFER_SIZE 0x10 +#define EFI_ACPI_6_4_HMAT_ACCESS_ATTRIBUTES_NON_SEQUENTIAL 0x20 + +/// +/// HMAT System Locality Latency and Bandwidth Info Data Type +/// +/// For Memory Hierarchy == 0 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_ACCESS_LATENCY 0 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_READ_LATENCY 1 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_WRITE_LATENCY 2 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_READ_BANDWIDTH 4 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_WRITE_BANDWIDTH 5 +/// For Memory Hierarchy == 1, 2, or 3 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_LATENCY 0 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_READ_LATENCY 1 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_LATENCY 2 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_READ_BANDWIDTH 4 +#define EFI_ACPI_6_4_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_BANDWIDTH 5 + /// /// HMAT Structure Header /// diff --git a/MdePkg/Include/IndustryStandard/Acpi65.h b/MdePkg/Include/IndustryStandard/Acpi65.h index fc43bdda81..1df92f9858 100644 --- a/MdePkg/Include/IndustryStandard/Acpi65.h +++ b/MdePkg/Include/IndustryStandard/Acpi65.h @@ -2288,6 +2288,40 @@ typedef struct { #define EFI_ACPI_6_5_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO 0x01 #define EFI_ACPI_6_5_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO 0x02 +/// +/// HMAT Memory Proximity Domain Attributes Flags +/// +#define EFI_ACPI_6_5_HMAT_PROXIMITY_DOMAIN_INITIATOR_VALID 1 + +/// +/// HMAT System Locality Latency and Bandwidth Info Flags +/// +#define EFI_ACPI_6_5_HMAT_MEMORY_HIERARCHY_MEMORY 0 +#define EFI_ACPI_6_5_HMAT_MEMORY_HIERARCHY_L1_CACHE 1 +#define EFI_ACPI_6_5_HMAT_MEMORY_HIERARCHY_L2_CACHE 2 +#define EFI_ACPI_6_5_HMAT_MEMORY_HIERARCHY_L3_CACHE 3 + +#define EFI_ACPI_6_5_HMAT_ACCESS_ATTRIBUTES_MIN_TRANSFER_SIZE 0x10 +#define EFI_ACPI_6_5_HMAT_ACCESS_ATTRIBUTES_NON_SEQUENTIAL 0x20 + +/// +/// HMAT System Locality Latency and Bandwidth Info Data Type +/// +/// For Memory Hierarchy == 0 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_ACCESS_LATENCY 0 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_READ_LATENCY 1 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_WRITE_LATENCY 2 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_READ_BANDWIDTH 4 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_WRITE_BANDWIDTH 5 +/// For Memory Hierarchy == 1, 2, or 3 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_LATENCY 0 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_READ_LATENCY 1 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_LATENCY 2 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_READ_BANDWIDTH 4 +#define EFI_ACPI_6_5_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_BANDWIDTH 5 + /// /// HMAT Structure Header /// diff --git a/MdePkg/Include/IndustryStandard/Acpi66.h b/MdePkg/Include/IndustryStandard/Acpi66.h index db63ba5fb6..4b734b9687 100644 --- a/MdePkg/Include/IndustryStandard/Acpi66.h +++ b/MdePkg/Include/IndustryStandard/Acpi66.h @@ -2390,6 +2390,40 @@ typedef struct { #define EFI_ACPI_6_6_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO 0x01 #define EFI_ACPI_6_6_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO 0x02 +/// +/// HMAT Memory Proximity Domain Attributes Flags +/// +#define EFI_ACPI_6_6_HMAT_PROXIMITY_DOMAIN_INITIATOR_VALID 1 + +/// +/// HMAT System Locality Latency and Bandwidth Info Flags +/// +#define EFI_ACPI_6_6_HMAT_MEMORY_HIERARCHY_MEMORY 0 +#define EFI_ACPI_6_6_HMAT_MEMORY_HIERARCHY_L1_CACHE 1 +#define EFI_ACPI_6_6_HMAT_MEMORY_HIERARCHY_L2_CACHE 2 +#define EFI_ACPI_6_6_HMAT_MEMORY_HIERARCHY_L3_CACHE 3 + +#define EFI_ACPI_6_6_HMAT_ACCESS_ATTRIBUTES_MIN_TRANSFER_SIZE 0x10 +#define EFI_ACPI_6_6_HMAT_ACCESS_ATTRIBUTES_NON_SEQUENTIAL 0x20 + +/// +/// HMAT System Locality Latency and Bandwidth Info Data Type +/// +/// For Memory Hierarchy == 0 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_ACCESS_LATENCY 0 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_READ_LATENCY 1 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_WRITE_LATENCY 2 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_READ_BANDWIDTH 4 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_WRITE_BANDWIDTH 5 +/// For Memory Hierarchy == 1, 2, or 3 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_LATENCY 0 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_READ_LATENCY 1 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_LATENCY 2 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_ACCESS_BANDWIDTH 3 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_READ_BANDWIDTH 4 +#define EFI_ACPI_6_6_HMAT_SSLBI_DATA_TYPE_HIT_WRITE_BANDWIDTH 5 + /// /// HMAT Structure Header /// diff --git a/MdePkg/MdePkg.ci.yaml b/MdePkg/MdePkg.ci.yaml index cd85c5d037..c686dcbdd9 100644 --- a/MdePkg/MdePkg.ci.yaml +++ b/MdePkg/MdePkg.ci.yaml @@ -219,7 +219,8 @@ "sigle", # SmBios.h "toleremce", # IpmiNetFnStorage.h "unownered", # TcgPhysicalPresence.h - "voilation" # PciExpress*.h + "voilation", # PciExpress*.h + "sslbi" # Acpi*.h ], "IgnoreStandardPaths": [], # Standard Plugin defined paths that should be ignore "AdditionalIncludePaths": [] # Additional paths to spell check (wildcards supported) -- cgit v1.2.3