From: Chris Jones Date: Wed, 14 Jul 2021 11:45:12 +0000 (+0100) Subject: ShellPkg: Update Acpiview HMAT parser to ACPI spec version 6.4 X-Git-Tag: edk2-stable202202~412 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=30400318a278a9bc9b5543097341ab7aaa69774d ShellPkg: Update Acpiview HMAT parser to ACPI spec version 6.4 Add parser support for the new "MinTransferSize" field of the System Locality, Latency and Bandwidth structure, introduced by the ACPI specification version 6.4. Also update the HMAT parser to use the newer ACPI version 6.4 definitions. Signed-off-by: Chris Jones Reviewed-by: Zhichao Gao Reviewed-by: Sami Mujawar --- diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c index 1d1bc4bdc3..cf4432c654 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Hmat/HmatParser.c @@ -30,7 +30,7 @@ STATIC CONST UINT32* HmatStructureLength; STATIC CONST UINT32* NumberInitiatorProximityDomain; STATIC CONST UINT32* NumberTargetProximityDomain; STATIC CONST -EFI_ACPI_6_3_HMAT_STRUCTURE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO_FLAGS* +EFI_ACPI_6_4_HMAT_STRUCTURE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO_FLAGS* SllbiFlags; STATIC CONST UINT8* SllbiDataType; @@ -65,11 +65,11 @@ ValidateCacheAttributes ( IN VOID* Context ) { - EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES* + EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES* Attributes; Attributes = - (EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr; + (EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr; if (Attributes->TotalCacheLevels > 0x3) { IncrementErrorCount (); @@ -115,11 +115,11 @@ DumpCacheAttributes ( IN UINT8* Ptr ) { - EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES* + EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES* Attributes; Attributes = - (EFI_ACPI_6_3_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr; + (EFI_ACPI_6_4_HMAT_STRUCTURE_MEMORY_SIDE_CACHE_INFO_CACHE_ATTRIBUTES*)Ptr; Print (L"\n"); PrintFieldName (4, L"Total Cache Levels"); @@ -178,7 +178,8 @@ STATIC CONST ACPI_PARSER SllbiParser[] = { {L"Length", 4, 4, L"%d", NULL, NULL, NULL, NULL}, {L"Flags", 1, 8, L"0x%x", NULL, (VOID**)&SllbiFlags, NULL, NULL}, {L"Data type", 1, 9, L"0x%x", NULL, (VOID**)&SllbiDataType, NULL, NULL}, - {L"Reserved", 2, 10, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Min Transfer Size", 1, 10, L"%d", NULL, NULL, NULL, NULL}, + {L"Reserved", 1, 11, L"0x%x", NULL, NULL, NULL, NULL}, {L"Initiator Proximity Dom Count", 4, 12, L"%d", NULL, (VOID**)&NumberInitiatorProximityDomain, NULL, NULL}, {L"Target Proximity Dom Count", 4, 16, L"%d", NULL, @@ -615,19 +616,19 @@ ParseAcpiHmat ( } switch (*HmatStructureType) { - case EFI_ACPI_6_3_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES: + case EFI_ACPI_6_4_HMAT_TYPE_MEMORY_PROXIMITY_DOMAIN_ATTRIBUTES: DumpMpda ( HmatStructurePtr, *HmatStructureLength ); break; - case EFI_ACPI_6_3_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO: + case EFI_ACPI_6_4_HMAT_TYPE_SYSTEM_LOCALITY_LATENCY_AND_BANDWIDTH_INFO: DumpSllbi ( HmatStructurePtr, *HmatStructureLength ); break; - case EFI_ACPI_6_3_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO: + case EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO: DumpMsci ( HmatStructurePtr, *HmatStructureLength diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c index f274fd282b..d725cad14c 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c @@ -55,7 +55,7 @@ ACPI_TABLE_PARSER ParserList[] = { {EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs}, {EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt}, {EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiGtdt}, - {EFI_ACPI_6_3_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE, ParseAcpiHmat}, + {EFI_ACPI_6_4_HETEROGENEOUS_MEMORY_ATTRIBUTE_TABLE_SIGNATURE, ParseAcpiHmat}, {EFI_ACPI_6_2_IO_REMAPPING_TABLE_SIGNATURE, ParseAcpiIort}, {EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiMadt}, {EFI_ACPI_6_2_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,