ShellPkg: Update Acpiview PPTT parser to ACPI 6.4
Bugzilla: 3697 (https://bugzilla.tianocore.org/show_bug.cgi?id=3697) Update the Acpiview PPTT parser to use Acpi64.h. As part of the changes, remove support for parsing PPTT type 2 ID structure. Mantis ID for removing PPTT type 2 structure: 2072 (https://mantis.uefi.org/mantis/view.php?id=2072) Signed-off-by: Chris Jones <christopher.jones@arm.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
committed by
mergify[bot]
parent
0077c22f6d
commit
a50b65ce22
@ -1,11 +1,11 @@
|
|||||||
/** @file
|
/** @file
|
||||||
PPTT table parser
|
PPTT table parser
|
||||||
|
|
||||||
Copyright (c) 2019 - 2020, ARM Limited. All rights reserved.
|
Copyright (c) 2019 - 2021, ARM Limited. All rights reserved.
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
@par Reference(s):
|
@par Reference(s):
|
||||||
- ACPI 6.3 Specification - January 2019
|
- ACPI 6.4 Specification - January 2021
|
||||||
- ARM Architecture Reference Manual ARMv8 (D.a)
|
- ARM Architecture Reference Manual ARMv8 (D.a)
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@ -161,8 +161,8 @@ ValidateCacheAttributes (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
// Reference: Advanced Configuration and Power Interface (ACPI) Specification
|
// Reference: Advanced Configuration and Power Interface (ACPI) Specification
|
||||||
// Version 6.2 Errata A, September 2017
|
// Version 6.4, January 2021
|
||||||
// Table 5-153: Cache Type Structure
|
// Table 5-140: Cache Type Structure
|
||||||
UINT8 Attributes;
|
UINT8 Attributes;
|
||||||
|
|
||||||
Attributes = *(UINT8 *)Ptr;
|
Attributes = *(UINT8 *)Ptr;
|
||||||
@ -227,22 +227,6 @@ STATIC CONST ACPI_PARSER CacheTypeStructureParser[] = {
|
|||||||
{ L"Line size", 2, 22, L"%d", NULL, NULL, ValidateCacheLineSize, NULL }
|
{ L"Line size", 2, 22, L"%d", NULL, NULL, ValidateCacheLineSize, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
An ACPI_PARSER array describing the ID Type Structure - Type 2.
|
|
||||||
**/
|
|
||||||
STATIC CONST ACPI_PARSER IdStructureParser[] = {
|
|
||||||
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
|
|
||||||
{ L"VENDOR_ID", 4, 4, NULL, Dump4Chars, NULL, NULL, NULL },
|
|
||||||
{ L"LEVEL_1_ID", 8, 8, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"LEVEL_2_ID", 8, 16, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"MAJOR_REV", 2, 24, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"MINOR_REV", 2, 26, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
{ L"SPIN_REV", 2, 28, L"0x%x", NULL, NULL, NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function parses the Processor Hierarchy Node Structure (Type 0).
|
This function parses the Processor Hierarchy Node Structure (Type 0).
|
||||||
|
|
||||||
@ -340,29 +324,6 @@ DumpCacheTypeStructure (
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
This function parses the ID Structure (Type 2).
|
|
||||||
|
|
||||||
@param [in] Ptr Pointer to the start of the ID Structure data.
|
|
||||||
@param [in] Length Length of the ID Structure.
|
|
||||||
**/
|
|
||||||
STATIC
|
|
||||||
VOID
|
|
||||||
DumpIDStructure (
|
|
||||||
IN UINT8 *Ptr,
|
|
||||||
IN UINT8 Length
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ParseAcpi (
|
|
||||||
TRUE,
|
|
||||||
2,
|
|
||||||
"ID Structure",
|
|
||||||
Ptr,
|
|
||||||
Length,
|
|
||||||
PARSER_PARAMS (IdStructureParser)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This function parses the ACPI PPTT table.
|
This function parses the ACPI PPTT table.
|
||||||
When trace is enabled this function parses the PPTT table and
|
When trace is enabled this function parses the PPTT table and
|
||||||
@ -371,7 +332,6 @@ DumpIDStructure (
|
|||||||
This function parses the following processor topology structures:
|
This function parses the following processor topology structures:
|
||||||
- Processor hierarchy node structure (Type 0)
|
- Processor hierarchy node structure (Type 0)
|
||||||
- Cache Type Structure (Type 1)
|
- Cache Type Structure (Type 1)
|
||||||
- ID structure (Type 2)
|
|
||||||
|
|
||||||
This function also performs validation of the ACPI table fields.
|
This function also performs validation of the ACPI table fields.
|
||||||
|
|
||||||
@ -451,22 +411,23 @@ ParseAcpiPptt (
|
|||||||
Print (L"0x%x\n", Offset);
|
Print (L"0x%x\n", Offset);
|
||||||
|
|
||||||
switch (*ProcessorTopologyStructureType) {
|
switch (*ProcessorTopologyStructureType) {
|
||||||
case EFI_ACPI_6_2_PPTT_TYPE_PROCESSOR:
|
case EFI_ACPI_6_4_PPTT_TYPE_PROCESSOR:
|
||||||
DumpProcessorHierarchyNodeStructure (
|
DumpProcessorHierarchyNodeStructure (
|
||||||
ProcessorTopologyStructurePtr,
|
ProcessorTopologyStructurePtr,
|
||||||
*ProcessorTopologyStructureLength
|
*ProcessorTopologyStructureLength
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EFI_ACPI_6_2_PPTT_TYPE_CACHE:
|
case EFI_ACPI_6_4_PPTT_TYPE_CACHE:
|
||||||
DumpCacheTypeStructure (
|
DumpCacheTypeStructure (
|
||||||
ProcessorTopologyStructurePtr,
|
ProcessorTopologyStructurePtr,
|
||||||
*ProcessorTopologyStructureLength
|
*ProcessorTopologyStructureLength
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EFI_ACPI_6_2_PPTT_TYPE_ID:
|
case EFI_ACPI_6_3_PPTT_TYPE_ID:
|
||||||
DumpIDStructure (
|
IncrementErrorCount ();
|
||||||
ProcessorTopologyStructurePtr,
|
Print (
|
||||||
*ProcessorTopologyStructureLength
|
L"ERROR: PPTT Type 2 - Processor ID has been removed and must not be"
|
||||||
|
L"used.\n"
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -62,7 +62,7 @@ ACPI_TABLE_PARSER ParserList[] = {
|
|||||||
ParseAcpiMcfg },
|
ParseAcpiMcfg },
|
||||||
{ EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE,
|
{ EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE,
|
||||||
ParseAcpiPcct },
|
ParseAcpiPcct },
|
||||||
{ EFI_ACPI_6_2_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE,
|
{ EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE,
|
||||||
ParseAcpiPptt },
|
ParseAcpiPptt },
|
||||||
{ RSDP_TABLE_INFO, ParseAcpiRsdp },
|
{ RSDP_TABLE_INFO, ParseAcpiRsdp },
|
||||||
{ EFI_ACPI_6_2_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE, ParseAcpiSlit },
|
{ EFI_ACPI_6_2_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE, ParseAcpiSlit },
|
||||||
|
Reference in New Issue
Block a user