From: Chris Jones Date: Wed, 8 Dec 2021 16:06:26 +0000 (+0000) Subject: ShellPkg: Update Acpiview PPTT parser to ACPI 6.4 X-Git-Tag: edk2-stable202202~161 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=a50b65ce22398422529d305740ec2cea859e8449 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 Reviewed-by: Zhichao Gao Reviewed-by: Sami Mujawar --- diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c index f47b92f8c5..7be249819e 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Pptt/PpttParser.c @@ -1,11 +1,11 @@ /** @file 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 @par Reference(s): - - ACPI 6.3 Specification - January 2019 + - ACPI 6.4 Specification - January 2021 - ARM Architecture Reference Manual ARMv8 (D.a) **/ @@ -161,8 +161,8 @@ ValidateCacheAttributes ( ) { // Reference: Advanced Configuration and Power Interface (ACPI) Specification - // Version 6.2 Errata A, September 2017 - // Table 5-153: Cache Type Structure + // Version 6.4, January 2021 + // Table 5-140: Cache Type Structure UINT8 Attributes; Attributes = *(UINT8 *)Ptr; @@ -227,22 +227,6 @@ STATIC CONST ACPI_PARSER CacheTypeStructureParser[] = { { 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). @@ -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. When trace is enabled this function parses the PPTT table and @@ -371,7 +332,6 @@ DumpIDStructure ( This function parses the following processor topology structures: - Processor hierarchy node structure (Type 0) - Cache Type Structure (Type 1) - - ID structure (Type 2) This function also performs validation of the ACPI table fields. @@ -451,22 +411,23 @@ ParseAcpiPptt ( Print (L"0x%x\n", Offset); switch (*ProcessorTopologyStructureType) { - case EFI_ACPI_6_2_PPTT_TYPE_PROCESSOR: + case EFI_ACPI_6_4_PPTT_TYPE_PROCESSOR: DumpProcessorHierarchyNodeStructure ( ProcessorTopologyStructurePtr, *ProcessorTopologyStructureLength ); break; - case EFI_ACPI_6_2_PPTT_TYPE_CACHE: + case EFI_ACPI_6_4_PPTT_TYPE_CACHE: DumpCacheTypeStructure ( ProcessorTopologyStructurePtr, *ProcessorTopologyStructureLength ); break; - case EFI_ACPI_6_2_PPTT_TYPE_ID: - DumpIDStructure ( - ProcessorTopologyStructurePtr, - *ProcessorTopologyStructureLength + case EFI_ACPI_6_3_PPTT_TYPE_ID: + IncrementErrorCount (); + Print ( + L"ERROR: PPTT Type 2 - Processor ID has been removed and must not be" + L"used.\n" ); break; default: diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c index 0ad7bf4c84..09bdddb56e 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c @@ -62,7 +62,7 @@ ACPI_TABLE_PARSER ParserList[] = { ParseAcpiMcfg }, { EFI_ACPI_6_4_PLATFORM_COMMUNICATIONS_CHANNEL_TABLE_SIGNATURE, ParseAcpiPcct }, - { EFI_ACPI_6_2_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE, + { EFI_ACPI_6_4_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE, ParseAcpiPptt }, { RSDP_TABLE_INFO, ParseAcpiRsdp }, { EFI_ACPI_6_2_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE, ParseAcpiSlit },