/** @file\r
PCCT table parser\r
\r
- Copyright (c) 2020, Arm Limited.\r
+ Copyright (c) 2021, Arm Limited.\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@par Reference(s):\r
- - ACPI 6.3 Specification - January 2019\r
+ - ACPI 6.4 Specification - January 2021\r
**/\r
\r
#include <Library/BaseMemoryLib.h>\r
{\r
switch (*(UINT8*)Ptr) {\r
#if !(defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64))\r
- case EFI_ACPI_6_3_SYSTEM_IO:\r
+ case EFI_ACPI_6_4_SYSTEM_IO:\r
#endif //if not (defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64))\r
- case EFI_ACPI_6_3_SYSTEM_MEMORY:\r
+ case EFI_ACPI_6_4_SYSTEM_MEMORY:\r
return;\r
default:\r
IncrementErrorCount ();\r
{\r
switch (*(UINT8*)Ptr) {\r
#if !(defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64))\r
- case EFI_ACPI_6_3_SYSTEM_IO:\r
+ case EFI_ACPI_6_4_SYSTEM_IO:\r
#endif //if not (defined (MDE_CPU_ARM) || defined (MDE_CPU_AARCH64))\r
- case EFI_ACPI_6_3_FUNCTIONAL_FIXED_HARDWARE:\r
- case EFI_ACPI_6_3_SYSTEM_MEMORY:\r
+ case EFI_ACPI_6_4_FUNCTIONAL_FIXED_HARDWARE:\r
+ case EFI_ACPI_6_4_SYSTEM_MEMORY:\r
return;\r
default:\r
IncrementErrorCount ();\r
{\r
// For slave subspaces this field is optional, if not present the field\r
// should just contain zeros.\r
- if (*PccSubspaceType == EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) {\r
+ if (*PccSubspaceType == EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) {\r
if (IsZeroBuffer (\r
Ptr,\r
- sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE)\r
+ sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE)\r
)) {\r
return;\r
}\r
// edge driven the register may be omitted. A value of 0x0 on all\r
// 12 bytes of the GAS structure indicates the register is not\r
// present.\r
- if (((*PccGlobalFlags & EFI_ACPI_6_3_PCCT_FLAGS_PLATFORM_INTERRUPT) !=\r
- EFI_ACPI_6_3_PCCT_FLAGS_PLATFORM_INTERRUPT) ||\r
+ if (((*PccGlobalFlags & EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT) !=\r
+ EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT) ||\r
((*ExtendedPccSubspaceInterruptFlags &\r
- EFI_ACPI_6_3_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE) ==\r
- EFI_ACPI_6_3_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE)) {\r
+ EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE) ==\r
+ EFI_ACPI_6_4_PCCT_SUBSPACE_PLATFORM_INTERRUPT_FLAGS_MODE)) {\r
if (IsZeroBuffer (\r
Ptr,\r
- sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE)\r
+ sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE)\r
)) {\r
return;\r
}\r
)\r
{\r
// This field is ignored by the OSPM on slave channels.\r
- if (*PccSubspaceType == EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) {\r
+ if (*PccSubspaceType == EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) {\r
return;\r
}\r
\r
{\r
// If a slave subspace is present in the PCCT, then the global Platform\r
// Interrupt flag must be set to 1.\r
- if ((*PccSubspaceType == EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) &&\r
- ((*PccGlobalFlags & EFI_ACPI_6_3_PCCT_FLAGS_PLATFORM_INTERRUPT) !=\r
- EFI_ACPI_6_3_PCCT_FLAGS_PLATFORM_INTERRUPT)) {\r
+ if ((*PccSubspaceType == EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC) &&\r
+ ((*PccGlobalFlags & EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT) !=\r
+ EFI_ACPI_6_4_PCCT_FLAGS_PLATFORM_INTERRUPT)) {\r
IncrementErrorCount ();\r
Print (\r
L"\nError: Global Platform interrupt flag must be set to 1" \\r
}\r
\r
switch (*PccSubspaceType) {\r
- case EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_GENERIC:\r
+ case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_GENERIC:\r
DumpPccSubspaceType0 (\r
PccSubspacePtr,\r
*PccSubspaceLength\r
);\r
break;\r
- case EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS:\r
+ case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS:\r
DumpPccSubspaceType1 (\r
PccSubspacePtr,\r
*PccSubspaceLength\r
);\r
break;\r
- case EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS:\r
+ case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS:\r
DumpPccSubspaceType2 (\r
PccSubspacePtr,\r
*PccSubspaceLength\r
);\r
break;\r
- case EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_3_EXTENDED_PCC:\r
+ case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_3_EXTENDED_PCC:\r
DumpPccSubspaceType3 (\r
PccSubspacePtr,\r
*PccSubspaceLength\r
);\r
break;\r
- case EFI_ACPI_6_3_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC:\r
+ case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_4_EXTENDED_PCC:\r
DumpPccSubspaceType4 (\r
PccSubspacePtr,\r
*PccSubspaceLength\r