diff options
author | Sami Mujawar <sami.mujawar@arm.com> | 2024-03-11 14:00:01 +0000 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2024-07-29 13:44:55 +0000 |
commit | ff249c62e30c3629273f5c4fb77da783f9a5b9a1 (patch) | |
tree | 0aea64b50a9391d1d83b8c7020c796fcfac5724b | |
parent | afa7f8a6b17996ec13e4ce9867e5ac41d17aa262 (diff) | |
download | edk2-ff249c62e30c3629273f5c4fb77da783f9a5b9a1.tar.gz edk2-ff249c62e30c3629273f5c4fb77da783f9a5b9a1.tar.bz2 edk2-ff249c62e30c3629273f5c4fb77da783f9a5b9a1.zip |
DynamicTablesPkg: Move Continuous perf control info to Arch Common
Move the Continuous perfformance control info object from Arm
Namespace to the Arch Common namespace.
Correspondingly also update the following modules to reflect the
changes introduced by the move:
- SSDT CPU topology 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>
6 files changed, 74 insertions, 75 deletions
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h index 17cd552a3f..63b24de2f2 100644 --- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h @@ -38,6 +38,7 @@ typedef enum ArchCommonObjectID { EArchCommonObjLpiInfo, ///< 15 - Lpi Info
EArchCommonObjProcHierarchyInfo, ///< 16 - Processor Hierarchy Info
EArchCommonObjCacheInfo, ///< 17 - Cache Info
+ EArchCommonObjCpcInfo, ///< 18 - Continuous Performance Control Info
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@@ -432,6 +433,24 @@ typedef struct CmArchCommonCacheInfo { UINT32 CacheId;
} CM_ARCH_COMMON_CACHE_INFO;
+/** A structure that describes the Cpc information.
+
+ Continuous Performance Control is described in DSDT/SSDT and associated
+ to cpus/clusters in the cpu topology.
+
+ Unsupported Optional registers should be encoded with NULL resource
+ Register {(SystemMemory, 0, 0, 0, 0)}
+
+ For values that support Integer or Buffer, integer will be used
+ if buffer is NULL resource.
+ If resource is not NULL then Integer must be 0
+
+ Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
+
+ ID: EArchCommonObjCpcInfo
+*/
+typedef AML_CPC_INFO CM_ARCH_COMMON_CPC_INFO;
+
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h index eade2afcd0..b9d1202be3 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -51,15 +51,14 @@ typedef enum ArmObjectID { EArmObjCmn600Info, ///< 20 - CMN-600 Info
EArmObjRmr, ///< 21 - Reserved Memory Range Node
EArmObjMemoryRangeDescriptor, ///< 22 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 23 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 24 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 25 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 26 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 27 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 28 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 29 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 30 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 31 - P-State Dependency (PSD) Info
+ EArmObjPccSubspaceType0Info, ///< 23 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 24 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 25 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 26 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 27 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 28 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 29 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 30 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -177,7 +176,7 @@ typedef struct CmArmGicCInfo { UINT32 AffinityFlags;
/** Optional field: Reference Token for the Cpc info of this processor.
- i.e. a token referencing a CM_ARM_CPC_INFO object.
+ i.e. a token referencing a CM_ARCH_COMMON_CPC_INFO object.
*/
CM_OBJECT_TOKEN CpcToken;
@@ -715,24 +714,6 @@ typedef struct CmArmRmrDescriptor { UINT64 Length;
} CM_ARM_MEMORY_RANGE_DESCRIPTOR;
-/** A structure that describes the Cpc information.
-
- Continuous Performance Control is described in DSDT/SSDT and associated
- to cpus/clusters in the cpu topology.
-
- Unsupported Optional registers should be encoded with NULL resource
- Register {(SystemMemory, 0, 0, 0, 0)}
-
- For values that support Integer or Buffer, integer will be used
- if buffer is NULL resource.
- If resource is not NULL then Integer must be 0
-
- Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
-
- ID: EArmObjCpcInfo
-*/
-typedef AML_CPC_INFO CM_ARM_CPC_INFO;
-
/** A structure that describes a
PCC Mailbox Register.
*/
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c index d7caca5a3a..8c9d1258b2 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c @@ -89,9 +89,9 @@ GET_OBJECT_LIST ( information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjCpcInfo,
- CM_ARM_CPC_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjCpcInfo,
+ CM_ARCH_COMMON_CPC_INFO
);
/**
@@ -400,10 +400,10 @@ CreateAmlCpcNode ( IN AML_OBJECT_NODE_HANDLE *Node
)
{
- EFI_STATUS Status;
- CM_ARM_CPC_INFO *CpcInfo;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_CPC_INFO *CpcInfo;
- Status = GetEArmObjCpcInfo (
+ Status = GetEArchCommonObjCpcInfo (
CfgMgrProtocol,
GicCInfo->CpcToken,
&CpcInfo,
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c index a162d614f9..68db478c57 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c @@ -166,15 +166,14 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = { NULL, ///< 20 - CMN-600 Info
NULL, ///< 21 - Reserved Memory Range Node
NULL, ///< 22 - Memory Range Descriptor
- NULL, ///< 23 - Continuous Performance Control Info
- NULL, ///< 24 - Pcc Subspace Type 0 Info
+ NULL, ///< 23 - Pcc Subspace Type 0 Info
+ NULL, ///< 24 - Pcc Subspace Type 2 Info
NULL, ///< 25 - Pcc Subspace Type 2 Info
- NULL, ///< 26 - Pcc Subspace Type 2 Info
- NULL, ///< 27 - Pcc Subspace Type 3 Info
- NULL, ///< 28 - Pcc Subspace Type 4 Info
- NULL, ///< 29 - Pcc Subspace Type 5 Info
- NULL, ///< 30 - Embedded Trace Extension/Module Info
- NULL ///< 31 - P-State Dependency (PSD) Info
+ NULL, ///< 26 - Pcc Subspace Type 3 Info
+ NULL, ///< 27 - Pcc Subspace Type 4 Info
+ NULL, ///< 28 - Pcc Subspace Type 5 Info
+ NULL, ///< 29 - Embedded Trace Extension/Module Info
+ NULL ///< 30 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index 5440f9993b..54ecc66c5b 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c @@ -479,9 +479,9 @@ STATIC CONST CM_OBJ_PARSER CmArmMemoryRangeDescriptorInfoParser[] = { { "Length", 8, "0x%llx", NULL },
};
-/** A parser for EArmObjCpcInfo.
+/** A parser for EArchCommonObjCpcInfo.
*/
-STATIC CONST CM_OBJ_PARSER CmArmCpcInfoParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonCpcInfoParser[] = {
{ "Revision", 4, "0x%lx", NULL },
{ "HighestPerformanceBuffer", sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE),
NULL, NULL, AcpiGenericAddressParser,
@@ -688,6 +688,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = { CM_PARSER_ADD_OBJECT (EArchCommonObjLpiInfo, CmArchCommonLpiInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjProcHierarchyInfo, CmArchCommonProcHierarchyInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjCacheInfo, CmArchCommonCacheInfoParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjCpcInfo, CmArchCommonCpcInfoParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -717,7 +718,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 (EArmObjCpcInfo, CmArmCpcInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType0Info, CmArmPccSubspaceType0InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType1Info, CmArmPccSubspaceType1InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType2Info, CmArmPccSubspaceType2InfoParser),
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md index 7865731841..8ac9d126b8 100644 --- a/DynamicTablesPkg/Readme.md +++ b/DynamicTablesPkg/Readme.md @@ -463,38 +463,38 @@ 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 | Continuous Performance Control Info | Move to Arch Common NS |
-| 24 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 25 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 26 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 27 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 28 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 29 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 30 | Embedded Trace Extension/Module Info | |
-| 31 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 23 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 24 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 25 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 26 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 27 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 28 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 29 | Embedded Trace Extension/Module Info | |
+| 30 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
-| ID | Description | Comments |
-| ---: | :-------------------------- | :--- |
-| 0 | Reserved | |
-| 1 | Power Management Profile Info | |
-| 2 | Serial Port Info | |
-| 3 | Serial Console Port Info | |
-| 4 | Serial Debug Port Info | |
-| 5 | Hypervisor Vendor Id | |
-| 6 | Fixed feature flags for FADT | |
-| 7 | CM Object Reference | |
-| 8 | PCI Configuration Space Info | |
-| 9 | PCI Address Map Info | |
-| 10 | PCI Interrupt Map Info | |
-| 11 | Memory Affinity Info | |
-| 12 | Device Handle Acpi | |
-| 13 | Device Handle PCI | |
-| 14 | Generic Initiator Affinity Info | |
-| 15 | Low Power Idle State Info | |
-| 16 | Processor Hierarchy Info | |
-| 17 | Cache Info | |
-| `*` | All other values are reserved. | |
+| ID | Description | Comments |
+| ---: | :-------------------------- | :--- |
+| 0 | Reserved | |
+| 1 | Power Management Profile Info | |
+| 2 | Serial Port Info | |
+| 3 | Serial Console Port Info | |
+| 4 | Serial Debug Port Info | |
+| 5 | Hypervisor Vendor Id | |
+| 6 | Fixed feature flags for FADT | |
+| 7 | CM Object Reference | |
+| 8 | PCI Configuration Space Info | |
+| 9 | PCI Address Map Info | |
+| 10 | PCI Interrupt Map Info | |
+| 11 | Memory Affinity Info | |
+| 12 | Device Handle Acpi | |
+| 13 | Device Handle PCI | |
+| 14 | Generic Initiator Affinity Info | |
+| 15 | Low Power Idle State Info | |
+| 16 | Processor Hierarchy Info | |
+| 17 | Cache Info | |
+| 18 | Continuous Performance Control Info | |
+| `*` | All other values are reserved. | |
|