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 <christopher.jones@arm.com> Reviewed-by: Zhichao Gao <zhcihao.gao@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
committed by
mergify[bot]
parent
5ece2ad36c
commit
30400318a2
@ -30,7 +30,7 @@ STATIC CONST UINT32* HmatStructureLength;
|
|||||||
STATIC CONST UINT32* NumberInitiatorProximityDomain;
|
STATIC CONST UINT32* NumberInitiatorProximityDomain;
|
||||||
STATIC CONST UINT32* NumberTargetProximityDomain;
|
STATIC CONST UINT32* NumberTargetProximityDomain;
|
||||||
STATIC CONST
|
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;
|
SllbiFlags;
|
||||||
|
|
||||||
STATIC CONST UINT8* SllbiDataType;
|
STATIC CONST UINT8* SllbiDataType;
|
||||||
@ -65,11 +65,11 @@ ValidateCacheAttributes (
|
|||||||
IN VOID* Context
|
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;
|
||||||
|
|
||||||
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) {
|
if (Attributes->TotalCacheLevels > 0x3) {
|
||||||
IncrementErrorCount ();
|
IncrementErrorCount ();
|
||||||
@ -115,11 +115,11 @@ DumpCacheAttributes (
|
|||||||
IN UINT8* Ptr
|
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;
|
||||||
|
|
||||||
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");
|
Print (L"\n");
|
||||||
PrintFieldName (4, L"Total Cache Levels");
|
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"Length", 4, 4, L"%d", NULL, NULL, NULL, NULL},
|
||||||
{L"Flags", 1, 8, L"0x%x", NULL, (VOID**)&SllbiFlags, 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"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,
|
{L"Initiator Proximity Dom Count", 4, 12, L"%d", NULL,
|
||||||
(VOID**)&NumberInitiatorProximityDomain, NULL, NULL},
|
(VOID**)&NumberInitiatorProximityDomain, NULL, NULL},
|
||||||
{L"Target Proximity Dom Count", 4, 16, L"%d", NULL,
|
{L"Target Proximity Dom Count", 4, 16, L"%d", NULL,
|
||||||
@ -615,19 +616,19 @@ ParseAcpiHmat (
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (*HmatStructureType) {
|
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 (
|
DumpMpda (
|
||||||
HmatStructurePtr,
|
HmatStructurePtr,
|
||||||
*HmatStructureLength
|
*HmatStructureLength
|
||||||
);
|
);
|
||||||
break;
|
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 (
|
DumpSllbi (
|
||||||
HmatStructurePtr,
|
HmatStructurePtr,
|
||||||
*HmatStructureLength
|
*HmatStructureLength
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EFI_ACPI_6_3_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO:
|
case EFI_ACPI_6_4_HMAT_TYPE_MEMORY_SIDE_CACHE_INFO:
|
||||||
DumpMsci (
|
DumpMsci (
|
||||||
HmatStructurePtr,
|
HmatStructurePtr,
|
||||||
*HmatStructureLength
|
*HmatStructureLength
|
||||||
|
@ -55,7 +55,7 @@ ACPI_TABLE_PARSER ParserList[] = {
|
|||||||
{EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs},
|
{EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE, ParseAcpiFacs},
|
||||||
{EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt},
|
{EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiFadt},
|
||||||
{EFI_ACPI_6_4_GENERIC_TIMER_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiGtdt},
|
{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_IO_REMAPPING_TABLE_SIGNATURE, ParseAcpiIort},
|
||||||
{EFI_ACPI_6_2_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE, ParseAcpiMadt},
|
{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,
|
{EFI_ACPI_6_2_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
|
||||||
|
Reference in New Issue
Block a user