DynamicTablesPkg: Move PCC Type1 info to Arch Common

Move the PCC Subspace Type1 info object from Arm Namespace to
the Arch Common namespace.

Correspondingly also update the following modules to reflect the
changes introduced by the move:
 - PCCT generator
 - ConfigurationManagerObjectParser
 - Dynamic Plat Repo TokenFixer map.

Cc: Pierre Gondois <Pierre.Gondois@arm.com>
Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>
Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com>
Cc: Jeshua Smith <jeshuas@nvidia.com>
Cc: Jeff Brasen <jbrasen@nvidia.com>
Cc: Girish Mahadevan <gmahadevan@nvidia.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
This commit is contained in:
Sami Mujawar 2024-03-11 15:20:39 +00:00 committed by mergify[bot]
parent db4496d30a
commit 870cf728ef
6 changed files with 48 additions and 49 deletions

View File

@ -40,6 +40,7 @@ typedef enum ArchCommonObjectID {
EArchCommonObjCacheInfo, ///< 17 - Cache Info
EArchCommonObjCpcInfo, ///< 18 - Continuous Performance Control Info
EArchCommonObjPccSubspaceType0Info, ///< 19 - Pcc Subspace Type 0 Info
EArchCommonObjPccSubspaceType1Info, ///< 20 - Pcc Subspace Type 1 Info
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@ -531,6 +532,23 @@ typedef struct PccSubspaceGenericInfo {
*/
typedef PCC_SUBSPACE_GENERIC_INFO CM_ARCH_COMMON_PCC_SUBSPACE_TYPE0_INFO;
/** A structure that describes a
PCC Subspace of type 1 (HW-Reduced).
ID: EArchCommonObjPccSubspaceType1Info
*/
typedef struct CmArchCommonPccSubspaceType1Info {
/** Generic Pcc information.
The Subspace of Type0 contains information that can be re-used
in other Subspace types.
*/
PCC_SUBSPACE_GENERIC_INFO GenericPccInfo;
/// Platform Interrupt.
CM_ARCH_COMMON_GENERIC_INTERRUPT PlatIrq;
} CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO;
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_

View File

@ -51,13 +51,12 @@ typedef enum ArmObjectID {
EArmObjCmn600Info, ///< 20 - CMN-600 Info
EArmObjRmr, ///< 21 - Reserved Memory Range Node
EArmObjMemoryRangeDescriptor, ///< 22 - Memory Range Descriptor
EArmObjPccSubspaceType1Info, ///< 23 - Pcc Subspace Type 2 Info
EArmObjPccSubspaceType2Info, ///< 24 - Pcc Subspace Type 2 Info
EArmObjPccSubspaceType3Info, ///< 25 - Pcc Subspace Type 3 Info
EArmObjPccSubspaceType4Info, ///< 26 - Pcc Subspace Type 4 Info
EArmObjPccSubspaceType5Info, ///< 27 - Pcc Subspace Type 5 Info
EArmObjEtInfo, ///< 28 - Embedded Trace Extension/Module Info
EArmObjPsdInfo, ///< 29 - P-State Dependency (PSD) Info
EArmObjPccSubspaceType2Info, ///< 23 - Pcc Subspace Type 2 Info
EArmObjPccSubspaceType3Info, ///< 24 - Pcc Subspace Type 3 Info
EArmObjPccSubspaceType4Info, ///< 25 - Pcc Subspace Type 4 Info
EArmObjPccSubspaceType5Info, ///< 26 - Pcc Subspace Type 5 Info
EArmObjEtInfo, ///< 27 - Embedded Trace Extension/Module Info
EArmObjPsdInfo, ///< 28 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@ -713,23 +712,6 @@ typedef struct CmArmRmrDescriptor {
UINT64 Length;
} CM_ARM_MEMORY_RANGE_DESCRIPTOR;
/** A structure that describes a
PCC Subspace of type 1 (HW-Reduced).
ID: EArmObjPccSubspaceType1Info
*/
typedef struct CmArmPccSubspaceType1Info {
/** Generic Pcc information.
The Subspace of Type0 contains information that can be re-used
in other Subspace types.
*/
PCC_SUBSPACE_GENERIC_INFO GenericPccInfo;
/// Platform Interrupt.
CM_ARCH_COMMON_GENERIC_INTERRUPT PlatIrq;
} CM_ARM_PCC_SUBSPACE_TYPE1_INFO;
/** A structure that describes a
PCC Subspace of type 2 (HW-Reduced).

View File

@ -30,7 +30,7 @@ Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- EArchCommonObjPccSubspaceType0Info
- EArmObjPccSubspaceType1Info
- EArchCommonObjPccSubspaceType1Info
- EArmObjPccSubspaceType2Info
- EArmObjPccSubspaceType3Info
- EArmObjPccSubspaceType4Info
@ -50,9 +50,9 @@ GET_OBJECT_LIST (
Subspace of Type 1 Information from the Configuration Manager.
*/
GET_OBJECT_LIST (
EObjNameSpaceArm,
EArmObjPccSubspaceType1Info,
CM_ARM_PCC_SUBSPACE_TYPE1_INFO
EObjNameSpaceArchCommon,
EArchCommonObjPccSubspaceType1Info,
CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO
);
/** This macro expands to a function that retrieves the PCC
@ -248,7 +248,7 @@ MapPccSubspaceId (
break;
case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS:
CmObjSize = sizeof (CM_ARM_PCC_SUBSPACE_TYPE1_INFO);
CmObjSize = sizeof (CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO);
break;
case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_2_HW_REDUCED_COMMUNICATIONS:
@ -358,7 +358,7 @@ STATIC
EFI_STATUS
EFIAPI
AddSubspaceStructType1 (
IN CM_ARM_PCC_SUBSPACE_TYPE1_INFO *PccCmObj,
IN CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO *PccCmObj,
IN EFI_ACPI_6_4_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS *PccAcpi
)
{
@ -716,7 +716,7 @@ PopulatePcctTable (
case EFI_ACPI_6_4_PCCT_SUBSPACE_TYPE_1_HW_REDUCED_COMMUNICATIONS:
Status = AddSubspaceStructType1 (
(CM_ARM_PCC_SUBSPACE_TYPE1_INFO *)CurrentPccSubspace,
(CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO *)CurrentPccSubspace,
(EFI_ACPI_6_4_PCCT_SUBSPACE_1_HW_REDUCED_COMMUNICATIONS *)PccBuffer
);
@ -826,7 +826,7 @@ BuildPcctTable (
CM_ARCH_COMMON_PCC_SUBSPACE_TYPE0_INFO *PccType0;
UINT32 PccType0Count;
CM_ARM_PCC_SUBSPACE_TYPE1_INFO *PccType1;
CM_ARCH_COMMON_PCC_SUBSPACE_TYPE1_INFO *PccType1;
UINT32 PccType1Count;
CM_ARM_PCC_SUBSPACE_TYPE2_INFO *PccType2;
UINT32 PccType2Count;
@ -876,7 +876,7 @@ BuildPcctTable (
goto error_handler;
}
Status = GetEArmObjPccSubspaceType1Info (
Status = GetEArchCommonObjPccSubspaceType1Info (
CfgMgrProtocol,
CM_NULL_TOKEN,
&PccType1,

View File

@ -167,12 +167,11 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 21 - Reserved Memory Range Node
NULL, ///< 22 - Memory Range Descriptor
NULL, ///< 23 - Pcc Subspace Type 2 Info
NULL, ///< 24 - Pcc Subspace Type 2 Info
NULL, ///< 25 - Pcc Subspace Type 3 Info
NULL, ///< 26 - Pcc Subspace Type 4 Info
NULL, ///< 27 - Pcc Subspace Type 5 Info
NULL, ///< 28 - Embedded Trace Extension/Module Info
NULL ///< 29 - P-State Dependency (PSD) Info
NULL, ///< 24 - Pcc Subspace Type 3 Info
NULL, ///< 25 - Pcc Subspace Type 4 Info
NULL, ///< 26 - Pcc Subspace Type 5 Info
NULL, ///< 27 - Embedded Trace Extension/Module Info
NULL ///< 28 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.

View File

@ -589,9 +589,9 @@ STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType0InfoParser[] = {
ARRAY_SIZE (CmArmPccSubspaceChannelTimingInfoParser) },
};
/** A parser for EArmObjPccSubspaceType1Info.
/** A parser for EArchCommonObjPccSubspaceType1Info.
*/
STATIC CONST CM_OBJ_PARSER CmArmPccSubspaceType1InfoParser[] = {
STATIC CONST CM_OBJ_PARSER CmArchCommonPccSubspaceType1InfoParser[] = {
{ "GenericPccInfo", sizeof (PCC_SUBSPACE_GENERIC_INFO),
NULL, NULL, CmArchCommonPccSubspaceType0InfoParser,
ARRAY_SIZE (CmArchCommonPccSubspaceType0InfoParser) },
@ -690,6 +690,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjCacheInfo, CmArchCommonCacheInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjCpcInfo, CmArchCommonCpcInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType0Info, CmArchCommonPccSubspaceType0InfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjPccSubspaceType1Info, CmArchCommonPccSubspaceType1InfoParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@ -719,7 +720,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjRmr, CmArmRmrInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjMemoryRangeDescriptor, CmArmMemoryRangeDescriptorInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType1Info, CmArmPccSubspaceType1InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType2Info, CmArmPccSubspaceType2InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType3Info, CmArmPccSubspaceType34InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType4Info, CmArmPccSubspaceType34InfoParser),

View File

@ -463,13 +463,12 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 20 | CMN 600 Info | |
| 21 | Reserved Memory Range Node | |
| 22 | Memory Range Descriptor | |
| 23 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
| 24 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
| 25 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
| 26 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
| 27 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
| 28 | Embedded Trace Extension/Module Info | |
| 29 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| 23 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
| 24 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
| 25 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
| 26 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
| 27 | Embedded Trace Extension/Module Info | |
| 28 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@ -496,5 +495,6 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 17 | Cache Info | |
| 18 | Continuous Performance Control Info | |
| 19 | Pcc Subspace Type 0 Info | |
| 20 | Pcc Subspace Type 1 Info | |
| `*` | All other values are reserved. | |