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:
Chris Jones
2021-12-08 16:06:26 +00:00
committed by mergify[bot]
parent 0077c22f6d
commit a50b65ce22
2 changed files with 12 additions and 51 deletions

View File

@ -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:

View File

@ -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 },