* [edk2-devel] [PATCH 01/16] DynamicTablesPkg/SsdtCpuTopology: Update function's parameter description
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 02/16] DynamicTablesPkg: Replace ProcNodeIdInfo with EArmObjReserved29 PierreGondois
` (15 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
The parameters of CreateAmlProcessorContainer() were not
updated in:
commit 5fb3f5723a1e ("DynamicTablesPkg: Allow for specified CPU names")
This causes the EccCheck CI test to fail. Fix this.
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: Pierre Gondois <pierre.gondois@arm.com>
---
.../Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
index 9e3efb49e630..cc6400e9e0df 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
@@ -980,7 +980,8 @@ CreateAmlCpuFromProcHierarchy (
container node to.
@param [in] ProcHierarchyNodeInfo CM_ARM_PROC_HIERARCHY_INFO object used
to create the node.
- @param [in] ProcContainerIndex Index used to generate the node name.
+ @param [in] ProcContainerName Name of the processor container.
+ @param [in] ProcContainerUid Uid of the processor container.
@param [out] ProcContainerNodePtr If success, contains the created processor
container node.
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116962): https://edk2.groups.io/g/devel/message/116962
Mute This Topic: https://groups.io/mt/105067965/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 02/16] DynamicTablesPkg: Replace ProcNodeIdInfo with EArmObjReserved29
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 01/16] DynamicTablesPkg/SsdtCpuTopology: Update function's parameter description PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 03/16] DynamicTablesPkg: Introduce ObjectId to validate CmObject Parser Array PierreGondois
` (14 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
The CM_ARM_PROC_NODE_ID_INFO was dropped by the patch at
"b2bbe3df5470 DynamicTablesPkg: Remove PPTT ID structure
from ACPI 6.4 generator" and the EArmObjProcNodeIdInfo was
made EArmObjReserved29.
Since ProcNodeIdInfo is no longer used drop the CM object
parser code from EArmObjProcNodeIdInfo and specify a null
entry for EArmObjReserved29.
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>
---
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 2 +-
.../ConfigurationManagerObjectParser.c | 15 +--------------
2 files changed, 2 insertions(+), 15 deletions(-)
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 345acab53f74..9a6ab2a274aa 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -172,7 +172,7 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 26 - SMMU Interrupt Array
TokenFixerNotImplemented, ///< 27 - Processor Hierarchy Info
TokenFixerNotImplemented, ///< 28 - Cache Info
- TokenFixerNotImplemented, ///< 29 - Processor Node ID Info
+ TokenFixerNotImplemented, ///< 29 - Reserved
NULL, ///< 30 - CM Object Reference
NULL, ///< 31 - Memory Affinity Info
NULL, ///< 32 - Device Handle Acpi
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index 69b6eba23cf4..f96b05b1c0b9 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -350,18 +350,6 @@ STATIC CONST CM_OBJ_PARSER CmArmCacheInfoParser[] = {
{ "CacheId", 4, "0x%x", NULL },
};
-/** A parser for EArmObjProcNodeIdInfo.
-*/
-STATIC CONST CM_OBJ_PARSER CmArmProcNodeIdInfoParser[] = {
- { "Token", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
- { "VendorId", 4, "0x%p", NULL },
- { "Level1Id", 8, "0x%x", NULL },
- { "Level2Id", 8, "0x%x", NULL },
- { "MajorRev", 2, "0x%x", NULL },
- { "MinorRev", 2, "0x%x", NULL },
- { "SpinRev", 2, "0x%x", NULL }
-};
-
/** A parser for EArmObjCmRef.
*/
STATIC CONST CM_OBJ_PARSER CmArmObjRefParser[] = {
@@ -735,8 +723,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
ARRAY_SIZE (CmArmProcHierarchyInfoParser) },
{ "EArmObjCacheInfo", CmArmCacheInfoParser,
ARRAY_SIZE (CmArmCacheInfoParser) },
- { "EArmObjProcNodeIdInfo", CmArmProcNodeIdInfoParser,
- ARRAY_SIZE (CmArmProcNodeIdInfoParser) },
+ { "EArmObjReserved29", NULL, 0 },
{ "EArmObjCmRef", CmArmObjRefParser, ARRAY_SIZE (CmArmObjRefParser) },
{ "EArmObjMemoryAffinityInfo", CmArmMemoryAffinityInfoParser,
ARRAY_SIZE (CmArmMemoryAffinityInfoParser) },
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116963): https://edk2.groups.io/g/devel/message/116963
Mute This Topic: https://groups.io/mt/105067967/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 03/16] DynamicTablesPkg: Introduce ObjectId to validate CmObject Parser Array
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 01/16] DynamicTablesPkg/SsdtCpuTopology: Update function's parameter description PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 02/16] DynamicTablesPkg: Replace ProcNodeIdInfo with EArmObjReserved29 PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 04/16] DynamicTablesPkg: Introduce an Arch Common Namespace header file PierreGondois
` (13 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Add ObjectId to CM_OBJ_PARSER_ARRAY so that the code can validate
the entries in the Cm object parser array. Also introduce helper
macros to populate the Cm Object Parser Arrays.
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>
---
.../ConfigurationManagerObjectParser.c | 165 +++++++-----------
.../ConfigurationManagerObjectParser.h | 15 ++
2 files changed, 75 insertions(+), 105 deletions(-)
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index f96b05b1c0b9..68d6c57acfc0 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -670,103 +670,58 @@ STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = {
/** A parser for Arm namespace objects.
*/
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
- { "EArmObjReserved", NULL, 0 },
- { "EArmObjBootArchInfo", CmArmBootArchInfoParser,
- ARRAY_SIZE (CmArmBootArchInfoParser) },
- { "EArmObjCpuInfo", NULL, 0 },
- { "EArmObjPowerManagementProfileInfo", CmArmPowerManagementProfileInfoParser,
- ARRAY_SIZE (CmArmPowerManagementProfileInfoParser) },
- { "EArmObjGicCInfo", CmArmGicCInfoParser, ARRAY_SIZE (CmArmGicCInfoParser) },
- { "EArmObjGicDInfo", CmArmGicDInfoParser, ARRAY_SIZE (CmArmGicDInfoParser) },
- { "EArmObjGicMsiFrameInfo", CmArmGicMsiFrameInfoParser,
- ARRAY_SIZE (CmArmGicMsiFrameInfoParser) },
- { "EArmObjGicRedistributorInfo", CmArmGicRedistInfoParser,
- ARRAY_SIZE (CmArmGicRedistInfoParser) },
- { "EArmObjGicItsInfo", CmArmGicItsInfoParser,
- ARRAY_SIZE (CmArmGicItsInfoParser) },
- { "EArmObjSerialConsolePortInfo", CmArmSerialPortInfoParser,
- ARRAY_SIZE (CmArmSerialPortInfoParser) },
- { "EArmObjSerialDebugPortInfo", CmArmSerialPortInfoParser,
- ARRAY_SIZE (CmArmSerialPortInfoParser) },
- { "EArmObjGenericTimerInfo", CmArmGenericTimerInfoParser,
- ARRAY_SIZE (CmArmGenericTimerInfoParser) },
- { "EArmObjPlatformGTBlockInfo", CmArmGTBlockInfoParser,
- ARRAY_SIZE (CmArmGTBlockInfoParser) },
- { "EArmObjGTBlockTimerFrameInfo", CmArmGTBlockTimerFrameInfoParser,
- ARRAY_SIZE (CmArmGTBlockTimerFrameInfoParser) },
- { "EArmObjPlatformGenericWatchdogInfo", CmArmGenericWatchdogInfoParser,
- ARRAY_SIZE (CmArmGenericWatchdogInfoParser) },
- { "EArmObjPciConfigSpaceInfo", CmArmPciConfigSpaceInfoParser,
- ARRAY_SIZE (CmArmPciConfigSpaceInfoParser) },
- { "EArmObjHypervisorVendorIdentity", CmArmHypervisorVendorIdParser,
- ARRAY_SIZE (CmArmHypervisorVendorIdParser) },
- { "EArmObjFixedFeatureFlags", CmArmFixedFeatureFlagsParser,
- ARRAY_SIZE (CmArmFixedFeatureFlagsParser) },
- { "EArmObjItsGroup", CmArmItsGroupNodeParser,
- ARRAY_SIZE (CmArmItsGroupNodeParser) },
- { "EArmObjNamedComponent", CmArmNamedComponentNodeParser,
- ARRAY_SIZE (CmArmNamedComponentNodeParser) },
- { "EArmObjRootComplex", CmArmRootComplexNodeParser,
- ARRAY_SIZE (CmArmRootComplexNodeParser) },
- { "EArmObjSmmuV1SmmuV2", CmArmSmmuV1SmmuV2NodeParser,
- ARRAY_SIZE (CmArmSmmuV1SmmuV2NodeParser) },
- { "EArmObjSmmuV3", CmArmSmmuV3NodeParser,
- ARRAY_SIZE (CmArmSmmuV3NodeParser) },
- { "EArmObjPmcg", CmArmPmcgNodeParser, ARRAY_SIZE (CmArmPmcgNodeParser) },
- { "EArmObjGicItsIdentifierArray", CmArmGicItsIdentifierParser,
- ARRAY_SIZE (CmArmGicItsIdentifierParser) },
- { "EArmObjIdMappingArray", CmArmIdMappingParser,
- ARRAY_SIZE (CmArmIdMappingParser) },
- { "EArmObjSmmuInterruptArray", CmArmGenericInterruptParser,
- ARRAY_SIZE (CmArmGenericInterruptParser) },
- { "EArmObjProcHierarchyInfo", CmArmProcHierarchyInfoParser,
- ARRAY_SIZE (CmArmProcHierarchyInfoParser) },
- { "EArmObjCacheInfo", CmArmCacheInfoParser,
- ARRAY_SIZE (CmArmCacheInfoParser) },
- { "EArmObjReserved29", NULL, 0 },
- { "EArmObjCmRef", CmArmObjRefParser, ARRAY_SIZE (CmArmObjRefParser) },
- { "EArmObjMemoryAffinityInfo", CmArmMemoryAffinityInfoParser,
- ARRAY_SIZE (CmArmMemoryAffinityInfoParser) },
- { "EArmObjDeviceHandleAcpi", CmArmDeviceHandleAcpiParser,
- ARRAY_SIZE (CmArmDeviceHandleAcpiParser) },
- { "EArmObjDeviceHandlePci", CmArmDeviceHandlePciParser,
- ARRAY_SIZE (CmArmDeviceHandlePciParser) },
- { "EArmObjGenericInitiatorAffinityInfo",
- CmArmGenericInitiatorAffinityInfoParser,
- ARRAY_SIZE (CmArmGenericInitiatorAffinityInfoParser) },
- { "EArmObjSerialPortInfo", CmArmSerialPortInfoParser,
- ARRAY_SIZE (CmArmSerialPortInfoParser) },
- { "EArmObjCmn600Info", CmArmCmn600InfoParser,
- ARRAY_SIZE (CmArmCmn600InfoParser) },
- { "EArmObjLpiInfo", CmArmLpiInfoParser,
- ARRAY_SIZE (CmArmLpiInfoParser) },
- { "EArmObjPciAddressMapInfo", CmArmPciAddressMapInfoParser,
- ARRAY_SIZE (CmArmPciAddressMapInfoParser) },
- { "EArmObjPciInterruptMapInfo", CmPciInterruptMapInfoParser,
- ARRAY_SIZE (CmPciInterruptMapInfoParser) },
- { "EArmObjRmr", CmArmRmrInfoParser,
- ARRAY_SIZE (CmArmRmrInfoParser) },
- { "EArmObjMemoryRangeDescriptor", CmArmMemoryRangeDescriptorInfoParser,
- ARRAY_SIZE (CmArmMemoryRangeDescriptorInfoParser) },
- { "EArmObjCpcInfo", CmArmCpcInfoParser,
- ARRAY_SIZE (CmArmCpcInfoParser) },
- { "EArmObjPccSubspaceType0Info", CmArmPccSubspaceType0InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
- { "EArmObjPccSubspaceType1Info", CmArmPccSubspaceType1InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType1InfoParser) },
- { "EArmObjPccSubspaceType2Info", CmArmPccSubspaceType2InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType2InfoParser) },
- { "EArmObjPccSubspaceType3Info", CmArmPccSubspaceType34InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) },
- { "EArmObjPccSubspaceType4Info", CmArmPccSubspaceType34InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) },
- { "EArmObjPccSubspaceType5Info", CmArmPccSubspaceType5InfoParser,
- ARRAY_SIZE (CmArmPccSubspaceType5InfoParser) },
- { "EArmObjEtInfo", CmArmEtInfo,
- ARRAY_SIZE (CmArmEtInfo) },
- { "EArmObjPsdInfo", CmArmPsdInfoParser,
- ARRAY_SIZE (CmArmPsdInfoParser) },
- { "EArmObjMax", NULL, 0 },
+ CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved),
+ CM_PARSER_ADD_OBJECT (EArmObjBootArchInfo, CmArmBootArchInfoParser),
+ CM_PARSER_ADD_OBJECT_RESERVED (EArmObjCpuInfo),
+ CM_PARSER_ADD_OBJECT (EArmObjPowerManagementProfileInfo, CmArmPowerManagementProfileInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicCInfo, CmArmGicCInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicDInfo, CmArmGicDInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSerialConsolePortInfo, CmArmSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSerialDebugPortInfo, CmArmSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo, CmArmGenericWatchdogInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPciConfigSpaceInfo, CmArmPciConfigSpaceInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjHypervisorVendorIdentity, CmArmHypervisorVendorIdParser),
+ CM_PARSER_ADD_OBJECT (EArmObjFixedFeatureFlags, CmArmFixedFeatureFlagsParser),
+ CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjRootComplex, CmArmRootComplexNodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSmmuV1SmmuV2, CmArmSmmuV1SmmuV2NodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSmmuV3, CmArmSmmuV3NodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPmcg, CmArmPmcgNodeParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGicItsIdentifierArray, CmArmGicItsIdentifierParser),
+ CM_PARSER_ADD_OBJECT (EArmObjIdMappingArray, CmArmIdMappingParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArmGenericInterruptParser),
+ CM_PARSER_ADD_OBJECT (EArmObjProcHierarchyInfo, CmArmProcHierarchyInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjCacheInfo, CmArmCacheInfoParser),
+ CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved29),
+ CM_PARSER_ADD_OBJECT (EArmObjCmRef, CmArmObjRefParser),
+ CM_PARSER_ADD_OBJECT (EArmObjMemoryAffinityInfo, CmArmMemoryAffinityInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser),
+ CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
+ CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjSerialPortInfo, CmArmSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPciAddressMapInfo, CmArmPciAddressMapInfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPciInterruptMapInfo, CmPciInterruptMapInfoParser),
+ 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),
+ CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType3Info, CmArmPccSubspaceType34InfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType4Info, CmArmPccSubspaceType34InfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjPccSubspaceType5Info, CmArmPccSubspaceType5InfoParser),
+ CM_PARSER_ADD_OBJECT (EArmObjEtInfo, CmArmEtInfo),
+ CM_PARSER_ADD_OBJECT (EArmObjPsdInfo, CmArmPsdInfoParser),
+ CM_PARSER_ADD_OBJECT_RESERVED (EArmObjMax)
};
/** A parser for EStdObjCfgMgrInfo.
@@ -798,13 +753,10 @@ STATIC CONST CM_OBJ_PARSER StdObjSmbiosTableInfoParser[] = {
/** A parser for Standard namespace objects.
*/
STATIC CONST CM_OBJ_PARSER_ARRAY StdNamespaceObjectParser[] = {
- { "EStdObjCfgMgrInfo", StdObjCfgMgrInfoParser,
- ARRAY_SIZE (StdObjCfgMgrInfoParser) },
- { "EStdObjAcpiTableList", StdObjAcpiTableInfoParser,
- ARRAY_SIZE (StdObjAcpiTableInfoParser) },
- { "EStdObjSmbiosTableList", StdObjSmbiosTableInfoParser,
- ARRAY_SIZE (StdObjSmbiosTableInfoParser) },
- { "EStdObjMax", NULL, 0}
+ CM_PARSER_ADD_OBJECT (EStdObjCfgMgrInfo, StdObjCfgMgrInfoParser),
+ CM_PARSER_ADD_OBJECT (EStdObjAcpiTableList, StdObjAcpiTableInfoParser),
+ CM_PARSER_ADD_OBJECT (EStdObjSmbiosTableList, StdObjSmbiosTableInfoParser),
+ CM_PARSER_ADD_OBJECT_RESERVED (EStdObjMax)
};
/** Print string data.
@@ -975,7 +927,7 @@ PrintCmObjDesc (
*RemainingSize -= Parser[Index].Length;
if (*RemainingSize < 0) {
DEBUG ((
- DEBUG_INFO,
+ DEBUG_ERROR,
"\nERROR: %a: Buffer overrun\n",
Parser[Index].NameStr
));
@@ -1118,6 +1070,9 @@ ParseCmObjDesc (
ObjIndex + 1,
ObjectCount
));
+
+ ASSERT (ObjId == ParserArray->ObjectId);
+
if (ParserArray->Parser == NULL) {
DEBUG ((DEBUG_ERROR, "Parser not implemented\n"));
RemainingSize = 0;
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.h b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.h
index 3204f5314340..d996d05a55dd 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.h
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.h
@@ -11,6 +11,18 @@
#define OUTPUT_FIELD_COLUMN_WIDTH 32
+/** A helper macro for populating the Reserved objects
+ like EArmObjReserved, EArmObjMax, etc. in the CM_OBJ_PARSER_ARRAY.
+**/
+#define CM_PARSER_ADD_OBJECT_RESERVED(ObjectId) \
+ {ObjectId, #ObjectId, NULL, 0}
+
+/** A helper macro for populating the Cm Arm objects
+ in the CM_OBJ_PARSER_ARRAY.
+**/
+#define CM_PARSER_ADD_OBJECT(ObjectId, Parser) \
+ {ObjectId, #ObjectId, Parser, ARRAY_SIZE(Parser) }
+
/** Function prototype to format a field print.
@param [in] Format Format string for tracing the data as specified by
@@ -58,6 +70,9 @@ struct CmObjParser {
with their object names.
*/
typedef struct CmObjParserArray {
+ /// Object ID
+ CONST UINTN ObjectId;
+
/// Object name
CONST CHAR8 *ObjectName;
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116964): https://edk2.groups.io/g/devel/message/116964
Mute This Topic: https://groups.io/mt/105067968/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 04/16] DynamicTablesPkg: Introduce an Arch Common Namespace header file
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (2 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 03/16] DynamicTablesPkg: Introduce ObjectId to validate CmObject Parser Array PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 05/16] DynamicTablesPkg: Add support for ArchCommon objects in CmObjParser PierreGondois
` (12 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Introduce a new header file for defining the Arch Common Namespace
objects. Also include it in the Configuration Manager Object header
file so that the required definitions are propagated.
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>
---
DynamicTablesPkg/DynamicTablesPkg.ci.yaml | 1 +
.../Include/ArchCommonNameSpaceObjects.h | 27 +++++++++++++++++++
.../Include/ConfigurationManagerObject.h | 1 +
3 files changed, 29 insertions(+)
create mode 100644 DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
diff --git a/DynamicTablesPkg/DynamicTablesPkg.ci.yaml b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
index 42829f393e69..07768ed648ea 100644
--- a/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
+++ b/DynamicTablesPkg/DynamicTablesPkg.ci.yaml
@@ -104,6 +104,7 @@
"CCIDX",
"CCSIDR",
"countof",
+ "EArch",
"edynamic",
"EOBJECT",
"invoc",
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
new file mode 100644
index 000000000000..e4205d6ba6bc
--- /dev/null
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -0,0 +1,27 @@
+/** @file
+
+ Copyright (c) 2024, Arm Limited. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+ @par Glossary:
+ - Cm or CM - Configuration Manager
+ - Obj or OBJ - Object
+ - Std or STD - Standard
+**/
+
+#ifndef ARCH_COMMON_NAMESPACE_OBJECTS_H_
+#define ARCH_COMMON_NAMESPACE_OBJECTS_H_
+
+#include <AcpiObjects.h>
+#include <StandardNameSpaceObjects.h>
+
+/** The EARCH_COMMON_OBJECT_ID enum describes the Object IDs
+ in the Arch Common Namespace
+*/
+typedef enum ArchCommonObjectID {
+ EArchCommonObjReserved, ///< 0 - Reserved
+ EArchCommonObjMax
+} EARCH_COMMON_OBJECT_ID;
+
+#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ConfigurationManagerObject.h b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
index 4255c82b42ae..04b365f3d0b7 100644
--- a/DynamicTablesPkg/Include/ConfigurationManagerObject.h
+++ b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
@@ -12,6 +12,7 @@
#ifndef CONFIGURATION_MANAGER_OBJECT_H_
#define CONFIGURATION_MANAGER_OBJECT_H_
+#include <ArchCommonNameSpaceObjects.h>
#include <ArmNameSpaceObjects.h>
#include <StandardNameSpaceObjects.h>
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116965): https://edk2.groups.io/g/devel/message/116965
Mute This Topic: https://groups.io/mt/105067970/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 05/16] DynamicTablesPkg: Add support for ArchCommon objects in CmObjParser
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (3 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 04/16] DynamicTablesPkg: Introduce an Arch Common Namespace header file PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 06/16] DynamicTablesPkg: TokenFixer: Return Non Arm NS objs as unsupported PierreGondois
` (11 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Update the Cm Object Parser to support parsing of Arch Common
namespace objects.
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>
---
.../ConfigurationManagerObjectParser.c | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index 68d6c57acfc0..6f5dbdfd2d86 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -667,6 +667,13 @@ STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = {
{ "NumProc", 4, "0x%x", NULL },
};
+/** A parser for Arch Common namespace objects.
+*/
+STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
+ CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved),
+ CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
+};
+
/** A parser for Arm namespace objects.
*/
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
@@ -1050,6 +1057,21 @@ ParseCmObjDesc (
ParserArray = &ArmNamespaceObjectParser[ObjId];
break;
+
+ case EObjNameSpaceArchCommon:
+ if (ObjId >= EArchCommonObjMax) {
+ ASSERT (0);
+ return;
+ }
+
+ if (ObjId >= ARRAY_SIZE (ArchCommonNamespaceObjectParser)) {
+ DEBUG ((DEBUG_ERROR, "ObjId 0x%x is missing from the ArchCommonNamespaceObjectParser array\n", ObjId));
+ ASSERT (0);
+ return;
+ }
+
+ ParserArray = &ArchCommonNamespaceObjectParser[ObjId];
+ break;
default:
// Not supported
DEBUG ((DEBUG_ERROR, "NameSpaceId 0x%x, ObjId 0x%x is not supported by the parser\n", NameSpaceId, ObjId));
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116966): https://edk2.groups.io/g/devel/message/116966
Mute This Topic: https://groups.io/mt/105067971/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 06/16] DynamicTablesPkg: TokenFixer: Return Non Arm NS objs as unsupported
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (4 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 05/16] DynamicTablesPkg: Add support for ArchCommon objects in CmObjParser PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 07/16] DynamicTablesPkg: Update DynamicPlatRepo for Arch Common namespace PierreGondois
` (10 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Update the Token Fixer to return objects other than Arm Namespace
objects as unsupported.
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>
---
.../Common/DynamicPlatRepoLib/CmObjectTokenFixer.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 9a6ab2a274aa..bbbb81ea31b0 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -209,12 +209,15 @@ FixupCmObjectSelfToken (
CM_OBJECT_TOKEN_FIXER TokenFixerFunc;
CM_OBJECT_ID ArmNamespaceObjId;
+ if (CmObjDesc == NULL) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
// Only support Arm objects for now.
- if ((CmObjDesc == NULL) ||
- (GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId) != EObjNameSpaceArm))
- {
+ if (GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId) != EObjNameSpaceArm) {
ASSERT (0);
- return EFI_INVALID_PARAMETER;
+ return EFI_UNSUPPORTED;
}
ArmNamespaceObjId = GET_CM_OBJECT_ID (CmObjDesc->ObjectId);
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116967): https://edk2.groups.io/g/devel/message/116967
Mute This Topic: https://groups.io/mt/105067972/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 07/16] DynamicTablesPkg: Update DynamicPlatRepo for Arch Common namespace
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (5 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 06/16] DynamicTablesPkg: TokenFixer: Return Non Arm NS objs as unsupported PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 08/16] DynamicTablesPkg: Update documentation for CM_OBJECT_ID PierreGondois
` (9 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Update DynamicPlatRepo to reflect the introduction of the Arch
Common namespace. Also, update the TokenFixer map to reflect the
current state of the ArmNamespace Objects and add a note in the
documentation header for the EARM_OBJECT_ID enum, that the Token
fixer map needs updating whenever the ArmObjectId space is updated.
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>
---
.../Include/ArmNameSpaceObjects.h | 6 +
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 11 +
.../DynamicPlatRepoLib/DynamicPlatRepo.c | 287 +++++++++++++-----
.../DynamicPlatRepoInternal.h | 11 +-
4 files changed, 240 insertions(+), 75 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 4a419a8fcd95..853d722b8c79 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -20,6 +20,12 @@
/** The EARM_OBJECT_ID enum describes the Object IDs
in the ARM Namespace
+
+ Note: Whenever an entry in this enum is updated,
+ the following data structures must also be
+ updated:
+ - CM_OBJECT_TOKEN_FIXER TokenFixer[] in
+ Library\Common\DynamicPlatRepoLib\CmObjectTokenFixer.c
*/
typedef enum ArmObjectID {
EArmObjReserved, ///< 0 - Reserved
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index bbbb81ea31b0..df9452efe5bb 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -183,6 +183,17 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 37 - Lpi Info
NULL, ///< 38 - Pci Address Map Info
NULL, ///< 39 - Pci Interrupt Map Info
+ NULL, ///< 40 - Reserved Memory Range Node
+ NULL, ///< 41 - Memory Range Descriptor
+ NULL, ///< 42 - Continuous Performance Control Info
+ NULL, ///< 43 - Pcc Subspace Type 0 Info
+ NULL, ///< 44 - Pcc Subspace Type 2 Info
+ NULL, ///< 45 - Pcc Subspace Type 2 Info
+ NULL, ///< 46 - Pcc Subspace Type 3 Info
+ NULL, ///< 47 - Pcc Subspace Type 4 Info
+ NULL, ///< 48 - Pcc Subspace Type 5 Info
+ NULL, ///< 49 - Embedded Trace Extension/Module Info
+ NULL ///< 50 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
index bdeb5c78aeb3..e4fa1233708e 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
@@ -127,10 +127,12 @@ DynPlatRepoAddObject (
OUT CM_OBJECT_TOKEN *Token OPTIONAL
)
{
- EFI_STATUS Status;
- CM_OBJ_NODE *ObjNode;
- CM_OBJECT_ID ArmNamespaceObjId;
- CM_OBJECT_TOKEN NewToken;
+ EFI_STATUS Status;
+ CM_OBJ_NODE *ObjNode;
+ CM_OBJECT_ID ObjId;
+ CM_OBJECT_TOKEN NewToken;
+ LIST_ENTRY *ObjList;
+ EOBJECT_NAMESPACE_ID NamespaceId;
// The dynamic repository must be able to receive objects.
if ((This == NULL) ||
@@ -142,15 +144,33 @@ DynPlatRepoAddObject (
}
// Check the CmObjDesc:
- // - only Arm objects are supported for now.
+ // - only Arm objects and Arch Common objects are supported for now.
// - only EArmObjCmRef objects can be added as arrays.
- ArmNamespaceObjId = GET_CM_OBJECT_ID (CmObjDesc->ObjectId);
- if ((CmObjDesc->Size == 0) ||
- (CmObjDesc->Count == 0) ||
- (ArmNamespaceObjId >= EArmObjMax) ||
- ((CmObjDesc->Count > 1) && (ArmNamespaceObjId != EArmObjCmRef)) ||
- (GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId) != EObjNameSpaceArm))
- {
+ if ((CmObjDesc->Size == 0) || (CmObjDesc->Count == 0)) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ ObjId = GET_CM_OBJECT_ID (CmObjDesc->ObjectId);
+ NamespaceId = GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId);
+
+ if (EObjNameSpaceArm == NamespaceId) {
+ if ((ObjId >= EArmObjMax) ||
+ ((CmObjDesc->Count > 1) && (ObjId != EArmObjCmRef)))
+ {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ ObjList = &This->ArmCmObjList[ObjId];
+ } else if (EObjNameSpaceArchCommon == NamespaceId) {
+ if (ObjId >= EArchCommonObjMax) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ ObjList = &This->ArchCommonCmObjList[ObjId];
+ } else {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
@@ -166,15 +186,17 @@ DynPlatRepoAddObject (
}
// Fixup self-token if necessary.
- Status = FixupCmObjectSelfToken (&ObjNode->CmObjDesc, NewToken);
- if (EFI_ERROR (Status)) {
- FreeCmObjNode (ObjNode);
- ASSERT (0);
- return Status;
+ if (EObjNameSpaceArm == NamespaceId) {
+ Status = FixupCmObjectSelfToken (&ObjNode->CmObjDesc, NewToken);
+ if (EFI_ERROR (Status)) {
+ FreeCmObjNode (ObjNode);
+ ASSERT (0);
+ return Status;
+ }
}
// Add to link list.
- InsertTailList (&This->ArmCmObjList[ArmNamespaceObjId], &ObjNode->Link);
+ InsertTailList (ObjList, &ObjNode->Link);
This->ObjectCount += 1;
if (Token != NULL) {
@@ -184,11 +206,14 @@ DynPlatRepoAddObject (
return EFI_SUCCESS;
}
-/** Group lists of CmObjNode from the ArmNameSpace to one array.
+/** Group lists of CmObjNode from the Arm Namespace or ArchCommon namespace
+ to one array.
@param [in] This This dynamic platform repository.
- @param [in] ArmObjIndex Index in EARM_OBJECT_ID
- (must be < EArmObjMax).
+ @param [in] NamespaceId The namespace ID which can be EObjNameSpaceArm or
+ EObjNameSpaceArchCommon.
+ @param [in] ObjIndex Index in EARM_OBJECT_ID (must be < EArmObjMax) or
+ EARCH_COMMON_OBJECT_ID (must be <EArchCommonObjMax).
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER A parameter is invalid.
@@ -200,7 +225,8 @@ EFI_STATUS
EFIAPI
GroupCmObjNodes (
IN DYNAMIC_PLATFORM_REPOSITORY_INFO *This,
- IN UINT32 ArmObjIndex
+ IN EOBJECT_NAMESPACE_ID NamespaceId,
+ IN UINT32 ObjIndex
)
{
EFI_STATUS Status;
@@ -212,19 +238,38 @@ GroupCmObjNodes (
CM_OBJ_DESCRIPTOR *CmObjDesc;
LIST_ENTRY *ListHead;
LIST_ENTRY *Link;
+ CM_OBJ_DESCRIPTOR *ObjArray;
- if ((This == NULL) ||
- (ArmObjIndex >= EArmObjMax))
- {
+ if (This == NULL) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
- Count = 0;
- Size = 0;
- CmObjId = CREATE_CM_ARM_OBJECT_ID (ArmObjIndex);
- ListHead = &This->ArmCmObjList[ArmObjIndex];
- Link = GetFirstNode (ListHead);
+ if (NamespaceId == EObjNameSpaceArm) {
+ if (ObjIndex >= EArmObjMax) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ ListHead = &This->ArmCmObjList[ObjIndex];
+ ObjArray = &This->ArmCmObjArray[ObjIndex];
+ } else if (NamespaceId == EObjNameSpaceArchCommon) {
+ if (ObjIndex >= EArchCommonObjMax) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ ListHead = &This->ArchCommonCmObjList[ObjIndex];
+ ObjArray = &This->ArchCommonCmObjArray[ObjIndex];
+ } else {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Count = 0;
+ Size = 0;
+ CmObjId = CREATE_CM_OBJECT_ID (NamespaceId, ObjIndex);
+ Link = GetFirstNode (ListHead);
// Compute the total count and size of the CmObj in the list.
while (Link != ListHead) {
@@ -235,7 +280,10 @@ GroupCmObjNodes (
return EFI_INVALID_PARAMETER;
}
- if ((CmObjDesc->Count != 1) && (ArmObjIndex != EArmObjCmRef)) {
+ if ((CmObjDesc->Count != 1) &&
+ ((NamespaceId != EObjNameSpaceArm) ||
+ (ObjIndex != EArmObjCmRef)))
+ {
// We expect each descriptor to contain an individual object.
// EArmObjCmRef objects are counted as groups, so +1 as well.
ASSERT (0);
@@ -286,7 +334,7 @@ GroupCmObjNodes (
Link = GetNextNode (ListHead, Link);
} // while
- CmObjDesc = &This->ArmCmObjArray[ArmObjIndex];
+ CmObjDesc = ObjArray;
CmObjDesc->ObjectId = CmObjId;
CmObjDesc->Size = (UINT32)Size;
CmObjDesc->Count = (UINT32)Count;
@@ -317,7 +365,7 @@ DynamicPlatRepoFinalise (
)
{
EFI_STATUS Status;
- UINTN ArmObjIndex;
+ UINTN ObjIndex;
if ((This == NULL) ||
(This->RepoState != DynRepoTransient))
@@ -340,18 +388,29 @@ DynamicPlatRepoFinalise (
// - Convert the list of nodes to an array
// (the array is wrapped in a CmObjDesc).
// - Add the Token/CmObj binding to the token mapper.
- for (ArmObjIndex = 0; ArmObjIndex < EArmObjMax; ArmObjIndex++) {
- Status = GroupCmObjNodes (This, (UINT32)ArmObjIndex);
+ for (ObjIndex = 0; ObjIndex < EArmObjMax; ObjIndex++) {
+ Status = GroupCmObjNodes (This, EObjNameSpaceArm, (UINT32)ObjIndex);
if (EFI_ERROR (Status)) {
ASSERT (0);
- // Free the TokenMapper.
- // Ignore the returned Status since we already failed.
- TokenMapperShutdown (&This->TokenMapper);
- return Status;
+ goto error_handler;
+ }
+ } // for
+
+ for (ObjIndex = 0; ObjIndex < EArchCommonObjMax; ObjIndex++) {
+ Status = GroupCmObjNodes (This, EObjNameSpaceArchCommon, (UINT32)ObjIndex);
+ if (EFI_ERROR (Status)) {
+ ASSERT (0);
+ goto error_handler;
}
} // for
return EFI_SUCCESS;
+
+error_handler:
+ // Free the TokenMapper.
+ // Ignore the returned Status since we already failed.
+ TokenMapperShutdown (&This->TokenMapper);
+ return Status;
}
/** Get a CmObj from the dynamic repository.
@@ -376,9 +435,10 @@ DynamicPlatRepoGetObject (
IN OUT CM_OBJ_DESCRIPTOR *CmObjDesc
)
{
- EFI_STATUS Status;
- CM_OBJ_DESCRIPTOR *Desc;
- CM_OBJECT_ID ArmNamespaceObjId;
+ EFI_STATUS Status;
+ CM_OBJ_DESCRIPTOR *Desc;
+ CM_OBJECT_ID ObjId;
+ EOBJECT_NAMESPACE_ID NamespaceId;
if ((This == NULL) ||
(CmObjDesc == NULL) ||
@@ -388,8 +448,28 @@ DynamicPlatRepoGetObject (
return EFI_INVALID_PARAMETER;
}
- ArmNamespaceObjId = GET_CM_OBJECT_ID (CmObjectId);
- if (ArmNamespaceObjId >= EArmObjMax) {
+ NamespaceId = GET_CM_NAMESPACE_ID (CmObjectId);
+ ObjId = GET_CM_OBJECT_ID (CmObjectId);
+
+ if (NamespaceId == EObjNameSpaceArm) {
+ if ((ObjId >= EArmObjMax) ||
+ ((ObjId == EArmObjCmRef) &&
+ (Token == CM_NULL_TOKEN)))
+ {
+ // EArmObjCmRef object must be requested using a valid token.
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Desc = &This->ArmCmObjArray[ObjId];
+ } else if (NamespaceId == EObjNameSpaceArchCommon) {
+ if (ObjId >= EArchCommonObjMax) {
+ ASSERT (0);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Desc = &This->ArchCommonCmObjArray[ObjId];
+ } else {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
@@ -406,14 +486,6 @@ DynamicPlatRepoGetObject (
return Status;
}
- if (ArmNamespaceObjId == EArmObjCmRef) {
- // EArmObjCmRef object must be requested using a valid token.
- ASSERT (0);
- return EFI_INVALID_PARAMETER;
- }
-
- Desc = &This->ArmCmObjArray[ArmNamespaceObjId];
-
// Nothing here.
if (Desc->Count == 0) {
return EFI_NOT_FOUND;
@@ -462,6 +534,10 @@ DynamicPlatRepoInit (
InitializeListHead (&Repo->ArmCmObjList[Index]);
}
+ for (Index = 0; Index < EArchCommonObjMax; Index++) {
+ InitializeListHead (&Repo->ArchCommonCmObjList[Index]);
+ }
+
Repo->ObjectCount = 0;
Repo->RepoState = DynRepoTransient;
@@ -470,6 +546,88 @@ DynamicPlatRepoInit (
return EFI_SUCCESS;
}
+/** Free Arm Namespace objects.
+
+ Free all the memory allocated for the Arm namespace objects in the
+ dynamic platform repository.
+
+ @param [in] DynPlatRepo The dynamic platform repository.
+
+**/
+STATIC
+VOID
+EFIAPI
+DynamicPlatRepoFreeArmObjects (
+ IN DYNAMIC_PLATFORM_REPOSITORY_INFO *DynPlatRepo
+ )
+{
+ UINT32 Index;
+ LIST_ENTRY *ListHead;
+ CM_OBJ_DESCRIPTOR *CmObjDesc;
+ VOID *Data;
+
+ ASSERT (DynPlatRepo != NULL);
+
+ // Free the list of objects.
+ for (Index = 0; Index < EArmObjMax; Index++) {
+ // Free all the nodes with this object Id.
+ ListHead = &DynPlatRepo->ArmCmObjList[Index];
+ while (!IsListEmpty (ListHead)) {
+ FreeCmObjNode ((CM_OBJ_NODE *)GetFirstNode (ListHead));
+ } // while
+ } // for
+
+ // Free the arrays.
+ CmObjDesc = DynPlatRepo->ArmCmObjArray;
+ for (Index = 0; Index < EArmObjMax; Index++) {
+ Data = CmObjDesc[Index].Data;
+ if (Data != NULL) {
+ FreePool (Data);
+ }
+ } // for
+}
+
+/** Free Arch Common Namespace objects.
+
+ Free all the memory allocated for the Arch Common namespace objects in the
+ dynamic platform repository.
+
+ @param [in] DynPlatRepo The dynamic platform repository.
+
+**/
+STATIC
+VOID
+EFIAPI
+DynamicPlatRepoFreeArchCommonObjects (
+ IN DYNAMIC_PLATFORM_REPOSITORY_INFO *DynPlatRepo
+ )
+{
+ UINT32 Index;
+ LIST_ENTRY *ListHead;
+ CM_OBJ_DESCRIPTOR *CmObjDesc;
+ VOID *Data;
+
+ ASSERT (DynPlatRepo != NULL);
+
+ // Free the list of objects.
+ for (Index = 0; Index < EArchCommonObjMax; Index++) {
+ // Free all the nodes with this object Id.
+ ListHead = &DynPlatRepo->ArchCommonCmObjList[Index];
+ while (!IsListEmpty (ListHead)) {
+ FreeCmObjNode ((CM_OBJ_NODE *)GetFirstNode (ListHead));
+ } // while
+ } // for
+
+ // Free the arrays.
+ CmObjDesc = DynPlatRepo->ArchCommonCmObjArray;
+ for (Index = 0; Index < EArchCommonObjMax; Index++) {
+ Data = CmObjDesc[Index].Data;
+ if (Data != NULL) {
+ FreePool (Data);
+ }
+ } // for
+}
+
/** Shutdown the dynamic platform repository.
Free all the memory allocated for the dynamic platform repository.
@@ -485,34 +643,15 @@ DynamicPlatRepoShutdown (
IN DYNAMIC_PLATFORM_REPOSITORY_INFO *DynPlatRepo
)
{
- EFI_STATUS Status;
- UINT32 Index;
- LIST_ENTRY *ListHead;
- CM_OBJ_DESCRIPTOR *CmObjDesc;
- VOID *Data;
+ EFI_STATUS Status;
if (DynPlatRepo == NULL) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
- // Free the list of objects.
- for (Index = 0; Index < EArmObjMax; Index++) {
- // Free all the nodes with this object Id.
- ListHead = &DynPlatRepo->ArmCmObjList[Index];
- while (!IsListEmpty (ListHead)) {
- FreeCmObjNode ((CM_OBJ_NODE *)GetFirstNode (ListHead));
- } // while
- } // for
-
- // Free the arrays.
- CmObjDesc = DynPlatRepo->ArmCmObjArray;
- for (Index = 0; Index < EArmObjMax; Index++) {
- Data = CmObjDesc[Index].Data;
- if (Data != NULL) {
- FreePool (Data);
- }
- } // for
+ DynamicPlatRepoFreeArmObjects (DynPlatRepo);
+ DynamicPlatRepoFreeArchCommonObjects (DynPlatRepo);
// Free the TokenMapper
Status = TokenMapperShutdown (&DynPlatRepo->TokenMapper);
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoInternal.h b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoInternal.h
index eaee5d4ce9d9..0c842bc2d535 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoInternal.h
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepoInternal.h
@@ -67,7 +67,16 @@ typedef struct DynamicPlatformRepositoryInfo {
/// This array is populated when the Repo is finalized.
CM_OBJ_DESCRIPTOR ArmCmObjArray[EArmObjMax];
- /// A token mapper for the objects in the ArmNamespaceObjectArray
+ /// Link lists of CmObj from the ArchCommon Namespace
+ /// that are added in the Transient state.
+ LIST_ENTRY ArchCommonCmObjList[EArchCommonObjMax];
+
+ /// Structure Members used in Finalized state.
+ /// An array of CmObj Descriptors from the ArchCommon Namespace
+ /// This array is populated when the Repo is finalized.
+ CM_OBJ_DESCRIPTOR ArchCommonCmObjArray[EArchCommonObjMax];
+
+ /// A token mapper for the objects in the <Arm|ArchCommon>CmObjArray
/// The Token mapper is populated when the Repo is finalized in
/// a call to DynamicPlatRepoFinalise ().
TOKEN_MAPPER TokenMapper;
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116968): https://edk2.groups.io/g/devel/message/116968
Mute This Topic: https://groups.io/mt/105067975/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 08/16] DynamicTablesPkg: Update documentation for CM_OBJECT_ID
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (6 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 07/16] DynamicTablesPkg: Update DynamicPlatRepo for Arch Common namespace PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 09/16] DynamicTablesPkg: Drop Cpu Info object ID from Arm Namespace PierreGondois
` (8 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Remove the partial listing of the Arm Namespace object IDs
from and add a reference to the enum EARM_OBJECT_ID that is
used to describe the object in the ARM Namespace.
Also document that the Arch Common namespace objects will be
described using the enum EARCH_COMMON_OBJECT_ID.
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>
---
.../Include/ConfigurationManagerObject.h | 35 +++----------------
1 file changed, 4 insertions(+), 31 deletions(-)
diff --git a/DynamicTablesPkg/Include/ConfigurationManagerObject.h b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
index 04b365f3d0b7..dd730ca677f5 100644
--- a/DynamicTablesPkg/Include/ConfigurationManagerObject.h
+++ b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
@@ -51,38 +51,11 @@ Object ID's in the Standard Namespace:
1 - ACPI Table List
2 - SMBIOS Table List
+Object ID's in the Arch Common Namespace:
+ See EARCH_COMMON_OBJECT_ID.
+
Object ID's in the ARM Namespace:
- 0 - Reserved
- 1 - Boot Architecture Info
- 2 - CPU Info
- 3 - Power Management Profile Info
- 4 - GICC Info
- 5 - GICD Info
- 6 - GIC MSI Frame Info
- 7 - GIC Redistributor Info
- 8 - GIC ITS Info
- 9 - Serial Console Port Info
- 10 - Serial Debug Port Info
- 11 - Generic Timer Info
- 12 - Platform GT Block Info
- 13 - Generic Timer Block Frame Info
- 14 - Platform Generic Watchdog
- 15 - PCI Configuration Space Info
- 16 - Hypervisor Vendor Id
- 17 - Fixed feature flags for FADT
- 18 - ITS Group
- 19 - Named Component
- 20 - Root Complex
- 21 - SMMUv1 or SMMUv2
- 22 - SMMUv3
- 23 - PMCG
- 24 - GIC ITS Identifier Array
- 25 - ID Mapping Array
- 26 - SMMU Interrupt Array
- 27 - Processor Hierarchy Info
- 28 - Cache Info
- 29 - Processor Hierarchy Node ID Info
- 30 - CM Object Reference
+ See EARM_OBJECT_ID.
*/
typedef UINT32 CM_OBJECT_ID;
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116969): https://edk2.groups.io/g/devel/message/116969
Mute This Topic: https://groups.io/mt/105067978/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 09/16] DynamicTablesPkg: Drop Cpu Info object ID from Arm Namespace
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (7 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 08/16] DynamicTablesPkg: Update documentation for CM_OBJECT_ID PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 10/16] DynamicTablesPkg: Drop Reserved29 " PierreGondois
` (7 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
The Arm Namespace Object ID for CPU info was not used.
Therefore, drop the EArmObjCpuInfo object ID. Also remove
- the partial listing of the Arm Namespace object IDs from
ConfigurationManagerObject.h and add a reference to the
location where they are defined.
- the parsing code in Configuration Manager ObjectParser.
- update the 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>
---
.../Include/ArmNameSpaceObjects.h | 97 +++++++++----------
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 93 +++++++++---------
.../ConfigurationManagerObjectParser.c | 1 -
DynamicTablesPkg/Readme.md | 97 +++++++++----------
4 files changed, 142 insertions(+), 146 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 853d722b8c79..2eeff594fc59 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -30,55 +30,54 @@
typedef enum ArmObjectID {
EArmObjReserved, ///< 0 - Reserved
EArmObjBootArchInfo, ///< 1 - Boot Architecture Info
- EArmObjCpuInfo, ///< 2 - CPU Info
- EArmObjPowerManagementProfileInfo, ///< 3 - Power Management Profile Info
- EArmObjGicCInfo, ///< 4 - GIC CPU Interface Info
- EArmObjGicDInfo, ///< 5 - GIC Distributor Info
- EArmObjGicMsiFrameInfo, ///< 6 - GIC MSI Frame Info
- EArmObjGicRedistributorInfo, ///< 7 - GIC Redistributor Info
- EArmObjGicItsInfo, ///< 8 - GIC ITS Info
- EArmObjSerialConsolePortInfo, ///< 9 - Serial Console Port Info
- EArmObjSerialDebugPortInfo, ///< 10 - Serial Debug Port Info
- EArmObjGenericTimerInfo, ///< 11 - Generic Timer Info
- EArmObjPlatformGTBlockInfo, ///< 12 - Platform GT Block Info
- EArmObjGTBlockTimerFrameInfo, ///< 13 - Generic Timer Block Frame Info
- EArmObjPlatformGenericWatchdogInfo, ///< 14 - Platform Generic Watchdog
- EArmObjPciConfigSpaceInfo, ///< 15 - PCI Configuration Space Info
- EArmObjHypervisorVendorIdentity, ///< 16 - Hypervisor Vendor Id
- EArmObjFixedFeatureFlags, ///< 17 - Fixed feature flags for FADT
- EArmObjItsGroup, ///< 18 - ITS Group
- EArmObjNamedComponent, ///< 19 - Named Component
- EArmObjRootComplex, ///< 20 - Root Complex
- EArmObjSmmuV1SmmuV2, ///< 21 - SMMUv1 or SMMUv2
- EArmObjSmmuV3, ///< 22 - SMMUv3
- EArmObjPmcg, ///< 23 - PMCG
- EArmObjGicItsIdentifierArray, ///< 24 - GIC ITS Identifier Array
- EArmObjIdMappingArray, ///< 25 - ID Mapping Array
- EArmObjSmmuInterruptArray, ///< 26 - SMMU Interrupt Array
- EArmObjProcHierarchyInfo, ///< 27 - Processor Hierarchy Info
- EArmObjCacheInfo, ///< 28 - Cache Info
- EArmObjReserved29, ///< 29 - Reserved
- EArmObjCmRef, ///< 30 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 31 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 32 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 33 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 34 - Generic Initiator Affinity
- EArmObjSerialPortInfo, ///< 35 - Generic Serial Port Info
- EArmObjCmn600Info, ///< 36 - CMN-600 Info
- EArmObjLpiInfo, ///< 37 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 38 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 39 - Pci Interrupt Map Info
- EArmObjRmr, ///< 40 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 41 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 42 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 43 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 44 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 45 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 46 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 47 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 48 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 49 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 50 - P-State Dependency (PSD) Info
+ EArmObjPowerManagementProfileInfo, ///< 2 - Power Management Profile Info
+ EArmObjGicCInfo, ///< 3 - GIC CPU Interface Info
+ EArmObjGicDInfo, ///< 4 - GIC Distributor Info
+ EArmObjGicMsiFrameInfo, ///< 5 - GIC MSI Frame Info
+ EArmObjGicRedistributorInfo, ///< 6 - GIC Redistributor Info
+ EArmObjGicItsInfo, ///< 7 - GIC ITS Info
+ EArmObjSerialConsolePortInfo, ///< 8 - Serial Console Port Info
+ EArmObjSerialDebugPortInfo, ///< 9 - Serial Debug Port Info
+ EArmObjGenericTimerInfo, ///< 10 - Generic Timer Info
+ EArmObjPlatformGTBlockInfo, ///< 11 - Platform GT Block Info
+ EArmObjGTBlockTimerFrameInfo, ///< 12 - Generic Timer Block Frame Info
+ EArmObjPlatformGenericWatchdogInfo, ///< 13 - Platform Generic Watchdog
+ EArmObjPciConfigSpaceInfo, ///< 14 - PCI Configuration Space Info
+ EArmObjHypervisorVendorIdentity, ///< 15 - Hypervisor Vendor Id
+ EArmObjFixedFeatureFlags, ///< 16 - Fixed feature flags for FADT
+ EArmObjItsGroup, ///< 17 - ITS Group
+ EArmObjNamedComponent, ///< 18 - Named Component
+ EArmObjRootComplex, ///< 19 - Root Complex
+ EArmObjSmmuV1SmmuV2, ///< 20 - SMMUv1 or SMMUv2
+ EArmObjSmmuV3, ///< 21 - SMMUv3
+ EArmObjPmcg, ///< 22 - PMCG
+ EArmObjGicItsIdentifierArray, ///< 23 - GIC ITS Identifier Array
+ EArmObjIdMappingArray, ///< 24 - ID Mapping Array
+ EArmObjSmmuInterruptArray, ///< 25 - SMMU Interrupt Array
+ EArmObjProcHierarchyInfo, ///< 26 - Processor Hierarchy Info
+ EArmObjCacheInfo, ///< 27 - Cache Info
+ EArmObjReserved29, ///< 28 - Reserved
+ EArmObjCmRef, ///< 29 - CM Object Reference
+ EArmObjMemoryAffinityInfo, ///< 30 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 31 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 32 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 33 - Generic Initiator Affinity
+ EArmObjSerialPortInfo, ///< 34 - Generic Serial Port Info
+ EArmObjCmn600Info, ///< 35 - CMN-600 Info
+ EArmObjLpiInfo, ///< 36 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 37 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 38 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 39 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 40 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 41 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 42 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 43 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 44 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 45 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 46 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 47 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 48 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 49 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index df9452efe5bb..07e26a4f4e4c 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -145,55 +145,54 @@ CONST
CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 0 - Reserved
NULL, ///< 1 - Boot Architecture Info
- NULL, ///< 2 - CPU Info
- NULL, ///< 3 - Power Management Profile Info
- NULL, ///< 4 - GIC CPU Interface Info
- NULL, ///< 5 - GIC Distributor Info
- NULL, ///< 6 - GIC MSI Frame Info
- NULL, ///< 7 - GIC Redistributor Info
- NULL, ///< 8 - GIC ITS Info
- NULL, ///< 9 - Serial Console Port Info
- NULL, ///< 10 - Serial Debug Port Info
- NULL, ///< 11 - Generic Timer Info
- NULL, ///< 12 - Platform GT Block Info
- NULL, ///< 13 - Generic Timer Block Frame Info
- NULL, ///< 14 - Platform Generic Watchdog
- NULL, ///< 15 - PCI Configuration Space Info
- NULL, ///< 16 - Hypervisor Vendor Id
- NULL, ///< 17 - Fixed feature flags for FADT
- TokenFixerItsGroup, ///< 18 - ITS Group
- TokenFixerNamedComponentNode, ///< 19 - Named Component
- TokenFixerRootComplexNode, ///< 20 - Root Complex
- TokenFixerNotImplemented, ///< 21 - SMMUv1 or SMMUv2
- TokenFixerSmmuV3Node, ///< 22 - SMMUv3
- TokenFixerNotImplemented, ///< 23 - PMCG
- NULL, ///< 24 - GIC ITS Identifier Array
- NULL, ///< 25 - ID Mapping Array
- NULL, ///< 26 - SMMU Interrupt Array
- TokenFixerNotImplemented, ///< 27 - Processor Hierarchy Info
- TokenFixerNotImplemented, ///< 28 - Cache Info
+ NULL, ///< 2 - Power Management Profile Info
+ NULL, ///< 3 - GIC CPU Interface Info
+ NULL, ///< 4 - GIC Distributor Info
+ NULL, ///< 5 - GIC MSI Frame Info
+ NULL, ///< 6 - GIC Redistributor Info
+ NULL, ///< 7 - GIC ITS Info
+ NULL, ///< 8 - Serial Console Port Info
+ NULL, ///< 9 - Serial Debug Port Info
+ NULL, ///< 10 - Generic Timer Info
+ NULL, ///< 11 - Platform GT Block Info
+ NULL, ///< 12 - Generic Timer Block Frame Info
+ NULL, ///< 13 - Platform Generic Watchdog
+ NULL, ///< 14 - PCI Configuration Space Info
+ NULL, ///< 15 - Hypervisor Vendor Id
+ NULL, ///< 16 - Fixed feature flags for FADT
+ TokenFixerItsGroup, ///< 17 - ITS Group
+ TokenFixerNamedComponentNode, ///< 18 - Named Component
+ TokenFixerRootComplexNode, ///< 19 - Root Complex
+ TokenFixerNotImplemented, ///< 20 - SMMUv1 or SMMUv2
+ TokenFixerSmmuV3Node, ///< 21 - SMMUv3
+ TokenFixerNotImplemented, ///< 22 - PMCG
+ NULL, ///< 23 - GIC ITS Identifier Array
+ NULL, ///< 24 - ID Mapping Array
+ NULL, ///< 25 - SMMU Interrupt Array
+ TokenFixerNotImplemented, ///< 26 - Processor Hierarchy Info
+ TokenFixerNotImplemented, ///< 27 - Cache Info
TokenFixerNotImplemented, ///< 29 - Reserved
- NULL, ///< 30 - CM Object Reference
- NULL, ///< 31 - Memory Affinity Info
- NULL, ///< 32 - Device Handle Acpi
- NULL, ///< 33 - Device Handle Pci
- NULL, ///< 34 - Generic Initiator Affinity
- NULL, ///< 35 - Generic Serial Port Info
- NULL, ///< 36 - CMN-600 Info
- NULL, ///< 37 - Lpi Info
- NULL, ///< 38 - Pci Address Map Info
- NULL, ///< 39 - Pci Interrupt Map Info
- NULL, ///< 40 - Reserved Memory Range Node
- NULL, ///< 41 - Memory Range Descriptor
- NULL, ///< 42 - Continuous Performance Control Info
- NULL, ///< 43 - Pcc Subspace Type 0 Info
+ NULL, ///< 29 - CM Object Reference
+ NULL, ///< 30 - Memory Affinity Info
+ NULL, ///< 31 - Device Handle Acpi
+ NULL, ///< 32 - Device Handle Pci
+ NULL, ///< 33 - Generic Initiator Affinity
+ NULL, ///< 34 - Generic Serial Port Info
+ NULL, ///< 35 - CMN-600 Info
+ NULL, ///< 36 - Lpi Info
+ NULL, ///< 37 - Pci Address Map Info
+ NULL, ///< 38 - Pci Interrupt Map Info
+ NULL, ///< 39 - Reserved Memory Range Node
+ NULL, ///< 40 - Memory Range Descriptor
+ NULL, ///< 41 - Continuous Performance Control Info
+ NULL, ///< 42 - Pcc Subspace Type 0 Info
+ NULL, ///< 43 - Pcc Subspace Type 2 Info
NULL, ///< 44 - Pcc Subspace Type 2 Info
- NULL, ///< 45 - Pcc Subspace Type 2 Info
- NULL, ///< 46 - Pcc Subspace Type 3 Info
- NULL, ///< 47 - Pcc Subspace Type 4 Info
- NULL, ///< 48 - Pcc Subspace Type 5 Info
- NULL, ///< 49 - Embedded Trace Extension/Module Info
- NULL ///< 50 - P-State Dependency (PSD) Info
+ NULL, ///< 45 - Pcc Subspace Type 3 Info
+ NULL, ///< 46 - Pcc Subspace Type 4 Info
+ NULL, ///< 47 - Pcc Subspace Type 5 Info
+ NULL, ///< 48 - Embedded Trace Extension/Module Info
+ NULL ///< 49 - 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 6f5dbdfd2d86..af5884832cda 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -679,7 +679,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved),
CM_PARSER_ADD_OBJECT (EArmObjBootArchInfo, CmArmBootArchInfoParser),
- CM_PARSER_ADD_OBJECT_RESERVED (EArmObjCpuInfo),
CM_PARSER_ADD_OBJECT (EArmObjPowerManagementProfileInfo, CmArmPowerManagementProfileInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicCInfo, CmArmGicCInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicDInfo, CmArmGicDInfoParser),
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 24b5b149a9b7..80759f953487 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -442,55 +442,54 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| ---: | :-------------------------- | :--- |
| 0 | Reserved | |
| 1 | Boot Architecture Info | |
-| 2 | CPU Info | Unused can be dropped|
-| 3 | Power Management Profile Info | Move to Arch Common NS |
-| 4 | GICC Info | |
-| 5 | GICD Info | |
-| 6 | GIC MSI Frame Info | |
-| 7 | GIC Redistributor Info | |
-| 8 | GIC ITS Info | |
-| 9 | Serial Console Port Info | Move to Arch Common NS |
-| 10 | Serial Debug Port Info | Move to Arch Common NS |
-| 11 | Generic Timer Info | |
-| 12 | Platform GT Block Info | |
-| 13 | Generic Timer Block Frame Info | |
-| 14 | Platform Generic Watchdog | |
-| 15 | PCI Configuration Space Info | Move to Arch Common NS |
-| 16 | Hypervisor Vendor Id | Move to Arch Common NS |
-| 17 | Fixed feature flags for FADT | Move to Arch Common NS |
-| 18 | ITS Group | |
-| 19 | Named Component | |
-| 20 | Root Complex | |
-| 21 | SMMUv1 or SMMUv2 | |
-| 22 | SMMUv3 | |
-| 23 | PMCG | |
-| 24 | GIC ITS Identifier Array | |
-| 25 | ID Mapping Array | |
-| 26 | SMMU Interrupt Array | |
-| 27 | Processor Hierarchy Info | Move to Arch Common NS |
-| 28 | Cache Info | Move to Arch Common NS |
-| 29 | Reserved29 | Unused to be dropped.|
-| 30 | CM Object Reference | Move to Arch Common NS |
-| 31 | Memory Affinity Info | Move to Arch Common NS |
-| 32 | Device Handle Acpi | Move to Arch Common NS |
-| 33 | Device Handle PCI | Move to Arch Common NS |
-| 34 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 35 | Serial Port Info | Move to Arch Common NS |
-| 36 | CMN 600 Info | |
-| 37 | Low Power Idle State Info | Move to Arch Common NS |
-| 38 | PCI Address Map Info | Move to Arch Common NS |
-| 39 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 40 | Reserved Memory Range Node | |
-| 41 | Memory Range Descriptor | |
-| 42 | Continuous Performance Control Info | Move to Arch Common NS |
-| 43 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 44 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 45 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 46 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 47 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 48 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 49 | Embedded Trace Extension/Module Info | |
-| 50 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 2 | Power Management Profile Info | Move to Arch Common NS |
+| 3 | GICC Info | |
+| 4 | GICD Info | |
+| 5 | GIC MSI Frame Info | |
+| 6 | GIC Redistributor Info | |
+| 7 | GIC ITS Info | |
+| 8 | Serial Console Port Info | Move to Arch Common NS |
+| 9 | Serial Debug Port Info | Move to Arch Common NS |
+| 10 | Generic Timer Info | |
+| 11 | Platform GT Block Info | |
+| 12 | Generic Timer Block Frame Info | |
+| 13 | Platform Generic Watchdog | |
+| 14 | PCI Configuration Space Info | Move to Arch Common NS |
+| 15 | Hypervisor Vendor Id | Move to Arch Common NS |
+| 16 | Fixed feature flags for FADT | Move to Arch Common NS |
+| 17 | ITS Group | |
+| 18 | Named Component | |
+| 19 | Root Complex | |
+| 20 | SMMUv1 or SMMUv2 | |
+| 21 | SMMUv3 | |
+| 22 | PMCG | |
+| 23 | GIC ITS Identifier Array | |
+| 24 | ID Mapping Array | |
+| 25 | SMMU Interrupt Array | |
+| 26 | Processor Hierarchy Info | Move to Arch Common NS |
+| 27 | Cache Info | Move to Arch Common NS |
+| 28 | Reserved29 | Unused to be dropped.|
+| 29 | CM Object Reference | Move to Arch Common NS |
+| 30 | Memory Affinity Info | Move to Arch Common NS |
+| 31 | Device Handle Acpi | Move to Arch Common NS |
+| 32 | Device Handle PCI | Move to Arch Common NS |
+| 33 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 34 | Serial Port Info | Move to Arch Common NS |
+| 35 | CMN 600 Info | |
+| 36 | Low Power Idle State Info | Move to Arch Common NS |
+| 37 | PCI Address Map Info | Move to Arch Common NS |
+| 38 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 39 | Reserved Memory Range Node | |
+| 40 | Memory Range Descriptor | |
+| 41 | Continuous Performance Control Info | Move to Arch Common NS |
+| 42 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 43 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 44 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 45 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 46 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 47 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 48 | Embedded Trace Extension/Module Info | |
+| 49 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116970): https://edk2.groups.io/g/devel/message/116970
Mute This Topic: https://groups.io/mt/105067979/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 10/16] DynamicTablesPkg: Drop Reserved29 object ID from Arm Namespace
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (8 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 09/16] DynamicTablesPkg: Drop Cpu Info object ID from Arm Namespace PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 11/16] ArmVirtPkg: Kvmtool: Update ConfigMgr to support ArchCommon PierreGondois
` (6 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
The Arm Namespace Object ID Reserved29 was a reserved ID
that was never used. Therefore, drop the EArmObjReserved29
object ID also update the Dynamic Plat Repo TokenFixer map
and the Configuration Manager Object Parser.
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>
---
.../Include/ArmNameSpaceObjects.h | 43 +++++++++----------
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 41 +++++++++---------
.../ConfigurationManagerObjectParser.c | 1 -
DynamicTablesPkg/Readme.md | 43 +++++++++----------
4 files changed, 62 insertions(+), 66 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 2eeff594fc59..f7e1a0933f7b 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -56,28 +56,27 @@ typedef enum ArmObjectID {
EArmObjSmmuInterruptArray, ///< 25 - SMMU Interrupt Array
EArmObjProcHierarchyInfo, ///< 26 - Processor Hierarchy Info
EArmObjCacheInfo, ///< 27 - Cache Info
- EArmObjReserved29, ///< 28 - Reserved
- EArmObjCmRef, ///< 29 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 30 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 31 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 32 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 33 - Generic Initiator Affinity
- EArmObjSerialPortInfo, ///< 34 - Generic Serial Port Info
- EArmObjCmn600Info, ///< 35 - CMN-600 Info
- EArmObjLpiInfo, ///< 36 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 37 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 38 - Pci Interrupt Map Info
- EArmObjRmr, ///< 39 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 40 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 41 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 42 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 43 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 44 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 45 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 46 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 47 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 48 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 49 - P-State Dependency (PSD) Info
+ EArmObjCmRef, ///< 28 - CM Object Reference
+ EArmObjMemoryAffinityInfo, ///< 29 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 30 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 31 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 32 - Generic Initiator Affinity
+ EArmObjSerialPortInfo, ///< 33 - Generic Serial Port Info
+ EArmObjCmn600Info, ///< 34 - CMN-600 Info
+ EArmObjLpiInfo, ///< 35 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 36 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 37 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 38 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 39 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 40 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 41 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 42 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 43 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 44 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 45 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 46 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 47 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 48 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 07e26a4f4e4c..833fa2d6a24b 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -171,28 +171,27 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 25 - SMMU Interrupt Array
TokenFixerNotImplemented, ///< 26 - Processor Hierarchy Info
TokenFixerNotImplemented, ///< 27 - Cache Info
- TokenFixerNotImplemented, ///< 29 - Reserved
- NULL, ///< 29 - CM Object Reference
- NULL, ///< 30 - Memory Affinity Info
- NULL, ///< 31 - Device Handle Acpi
- NULL, ///< 32 - Device Handle Pci
- NULL, ///< 33 - Generic Initiator Affinity
- NULL, ///< 34 - Generic Serial Port Info
- NULL, ///< 35 - CMN-600 Info
- NULL, ///< 36 - Lpi Info
- NULL, ///< 37 - Pci Address Map Info
- NULL, ///< 38 - Pci Interrupt Map Info
- NULL, ///< 39 - Reserved Memory Range Node
- NULL, ///< 40 - Memory Range Descriptor
- NULL, ///< 41 - Continuous Performance Control Info
- NULL, ///< 42 - Pcc Subspace Type 0 Info
+ NULL, ///< 28 - CM Object Reference
+ NULL, ///< 29 - Memory Affinity Info
+ NULL, ///< 30 - Device Handle Acpi
+ NULL, ///< 31 - Device Handle Pci
+ NULL, ///< 32 - Generic Initiator Affinity
+ NULL, ///< 33 - Generic Serial Port Info
+ NULL, ///< 34 - CMN-600 Info
+ NULL, ///< 35 - Lpi Info
+ NULL, ///< 36 - Pci Address Map Info
+ NULL, ///< 37 - Pci Interrupt Map Info
+ NULL, ///< 38 - Reserved Memory Range Node
+ NULL, ///< 39 - Memory Range Descriptor
+ NULL, ///< 40 - Continuous Performance Control Info
+ NULL, ///< 41 - Pcc Subspace Type 0 Info
+ NULL, ///< 42 - Pcc Subspace Type 2 Info
NULL, ///< 43 - Pcc Subspace Type 2 Info
- NULL, ///< 44 - Pcc Subspace Type 2 Info
- NULL, ///< 45 - Pcc Subspace Type 3 Info
- NULL, ///< 46 - Pcc Subspace Type 4 Info
- NULL, ///< 47 - Pcc Subspace Type 5 Info
- NULL, ///< 48 - Embedded Trace Extension/Module Info
- NULL ///< 49 - P-State Dependency (PSD) Info
+ NULL, ///< 44 - Pcc Subspace Type 3 Info
+ NULL, ///< 45 - Pcc Subspace Type 4 Info
+ NULL, ///< 46 - Pcc Subspace Type 5 Info
+ NULL, ///< 47 - Embedded Trace Extension/Module Info
+ NULL ///< 48 - 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 af5884832cda..6896463b2848 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -705,7 +705,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArmGenericInterruptParser),
CM_PARSER_ADD_OBJECT (EArmObjProcHierarchyInfo, CmArmProcHierarchyInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjCacheInfo, CmArmCacheInfoParser),
- CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved29),
CM_PARSER_ADD_OBJECT (EArmObjCmRef, CmArmObjRefParser),
CM_PARSER_ADD_OBJECT (EArmObjMemoryAffinityInfo, CmArmMemoryAffinityInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser),
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 80759f953487..8d30bf560b3d 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -468,28 +468,27 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 25 | SMMU Interrupt Array | |
| 26 | Processor Hierarchy Info | Move to Arch Common NS |
| 27 | Cache Info | Move to Arch Common NS |
-| 28 | Reserved29 | Unused to be dropped.|
-| 29 | CM Object Reference | Move to Arch Common NS |
-| 30 | Memory Affinity Info | Move to Arch Common NS |
-| 31 | Device Handle Acpi | Move to Arch Common NS |
-| 32 | Device Handle PCI | Move to Arch Common NS |
-| 33 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 34 | Serial Port Info | Move to Arch Common NS |
-| 35 | CMN 600 Info | |
-| 36 | Low Power Idle State Info | Move to Arch Common NS |
-| 37 | PCI Address Map Info | Move to Arch Common NS |
-| 38 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 39 | Reserved Memory Range Node | |
-| 40 | Memory Range Descriptor | |
-| 41 | Continuous Performance Control Info | Move to Arch Common NS |
-| 42 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 43 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 44 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 45 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 46 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 47 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 48 | Embedded Trace Extension/Module Info | |
-| 49 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 28 | CM Object Reference | Move to Arch Common NS |
+| 29 | Memory Affinity Info | Move to Arch Common NS |
+| 30 | Device Handle Acpi | Move to Arch Common NS |
+| 31 | Device Handle PCI | Move to Arch Common NS |
+| 32 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 33 | Serial Port Info | Move to Arch Common NS |
+| 34 | CMN 600 Info | |
+| 35 | Low Power Idle State Info | Move to Arch Common NS |
+| 36 | PCI Address Map Info | Move to Arch Common NS |
+| 37 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 38 | Reserved Memory Range Node | |
+| 39 | Memory Range Descriptor | |
+| 40 | Continuous Performance Control Info | Move to Arch Common NS |
+| 41 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 42 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 43 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 44 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 45 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 46 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 47 | Embedded Trace Extension/Module Info | |
+| 48 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116971): https://edk2.groups.io/g/devel/message/116971
Mute This Topic: https://groups.io/mt/105067982/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 11/16] ArmVirtPkg: Kvmtool: Update ConfigMgr to support ArchCommon
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (9 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 10/16] DynamicTablesPkg: Drop Reserved29 " PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 12/16] DynamicTablesPkg & ArmVirtPkg: Move Power Mgmt Profile Info Object PierreGondois
` (5 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Update the Configuration Manager for Kvmtool guest firmware
to handle ArchComm namespace objects.
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>
---
.../KvmtoolCfgMgrDxe/ConfigurationManager.c | 70 +++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
index 68b9d2bf0513..4a76583f969c 100644
--- a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
+++ b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
@@ -722,6 +722,73 @@ GetStandardNameSpaceObject (
return Status;
}
+/**
+ Return an ArchCommon namespace object.
+
+ @param [in] This Pointer to the Configuration Manager Protocol.
+ @param [in] CmObjectId The Configuration Manager Object ID.
+ @param [in] Token An optional token identifying the object. If
+ unused this must be CM_NULL_TOKEN.
+ @param [in, out] CmObject Pointer to the Configuration Manager Object
+ descriptor describing the requested Object.
+
+ @retval EFI_SUCCESS Success.
+ @retval EFI_INVALID_PARAMETER A parameter is invalid.
+ @retval EFI_NOT_FOUND The required object information is not found.
+**/
+EFI_STATUS
+EFIAPI
+GetArchCommonNameSpaceObject (
+ IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This,
+ IN CONST CM_OBJECT_ID CmObjectId,
+ IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
+ IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject
+ )
+{
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO *PlatformRepo;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+ ASSERT (This != NULL);
+ ASSERT (CmObject != NULL);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+
+ //
+ // First check among the static objects.
+ //
+ switch (GET_CM_OBJECT_ID (CmObjectId)) {
+ default:
+ //
+ // No match found among the static objects.
+ // Check the dynamic objects.
+ //
+ Status = DynamicPlatRepoGetObject (
+ PlatformRepo->DynamicPlatformRepo,
+ CmObjectId,
+ Token,
+ CmObject
+ );
+ break;
+ } // switch
+
+ if (Status == EFI_NOT_FOUND) {
+ DEBUG ((
+ DEBUG_INFO,
+ "INFO: CmObjectId " FMT_CM_OBJECT_ID ". Status = %r\n",
+ CmObjectId,
+ Status
+ ));
+ } else {
+ ASSERT_EFI_ERROR (Status);
+ }
+
+ return Status;
+}
+
/**
Return an ARM namespace object.
@@ -929,6 +996,9 @@ ArmKvmtoolPlatformGetObject (
case EObjNameSpaceStandard:
Status = GetStandardNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
+ case EObjNameSpaceArchCommon:
+ Status = GetArchCommonNameSpaceObject (This, CmObjectId, Token, CmObject);
+ break;
case EObjNameSpaceArm:
Status = GetArmNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116972): https://edk2.groups.io/g/devel/message/116972
Mute This Topic: https://groups.io/mt/105067984/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 12/16] DynamicTablesPkg & ArmVirtPkg: Move Power Mgmt Profile Info Object
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (10 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 11/16] ArmVirtPkg: Kvmtool: Update ConfigMgr to support ArchCommon PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 13/16] DynamicTablesPkg: Move Hypervisor Vendor Id to Arch Common PierreGondois
` (4 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Move PowerManagementProfileInfo Object from Arm Namespace to the
Arch Common namespace.
The following updates are also done to reflect the changes introduced
by the move:
- Update the FADT Generator to migrate to use the Power Management
Profile Info object CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO
and EArchCommonObjPowerManagementProfileInfo.
- Update the Configuration manager object parser to parse Arch
Common namespace objects and update the parsing of the Power
Management Profile information object from Arm namespace to
the Arch Common namespace.
- Update the Dynamic Plat Repo TokenFixer map
- Update ArmVirtPkg/Kvmtool Guest firmware configuration manager.
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>
---
.../KvmtoolCfgMgrDxe/ConfigurationManager.c | 136 +++++++++---------
.../KvmtoolCfgMgrDxe/ConfigurationManager.h | 20 +--
.../Include/ArchCommonNameSpaceObjects.h | 53 +++++++
.../Include/ArmNameSpaceObjects.h | 135 ++++++-----------
.../Include/Library/SsdtSerialPortFixupLib.h | 16 +--
.../Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c | 20 +--
.../Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c | 14 +-
.../Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c | 18 +--
.../SsdtSerialPortGenerator.c | 24 ++--
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 90 ++++++------
.../SsdtSerialPortFixupLib.c | 46 +++---
.../ConfigurationManagerObjectParser.c | 18 +--
.../Serial/ArmSerialPortParser.c | 79 +++++-----
.../Serial/ArmSerialPortParser.h | 8 +-
DynamicTablesPkg/Readme.md | 94 ++++++------
15 files changed, 386 insertions(+), 385 deletions(-)
diff --git a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
index 4a76583f969c..724054440644 100644
--- a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
+++ b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
@@ -761,74 +761,7 @@ GetArchCommonNameSpaceObject (
// First check among the static objects.
//
switch (GET_CM_OBJECT_ID (CmObjectId)) {
- default:
- //
- // No match found among the static objects.
- // Check the dynamic objects.
- //
- Status = DynamicPlatRepoGetObject (
- PlatformRepo->DynamicPlatformRepo,
- CmObjectId,
- Token,
- CmObject
- );
- break;
- } // switch
-
- if (Status == EFI_NOT_FOUND) {
- DEBUG ((
- DEBUG_INFO,
- "INFO: CmObjectId " FMT_CM_OBJECT_ID ". Status = %r\n",
- CmObjectId,
- Status
- ));
- } else {
- ASSERT_EFI_ERROR (Status);
- }
-
- return Status;
-}
-
-/**
- Return an ARM namespace object.
-
- @param [in] This Pointer to the Configuration Manager Protocol.
- @param [in] CmObjectId The Configuration Manager Object ID.
- @param [in] Token An optional token identifying the object. If
- unused this must be CM_NULL_TOKEN.
- @param [in, out] CmObject Pointer to the Configuration Manager Object
- descriptor describing the requested Object.
-
- @retval EFI_SUCCESS Success.
- @retval EFI_INVALID_PARAMETER A parameter is invalid.
- @retval EFI_NOT_FOUND The required object information is not found.
-**/
-EFI_STATUS
-EFIAPI
-GetArmNameSpaceObject (
- IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This,
- IN CONST CM_OBJECT_ID CmObjectId,
- IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
- IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject
- )
-{
- EFI_STATUS Status;
- EDKII_PLATFORM_REPOSITORY_INFO *PlatformRepo;
-
- if ((This == NULL) || (CmObject == NULL)) {
- ASSERT (This != NULL);
- ASSERT (CmObject != NULL);
- return EFI_INVALID_PARAMETER;
- }
-
- Status = EFI_NOT_FOUND;
- PlatformRepo = This->PlatRepoInfo;
-
- //
- // First check among the static objects.
- //
- switch (GET_CM_OBJECT_ID (CmObjectId)) {
- case EArmObjPowerManagementProfileInfo:
+ case EArchCommonObjPowerManagementProfileInfo:
Status = HandleCmObject (
CmObjectId,
&PlatformRepo->PmProfileInfo,
@@ -838,6 +771,73 @@ GetArmNameSpaceObject (
);
break;
+ default:
+ //
+ // No match found among the static objects.
+ // Check the dynamic objects.
+ //
+ Status = DynamicPlatRepoGetObject (
+ PlatformRepo->DynamicPlatformRepo,
+ CmObjectId,
+ Token,
+ CmObject
+ );
+ break;
+ } // switch
+
+ if (Status == EFI_NOT_FOUND) {
+ DEBUG ((
+ DEBUG_INFO,
+ "INFO: CmObjectId " FMT_CM_OBJECT_ID ". Status = %r\n",
+ CmObjectId,
+ Status
+ ));
+ } else {
+ ASSERT_EFI_ERROR (Status);
+ }
+
+ return Status;
+}
+
+/**
+ Return an ARM namespace object.
+
+ @param [in] This Pointer to the Configuration Manager Protocol.
+ @param [in] CmObjectId The Configuration Manager Object ID.
+ @param [in] Token An optional token identifying the object. If
+ unused this must be CM_NULL_TOKEN.
+ @param [in, out] CmObject Pointer to the Configuration Manager Object
+ descriptor describing the requested Object.
+
+ @retval EFI_SUCCESS Success.
+ @retval EFI_INVALID_PARAMETER A parameter is invalid.
+ @retval EFI_NOT_FOUND The required object information is not found.
+**/
+EFI_STATUS
+EFIAPI
+GetArmNameSpaceObject (
+ IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST This,
+ IN CONST CM_OBJECT_ID CmObjectId,
+ IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
+ IN OUT CM_OBJ_DESCRIPTOR *CONST CmObject
+ )
+{
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO *PlatformRepo;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+ ASSERT (This != NULL);
+ ASSERT (CmObject != NULL);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+
+ //
+ // First check among the static objects.
+ //
+ switch (GET_CM_OBJECT_ID (CmObjectId)) {
case EArmObjItsGroup:
Status = HandleCmObject (
CmObjectId,
diff --git a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.h b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.h
index 3373948bc4eb..4fb12db73b81 100644
--- a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.h
+++ b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.h
@@ -73,53 +73,53 @@ typedef struct PlatformRepositoryInfo {
///
/// Configuration Manager Information.
///
- CM_STD_OBJ_CONFIGURATION_MANAGER_INFO CmInfo;
+ CM_STD_OBJ_CONFIGURATION_MANAGER_INFO CmInfo;
///
/// List of ACPI tables
///
- CM_STD_OBJ_ACPI_TABLE_INFO CmAcpiTableList[PLAT_ACPI_TABLE_COUNT];
+ CM_STD_OBJ_ACPI_TABLE_INFO CmAcpiTableList[PLAT_ACPI_TABLE_COUNT];
///
/// Power management profile information
///
- CM_ARM_POWER_MANAGEMENT_PROFILE_INFO PmProfileInfo;
+ CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO PmProfileInfo;
///
/// ITS Group node
///
- CM_ARM_ITS_GROUP_NODE ItsGroupInfo;
+ CM_ARM_ITS_GROUP_NODE ItsGroupInfo;
///
/// ITS Identifier array
///
- CM_ARM_ITS_IDENTIFIER ItsIdentifierArray[1];
+ CM_ARM_ITS_IDENTIFIER ItsIdentifierArray[1];
///
/// PCI Root complex node
///
- CM_ARM_ROOT_COMPLEX_NODE RootComplexInfo;
+ CM_ARM_ROOT_COMPLEX_NODE RootComplexInfo;
///
/// Array of DeviceID mapping
///
- CM_ARM_ID_MAPPING DeviceIdMapping[1];
+ CM_ARM_ID_MAPPING DeviceIdMapping[1];
///
/// Dynamic platform repository.
/// CmObj created by parsing the Kvmtool device tree are stored here.
///
- DYNAMIC_PLATFORM_REPOSITORY_INFO *DynamicPlatformRepo;
+ DYNAMIC_PLATFORM_REPOSITORY_INFO *DynamicPlatformRepo;
///
/// Base address of the FDT.
///
- VOID *FdtBase;
+ VOID *FdtBase;
///
/// A handle to the FDT HwInfoParser.
///
- HW_INFO_PARSER_HANDLE FdtParserHandle;
+ HW_INFO_PARSER_HANDLE FdtParserHandle;
} EDKII_PLATFORM_REPOSITORY_INFO;
#endif // CONFIGURATION_MANAGER_H_
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
index e4205d6ba6bc..4eabb4d38b40 100644
--- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -21,7 +21,60 @@
*/
typedef enum ArchCommonObjectID {
EArchCommonObjReserved, ///< 0 - Reserved
+ EArchCommonObjPowerManagementProfileInfo, ///< 1 - Power Management Profile Info
+ EArchCommonObjSerialPortInfo, ///< 2 - Generic Serial Port Info
+ EArchCommonObjConsolePortInfo, ///< 3 - Serial Console Port Info
+ EArchCommonObjSerialDebugPortInfo, ///< 4 - Serial Debug Port Info
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
+#pragma pack(1)
+
+/** A structure that describes the
+ Power Management Profile Information for the Platform.
+
+ ID: EArchCommonObjPowerManagementProfileInfo
+*/
+typedef struct CmArchCommonPowerManagementProfileInfo {
+ /** This is the Preferred_PM_Profile field of the FADT Table
+ described in the ACPI Specification
+ */
+ UINT8 PowerManagementProfile;
+} CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO;
+
+/** A structure that describes the
+ Serial Port information for the Platform.
+
+ ID: EArchCommonObjConsolePortInfo or
+ EArchCommonObjSerialDebugPortInfo or
+ EArchCommonObjSerialPortInfo
+*/
+typedef struct EArchCommonSerialPortInfo {
+ /// The physical base address for the serial port
+ UINT64 BaseAddress;
+
+ /** The serial port interrupt.
+ 0 indicates that the serial port does not
+ have an interrupt wired.
+ */
+ UINT32 Interrupt;
+
+ /// The serial port baud rate
+ UINT64 BaudRate;
+
+ /// The serial port clock
+ UINT32 Clock;
+
+ /// Serial Port subtype
+ UINT16 PortSubtype;
+
+ /// The Base address length
+ UINT64 BaseAddressLength;
+
+ /// The access size
+ UINT8 AccessSize;
+} CM_ARCH_COMMON_SERIAL_PORT_INFO;
+
+#pragma pack()
+
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index f7e1a0933f7b..4878eb60e3cb 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -30,53 +30,49 @@
typedef enum ArmObjectID {
EArmObjReserved, ///< 0 - Reserved
EArmObjBootArchInfo, ///< 1 - Boot Architecture Info
- EArmObjPowerManagementProfileInfo, ///< 2 - Power Management Profile Info
- EArmObjGicCInfo, ///< 3 - GIC CPU Interface Info
- EArmObjGicDInfo, ///< 4 - GIC Distributor Info
- EArmObjGicMsiFrameInfo, ///< 5 - GIC MSI Frame Info
- EArmObjGicRedistributorInfo, ///< 6 - GIC Redistributor Info
- EArmObjGicItsInfo, ///< 7 - GIC ITS Info
- EArmObjSerialConsolePortInfo, ///< 8 - Serial Console Port Info
- EArmObjSerialDebugPortInfo, ///< 9 - Serial Debug Port Info
- EArmObjGenericTimerInfo, ///< 10 - Generic Timer Info
- EArmObjPlatformGTBlockInfo, ///< 11 - Platform GT Block Info
- EArmObjGTBlockTimerFrameInfo, ///< 12 - Generic Timer Block Frame Info
- EArmObjPlatformGenericWatchdogInfo, ///< 13 - Platform Generic Watchdog
- EArmObjPciConfigSpaceInfo, ///< 14 - PCI Configuration Space Info
- EArmObjHypervisorVendorIdentity, ///< 15 - Hypervisor Vendor Id
- EArmObjFixedFeatureFlags, ///< 16 - Fixed feature flags for FADT
- EArmObjItsGroup, ///< 17 - ITS Group
- EArmObjNamedComponent, ///< 18 - Named Component
- EArmObjRootComplex, ///< 19 - Root Complex
- EArmObjSmmuV1SmmuV2, ///< 20 - SMMUv1 or SMMUv2
- EArmObjSmmuV3, ///< 21 - SMMUv3
- EArmObjPmcg, ///< 22 - PMCG
- EArmObjGicItsIdentifierArray, ///< 23 - GIC ITS Identifier Array
- EArmObjIdMappingArray, ///< 24 - ID Mapping Array
- EArmObjSmmuInterruptArray, ///< 25 - SMMU Interrupt Array
- EArmObjProcHierarchyInfo, ///< 26 - Processor Hierarchy Info
- EArmObjCacheInfo, ///< 27 - Cache Info
- EArmObjCmRef, ///< 28 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 29 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 30 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 31 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 32 - Generic Initiator Affinity
- EArmObjSerialPortInfo, ///< 33 - Generic Serial Port Info
- EArmObjCmn600Info, ///< 34 - CMN-600 Info
- EArmObjLpiInfo, ///< 35 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 36 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 37 - Pci Interrupt Map Info
- EArmObjRmr, ///< 38 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 39 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 40 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 41 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 42 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 43 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 44 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 45 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 46 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 47 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 48 - P-State Dependency (PSD) Info
+ EArmObjGicCInfo, ///< 2 - GIC CPU Interface Info
+ EArmObjGicDInfo, ///< 3 - GIC Distributor Info
+ EArmObjGicMsiFrameInfo, ///< 4 - GIC MSI Frame Info
+ EArmObjGicRedistributorInfo, ///< 5 - GIC Redistributor Info
+ EArmObjGicItsInfo, ///< 6 - GIC ITS Info
+ EArmObjGenericTimerInfo, ///< 7 - Generic Timer Info
+ EArmObjPlatformGTBlockInfo, ///< 8 - Platform GT Block Info
+ EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info
+ EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog
+ EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info
+ EArmObjHypervisorVendorIdentity, ///< 12 - Hypervisor Vendor Id
+ EArmObjFixedFeatureFlags, ///< 13 - Fixed feature flags for FADT
+ EArmObjItsGroup, ///< 14 - ITS Group
+ EArmObjNamedComponent, ///< 15 - Named Component
+ EArmObjRootComplex, ///< 16 - Root Complex
+ EArmObjSmmuV1SmmuV2, ///< 17 - SMMUv1 or SMMUv2
+ EArmObjSmmuV3, ///< 18 - SMMUv3
+ EArmObjPmcg, ///< 19 - PMCG
+ EArmObjGicItsIdentifierArray, ///< 20 - GIC ITS Identifier Array
+ EArmObjIdMappingArray, ///< 21 - ID Mapping Array
+ EArmObjSmmuInterruptArray, ///< 22 - SMMU Interrupt Array
+ EArmObjProcHierarchyInfo, ///< 23 - Processor Hierarchy Info
+ EArmObjCacheInfo, ///< 24 - Cache Info
+ EArmObjCmRef, ///< 25 - CM Object Reference
+ EArmObjMemoryAffinityInfo, ///< 26 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 27 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 28 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 29 - Generic Initiator Affinity
+ EArmObjCmn600Info, ///< 30 - CMN-600 Info
+ EArmObjLpiInfo, ///< 31 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 32 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 33 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 34 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 35 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 36 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 37 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 38 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 39 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 40 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 41 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 42 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 43 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 44 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -92,18 +88,6 @@ typedef struct CmArmBootArchInfo {
UINT16 BootArchFlags;
} CM_ARM_BOOT_ARCH_INFO;
-/** A structure that describes the
- Power Management Profile Information for the Platform.
-
- ID: EArmObjPowerManagementProfileInfo
-*/
-typedef struct CmArmPowerManagementProfileInfo {
- /** This is the Preferred_PM_Profile field of the FADT Table
- described in the ACPI Specification
- */
- UINT8 PowerManagementProfile;
-} CM_ARM_POWER_MANAGEMENT_PROFILE_INFO;
-
/** A structure that describes the
GIC CPU Interface for the Platform.
@@ -310,39 +294,6 @@ typedef struct CmArmGicItsInfo {
UINT32 ProximityDomain;
} CM_ARM_GIC_ITS_INFO;
-/** A structure that describes the
- Serial Port information for the Platform.
-
- ID: EArmObjSerialConsolePortInfo or
- EArmObjSerialDebugPortInfo or
- EArmObjSerialPortInfo
-*/
-typedef struct CmArmSerialPortInfo {
- /// The physical base address for the serial port
- UINT64 BaseAddress;
-
- /** The serial port interrupt.
- 0 indicates that the serial port does not
- have an interrupt wired.
- */
- UINT32 Interrupt;
-
- /// The serial port baud rate
- UINT64 BaudRate;
-
- /// The serial port clock
- UINT32 Clock;
-
- /// Serial Port subtype
- UINT16 PortSubtype;
-
- /// The Base address length
- UINT64 BaseAddressLength;
-
- /// The access size
- UINT8 AccessSize;
-} CM_ARM_SERIAL_PORT_INFO;
-
/** A structure that describes the
Generic Timer information for the Platform.
diff --git a/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h b/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h
index 4835f314c4f1..ac7b39f552de 100644
--- a/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h
+++ b/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h
@@ -29,11 +29,11 @@
EFI_STATUS
EFIAPI
BuildSsdtSerialPortTable (
- IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
- IN CONST CHAR8 *Name,
- IN CONST UINT64 Uid,
- OUT EFI_ACPI_DESCRIPTION_HEADER **Table
+ IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
+ IN CONST CHAR8 *Name,
+ IN CONST UINT64 Uid,
+ OUT EFI_ACPI_DESCRIPTION_HEADER **Table
);
/** Free an SSDT table previously created by
@@ -52,7 +52,7 @@ FreeSsdtSerialPortTable (
/** Validate the Serial Port Information.
- @param [in] SerialPortInfoTable Table of CM_ARM_SERIAL_PORT_INFO.
+ @param [in] SerialPortInfoTable Table of CM_ARCH_COMMON_SERIAL_PORT_INFO.
@param [in] SerialPortCount Count of SerialPort in the table.
@retval EFI_SUCCESS Success.
@@ -61,8 +61,8 @@ FreeSsdtSerialPortTable (
EFI_STATUS
EFIAPI
ValidateSerialPortInfo (
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable,
- IN UINT32 SerialPortCount
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
+ IN UINT32 SerialPortCount
);
#endif // SSDT_SERIAL_PORT_LIB_H_
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
index f6dfb3d94c10..fbf2ba37331d 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c
@@ -33,7 +33,7 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjSerialDebugPortInfo
+ - EArchCommonObjSerialDebugPortInfo
*/
#pragma pack(1)
@@ -181,9 +181,9 @@ DBG2_TABLE AcpiDbg2 = {
debug port information from the Configuration Manager
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjSerialDebugPortInfo,
- CM_ARM_SERIAL_PORT_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjSerialDebugPortInfo,
+ CM_ARCH_COMMON_SERIAL_PORT_INFO
);
/** Initialize the PL011/SBSA UART with the parameters obtained from
@@ -198,7 +198,7 @@ GET_OBJECT_LIST (
STATIC
EFI_STATUS
SetupDebugUart (
- IN CONST CM_ARM_SERIAL_PORT_INFO *CONST SerialPortInfo
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *CONST SerialPortInfo
)
{
EFI_STATUS Status;
@@ -329,10 +329,10 @@ BuildDbg2TableEx (
OUT UINTN *CONST TableCount
)
{
- EFI_STATUS Status;
- CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
- UINT32 SerialPortCount;
- EFI_ACPI_DESCRIPTION_HEADER **TableList;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
+ UINT32 SerialPortCount;
+ EFI_ACPI_DESCRIPTION_HEADER **TableList;
ASSERT (This != NULL);
ASSERT (AcpiTableInfo != NULL);
@@ -358,7 +358,7 @@ BuildDbg2TableEx (
*Table = NULL;
- Status = GetEArmObjSerialDebugPortInfo (
+ Status = GetEArchCommonObjSerialDebugPortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
index 57aaaf85e64a..ea8c821d1155 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
@@ -25,7 +25,7 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjPowerManagementProfileInfo
+ - EArchCommonObjPowerManagementProfileInfo
- EArmObjBootArchInfo
- EArmObjHypervisorVendorIdentity (OPTIONAL)
*/
@@ -202,9 +202,9 @@ EFI_ACPI_6_5_FIXED_ACPI_DESCRIPTION_TABLE AcpiFadt = {
Management Profile Information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjPowerManagementProfileInfo,
- CM_ARM_POWER_MANAGEMENT_PROFILE_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjPowerManagementProfileInfo,
+ CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO
);
/** This macro expands to a function that retrieves the Boot
@@ -253,13 +253,13 @@ FadtAddPmProfileInfo (
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol
)
{
- EFI_STATUS Status;
- CM_ARM_POWER_MANAGEMENT_PROFILE_INFO *PmProfile;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO *PmProfile;
ASSERT (CfgMgrProtocol != NULL);
// Get the Power Management Profile from the Platform Configuration Manager
- Status = GetEArmObjPowerManagementProfileInfo (
+ Status = GetEArchCommonObjPowerManagementProfileInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&PmProfile,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
index 59cbacbfbbde..6f027f3bf941 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c
@@ -33,7 +33,7 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjSerialConsolePortInfo
+ - EArchCommonObjConsolePortInfo
NOTE: This implementation ignores the possibility that the Serial settings may
be modified from the UEFI Shell. A more complex handler would be needed
@@ -98,9 +98,9 @@ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE AcpiSpcr = {
Port Information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjSerialConsolePortInfo,
- CM_ARM_SERIAL_PORT_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjConsolePortInfo,
+ CM_ARCH_COMMON_SERIAL_PORT_INFO
)
/** Free any resources allocated for constructing the tables.
@@ -200,10 +200,10 @@ BuildSpcrTableEx (
OUT UINTN *CONST TableCount
)
{
- EFI_STATUS Status;
- CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
- UINT32 SerialPortCount;
- EFI_ACPI_DESCRIPTION_HEADER **TableList;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
+ UINT32 SerialPortCount;
+ EFI_ACPI_DESCRIPTION_HEADER **TableList;
ASSERT (This != NULL);
ASSERT (AcpiTableInfo != NULL);
@@ -229,7 +229,7 @@ BuildSpcrTableEx (
*Table = NULL;
- Status = GetEArmObjSerialConsolePortInfo (
+ Status = GetEArchCommonObjConsolePortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c
index b850320eede7..671ba057400a 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c
@@ -29,16 +29,16 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjSerialPortInfo
+ - EArchCommonObjSerialPortInfo
*/
/** This macro expands to a function that retrieves the Serial-port
information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjSerialPortInfo,
- CM_ARM_SERIAL_PORT_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjSerialPortInfo,
+ CM_ARCH_COMMON_SERIAL_PORT_INFO
);
/** Starting value for the UID to represent the serial ports.
@@ -167,13 +167,13 @@ BuildSsdtSerialPortTableEx (
OUT UINTN *CONST TableCount
)
{
- EFI_STATUS Status;
- CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
- UINT32 SerialPortCount;
- UINTN Index;
- CHAR8 NewName[AML_NAME_SEG_SIZE + 1];
- UINT64 Uid;
- EFI_ACPI_DESCRIPTION_HEADER **TableList;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
+ UINT32 SerialPortCount;
+ UINTN Index;
+ CHAR8 NewName[AML_NAME_SEG_SIZE + 1];
+ UINT64 Uid;
+ EFI_ACPI_DESCRIPTION_HEADER **TableList;
ASSERT (This != NULL);
ASSERT (AcpiTableInfo != NULL);
@@ -185,7 +185,7 @@ BuildSsdtSerialPortTableEx (
*Table = NULL;
- Status = GetEArmObjSerialPortInfo (
+ Status = GetEArchCommonObjSerialPortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 833fa2d6a24b..412bf41647ae 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -145,53 +145,49 @@ CONST
CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 0 - Reserved
NULL, ///< 1 - Boot Architecture Info
- NULL, ///< 2 - Power Management Profile Info
- NULL, ///< 3 - GIC CPU Interface Info
- NULL, ///< 4 - GIC Distributor Info
- NULL, ///< 5 - GIC MSI Frame Info
- NULL, ///< 6 - GIC Redistributor Info
- NULL, ///< 7 - GIC ITS Info
- NULL, ///< 8 - Serial Console Port Info
- NULL, ///< 9 - Serial Debug Port Info
- NULL, ///< 10 - Generic Timer Info
- NULL, ///< 11 - Platform GT Block Info
- NULL, ///< 12 - Generic Timer Block Frame Info
- NULL, ///< 13 - Platform Generic Watchdog
- NULL, ///< 14 - PCI Configuration Space Info
- NULL, ///< 15 - Hypervisor Vendor Id
- NULL, ///< 16 - Fixed feature flags for FADT
- TokenFixerItsGroup, ///< 17 - ITS Group
- TokenFixerNamedComponentNode, ///< 18 - Named Component
- TokenFixerRootComplexNode, ///< 19 - Root Complex
- TokenFixerNotImplemented, ///< 20 - SMMUv1 or SMMUv2
- TokenFixerSmmuV3Node, ///< 21 - SMMUv3
- TokenFixerNotImplemented, ///< 22 - PMCG
- NULL, ///< 23 - GIC ITS Identifier Array
- NULL, ///< 24 - ID Mapping Array
- NULL, ///< 25 - SMMU Interrupt Array
- TokenFixerNotImplemented, ///< 26 - Processor Hierarchy Info
- TokenFixerNotImplemented, ///< 27 - Cache Info
- NULL, ///< 28 - CM Object Reference
- NULL, ///< 29 - Memory Affinity Info
- NULL, ///< 30 - Device Handle Acpi
- NULL, ///< 31 - Device Handle Pci
- NULL, ///< 32 - Generic Initiator Affinity
- NULL, ///< 33 - Generic Serial Port Info
- NULL, ///< 34 - CMN-600 Info
- NULL, ///< 35 - Lpi Info
- NULL, ///< 36 - Pci Address Map Info
- NULL, ///< 37 - Pci Interrupt Map Info
- NULL, ///< 38 - Reserved Memory Range Node
- NULL, ///< 39 - Memory Range Descriptor
- NULL, ///< 40 - Continuous Performance Control Info
- NULL, ///< 41 - Pcc Subspace Type 0 Info
- NULL, ///< 42 - Pcc Subspace Type 2 Info
- NULL, ///< 43 - Pcc Subspace Type 2 Info
- NULL, ///< 44 - Pcc Subspace Type 3 Info
- NULL, ///< 45 - Pcc Subspace Type 4 Info
- NULL, ///< 46 - Pcc Subspace Type 5 Info
- NULL, ///< 47 - Embedded Trace Extension/Module Info
- NULL ///< 48 - P-State Dependency (PSD) Info
+ NULL, ///< 2 - GIC CPU Interface Info
+ NULL, ///< 3 - GIC Distributor Info
+ NULL, ///< 4 - GIC MSI Frame Info
+ NULL, ///< 5 - GIC Redistributor Info
+ NULL, ///< 6 - GIC ITS Info
+ NULL, ///< 7 - Generic Timer Info
+ NULL, ///< 8 - Platform GT Block Info
+ NULL, ///< 9 - Generic Timer Block Frame Info
+ NULL, ///< 10 - Platform Generic Watchdog
+ NULL, ///< 11 - PCI Configuration Space Info
+ NULL, ///< 12 - Hypervisor Vendor Id
+ NULL, ///< 13 - Fixed feature flags for FADT
+ TokenFixerItsGroup, ///< 14 - ITS Group
+ TokenFixerNamedComponentNode, ///< 15 - Named Component
+ TokenFixerRootComplexNode, ///< 16 - Root Complex
+ TokenFixerNotImplemented, ///< 17 - SMMUv1 or SMMUv2
+ TokenFixerSmmuV3Node, ///< 18 - SMMUv3
+ TokenFixerNotImplemented, ///< 19 - PMCG
+ NULL, ///< 20 - GIC ITS Identifier Array
+ NULL, ///< 21 - ID Mapping Array
+ NULL, ///< 22 - SMMU Interrupt Array
+ TokenFixerNotImplemented, ///< 23 - Processor Hierarchy Info
+ TokenFixerNotImplemented, ///< 24 - Cache Info
+ NULL, ///< 25 - Memory Affinity Info
+ NULL, ///< 26 - Memory Affinity Info
+ NULL, ///< 27 - Device Handle Acpi
+ NULL, ///< 28 - Device Handle Pci
+ NULL, ///< 29 - Generic Initiator Affinity
+ NULL, ///< 30 - CMN-600 Info
+ NULL, ///< 31 - Lpi Info
+ NULL, ///< 32 - Pci Address Map Info
+ NULL, ///< 33 - Pci Interrupt Map Info
+ NULL, ///< 34 - Reserved Memory Range Node
+ NULL, ///< 35 - Memory Range Descriptor
+ NULL, ///< 36 - Continuous Performance Control Info
+ NULL, ///< 37 - Pcc Subspace Type 0 Info
+ NULL, ///< 38 - Pcc Subspace Type 2 Info
+ NULL, ///< 39 - Pcc Subspace Type 2 Info
+ NULL, ///< 40 - Pcc Subspace Type 3 Info
+ NULL, ///< 41 - Pcc Subspace Type 4 Info
+ NULL, ///< 42 - Pcc Subspace Type 5 Info
+ NULL, ///< 43 - Embedded Trace Extension/Module Info
+ NULL ///< 44 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.
diff --git a/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c b/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c
index b1a628e419f0..eda2aa999ea6 100644
--- a/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c
+++ b/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c
@@ -46,7 +46,7 @@ extern CHAR8 ssdtserialporttemplate_aml_code[];
/** Validate the Serial Port Information.
- @param [in] SerialPortInfoTable Table of CM_ARM_SERIAL_PORT_INFO.
+ @param [in] SerialPortInfoTable Table of CM_ARCH_COMMON_SERIAL_PORT_INFO.
@param [in] SerialPortCount Count of SerialPort in the table.
@retval EFI_SUCCESS Success.
@@ -55,12 +55,12 @@ extern CHAR8 ssdtserialporttemplate_aml_code[];
EFI_STATUS
EFIAPI
ValidateSerialPortInfo (
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable,
- IN UINT32 SerialPortCount
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
+ IN UINT32 SerialPortCount
)
{
- UINT32 Index;
- CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
+ UINT32 Index;
+ CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
if ((SerialPortInfoTable == NULL) ||
(SerialPortCount == 0))
@@ -163,9 +163,9 @@ STATIC
EFI_STATUS
EFIAPI
FixupIds (
- IN AML_ROOT_NODE_HANDLE RootNodeHandle,
- IN CONST UINT64 Uid,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
+ IN AML_ROOT_NODE_HANDLE RootNodeHandle,
+ IN CONST UINT64 Uid,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
)
{
EFI_STATUS Status;
@@ -290,8 +290,8 @@ STATIC
EFI_STATUS
EFIAPI
FixupCrs (
- IN AML_ROOT_NODE_HANDLE RootNodeHandle,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
+ IN AML_ROOT_NODE_HANDLE RootNodeHandle,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
)
{
EFI_STATUS Status;
@@ -366,9 +366,9 @@ STATIC
EFI_STATUS
EFIAPI
FixupName (
- IN AML_ROOT_NODE_HANDLE RootNodeHandle,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
- IN CONST CHAR8 *Name
+ IN AML_ROOT_NODE_HANDLE RootNodeHandle,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
+ IN CONST CHAR8 *Name
)
{
EFI_STATUS Status;
@@ -410,11 +410,11 @@ STATIC
EFI_STATUS
EFIAPI
FixupSerialPortInfo (
- IN AML_ROOT_NODE_HANDLE RootNodeHandle,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
- IN CONST CHAR8 *Name,
- IN CONST UINT64 Uid,
- OUT EFI_ACPI_DESCRIPTION_HEADER **Table
+ IN AML_ROOT_NODE_HANDLE RootNodeHandle,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
+ IN CONST CHAR8 *Name,
+ IN CONST UINT64 Uid,
+ OUT EFI_ACPI_DESCRIPTION_HEADER **Table
)
{
EFI_STATUS Status;
@@ -480,11 +480,11 @@ FreeSsdtSerialPortTable (
EFI_STATUS
EFIAPI
BuildSsdtSerialPortTable (
- IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
- IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
- IN CONST CHAR8 *Name,
- IN CONST UINT64 Uid,
- OUT EFI_ACPI_DESCRIPTION_HEADER **Table
+ IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
+ IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
+ IN CONST CHAR8 *Name,
+ IN CONST UINT64 Uid,
+ OUT EFI_ACPI_DESCRIPTION_HEADER **Table
)
{
EFI_STATUS Status;
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index 6896463b2848..334d2a026596 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -57,9 +57,9 @@ STATIC CONST CM_OBJ_PARSER CmArmBootArchInfoParser[] = {
{ "BootArchFlags", 2, "0x%x", NULL }
};
-/** A parser for EArmObjPowerManagementProfileInfo.
+/** A parser for EArchCommonObjPowerManagementProfileInfo.
*/
-STATIC CONST CM_OBJ_PARSER CmArmPowerManagementProfileInfoParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonPowerManagementProfileInfoParser[] = {
{ "PowerManagementProfile", 1, "0x%x", NULL }
};
@@ -122,10 +122,10 @@ STATIC CONST CM_OBJ_PARSER CmArmGicItsInfoParser[] = {
{ "ProximityDomain", 4, "0x%x", NULL }
};
-/** A parser for EArmObjSerialConsolePortInfo,
- EArmObjSerialDebugPortInfo and EArmObjSerialPortInfo.
+/** A parser for EArchCommonObjConsolePortInfo,
+ EArchCommonObjSerialDebugPortInfo and EArchCommonObjSerialPortInfo.
*/
-STATIC CONST CM_OBJ_PARSER CmArmSerialPortInfoParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonSerialPortInfoParser[] = {
{ "BaseAddress", 8, "0x%llx", NULL },
{ "Interrupt", 4, "0x%x", NULL },
{ "BaudRate", 8, "0x%llx", NULL },
@@ -671,6 +671,10 @@ STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = {
*/
STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjPowerManagementProfileInfo,CmArchCommonPowerManagementProfileInfoParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjSerialPortInfo, CmArchCommonSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -679,14 +683,11 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT_RESERVED (EArmObjReserved),
CM_PARSER_ADD_OBJECT (EArmObjBootArchInfo, CmArmBootArchInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjPowerManagementProfileInfo, CmArmPowerManagementProfileInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicCInfo, CmArmGicCInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicDInfo, CmArmGicDInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjSerialConsolePortInfo, CmArmSerialPortInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjSerialDebugPortInfo, CmArmSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
@@ -710,7 +711,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser),
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjSerialPortInfo, CmArmSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPciAddressMapInfo, CmArmPciAddressMapInfoParser),
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c
index 732b482eebe3..f17ad2e842e2 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c
@@ -71,7 +71,7 @@ CONST COMPATIBILITY_INFO SerialSbsaCompatibleInfo = {
@param [in] Fdt Pointer to a Flattened Device Tree (Fdt).
@param [in] SerialPortNode Offset of a serial-port node.
- @param [in] SerialPortInfo The CM_ARM_SERIAL_PORT_INFO to populate.
+ @param [in] SerialPortInfo The CM_ARCH_COMMON_SERIAL_PORT_INFO to populate.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ABORTED An error occurred.
@@ -82,9 +82,9 @@ STATIC
EFI_STATUS
EFIAPI
SerialPortNodeParser (
- IN CONST VOID *Fdt,
- IN INT32 SerialPortNode,
- IN CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
+ IN CONST VOID *Fdt,
+ IN INT32 SerialPortNode,
+ IN CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
)
{
EFI_STATUS Status;
@@ -313,7 +313,7 @@ GetSerialConsoleNode (
return EFI_SUCCESS;
}
-/** CM_ARM_SERIAL_PORT_INFO dispatcher function (for a generic serial-port).
+/** CM_ARCH_COMMON_SERIAL_PORT_INFO dispatcher function (for a generic serial-port).
@param [in] FdtParserHandle A handle to the parser instance.
@param [in] GenericSerialInfo Pointer to a serial port info list.
@@ -331,9 +331,9 @@ EFI_STATUS
EFIAPI
ArmSerialPortInfoDispatch (
IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle,
- IN CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo,
+ IN CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo,
IN INT32 NodeCount,
- IN EARM_OBJECT_ID SerialObjectId
+ IN EARCH_COMMON_OBJECT_ID SerialObjectId
)
{
EFI_STATUS Status;
@@ -344,9 +344,9 @@ ArmSerialPortInfoDispatch (
return EFI_INVALID_PARAMETER;
}
- if ((SerialObjectId != EArmObjSerialPortInfo) &&
- (SerialObjectId != EArmObjSerialDebugPortInfo) &&
- (SerialObjectId != EArmObjSerialConsolePortInfo))
+ if ((SerialObjectId != EArchCommonObjSerialPortInfo) &&
+ (SerialObjectId != EArchCommonObjSerialDebugPortInfo) &&
+ (SerialObjectId != EArchCommonObjConsolePortInfo))
{
ASSERT (0);
return EFI_INVALID_PARAMETER;
@@ -354,10 +354,10 @@ ArmSerialPortInfoDispatch (
// Dispatch the Generic Serial ports
Status = CreateCmObjDesc (
- CREATE_CM_ARM_OBJECT_ID (SerialObjectId),
+ CREATE_CM_ARCH_COMMON_OBJECT_ID (SerialObjectId),
NodeCount,
GenericSerialInfo,
- sizeof (CM_ARM_SERIAL_PORT_INFO) * NodeCount,
+ sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO) * NodeCount,
&NewCmObjDesc
);
if (EFI_ERROR (Status)) {
@@ -372,19 +372,19 @@ ArmSerialPortInfoDispatch (
return Status;
}
-/** CM_ARM_SERIAL_PORT_INFO parser function (for debug/console serial-port).
+/** CM_ARCH_COMMON_SERIAL_PORT_INFO parser function (for debug/console serial-port).
This parser expects FdtBranch to be the debug serial-port node.
At most one CmObj is created.
The following structure is populated:
- typedef struct CmArmSerialPortInfo {
+ typedef struct EArchCommonSerialPortInfo {
UINT64 BaseAddress; // {Populated}
UINT32 Interrupt; // {Populated}
UINT64 BaudRate; // {default}
UINT32 Clock; // {Populated}
UINT16 PortSubtype; // {Populated}
UINT64 BaseAddressLength // {Populated}
- } CM_ARM_SERIAL_PORT_INFO;
+ } CM_ARCH_COMMON_SERIAL_PORT_INFO;
A parser parses a Device Tree to populate a specific CmObj type. None,
one or many CmObj can be created by the parser.
@@ -396,7 +396,8 @@ ArmSerialPortInfoDispatch (
@param [in] FdtParserHandle A handle to the parser instance.
@param [in] FdtBranch When searching for DT node name, restrict
the search to this Device Tree branch.
- @param [in] SerialObjectId ArmNamespace Object ID for the serial port.
+ @param [in] SerialObjectId ArchCommon Namespace Object ID for the serial
+ port.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ABORTED An error occurred.
@@ -410,14 +411,14 @@ EFIAPI
ArmSerialPortInfoParser (
IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle,
IN INT32 FdtBranch,
- IN EARM_OBJECT_ID SerialObjectId
+ IN EARCH_COMMON_OBJECT_ID SerialObjectId
)
{
- EFI_STATUS Status;
- CM_ARM_SERIAL_PORT_INFO SerialInfo;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_SERIAL_PORT_INFO SerialInfo;
- if ((SerialObjectId != EArmObjSerialDebugPortInfo) &&
- (SerialObjectId != EArmObjSerialConsolePortInfo))
+ if ((SerialObjectId != EArchCommonObjSerialDebugPortInfo) &&
+ (SerialObjectId != EArchCommonObjConsolePortInfo))
{
ASSERT (0);
return EFI_INVALID_PARAMETER;
@@ -447,11 +448,11 @@ ArmSerialPortInfoParser (
/** SerialPort dispatcher.
- This disptacher populates the CM_ARM_SERIAL_PORT_INFO structure for
+ This disptacher populates the CM_ARCH_COMMON_SERIAL_PORT_INFO structure for
the following CM_OBJ_ID:
- - EArmObjSerialConsolePortInfo
- - EArmObjSerialDebugPortInfo
- - EArmObjSerialPortInfo
+ - EArchCommonObjConsolePortInfo
+ - EArchCommonObjSerialDebugPortInfo
+ - EArchCommonObjSerialPortInfo
A parser parses a Device Tree to populate a specific CmObj type. None,
one or many CmObj can be created by the parser.
@@ -477,16 +478,16 @@ SerialPortDispatcher (
IN INT32 FdtBranch
)
{
- EFI_STATUS Status;
- INT32 SerialConsoleNode;
- INT32 SerialDebugNode;
- INT32 SerialNode;
- UINT32 Index;
- UINT32 SerialNodeCount;
- UINT32 SerialNodesRemaining;
- CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo;
- UINT32 GenericSerialIndex;
- VOID *Fdt;
+ EFI_STATUS Status;
+ INT32 SerialConsoleNode;
+ INT32 SerialDebugNode;
+ INT32 SerialNode;
+ UINT32 Index;
+ UINT32 SerialNodeCount;
+ UINT32 SerialNodesRemaining;
+ CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo;
+ UINT32 GenericSerialIndex;
+ VOID *Fdt;
if (FdtParserHandle == NULL) {
ASSERT (0);
@@ -531,7 +532,7 @@ SerialPortDispatcher (
Status = ArmSerialPortInfoParser (
FdtParserHandle,
SerialConsoleNode,
- EArmObjSerialConsolePortInfo
+ EArchCommonObjConsolePortInfo
);
if (EFI_ERROR (Status)) {
ASSERT (0);
@@ -550,7 +551,7 @@ SerialPortDispatcher (
SerialNodesRemaining--;
GenericSerialInfo = AllocateZeroPool (
SerialNodesRemaining *
- sizeof (CM_ARM_SERIAL_PORT_INFO)
+ sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO)
);
if (GenericSerialInfo == NULL) {
ASSERT (0);
@@ -589,7 +590,7 @@ SerialPortDispatcher (
Status = ArmSerialPortInfoParser (
FdtParserHandle,
SerialDebugNode,
- EArmObjSerialDebugPortInfo
+ EArchCommonObjSerialDebugPortInfo
);
if (EFI_ERROR (Status)) {
ASSERT (0);
@@ -620,7 +621,7 @@ SerialPortDispatcher (
FdtParserHandle,
GenericSerialInfo,
GenericSerialIndex,
- EArmObjSerialPortInfo
+ EArchCommonObjSerialPortInfo
);
}
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h
index de08e57e6c57..037c409d450a 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h
@@ -14,11 +14,11 @@
/** SerialPort dispatcher.
- This disptacher populates the CM_ARM_SERIAL_PORT_INFO structure for
+ This disptacher populates the CM_ARCH_COMMON_SERIAL_PORT_INFO structure for
the following CM_OBJ_ID:
- - EArmObjSerialConsolePortInfo
- - EArmObjSerialDebugPortInfo
- - EArmObjSerialPortInfo
+ - EArchCommonObjConsolePortInfo
+ - EArchCommonObjSerialDebugPortInfo
+ - EArchCommonObjSerialPortInfo
A parser parses a Device Tree to populate a specific CmObj type. None,
one or many CmObj can be created by the parser.
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 8d30bf560b3d..90f03f00e7d3 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -442,53 +442,49 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| ---: | :-------------------------- | :--- |
| 0 | Reserved | |
| 1 | Boot Architecture Info | |
-| 2 | Power Management Profile Info | Move to Arch Common NS |
-| 3 | GICC Info | |
-| 4 | GICD Info | |
-| 5 | GIC MSI Frame Info | |
-| 6 | GIC Redistributor Info | |
-| 7 | GIC ITS Info | |
-| 8 | Serial Console Port Info | Move to Arch Common NS |
-| 9 | Serial Debug Port Info | Move to Arch Common NS |
-| 10 | Generic Timer Info | |
-| 11 | Platform GT Block Info | |
-| 12 | Generic Timer Block Frame Info | |
-| 13 | Platform Generic Watchdog | |
-| 14 | PCI Configuration Space Info | Move to Arch Common NS |
-| 15 | Hypervisor Vendor Id | Move to Arch Common NS |
-| 16 | Fixed feature flags for FADT | Move to Arch Common NS |
-| 17 | ITS Group | |
-| 18 | Named Component | |
-| 19 | Root Complex | |
-| 20 | SMMUv1 or SMMUv2 | |
-| 21 | SMMUv3 | |
-| 22 | PMCG | |
-| 23 | GIC ITS Identifier Array | |
-| 24 | ID Mapping Array | |
-| 25 | SMMU Interrupt Array | |
-| 26 | Processor Hierarchy Info | Move to Arch Common NS |
-| 27 | Cache Info | Move to Arch Common NS |
-| 28 | CM Object Reference | Move to Arch Common NS |
-| 29 | Memory Affinity Info | Move to Arch Common NS |
-| 30 | Device Handle Acpi | Move to Arch Common NS |
-| 31 | Device Handle PCI | Move to Arch Common NS |
-| 32 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 33 | Serial Port Info | Move to Arch Common NS |
-| 34 | CMN 600 Info | |
-| 35 | Low Power Idle State Info | Move to Arch Common NS |
-| 36 | PCI Address Map Info | Move to Arch Common NS |
-| 37 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 38 | Reserved Memory Range Node | |
-| 39 | Memory Range Descriptor | |
-| 40 | Continuous Performance Control Info | Move to Arch Common NS |
-| 41 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 42 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 43 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 44 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 45 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 46 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 47 | Embedded Trace Extension/Module Info | |
-| 48 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 2 | GICC Info | |
+| 3 | GICD Info | |
+| 4 | GIC MSI Frame Info | |
+| 5 | GIC Redistributor Info | |
+| 6 | GIC ITS Info | |
+| 7 | Generic Timer Info | |
+| 8 | Platform GT Block Info | |
+| 9 | Generic Timer Block Frame Info | |
+| 10 | Platform Generic Watchdog | |
+| 11 | PCI Configuration Space Info | Move to Arch Common NS |
+| 12 | Hypervisor Vendor Id | Move to Arch Common NS |
+| 13 | Fixed feature flags for FADT | Move to Arch Common NS |
+| 14 | ITS Group | |
+| 15 | Named Component | |
+| 16 | Root Complex | |
+| 17 | SMMUv1 or SMMUv2 | |
+| 18 | SMMUv3 | |
+| 19 | PMCG | |
+| 20 | GIC ITS Identifier Array | |
+| 21 | ID Mapping Array | |
+| 22 | SMMU Interrupt Array | |
+| 23 | Processor Hierarchy Info | Move to Arch Common NS |
+| 24 | Cache Info | Move to Arch Common NS |
+| 25 | CM Object Reference | Move to Arch Common NS |
+| 26 | Memory Affinity Info | Move to Arch Common NS |
+| 27 | Device Handle Acpi | Move to Arch Common NS |
+| 28 | Device Handle PCI | Move to Arch Common NS |
+| 29 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 30 | CMN 600 Info | |
+| 31 | Low Power Idle State Info | Move to Arch Common NS |
+| 32 | PCI Address Map Info | Move to Arch Common NS |
+| 33 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 34 | Reserved Memory Range Node | |
+| 35 | Memory Range Descriptor | |
+| 36 | Continuous Performance Control Info | Move to Arch Common NS |
+| 37 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 38 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 39 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 40 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 41 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 42 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 43 | Embedded Trace Extension/Module Info | |
+| 44 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@@ -496,4 +492,8 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| ID | Description | Comments |
| ---: | :-------------------------- | :--- |
| 0 | Reserved | |
+| 1 | Power Management Profile Info | |
+| 2 | Serial Port Info | |
+| 3 | Serial Console Port Info | |
+| 4 | Serial Debug Port Info | |
| `*` | All other values are reserved. | |
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116973): https://edk2.groups.io/g/devel/message/116973
Mute This Topic: https://groups.io/mt/105067987/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 13/16] DynamicTablesPkg: Move Hypervisor Vendor Id to Arch Common
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (11 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 12/16] DynamicTablesPkg & ArmVirtPkg: Move Power Mgmt Profile Info Object PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 14/16] DynamicTablesPkg: Move FADT Fixed Features Flags " PierreGondois
` (3 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Move Hypervisor Vendor Id info object from Arm Namespace to
the Arch Common namespace.
Correspondingly also update the following modules to reflect the
changes introduced by the move:
- FADT 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>
---
.../Include/ArchCommonNameSpaceObjects.h | 11 +++
.../Include/ArmNameSpaceObjects.h | 75 ++++++++-----------
.../Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c | 16 ++--
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 61 ++++++++-------
.../ConfigurationManagerObjectParser.c | 6 +-
DynamicTablesPkg/Readme.md | 66 ++++++++--------
6 files changed, 117 insertions(+), 118 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
index 4eabb4d38b40..401a24b6a5cd 100644
--- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -25,6 +25,7 @@ typedef enum ArchCommonObjectID {
EArchCommonObjSerialPortInfo, ///< 2 - Generic Serial Port Info
EArchCommonObjConsolePortInfo, ///< 3 - Serial Console Port Info
EArchCommonObjSerialDebugPortInfo, ///< 4 - Serial Debug Port Info
+ EArchCommonObjHypervisorVendorIdentity, ///< 5 - Hypervisor Vendor Id
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@@ -75,6 +76,16 @@ typedef struct EArchCommonSerialPortInfo {
UINT8 AccessSize;
} CM_ARCH_COMMON_SERIAL_PORT_INFO;
+/** A structure that describes the
+ Hypervisor Vendor ID information for the Platform.
+
+ ID: EArchCommonObjHypervisorVendorIdentity
+*/
+typedef struct CmArchCommonHypervisorVendorIdentity {
+ /// The hypervisor Vendor ID
+ UINT64 HypervisorVendorId;
+} CM_ARCH_COMMON_HYPERVISOR_VENDOR_ID;
+
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 4878eb60e3cb..48e65a3cc0a5 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -40,39 +40,38 @@ typedef enum ArmObjectID {
EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info
EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog
EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info
- EArmObjHypervisorVendorIdentity, ///< 12 - Hypervisor Vendor Id
- EArmObjFixedFeatureFlags, ///< 13 - Fixed feature flags for FADT
- EArmObjItsGroup, ///< 14 - ITS Group
- EArmObjNamedComponent, ///< 15 - Named Component
- EArmObjRootComplex, ///< 16 - Root Complex
- EArmObjSmmuV1SmmuV2, ///< 17 - SMMUv1 or SMMUv2
- EArmObjSmmuV3, ///< 18 - SMMUv3
- EArmObjPmcg, ///< 19 - PMCG
- EArmObjGicItsIdentifierArray, ///< 20 - GIC ITS Identifier Array
- EArmObjIdMappingArray, ///< 21 - ID Mapping Array
- EArmObjSmmuInterruptArray, ///< 22 - SMMU Interrupt Array
- EArmObjProcHierarchyInfo, ///< 23 - Processor Hierarchy Info
- EArmObjCacheInfo, ///< 24 - Cache Info
- EArmObjCmRef, ///< 25 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 26 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 27 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 28 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 29 - Generic Initiator Affinity
- EArmObjCmn600Info, ///< 30 - CMN-600 Info
- EArmObjLpiInfo, ///< 31 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 32 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 33 - Pci Interrupt Map Info
- EArmObjRmr, ///< 34 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 35 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 36 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 37 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 38 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 39 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 40 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 41 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 42 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 43 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 44 - P-State Dependency (PSD) Info
+ EArmObjFixedFeatureFlags, ///< 12 - Fixed feature flags for FADT
+ EArmObjItsGroup, ///< 13 - ITS Group
+ EArmObjNamedComponent, ///< 14 - Named Component
+ EArmObjRootComplex, ///< 15 - Root Complex
+ EArmObjSmmuV1SmmuV2, ///< 16 - SMMUv1 or SMMUv2
+ EArmObjSmmuV3, ///< 17 - SMMUv3
+ EArmObjPmcg, ///< 18 - PMCG
+ EArmObjGicItsIdentifierArray, ///< 19 - GIC ITS Identifier Array
+ EArmObjIdMappingArray, ///< 20 - ID Mapping Array
+ EArmObjSmmuInterruptArray, ///< 21 - SMMU Interrupt Array
+ EArmObjProcHierarchyInfo, ///< 22 - Processor Hierarchy Info
+ EArmObjCacheInfo, ///< 23 - Cache Info
+ EArmObjCmRef, ///< 24 - CM Object Reference
+ EArmObjMemoryAffinityInfo, ///< 25 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 26 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 27 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 28 - Generic Initiator Affinity
+ EArmObjCmn600Info, ///< 29 - CMN-600 Info
+ EArmObjLpiInfo, ///< 30 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 31 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 32 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 33 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 34 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 35 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 36 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 37 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 38 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 39 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 40 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 41 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 42 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 43 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -438,16 +437,6 @@ typedef struct CmArmPciConfigSpaceInfo {
CM_OBJECT_TOKEN InterruptMapToken;
} CM_ARM_PCI_CONFIG_SPACE_INFO;
-/** A structure that describes the
- Hypervisor Vendor ID information for the Platform.
-
- ID: EArmObjHypervisorVendorIdentity
-*/
-typedef struct CmArmHypervisorVendorId {
- /// The hypervisor Vendor ID
- UINT64 HypervisorVendorId;
-} CM_ARM_HYPERVISOR_VENDOR_ID;
-
/** A structure that describes the
Fixed feature flags for the Platform.
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
index ea8c821d1155..868a974fed28 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
@@ -27,7 +27,7 @@ Requirements:
this Generator:
- EArchCommonObjPowerManagementProfileInfo
- EArmObjBootArchInfo
- - EArmObjHypervisorVendorIdentity (OPTIONAL)
+ - EArchCommonObjHypervisorVendorIdentity (OPTIONAL)
*/
/** This macro defines the FADT flag options for ARM Platforms.
@@ -220,9 +220,9 @@ GET_OBJECT_LIST (
Vendor ID from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjHypervisorVendorIdentity,
- CM_ARM_HYPERVISOR_VENDOR_ID
+ EObjNameSpaceArchCommon,
+ EArchCommonObjHypervisorVendorIdentity,
+ CM_ARCH_COMMON_HYPERVISOR_VENDOR_ID
);
/** This macro expands to a function that retrieves the Fixed
@@ -358,13 +358,13 @@ FadtAddHypervisorVendorId (
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol
)
{
- EFI_STATUS Status;
- CM_ARM_HYPERVISOR_VENDOR_ID *HypervisorVendorInfo;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_HYPERVISOR_VENDOR_ID *HypervisorVendorInfo;
ASSERT (CfgMgrProtocol != NULL);
// Get the Hypervisor Vendor ID from the Platform Configuration Manager
- Status = GetEArmObjHypervisorVendorIdentity (
+ Status = GetEArchCommonObjHypervisorVendorIdentity (
CfgMgrProtocol,
CM_NULL_TOKEN,
&HypervisorVendorInfo,
@@ -391,7 +391,7 @@ FadtAddHypervisorVendorId (
DEBUG ((
DEBUG_INFO,
- "FADT: EArmObjHypervisorVendorIdentity = 0x%lx\n",
+ "FADT: EArchCommonObjHypervisorVendorIdentity = 0x%lx\n",
HypervisorVendorInfo->HypervisorVendorId
));
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 412bf41647ae..34ba9f26733f 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -155,39 +155,38 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 9 - Generic Timer Block Frame Info
NULL, ///< 10 - Platform Generic Watchdog
NULL, ///< 11 - PCI Configuration Space Info
- NULL, ///< 12 - Hypervisor Vendor Id
- NULL, ///< 13 - Fixed feature flags for FADT
- TokenFixerItsGroup, ///< 14 - ITS Group
- TokenFixerNamedComponentNode, ///< 15 - Named Component
- TokenFixerRootComplexNode, ///< 16 - Root Complex
- TokenFixerNotImplemented, ///< 17 - SMMUv1 or SMMUv2
- TokenFixerSmmuV3Node, ///< 18 - SMMUv3
- TokenFixerNotImplemented, ///< 19 - PMCG
- NULL, ///< 20 - GIC ITS Identifier Array
- NULL, ///< 21 - ID Mapping Array
- NULL, ///< 22 - SMMU Interrupt Array
- TokenFixerNotImplemented, ///< 23 - Processor Hierarchy Info
- TokenFixerNotImplemented, ///< 24 - Cache Info
+ NULL, ///< 12 - Fixed feature flags for FADT
+ TokenFixerItsGroup, ///< 13 - ITS Group
+ TokenFixerNamedComponentNode, ///< 14 - Named Component
+ TokenFixerRootComplexNode, ///< 15 - Root Complex
+ TokenFixerNotImplemented, ///< 16 - SMMUv1 or SMMUv2
+ TokenFixerSmmuV3Node, ///< 17 - SMMUv3
+ TokenFixerNotImplemented, ///< 18 - PMCG
+ NULL, ///< 19 - GIC ITS Identifier Array
+ NULL, ///< 20 - ID Mapping Array
+ NULL, ///< 21 - SMMU Interrupt Array
+ TokenFixerNotImplemented, ///< 22 - Processor Hierarchy Info
+ TokenFixerNotImplemented, ///< 23 - Cache Info
+ NULL, ///< 24 - Memory Affinity Info
NULL, ///< 25 - Memory Affinity Info
- NULL, ///< 26 - Memory Affinity Info
- NULL, ///< 27 - Device Handle Acpi
- NULL, ///< 28 - Device Handle Pci
- NULL, ///< 29 - Generic Initiator Affinity
- NULL, ///< 30 - CMN-600 Info
- NULL, ///< 31 - Lpi Info
- NULL, ///< 32 - Pci Address Map Info
- NULL, ///< 33 - Pci Interrupt Map Info
- NULL, ///< 34 - Reserved Memory Range Node
- NULL, ///< 35 - Memory Range Descriptor
- NULL, ///< 36 - Continuous Performance Control Info
- NULL, ///< 37 - Pcc Subspace Type 0 Info
+ NULL, ///< 26 - Device Handle Acpi
+ NULL, ///< 27 - Device Handle Pci
+ NULL, ///< 28 - Generic Initiator Affinity
+ NULL, ///< 29 - CMN-600 Info
+ NULL, ///< 30 - Lpi Info
+ NULL, ///< 31 - Pci Address Map Info
+ NULL, ///< 32 - Pci Interrupt Map Info
+ NULL, ///< 33 - Reserved Memory Range Node
+ NULL, ///< 34 - Memory Range Descriptor
+ NULL, ///< 35 - Continuous Performance Control Info
+ NULL, ///< 36 - Pcc Subspace Type 0 Info
+ NULL, ///< 37 - Pcc Subspace Type 2 Info
NULL, ///< 38 - Pcc Subspace Type 2 Info
- NULL, ///< 39 - Pcc Subspace Type 2 Info
- NULL, ///< 40 - Pcc Subspace Type 3 Info
- NULL, ///< 41 - Pcc Subspace Type 4 Info
- NULL, ///< 42 - Pcc Subspace Type 5 Info
- NULL, ///< 43 - Embedded Trace Extension/Module Info
- NULL ///< 44 - P-State Dependency (PSD) Info
+ NULL, ///< 39 - Pcc Subspace Type 3 Info
+ NULL, ///< 40 - Pcc Subspace Type 4 Info
+ NULL, ///< 41 - Pcc Subspace Type 5 Info
+ NULL, ///< 42 - Embedded Trace Extension/Module Info
+ NULL ///< 43 - 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 334d2a026596..1b3532f94088 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -193,9 +193,9 @@ STATIC CONST CM_OBJ_PARSER CmArmPciConfigSpaceInfoParser[] = {
{ "InterruptMapToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL },
};
-/** A parser for EArmObjHypervisorVendorIdentity.
+/** A parser for EArchCommonObjHypervisorVendorIdentity.
*/
-STATIC CONST CM_OBJ_PARSER CmArmHypervisorVendorIdParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonHypervisorVendorIdentityParser[] = {
{ "HypervisorVendorId", 8, "0x%llx", NULL }
};
@@ -675,6 +675,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialPortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -693,7 +694,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo, CmArmGenericWatchdogInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPciConfigSpaceInfo, CmArmPciConfigSpaceInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjHypervisorVendorIdentity, CmArmHypervisorVendorIdParser),
CM_PARSER_ADD_OBJECT (EArmObjFixedFeatureFlags, CmArmFixedFeatureFlagsParser),
CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser),
CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser),
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 90f03f00e7d3..79ccd86e8558 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -452,39 +452,38 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 9 | Generic Timer Block Frame Info | |
| 10 | Platform Generic Watchdog | |
| 11 | PCI Configuration Space Info | Move to Arch Common NS |
-| 12 | Hypervisor Vendor Id | Move to Arch Common NS |
-| 13 | Fixed feature flags for FADT | Move to Arch Common NS |
-| 14 | ITS Group | |
-| 15 | Named Component | |
-| 16 | Root Complex | |
-| 17 | SMMUv1 or SMMUv2 | |
-| 18 | SMMUv3 | |
-| 19 | PMCG | |
-| 20 | GIC ITS Identifier Array | |
-| 21 | ID Mapping Array | |
-| 22 | SMMU Interrupt Array | |
-| 23 | Processor Hierarchy Info | Move to Arch Common NS |
-| 24 | Cache Info | Move to Arch Common NS |
-| 25 | CM Object Reference | Move to Arch Common NS |
-| 26 | Memory Affinity Info | Move to Arch Common NS |
-| 27 | Device Handle Acpi | Move to Arch Common NS |
-| 28 | Device Handle PCI | Move to Arch Common NS |
-| 29 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 30 | CMN 600 Info | |
-| 31 | Low Power Idle State Info | Move to Arch Common NS |
-| 32 | PCI Address Map Info | Move to Arch Common NS |
-| 33 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 34 | Reserved Memory Range Node | |
-| 35 | Memory Range Descriptor | |
-| 36 | Continuous Performance Control Info | Move to Arch Common NS |
-| 37 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 38 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 39 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 40 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 41 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 42 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 43 | Embedded Trace Extension/Module Info | |
-| 44 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 12 | Fixed feature flags for FADT | Move to Arch Common NS |
+| 13 | ITS Group | |
+| 14 | Named Component | |
+| 15 | Root Complex | |
+| 16 | SMMUv1 or SMMUv2 | |
+| 17 | SMMUv3 | |
+| 18 | PMCG | |
+| 19 | GIC ITS Identifier Array | |
+| 20 | ID Mapping Array | |
+| 21 | SMMU Interrupt Array | |
+| 22 | Processor Hierarchy Info | Move to Arch Common NS |
+| 23 | Cache Info | Move to Arch Common NS |
+| 24 | CM Object Reference | Move to Arch Common NS |
+| 25 | Memory Affinity Info | Move to Arch Common NS |
+| 26 | Device Handle Acpi | Move to Arch Common NS |
+| 27 | Device Handle PCI | Move to Arch Common NS |
+| 28 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 29 | CMN 600 Info | |
+| 30 | Low Power Idle State Info | Move to Arch Common NS |
+| 31 | PCI Address Map Info | Move to Arch Common NS |
+| 32 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 33 | Reserved Memory Range Node | |
+| 34 | Memory Range Descriptor | |
+| 35 | Continuous Performance Control Info | Move to Arch Common NS |
+| 36 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 37 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 38 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 39 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 40 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 41 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 42 | Embedded Trace Extension/Module Info | |
+| 43 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@@ -496,4 +495,5 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 2 | Serial Port Info | |
| 3 | Serial Console Port Info | |
| 4 | Serial Debug Port Info | |
+| 5 | Hypervisor Vendor Id | |
| `*` | All other values are reserved. | |
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116974): https://edk2.groups.io/g/devel/message/116974
Mute This Topic: https://groups.io/mt/105067988/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 14/16] DynamicTablesPkg: Move FADT Fixed Features Flags to Arch Common
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (12 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 13/16] DynamicTablesPkg: Move Hypervisor Vendor Id to Arch Common PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 15/16] DynamicTablesPkg: Move Cm Reference object " PierreGondois
` (2 subsequent siblings)
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Move FADT Fixed Features Flags object from Arm Namespace to the
Arch Common namespace.
Correspondingly also update the following modules to reflect the
changes introduced by the move:
- FADT 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>
---
.../Include/ArchCommonNameSpaceObjects.h | 11 +++
.../Include/ArmNameSpaceObjects.h | 73 ++++++++-----------
.../Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c | 14 ++--
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 59 ++++++++-------
.../ConfigurationManagerObjectParser.c | 6 +-
DynamicTablesPkg/Readme.md | 64 ++++++++--------
6 files changed, 113 insertions(+), 114 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
index 401a24b6a5cd..1030488f4561 100644
--- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -26,6 +26,7 @@ typedef enum ArchCommonObjectID {
EArchCommonObjConsolePortInfo, ///< 3 - Serial Console Port Info
EArchCommonObjSerialDebugPortInfo, ///< 4 - Serial Debug Port Info
EArchCommonObjHypervisorVendorIdentity, ///< 5 - Hypervisor Vendor Id
+ EArchCommonObjFixedFeatureFlags, ///< 6 - Fixed feature flags for FADT
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@@ -86,6 +87,16 @@ typedef struct CmArchCommonHypervisorVendorIdentity {
UINT64 HypervisorVendorId;
} CM_ARCH_COMMON_HYPERVISOR_VENDOR_ID;
+/** A structure that describes the
+ Fixed feature flags for the Platform.
+
+ ID: EArchCommonObjFixedFeatureFlags
+*/
+typedef struct CmArchCommonFixedFeatureFlags {
+ /// The Fixed feature flags
+ UINT32 Flags;
+} CM_ARCH_COMMON_FIXED_FEATURE_FLAGS;
+
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 48e65a3cc0a5..66709c41fd69 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -40,38 +40,37 @@ typedef enum ArmObjectID {
EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info
EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog
EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info
- EArmObjFixedFeatureFlags, ///< 12 - Fixed feature flags for FADT
- EArmObjItsGroup, ///< 13 - ITS Group
- EArmObjNamedComponent, ///< 14 - Named Component
- EArmObjRootComplex, ///< 15 - Root Complex
- EArmObjSmmuV1SmmuV2, ///< 16 - SMMUv1 or SMMUv2
- EArmObjSmmuV3, ///< 17 - SMMUv3
- EArmObjPmcg, ///< 18 - PMCG
- EArmObjGicItsIdentifierArray, ///< 19 - GIC ITS Identifier Array
- EArmObjIdMappingArray, ///< 20 - ID Mapping Array
- EArmObjSmmuInterruptArray, ///< 21 - SMMU Interrupt Array
- EArmObjProcHierarchyInfo, ///< 22 - Processor Hierarchy Info
- EArmObjCacheInfo, ///< 23 - Cache Info
- EArmObjCmRef, ///< 24 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 25 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 26 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 27 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 28 - Generic Initiator Affinity
- EArmObjCmn600Info, ///< 29 - CMN-600 Info
- EArmObjLpiInfo, ///< 30 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 31 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 32 - Pci Interrupt Map Info
- EArmObjRmr, ///< 33 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 34 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 35 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 36 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 37 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 38 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 39 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 40 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 41 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 42 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 43 - P-State Dependency (PSD) Info
+ EArmObjItsGroup, ///< 12 - ITS Group
+ EArmObjNamedComponent, ///< 13 - Named Component
+ EArmObjRootComplex, ///< 14 - Root Complex
+ EArmObjSmmuV1SmmuV2, ///< 15 - SMMUv1 or SMMUv2
+ EArmObjSmmuV3, ///< 16 - SMMUv3
+ EArmObjPmcg, ///< 17 - PMCG
+ EArmObjGicItsIdentifierArray, ///< 18 - GIC ITS Identifier Array
+ EArmObjIdMappingArray, ///< 19 - ID Mapping Array
+ EArmObjSmmuInterruptArray, ///< 20 - SMMU Interrupt Array
+ EArmObjProcHierarchyInfo, ///< 21 - Processor Hierarchy Info
+ EArmObjCacheInfo, ///< 22 - Cache Info
+ EArmObjCmRef, ///< 23 - CM Object Reference
+ EArmObjMemoryAffinityInfo, ///< 24 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 25 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 26 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 27 - Generic Initiator Affinity
+ EArmObjCmn600Info, ///< 28 - CMN-600 Info
+ EArmObjLpiInfo, ///< 29 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 30 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 31 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 32 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 33 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 34 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 35 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 36 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 37 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 38 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 39 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 40 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 41 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 42 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -437,16 +436,6 @@ typedef struct CmArmPciConfigSpaceInfo {
CM_OBJECT_TOKEN InterruptMapToken;
} CM_ARM_PCI_CONFIG_SPACE_INFO;
-/** A structure that describes the
- Fixed feature flags for the Platform.
-
- ID: EArmObjFixedFeatureFlags
-*/
-typedef struct CmArmFixedFeatureFlags {
- /// The Fixed feature flags
- UINT32 Flags;
-} CM_ARM_FIXED_FEATURE_FLAGS;
-
/** A structure that describes the
ITS Group node for the Platform.
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
index 868a974fed28..470f1acfd11f 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiFadtLibArm/FadtGenerator.c
@@ -229,9 +229,9 @@ GET_OBJECT_LIST (
feature flags for the platform from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjFixedFeatureFlags,
- CM_ARM_FIXED_FEATURE_FLAGS
+ EObjNameSpaceArchCommon,
+ EArchCommonObjFixedFeatureFlags,
+ CM_ARCH_COMMON_FIXED_FEATURE_FLAGS
);
/** Update the Power Management Profile information in the FADT Table.
@@ -420,13 +420,13 @@ FadtAddFixedFeatureFlags (
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol
)
{
- EFI_STATUS Status;
- CM_ARM_FIXED_FEATURE_FLAGS *FixedFeatureFlags;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_FIXED_FEATURE_FLAGS *FixedFeatureFlags;
ASSERT (CfgMgrProtocol != NULL);
// Get the Fixed feature flags from the Platform Configuration Manager
- Status = GetEArmObjFixedFeatureFlags (
+ Status = GetEArchCommonObjFixedFeatureFlags (
CfgMgrProtocol,
CM_NULL_TOKEN,
&FixedFeatureFlags,
@@ -453,7 +453,7 @@ FadtAddFixedFeatureFlags (
DEBUG ((
DEBUG_INFO,
- "FADT: EArmObjFixedFeatureFlags = 0x%x\n",
+ "FADT: EArchCommonObjFixedFeatureFlags = 0x%x\n",
FixedFeatureFlags->Flags
));
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index 34ba9f26733f..aef818e77f0c 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -155,38 +155,37 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 9 - Generic Timer Block Frame Info
NULL, ///< 10 - Platform Generic Watchdog
NULL, ///< 11 - PCI Configuration Space Info
- NULL, ///< 12 - Fixed feature flags for FADT
- TokenFixerItsGroup, ///< 13 - ITS Group
- TokenFixerNamedComponentNode, ///< 14 - Named Component
- TokenFixerRootComplexNode, ///< 15 - Root Complex
- TokenFixerNotImplemented, ///< 16 - SMMUv1 or SMMUv2
- TokenFixerSmmuV3Node, ///< 17 - SMMUv3
- TokenFixerNotImplemented, ///< 18 - PMCG
- NULL, ///< 19 - GIC ITS Identifier Array
- NULL, ///< 20 - ID Mapping Array
- NULL, ///< 21 - SMMU Interrupt Array
- TokenFixerNotImplemented, ///< 22 - Processor Hierarchy Info
- TokenFixerNotImplemented, ///< 23 - Cache Info
+ TokenFixerItsGroup, ///< 12 - ITS Group
+ TokenFixerNamedComponentNode, ///< 13 - Named Component
+ TokenFixerRootComplexNode, ///< 14 - Root Complex
+ TokenFixerNotImplemented, ///< 15 - SMMUv1 or SMMUv2
+ TokenFixerSmmuV3Node, ///< 16 - SMMUv3
+ TokenFixerNotImplemented, ///< 17 - PMCG
+ NULL, ///< 18 - GIC ITS Identifier Array
+ NULL, ///< 19 - ID Mapping Array
+ NULL, ///< 20 - SMMU Interrupt Array
+ TokenFixerNotImplemented, ///< 21 - Processor Hierarchy Info
+ TokenFixerNotImplemented, ///< 22 - Cache Info
+ NULL, ///< 23 - CM Object Reference
NULL, ///< 24 - Memory Affinity Info
- NULL, ///< 25 - Memory Affinity Info
- NULL, ///< 26 - Device Handle Acpi
- NULL, ///< 27 - Device Handle Pci
- NULL, ///< 28 - Generic Initiator Affinity
- NULL, ///< 29 - CMN-600 Info
- NULL, ///< 30 - Lpi Info
- NULL, ///< 31 - Pci Address Map Info
- NULL, ///< 32 - Pci Interrupt Map Info
- NULL, ///< 33 - Reserved Memory Range Node
- NULL, ///< 34 - Memory Range Descriptor
- NULL, ///< 35 - Continuous Performance Control Info
- NULL, ///< 36 - Pcc Subspace Type 0 Info
+ NULL, ///< 25 - Device Handle Acpi
+ NULL, ///< 26 - Device Handle Pci
+ NULL, ///< 27 - Generic Initiator Affinity
+ NULL, ///< 28 - CMN-600 Info
+ NULL, ///< 29 - Lpi Info
+ NULL, ///< 30 - Pci Address Map Info
+ NULL, ///< 31 - Pci Interrupt Map Info
+ NULL, ///< 32 - Reserved Memory Range Node
+ NULL, ///< 33 - Memory Range Descriptor
+ NULL, ///< 34 - Continuous Performance Control Info
+ NULL, ///< 35 - Pcc Subspace Type 0 Info
+ NULL, ///< 36 - Pcc Subspace Type 2 Info
NULL, ///< 37 - Pcc Subspace Type 2 Info
- NULL, ///< 38 - Pcc Subspace Type 2 Info
- NULL, ///< 39 - Pcc Subspace Type 3 Info
- NULL, ///< 40 - Pcc Subspace Type 4 Info
- NULL, ///< 41 - Pcc Subspace Type 5 Info
- NULL, ///< 42 - Embedded Trace Extension/Module Info
- NULL ///< 43 - P-State Dependency (PSD) Info
+ NULL, ///< 38 - Pcc Subspace Type 3 Info
+ NULL, ///< 39 - Pcc Subspace Type 4 Info
+ NULL, ///< 40 - Pcc Subspace Type 5 Info
+ NULL, ///< 41 - Embedded Trace Extension/Module Info
+ NULL ///< 42 - 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 1b3532f94088..3205cf87c8bf 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -199,9 +199,9 @@ STATIC CONST CM_OBJ_PARSER CmArchCommonHypervisorVendorIdentityParser[] = {
{ "HypervisorVendorId", 8, "0x%llx", NULL }
};
-/** A parser for EArmObjFixedFeatureFlags.
+/** A parser for EArchCommonObjFixedFeatureFlags.
*/
-STATIC CONST CM_OBJ_PARSER CmArmFixedFeatureFlagsParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonFixedFeatureFlagsParser[] = {
{ "Flags", 4, "0x%x", NULL }
};
@@ -676,6 +676,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjFixedFeatureFlags, CmArchCommonFixedFeatureFlagsParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -694,7 +695,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo, CmArmGenericWatchdogInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPciConfigSpaceInfo, CmArmPciConfigSpaceInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjFixedFeatureFlags, CmArmFixedFeatureFlagsParser),
CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser),
CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser),
CM_PARSER_ADD_OBJECT (EArmObjRootComplex, CmArmRootComplexNodeParser),
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 79ccd86e8558..5b9dda3e63d9 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -452,38 +452,37 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 9 | Generic Timer Block Frame Info | |
| 10 | Platform Generic Watchdog | |
| 11 | PCI Configuration Space Info | Move to Arch Common NS |
-| 12 | Fixed feature flags for FADT | Move to Arch Common NS |
-| 13 | ITS Group | |
-| 14 | Named Component | |
-| 15 | Root Complex | |
-| 16 | SMMUv1 or SMMUv2 | |
-| 17 | SMMUv3 | |
-| 18 | PMCG | |
-| 19 | GIC ITS Identifier Array | |
-| 20 | ID Mapping Array | |
-| 21 | SMMU Interrupt Array | |
-| 22 | Processor Hierarchy Info | Move to Arch Common NS |
-| 23 | Cache Info | Move to Arch Common NS |
-| 24 | CM Object Reference | Move to Arch Common NS |
-| 25 | Memory Affinity Info | Move to Arch Common NS |
-| 26 | Device Handle Acpi | Move to Arch Common NS |
-| 27 | Device Handle PCI | Move to Arch Common NS |
-| 28 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 29 | CMN 600 Info | |
-| 30 | Low Power Idle State Info | Move to Arch Common NS |
-| 31 | PCI Address Map Info | Move to Arch Common NS |
-| 32 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 33 | Reserved Memory Range Node | |
-| 34 | Memory Range Descriptor | |
-| 35 | Continuous Performance Control Info | Move to Arch Common NS |
-| 36 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 37 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 38 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 39 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 40 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 41 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 42 | Embedded Trace Extension/Module Info | |
-| 43 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 12 | ITS Group | |
+| 13 | Named Component | |
+| 14 | Root Complex | |
+| 15 | SMMUv1 or SMMUv2 | |
+| 16 | SMMUv3 | |
+| 17 | PMCG | |
+| 18 | GIC ITS Identifier Array | |
+| 19 | ID Mapping Array | |
+| 20 | SMMU Interrupt Array | |
+| 21 | Processor Hierarchy Info | Move to Arch Common NS |
+| 22 | Cache Info | Move to Arch Common NS |
+| 23 | CM Object Reference | Move to Arch Common NS |
+| 24 | Memory Affinity Info | Move to Arch Common NS |
+| 25 | Device Handle Acpi | Move to Arch Common NS |
+| 26 | Device Handle PCI | Move to Arch Common NS |
+| 27 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 28 | CMN 600 Info | |
+| 29 | Low Power Idle State Info | Move to Arch Common NS |
+| 30 | PCI Address Map Info | Move to Arch Common NS |
+| 31 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 32 | Reserved Memory Range Node | |
+| 33 | Memory Range Descriptor | |
+| 34 | Continuous Performance Control Info | Move to Arch Common NS |
+| 35 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 36 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 37 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 38 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 39 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 40 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 41 | Embedded Trace Extension/Module Info | |
+| 42 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@@ -496,4 +495,5 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 3 | Serial Console Port Info | |
| 4 | Serial Debug Port Info | |
| 5 | Hypervisor Vendor Id | |
+| 6 | Fixed feature flags for FADT | |
| `*` | All other values are reserved. | |
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116975): https://edk2.groups.io/g/devel/message/116975
Mute This Topic: https://groups.io/mt/105067990/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 15/16] DynamicTablesPkg: Move Cm Reference object to Arch Common
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (13 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 14/16] DynamicTablesPkg: Move FADT Fixed Features Flags " PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-03-21 15:53 ` [edk2-devel] [PATCH 16/16] DynamicTablesPkg & ArmVirtPkg: Move Pci Config Space Info PierreGondois
2024-04-04 10:02 ` [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) Sunil V L
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Move Cm Reference object from Arm Namespace to the Arch
Common namespace.
Correspondingly also update the following modules to reflect the
changes introduced by the move:
- PPTT generator
- SSDT CPU topology generator
- SSDT PCIe generator
- ConfigurationManagerObjectParser
- Dynamic Plat Repo, the Token Mapper and the TokenFixer map.
- FdtHwInfoParser library
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>
---
.../Include/ArchCommonNameSpaceObjects.h | 17 ++++++
.../Include/ArmNameSpaceObjects.h | 61 +++++++------------
.../Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c | 20 +++---
.../SsdtCpuTopologyGenerator.c | 14 ++---
.../SsdtCpuTopologyGenerator.h | 10 +--
.../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c | 20 +++---
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 37 ++++++-----
.../DynamicPlatRepoLib/DynamicPlatRepo.c | 28 ++++-----
.../Common/DynamicPlatRepoLib/TokenMapper.c | 9 +--
.../ConfigurationManagerObjectParser.c | 6 +-
.../FdtHwInfoParserLib/CmObjectDescUtility.c | 10 +--
.../FdtHwInfoParserLib/CmObjectDescUtility.h | 6 +-
DynamicTablesPkg/Readme.md | 40 ++++++------
13 files changed, 139 insertions(+), 139 deletions(-)
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
index 1030488f4561..632816da09de 100644
--- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -27,6 +27,7 @@ typedef enum ArchCommonObjectID {
EArchCommonObjSerialDebugPortInfo, ///< 4 - Serial Debug Port Info
EArchCommonObjHypervisorVendorIdentity, ///< 5 - Hypervisor Vendor Id
EArchCommonObjFixedFeatureFlags, ///< 6 - Fixed feature flags for FADT
+ EArchCommonObjCmRef, ///< 7 - CM Object Reference
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@@ -97,6 +98,22 @@ typedef struct CmArchCommonFixedFeatureFlags {
UINT32 Flags;
} CM_ARCH_COMMON_FIXED_FEATURE_FLAGS;
+/** A structure that describes a reference to another Configuration Manager
+ object.
+
+ This is useful for creating an array of reference tokens. The framework
+ can then query the configuration manager for these arrays using the
+ object ID EArchCommonObjCmRef.
+
+ This can be used is to represent one-to-many relationships between objects.
+
+ ID: EArchCommonObjCmRef
+*/
+typedef struct CmArchCommonObjRef {
+ /// Token of the CM object being referenced
+ CM_OBJECT_TOKEN ReferenceToken;
+} CM_ARCH_COMMON_OBJ_REF;
+
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index 66709c41fd69..cfcb2c7d2758 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -51,26 +51,25 @@ typedef enum ArmObjectID {
EArmObjSmmuInterruptArray, ///< 20 - SMMU Interrupt Array
EArmObjProcHierarchyInfo, ///< 21 - Processor Hierarchy Info
EArmObjCacheInfo, ///< 22 - Cache Info
- EArmObjCmRef, ///< 23 - CM Object Reference
- EArmObjMemoryAffinityInfo, ///< 24 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 25 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 26 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 27 - Generic Initiator Affinity
- EArmObjCmn600Info, ///< 28 - CMN-600 Info
- EArmObjLpiInfo, ///< 29 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 30 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 31 - Pci Interrupt Map Info
- EArmObjRmr, ///< 32 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 33 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 34 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 35 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 36 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 37 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 38 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 39 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 40 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 41 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 42 - P-State Dependency (PSD) Info
+ EArmObjMemoryAffinityInfo, ///< 23 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 24 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 25 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 26 - Generic Initiator Affinity
+ EArmObjCmn600Info, ///< 27 - CMN-600 Info
+ EArmObjLpiInfo, ///< 28 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 29 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 30 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 31 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 32 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 33 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 34 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 35 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 36 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 37 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 38 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 39 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 40 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 41 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -428,11 +427,11 @@ typedef struct CmArmPciConfigSpaceInfo {
UINT8 EndBusNumber;
/// Optional field: Reference Token for address mapping.
- /// Token identifying a CM_ARM_OBJ_REF structure.
+ /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
CM_OBJECT_TOKEN AddressMapToken;
/// Optional field: Reference Token for interrupt mapping.
- /// Token identifying a CM_ARM_OBJ_REF structure.
+ /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
CM_OBJECT_TOKEN InterruptMapToken;
} CM_ARM_PCI_CONFIG_SPACE_INFO;
@@ -721,7 +720,7 @@ typedef struct CmArmProcHierarchyInfo {
/// this field to CM_NULL_TOKEN.
CM_OBJECT_TOKEN PrivateResourcesArrayToken;
/// Optional field: Reference Token for the Lpi state of this processor.
- /// Token identifying a CM_ARM_OBJ_REF structure, itself referencing
+ /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure, itself referencing
/// CM_ARM_LPI_INFO objects.
CM_OBJECT_TOKEN LpiToken;
/// Set to TRUE if UID should override index for name and _UID
@@ -767,22 +766,6 @@ typedef struct CmArmCacheInfo {
UINT32 CacheId;
} CM_ARM_CACHE_INFO;
-/** A structure that describes a reference to another Configuration Manager
- object.
-
- This is useful for creating an array of reference tokens. The framework
- can then query the configuration manager for these arrays using the
- object ID EArmObjCmRef.
-
- This can be used is to represent one-to-many relationships between objects.
-
- ID: EArmObjCmRef
-*/
-typedef struct CmArmObjRef {
- /// Token of the CM object being referenced
- CM_OBJECT_TOKEN ReferenceToken;
-} CM_ARM_OBJ_REF;
-
/** A structure that describes the Memory Affinity Structure (Type 1) in SRAT
ID: EArmObjMemoryAffinityInfo
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
index 78fa63ff47e5..c237f7ff9386 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiPpttLibArm/PpttGenerator.c
@@ -34,7 +34,7 @@
The following Configuration Manager Object(s) are used by this Generator:
- EArmObjProcHierarchyInfo (REQUIRED)
- EArmObjCacheInfo
- - EArmObjCmRef
+ - EArchCommonObjCmRef
- EArmObjGicCInfo (REQUIRED)
*/
@@ -63,9 +63,9 @@ GET_OBJECT_LIST (
reference information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjCmRef,
- CM_ARM_OBJ_REF
+ EObjNameSpaceArchCommon,
+ EArchCommonObjCmRef,
+ CM_ARCH_COMMON_OBJ_REF
);
/**
@@ -264,7 +264,7 @@ DetectCyclesInTopology (
Protocol Interface.
@param [in] PrivResArray Pointer to the array of private resources.
@param [in] PrivResCount Number of private resources.
- @param [in] PrivResArrayToken Reference Token for the CM_ARM_OBJ_REF
+ @param [in] PrivResArrayToken Reference Token for the CM_ARCH_COMMON_OBJ_REF
array describing node's private resources.
@retval EFI_SUCCESS Array updated successfully.
@@ -281,10 +281,10 @@ AddPrivateResources (
IN CONST CM_OBJECT_TOKEN PrivResArrayToken
)
{
- EFI_STATUS Status;
- CM_ARM_OBJ_REF *CmObjRefs;
- UINT32 CmObjRefCount;
- PPTT_NODE_INDEXER *PpttNodeFound;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_OBJ_REF *CmObjRefs;
+ UINT32 CmObjRefCount;
+ PPTT_NODE_INDEXER *PpttNodeFound;
ASSERT (
(Generator != NULL) &&
@@ -308,7 +308,7 @@ AddPrivateResources (
CmObjRefCount = 0;
// Get the CM Object References
- Status = GetEArmObjCmRef (
+ Status = GetEArchCommonObjCmRef (
CfgMgrProtocol,
PrivResArrayToken,
&CmObjRefs,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
index cc6400e9e0df..994733a4e9c2 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
@@ -39,7 +39,7 @@ Requirements:
this Generator:
- EArmObjGicCInfo
- EArmObjProcHierarchyInfo (OPTIONAL) along with
- - EArmObjCmRef (OPTIONAL)
+ - EArchCommonObjCmRef (OPTIONAL)
- EArmObjLpiInfo (OPTIONAL)
- GetEArmObjEtInfo (OPTIONAL)
- EArmObjPsdInfo (OPTIONAL)
@@ -69,9 +69,9 @@ GET_OBJECT_LIST (
reference information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjCmRef,
- CM_ARM_OBJ_REF
+ EObjNameSpaceArchCommon,
+ EArchCommonObjCmRef,
+ CM_ARCH_COMMON_OBJ_REF
);
/**
@@ -120,7 +120,7 @@ GET_OBJECT_LIST (
structure of the platform. The TokenTable allows to have a mapping:
Index <-> CM_OBJECT_TOKEN (to CM_ARM_LPI_INFO structures).
- There will always be less sets of Lpi states (CM_ARM_OBJ_REF)
+ There will always be less sets of Lpi states (CM_ARCH_COMMON_OBJ_REF)
than the number of cpus/clusters (CM_ARM_PROC_HIERARCHY_INFO).
@param [in] Generator The SSDT Cpu Topology generator.
@@ -697,7 +697,7 @@ GenerateLpiStates (
UINT32 LastIndex;
AML_OBJECT_NODE_HANDLE LpiNode;
- CM_ARM_OBJ_REF *LpiRefInfo;
+ CM_ARCH_COMMON_OBJ_REF *LpiRefInfo;
UINT32 LpiRefInfoCount;
UINT32 LpiRefIndex;
CM_ARM_LPI_INFO *LpiInfo;
@@ -727,7 +727,7 @@ GenerateLpiStates (
}
// Fetch the LPI objects referenced by the token.
- Status = GetEArmObjCmRef (
+ Status = GetEArchCommonObjCmRef (
CfgMgrProtocol,
Generator->TokenTable.Table[Index],
&LpiRefInfo,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.h b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.h
index 0c7a0b0601ab..d6561e33da11 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.h
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.h
@@ -69,8 +69,8 @@
/** A structure used to handle the Lpi structures referencing.
- A CM_ARM_PROC_HIERARCHY_INFO structure references a CM_ARM_OBJ_REF.
- This CM_ARM_OBJ_REF references CM_ARM_LPI_INFO structures.
+ A CM_ARM_PROC_HIERARCHY_INFO structure references a CM_ARCH_COMMON_OBJ_REF.
+ This CM_ARCH_COMMON_OBJ_REF references CM_ARM_LPI_INFO structures.
Example:
(Cpu0) (Cpu1)
@@ -80,7 +80,7 @@
|
v
(List of references to Lpi states)
- CM_ARM_OBJ_REF
+ CM_ARCH_COMMON_OBJ_REF
|
+----------------------------------------
| |
@@ -89,9 +89,9 @@
CM_ARM_LPI_INFO[0] CM_ARM_LPI_INFO[1]
Here, Cpu0 and Cpu1 have the same Lpi states. Both CM_ARM_PROC_HIERARCHY_INFO
- structures reference the same CM_ARM_OBJ_REF. An entry is created in the
+ structures reference the same CM_ARCH_COMMON_OBJ_REF. An entry is created in the
TokenTable such as:
- 0 <-> CM_ARM_OBJ_REF
+ 0 <-> CM_ARCH_COMMON_OBJ_REF
This will lead to the creation of this pseudo-ASL code where Cpu0 and Cpu1
return the same object at \_SB.L000:
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
index 72873709aab5..dc1371c3bc5f 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
@@ -42,7 +42,7 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjCmRef
+ - EArchCommonObjCmRef
- EArmObjPciConfigSpaceInfo
- EArmObjPciAddressMapInfo
- EArmObjPciInterruptMapInfo
@@ -52,9 +52,9 @@ Requirements:
reference information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjCmRef,
- CM_ARM_OBJ_REF
+ EObjNameSpaceArchCommon,
+ EArchCommonObjCmRef,
+ CM_ARCH_COMMON_OBJ_REF
);
/** This macro expands to a function that retrieves the Pci
@@ -313,7 +313,7 @@ GeneratePrt (
EFI_STATUS Status;
INT32 Index;
AML_OBJECT_NODE_HANDLE PrtNode;
- CM_ARM_OBJ_REF *RefInfo;
+ CM_ARCH_COMMON_OBJ_REF *RefInfo;
UINT32 RefCount;
CM_ARM_PCI_INTERRUPT_MAP_INFO *IrqMapInfo;
@@ -324,9 +324,9 @@ GeneratePrt (
PrtNode = NULL;
- // Get the array of CM_ARM_OBJ_REF referencing the
+ // Get the array of CM_ARCH_COMMON_OBJ_REF referencing the
// CM_ARM_PCI_INTERRUPT_MAP_INFO objects.
- Status = GetEArmObjCmRef (
+ Status = GetEArchCommonObjCmRef (
CfgMgrProtocol,
PciInfo->InterruptMapToken,
&RefInfo,
@@ -458,7 +458,7 @@ GeneratePciCrs (
EFI_STATUS Status;
BOOLEAN Translation;
UINT32 Index;
- CM_ARM_OBJ_REF *RefInfo;
+ CM_ARCH_COMMON_OBJ_REF *RefInfo;
UINT32 RefCount;
CM_ARM_PCI_ADDRESS_MAP_INFO *AddrMapInfo;
AML_OBJECT_NODE_HANDLE CrsNode;
@@ -505,9 +505,9 @@ GeneratePciCrs (
return Status;
}
- // Get the array of CM_ARM_OBJ_REF referencing the
+ // Get the array of CM_ARCH_COMMON_OBJ_REF referencing the
// CM_ARM_PCI_ADDRESS_MAP_INFO objects.
- Status = GetEArmObjCmRef (
+ Status = GetEArchCommonObjCmRef (
CfgMgrProtocol,
PciInfo->AddressMapToken,
&RefInfo,
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index aef818e77f0c..d7ecd4dc1ba7 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -166,26 +166,25 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 20 - SMMU Interrupt Array
TokenFixerNotImplemented, ///< 21 - Processor Hierarchy Info
TokenFixerNotImplemented, ///< 22 - Cache Info
- NULL, ///< 23 - CM Object Reference
- NULL, ///< 24 - Memory Affinity Info
- NULL, ///< 25 - Device Handle Acpi
- NULL, ///< 26 - Device Handle Pci
- NULL, ///< 27 - Generic Initiator Affinity
- NULL, ///< 28 - CMN-600 Info
- NULL, ///< 29 - Lpi Info
- NULL, ///< 30 - Pci Address Map Info
- NULL, ///< 31 - Pci Interrupt Map Info
- NULL, ///< 32 - Reserved Memory Range Node
- NULL, ///< 33 - Memory Range Descriptor
- NULL, ///< 34 - Continuous Performance Control Info
- NULL, ///< 35 - Pcc Subspace Type 0 Info
+ NULL, ///< 23 - Memory Affinity Info
+ NULL, ///< 24 - Device Handle Acpi
+ NULL, ///< 25 - Device Handle Pci
+ NULL, ///< 26 - Generic Initiator Affinity
+ NULL, ///< 27 - CMN-600 Info
+ NULL, ///< 28 - Lpi Info
+ NULL, ///< 29 - Pci Address Map Info
+ NULL, ///< 30 - Pci Interrupt Map Info
+ NULL, ///< 31 - Reserved Memory Range Node
+ NULL, ///< 32 - Memory Range Descriptor
+ NULL, ///< 33 - Continuous Performance Control Info
+ NULL, ///< 34 - Pcc Subspace Type 0 Info
+ NULL, ///< 35 - Pcc Subspace Type 2 Info
NULL, ///< 36 - Pcc Subspace Type 2 Info
- NULL, ///< 37 - Pcc Subspace Type 2 Info
- NULL, ///< 38 - Pcc Subspace Type 3 Info
- NULL, ///< 39 - Pcc Subspace Type 4 Info
- NULL, ///< 40 - Pcc Subspace Type 5 Info
- NULL, ///< 41 - Embedded Trace Extension/Module Info
- NULL ///< 42 - P-State Dependency (PSD) Info
+ NULL, ///< 37 - Pcc Subspace Type 3 Info
+ NULL, ///< 38 - Pcc Subspace Type 4 Info
+ NULL, ///< 39 - Pcc Subspace Type 5 Info
+ NULL, ///< 40 - Embedded Trace Extension/Module Info
+ NULL ///< 41 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
index e4fa1233708e..08d11ac96a22 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/DynamicPlatRepo.c
@@ -145,7 +145,7 @@ DynPlatRepoAddObject (
// Check the CmObjDesc:
// - only Arm objects and Arch Common objects are supported for now.
- // - only EArmObjCmRef objects can be added as arrays.
+ // - only EArchCommonObjCmRef objects can be added as arrays.
if ((CmObjDesc->Size == 0) || (CmObjDesc->Count == 0)) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
@@ -155,16 +155,16 @@ DynPlatRepoAddObject (
NamespaceId = GET_CM_NAMESPACE_ID (CmObjDesc->ObjectId);
if (EObjNameSpaceArm == NamespaceId) {
- if ((ObjId >= EArmObjMax) ||
- ((CmObjDesc->Count > 1) && (ObjId != EArmObjCmRef)))
- {
+ if (ObjId >= EArmObjMax) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
ObjList = &This->ArmCmObjList[ObjId];
} else if (EObjNameSpaceArchCommon == NamespaceId) {
- if (ObjId >= EArchCommonObjMax) {
+ if ((ObjId >= EArchCommonObjMax) ||
+ ((CmObjDesc->Count > 1) && (ObjId != EArchCommonObjCmRef)))
+ {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
@@ -281,11 +281,11 @@ GroupCmObjNodes (
}
if ((CmObjDesc->Count != 1) &&
- ((NamespaceId != EObjNameSpaceArm) ||
- (ObjIndex != EArmObjCmRef)))
+ ((NamespaceId != EObjNameSpaceArchCommon) ||
+ (ObjIndex != EArchCommonObjCmRef)))
{
// We expect each descriptor to contain an individual object.
- // EArmObjCmRef objects are counted as groups, so +1 as well.
+ // EArchCommonObjCmRef objects are counted as groups, so +1 as well.
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
@@ -452,18 +452,18 @@ DynamicPlatRepoGetObject (
ObjId = GET_CM_OBJECT_ID (CmObjectId);
if (NamespaceId == EObjNameSpaceArm) {
- if ((ObjId >= EArmObjMax) ||
- ((ObjId == EArmObjCmRef) &&
- (Token == CM_NULL_TOKEN)))
- {
- // EArmObjCmRef object must be requested using a valid token.
+ if (ObjId >= EArmObjMax) {
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
Desc = &This->ArmCmObjArray[ObjId];
} else if (NamespaceId == EObjNameSpaceArchCommon) {
- if (ObjId >= EArchCommonObjMax) {
+ if ((ObjId >= EArchCommonObjMax) ||
+ ((ObjId == EArchCommonObjCmRef) &&
+ (Token == CM_NULL_TOKEN)))
+ {
+ // EArchCommonObjCmRef object must be requested using a valid token.
ASSERT (0);
return EFI_INVALID_PARAMETER;
}
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/TokenMapper.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/TokenMapper.c
index 9391e935eee0..2300375f0386 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/TokenMapper.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/TokenMapper.c
@@ -66,11 +66,12 @@ TokenMapperAddObject (
// Point inside the finalized array.
CmObjDesc->Data = Data;
- // Only EArmObjCmRef CmObj can be added as arrays (more than 1 elements).
- if ((GET_CM_NAMESPACE_ID (ObjectId) == EObjNameSpaceArm) &&
- (GET_CM_OBJECT_ID (ObjectId) == EArmObjCmRef))
+ // Only EArchCommonObjCmRef CmObj can be added as
+ // arrays (more than 1 elements).
+ if ((GET_CM_NAMESPACE_ID (ObjectId) == EObjNameSpaceArchCommon) &&
+ (GET_CM_OBJECT_ID (ObjectId) == EArchCommonObjCmRef))
{
- CmObjDesc->Count = Size / sizeof (CM_ARM_OBJ_REF);
+ CmObjDesc->Count = Size / sizeof (CM_ARCH_COMMON_OBJ_REF);
} else {
CmObjDesc->Count = 1;
}
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index 3205cf87c8bf..264e01cff29f 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -350,9 +350,9 @@ STATIC CONST CM_OBJ_PARSER CmArmCacheInfoParser[] = {
{ "CacheId", 4, "0x%x", NULL },
};
-/** A parser for EArmObjCmRef.
+/** A parser for EArchCommonObjCmRef.
*/
-STATIC CONST CM_OBJ_PARSER CmArmObjRefParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonObjRefParser[] = {
{ "ReferenceToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }
};
@@ -677,6 +677,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjFixedFeatureFlags, CmArchCommonFixedFeatureFlagsParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjCmRef, CmArchCommonObjRefParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -706,7 +707,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjSmmuInterruptArray, CmArmGenericInterruptParser),
CM_PARSER_ADD_OBJECT (EArmObjProcHierarchyInfo, CmArmProcHierarchyInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjCacheInfo, CmArmCacheInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjCmRef, CmArmObjRefParser),
CM_PARSER_ADD_OBJECT (EArmObjMemoryAffinityInfo, CmArmMemoryAffinityInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser),
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.c b/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.c
index 8be1b5b8cd88..120a98c2a9eb 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.c
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.c
@@ -219,11 +219,11 @@ AddMultipleCmObj (
/** Add multiple CmObj to the Configuration Manager.
- Get one token referencing a EArmObjCmRef CmObj itself referencing
+ Get one token referencing a EArchCommonObjCmRef CmObj itself referencing
the input CmObj. In the table below, RefToken is returned.
Token referencing an Array of tokens Array of CmObj
- array of EArmObjCmRef referencing each from the input:
+ array of EArchCommonObjCmRef referencing each from the input:
CmObj: CmObj from the input:
RefToken ---> CmObjToken[0] ---> CmObj[0]
@@ -234,7 +234,7 @@ AddMultipleCmObj (
@param [in] CmObjDesc CmObjDesc containing multiple CmObj
to add.
@param [out] Token If success, token referencing an array
- of EArmObjCmRef CmObj, themselves
+ of EArchCommonObjCmRef CmObj, themselves
referencing the input CmObjs.
@retval EFI_SUCCESS The function completed successfully.
@@ -286,12 +286,12 @@ AddMultipleCmObjWithCmObjRef (
goto exit_handler;
}
- CmObjRef.ObjectId = CREATE_CM_ARM_OBJECT_ID (EArmObjCmRef);
+ CmObjRef.ObjectId = CREATE_CM_ARCH_COMMON_OBJECT_ID (EArchCommonObjCmRef);
CmObjRef.Data = TokenTable;
CmObjRef.Count = CmObjDesc->Count;
CmObjRef.Size = TokenTableSize;
- // Add the array of EArmObjCmRef CmObjs.
+ // Add the array of EArchCommonObjCmRef CmObjs.
Status = FdtParserHandle->HwInfoAdd (
FdtParserHandle,
FdtParserHandle->Context,
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.h b/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.h
index 270e0c3528f9..14e135335f9e 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.h
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/CmObjectDescUtility.h
@@ -98,11 +98,11 @@ AddMultipleCmObj (
/** Add multiple CmObj to the Configuration Manager.
- Get one token referencing a EArmObjCmRef CmObj itself referencing
+ Get one token referencing a EArchCommonObjCmRef CmObj itself referencing
the input CmObj. In the table below, RefToken is returned.
Token referencing an Array of tokens Array of CmObj
- array of EArmObjCmRef referencing each from the input:
+ array of EArchCommonObjCmRef referencing each from the input:
CmObj: CmObj from the input:
RefToken ---> CmObjToken[0] ---> CmObj[0]
@@ -113,7 +113,7 @@ AddMultipleCmObj (
@param [in] CmObjDesc CmObjDesc containing multiple CmObj
to add.
@param [out] Token If success, token referencing an array
- of EArmObjCmRef CmObj, themselves
+ of EArchCommonObjCmRef CmObj, themselves
referencing the input CmObjs.
@retval EFI_SUCCESS The function completed successfully.
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 5b9dda3e63d9..9110c754690d 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -463,26 +463,25 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 20 | SMMU Interrupt Array | |
| 21 | Processor Hierarchy Info | Move to Arch Common NS |
| 22 | Cache Info | Move to Arch Common NS |
-| 23 | CM Object Reference | Move to Arch Common NS |
-| 24 | Memory Affinity Info | Move to Arch Common NS |
-| 25 | Device Handle Acpi | Move to Arch Common NS |
-| 26 | Device Handle PCI | Move to Arch Common NS |
-| 27 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 28 | CMN 600 Info | |
-| 29 | Low Power Idle State Info | Move to Arch Common NS |
-| 30 | PCI Address Map Info | Move to Arch Common NS |
-| 31 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 32 | Reserved Memory Range Node | |
-| 33 | Memory Range Descriptor | |
-| 34 | Continuous Performance Control Info | Move to Arch Common NS |
-| 35 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 36 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 37 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 38 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 39 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 40 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 41 | Embedded Trace Extension/Module Info | |
-| 42 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 23 | Memory Affinity Info | Move to Arch Common NS |
+| 24 | Device Handle Acpi | Move to Arch Common NS |
+| 25 | Device Handle PCI | Move to Arch Common NS |
+| 26 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 27 | CMN 600 Info | |
+| 28 | Low Power Idle State Info | Move to Arch Common NS |
+| 29 | PCI Address Map Info | Move to Arch Common NS |
+| 30 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 31 | Reserved Memory Range Node | |
+| 32 | Memory Range Descriptor | |
+| 33 | Continuous Performance Control Info | Move to Arch Common NS |
+| 34 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 35 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 36 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 37 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 38 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 39 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 40 | Embedded Trace Extension/Module Info | |
+| 41 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@@ -496,4 +495,5 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 4 | Serial Debug Port Info | |
| 5 | Hypervisor Vendor Id | |
| 6 | Fixed feature flags for FADT | |
+| 7 | CM Object Reference | |
| `*` | All other values are reserved. | |
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116976): https://edk2.groups.io/g/devel/message/116976
Mute This Topic: https://groups.io/mt/105067991/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [edk2-devel] [PATCH 16/16] DynamicTablesPkg & ArmVirtPkg: Move Pci Config Space Info
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (14 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 15/16] DynamicTablesPkg: Move Cm Reference object " PierreGondois
@ 2024-03-21 15:53 ` PierreGondois
2024-04-04 10:02 ` [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) Sunil V L
16 siblings, 0 replies; 19+ messages in thread
From: PierreGondois @ 2024-03-21 15:53 UTC (permalink / raw)
To: devel
Cc: Pierre Gondois, Sami Mujawar, Pierre Gondois, Yeo Reum Yun,
Sunil V L, AbdulLateef Attar, Jeshua Smith, Jeff Brasen,
Girish Mahadevan, Leif Lindholm, Meenakshi Aggarwal
From: Sami Mujawar <sami.mujawar@arm.com>
Move Pci Config Space Info object from Arm Namespace to the
Arch Common namespace.
Correspondingly also update the following modules to reflect the
changes introduced by the move:
- MCFG generator
- SSDT PCIe generator
- SSDT PCIe support library
- ConfigurationManagerObjectParser
- Dynamic Plat Repo TokenFixer map
- FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser
- ArmVirtPkg/Kvmtool guest firmware configuration manager.
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>
---
.../KvmtoolCfgMgrDxe/ConfigurationManager.c | 4 +-
.../Include/ArchCommonNameSpaceObjects.h | 28 ++++++
.../Include/ArmNameSpaceObjects.h | 88 +++++++------------
.../Include/Library/SsdtPcieSupportLib.h | 12 +--
.../Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c | 28 +++---
.../AcpiSsdtPcieLibArm/SsdtPcieGenerator.c | 40 ++++-----
.../DynamicPlatRepoLib/CmObjectTokenFixer.c | 59 ++++++-------
.../SsdtPcieSupportLib/SsdtPcieSupportLib.c | 12 +--
.../ConfigurationManagerObjectParser.c | 6 +-
.../Pci/ArmPciConfigSpaceParser.c | 20 +++--
.../Pci/ArmPciConfigSpaceParser.h | 10 +--
DynamicTablesPkg/Readme.md | 62 ++++++-------
12 files changed, 186 insertions(+), 183 deletions(-)
diff --git a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
index 724054440644..96fbea33350d 100644
--- a/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
+++ b/ArmVirtPkg/KvmtoolCfgMgrDxe/ConfigurationManager.c
@@ -662,7 +662,9 @@ GetStandardNameSpaceObject (
//
Status = DynamicPlatRepoGetObject (
PlatformRepo->DynamicPlatformRepo,
- CREATE_CM_ARM_OBJECT_ID (EArmObjPciConfigSpaceInfo),
+ CREATE_CM_ARCH_COMMON_OBJECT_ID (
+ EArchCommonObjPciConfigSpaceInfo
+ ),
CM_NULL_TOKEN,
&CmObjDesc
);
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
index 632816da09de..7c70ba023829 100644
--- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -28,6 +28,7 @@ typedef enum ArchCommonObjectID {
EArchCommonObjHypervisorVendorIdentity, ///< 5 - Hypervisor Vendor Id
EArchCommonObjFixedFeatureFlags, ///< 6 - Fixed feature flags for FADT
EArchCommonObjCmRef, ///< 7 - CM Object Reference
+ EArchCommonObjPciConfigSpaceInfo, ///< 8 - PCI Configuration Space Info
EArchCommonObjMax
} EARCH_COMMON_OBJECT_ID;
@@ -114,6 +115,33 @@ typedef struct CmArchCommonObjRef {
CM_OBJECT_TOKEN ReferenceToken;
} CM_ARCH_COMMON_OBJ_REF;
+/** A structure that describes the
+ PCI Configuration Space information for the Platform.
+
+ ID: EArchCommonObjPciConfigSpaceInfo
+*/
+typedef struct CmArchCommonPciConfigSpaceInfo {
+ /// The physical base address for the PCI segment
+ UINT64 BaseAddress;
+
+ /// The PCI segment group number
+ UINT16 PciSegmentGroupNumber;
+
+ /// The start bus number
+ UINT8 StartBusNumber;
+
+ /// The end bus number
+ UINT8 EndBusNumber;
+
+ /// Optional field: Reference Token for address mapping.
+ /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
+ CM_OBJECT_TOKEN AddressMapToken;
+
+ /// Optional field: Reference Token for interrupt mapping.
+ /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
+ CM_OBJECT_TOKEN InterruptMapToken;
+} CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO;
+
#pragma pack()
#endif // ARCH_COMMON_NAMESPACE_OBJECTS_H_
diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index cfcb2c7d2758..a701de4bcd60 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -39,37 +39,36 @@ typedef enum ArmObjectID {
EArmObjPlatformGTBlockInfo, ///< 8 - Platform GT Block Info
EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info
EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog
- EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info
- EArmObjItsGroup, ///< 12 - ITS Group
- EArmObjNamedComponent, ///< 13 - Named Component
- EArmObjRootComplex, ///< 14 - Root Complex
- EArmObjSmmuV1SmmuV2, ///< 15 - SMMUv1 or SMMUv2
- EArmObjSmmuV3, ///< 16 - SMMUv3
- EArmObjPmcg, ///< 17 - PMCG
- EArmObjGicItsIdentifierArray, ///< 18 - GIC ITS Identifier Array
- EArmObjIdMappingArray, ///< 19 - ID Mapping Array
- EArmObjSmmuInterruptArray, ///< 20 - SMMU Interrupt Array
- EArmObjProcHierarchyInfo, ///< 21 - Processor Hierarchy Info
- EArmObjCacheInfo, ///< 22 - Cache Info
- EArmObjMemoryAffinityInfo, ///< 23 - Memory Affinity Info
- EArmObjDeviceHandleAcpi, ///< 24 - Device Handle Acpi
- EArmObjDeviceHandlePci, ///< 25 - Device Handle Pci
- EArmObjGenericInitiatorAffinityInfo, ///< 26 - Generic Initiator Affinity
- EArmObjCmn600Info, ///< 27 - CMN-600 Info
- EArmObjLpiInfo, ///< 28 - Lpi Info
- EArmObjPciAddressMapInfo, ///< 29 - Pci Address Map Info
- EArmObjPciInterruptMapInfo, ///< 30 - Pci Interrupt Map Info
- EArmObjRmr, ///< 31 - Reserved Memory Range Node
- EArmObjMemoryRangeDescriptor, ///< 32 - Memory Range Descriptor
- EArmObjCpcInfo, ///< 33 - Continuous Performance Control Info
- EArmObjPccSubspaceType0Info, ///< 34 - Pcc Subspace Type 0 Info
- EArmObjPccSubspaceType1Info, ///< 35 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType2Info, ///< 36 - Pcc Subspace Type 2 Info
- EArmObjPccSubspaceType3Info, ///< 37 - Pcc Subspace Type 3 Info
- EArmObjPccSubspaceType4Info, ///< 38 - Pcc Subspace Type 4 Info
- EArmObjPccSubspaceType5Info, ///< 39 - Pcc Subspace Type 5 Info
- EArmObjEtInfo, ///< 40 - Embedded Trace Extension/Module Info
- EArmObjPsdInfo, ///< 41 - P-State Dependency (PSD) Info
+ EArmObjItsGroup, ///< 11 - ITS Group
+ EArmObjNamedComponent, ///< 12 - Named Component
+ EArmObjRootComplex, ///< 13 - Root Complex
+ EArmObjSmmuV1SmmuV2, ///< 14 - SMMUv1 or SMMUv2
+ EArmObjSmmuV3, ///< 15 - SMMUv3
+ EArmObjPmcg, ///< 16 - PMCG
+ EArmObjGicItsIdentifierArray, ///< 17 - GIC ITS Identifier Array
+ EArmObjIdMappingArray, ///< 18 - ID Mapping Array
+ EArmObjSmmuInterruptArray, ///< 19 - SMMU Interrupt Array
+ EArmObjProcHierarchyInfo, ///< 20 - Processor Hierarchy Info
+ EArmObjCacheInfo, ///< 21 - Cache Info
+ EArmObjMemoryAffinityInfo, ///< 22 - Memory Affinity Info
+ EArmObjDeviceHandleAcpi, ///< 23 - Device Handle Acpi
+ EArmObjDeviceHandlePci, ///< 24 - Device Handle Pci
+ EArmObjGenericInitiatorAffinityInfo, ///< 25 - Generic Initiator Affinity
+ EArmObjCmn600Info, ///< 26 - CMN-600 Info
+ EArmObjLpiInfo, ///< 27 - Lpi Info
+ EArmObjPciAddressMapInfo, ///< 28 - Pci Address Map Info
+ EArmObjPciInterruptMapInfo, ///< 29 - Pci Interrupt Map Info
+ EArmObjRmr, ///< 30 - Reserved Memory Range Node
+ EArmObjMemoryRangeDescriptor, ///< 31 - Memory Range Descriptor
+ EArmObjCpcInfo, ///< 32 - Continuous Performance Control Info
+ EArmObjPccSubspaceType0Info, ///< 33 - Pcc Subspace Type 0 Info
+ EArmObjPccSubspaceType1Info, ///< 34 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType2Info, ///< 35 - Pcc Subspace Type 2 Info
+ EArmObjPccSubspaceType3Info, ///< 36 - Pcc Subspace Type 3 Info
+ EArmObjPccSubspaceType4Info, ///< 37 - Pcc Subspace Type 4 Info
+ EArmObjPccSubspaceType5Info, ///< 38 - Pcc Subspace Type 5 Info
+ EArmObjEtInfo, ///< 39 - Embedded Trace Extension/Module Info
+ EArmObjPsdInfo, ///< 40 - P-State Dependency (PSD) Info
EArmObjMax
} EARM_OBJECT_ID;
@@ -408,33 +407,6 @@ typedef struct CmArmGenericWatchdogInfo {
UINT32 Flags;
} CM_ARM_GENERIC_WATCHDOG_INFO;
-/** A structure that describes the
- PCI Configuration Space information for the Platform.
-
- ID: EArmObjPciConfigSpaceInfo
-*/
-typedef struct CmArmPciConfigSpaceInfo {
- /// The physical base address for the PCI segment
- UINT64 BaseAddress;
-
- /// The PCI segment group number
- UINT16 PciSegmentGroupNumber;
-
- /// The start bus number
- UINT8 StartBusNumber;
-
- /// The end bus number
- UINT8 EndBusNumber;
-
- /// Optional field: Reference Token for address mapping.
- /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
- CM_OBJECT_TOKEN AddressMapToken;
-
- /// Optional field: Reference Token for interrupt mapping.
- /// Token identifying a CM_ARCH_COMMON_OBJ_REF structure.
- CM_OBJECT_TOKEN InterruptMapToken;
-} CM_ARM_PCI_CONFIG_SPACE_INFO;
-
/** A structure that describes the
ITS Group node for the Platform.
diff --git a/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h b/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h
index 4171dabc33d8..50a335e4a464 100644
--- a/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h
+++ b/DynamicTablesPkg/Include/Library/SsdtPcieSupportLib.h
@@ -43,8 +43,8 @@ typedef struct MappingTable {
EFI_STATUS
EFIAPI
AddOscMethod (
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
- IN OUT AML_OBJECT_NODE_HANDLE PciNode
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN OUT AML_OBJECT_NODE_HANDLE PciNode
);
/** Generate Pci slots devices.
@@ -66,10 +66,10 @@ AddOscMethod (
EFI_STATUS
EFIAPI
GeneratePciSlots (
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
- IN CONST MAPPING_TABLE *MappingTable,
- IN UINT32 Uid,
- IN OUT AML_OBJECT_NODE_HANDLE PciNode
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST MAPPING_TABLE *MappingTable,
+ IN UINT32 Uid,
+ IN OUT AML_OBJECT_NODE_HANDLE PciNode
);
#endif // SSDT_PCIE_SUPPORT_LIB_H_
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
index 004b794a3c0c..722f9c17d541 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiMcfgLibArm/McfgGenerator.c
@@ -27,7 +27,7 @@
Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- - EArmObjPciConfigSpaceInfo
+ - EArchCommonObjPciConfigSpaceInfo
*/
#pragma pack(1)
@@ -51,9 +51,9 @@ typedef
/** Retrieve the PCI Configuration Space Information.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjPciConfigSpaceInfo,
- CM_ARM_PCI_CONFIG_SPACE_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjPciConfigSpaceInfo,
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO
);
/** Add the PCI Enhanced Configuration Space Information to the MCFG Table.
@@ -68,10 +68,10 @@ GET_OBJECT_LIST (
STATIC
VOID
AddPciConfigurationSpaceList (
- IN MCFG_TABLE *CONST Mcfg,
- IN CONST UINT32 PciCfgSpaceOffset,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciCfgSpaceInfoList,
- IN UINT32 PciCfgSpaceCount
+ IN MCFG_TABLE *CONST Mcfg,
+ IN CONST UINT32 PciCfgSpaceOffset,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciCfgSpaceInfoList,
+ IN UINT32 PciCfgSpaceCount
)
{
MCFG_CFG_SPACE_ADDR *PciCfgSpace;
@@ -126,11 +126,11 @@ BuildMcfgTable (
OUT EFI_ACPI_DESCRIPTION_HEADER **CONST Table
)
{
- EFI_STATUS Status;
- UINT32 TableSize;
- UINT32 ConfigurationSpaceCount;
- CM_ARM_PCI_CONFIG_SPACE_INFO *PciConfigSpaceInfoList;
- MCFG_TABLE *Mcfg;
+ EFI_STATUS Status;
+ UINT32 TableSize;
+ UINT32 ConfigurationSpaceCount;
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciConfigSpaceInfoList;
+ MCFG_TABLE *Mcfg;
ASSERT (This != NULL);
ASSERT (AcpiTableInfo != NULL);
@@ -154,7 +154,7 @@ BuildMcfgTable (
}
*Table = NULL;
- Status = GetEArmObjPciConfigSpaceInfo (
+ Status = GetEArchCommonObjPciConfigSpaceInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&PciConfigSpaceInfoList,
diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
index dc1371c3bc5f..2a169e0f6c1c 100644
--- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
+++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtPcieLibArm/SsdtPcieGenerator.c
@@ -43,7 +43,7 @@ Requirements:
The following Configuration Manager Object(s) are required by
this Generator:
- EArchCommonObjCmRef
- - EArmObjPciConfigSpaceInfo
+ - EArchCommonObjPciConfigSpaceInfo
- EArmObjPciAddressMapInfo
- EArmObjPciInterruptMapInfo
*/
@@ -61,9 +61,9 @@ GET_OBJECT_LIST (
Configuration Space Information from the Configuration Manager.
*/
GET_OBJECT_LIST (
- EObjNameSpaceArm,
- EArmObjPciConfigSpaceInfo,
- CM_ARM_PCI_CONFIG_SPACE_INFO
+ EObjNameSpaceArchCommon,
+ EArchCommonObjPciConfigSpaceInfo,
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO
);
/** This macro expands to a function that retrieves the Pci
@@ -208,9 +208,9 @@ STATIC
EFI_STATUS
EFIAPI
GeneratePciDeviceInfo (
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
- IN UINT32 Uid,
- IN OUT AML_OBJECT_NODE_HANDLE PciNode
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN UINT32 Uid,
+ IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
EFI_STATUS Status;
@@ -305,7 +305,7 @@ EFIAPI
GeneratePrt (
IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
IN UINT32 Uid,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
@@ -451,7 +451,7 @@ EFIAPI
GeneratePciCrs (
IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
@@ -693,7 +693,7 @@ EFIAPI
ReserveEcamSpace (
IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
@@ -760,7 +760,7 @@ EFIAPI
GeneratePciDevice (
IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
IN UINT32 Uid,
IN OUT AML_ROOT_NODE_HANDLE *RootNode
)
@@ -863,7 +863,7 @@ BuildSsdtPciTable (
IN ACPI_PCI_GENERATOR *Generator,
IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol,
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo,
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
IN UINT32 Uid,
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
)
@@ -971,13 +971,13 @@ BuildSsdtPciTableEx (
OUT UINTN *CONST TableCount
)
{
- EFI_STATUS Status;
- CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo;
- UINT32 PciCount;
- UINTN Index;
- EFI_ACPI_DESCRIPTION_HEADER **TableList;
- ACPI_PCI_GENERATOR *Generator;
- UINT32 Uid;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo;
+ UINT32 PciCount;
+ UINTN Index;
+ EFI_ACPI_DESCRIPTION_HEADER **TableList;
+ ACPI_PCI_GENERATOR *Generator;
+ UINT32 Uid;
ASSERT (This != NULL);
ASSERT (AcpiTableInfo != NULL);
@@ -990,7 +990,7 @@ BuildSsdtPciTableEx (
*TableCount = 0;
Generator = (ACPI_PCI_GENERATOR *)This;
- Status = GetEArmObjPciConfigSpaceInfo (
+ Status = GetEArchCommonObjPciConfigSpaceInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&PciInfo,
diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
index d7ecd4dc1ba7..41f66ee7b689 100644
--- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
+++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c
@@ -154,37 +154,36 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
NULL, ///< 8 - Platform GT Block Info
NULL, ///< 9 - Generic Timer Block Frame Info
NULL, ///< 10 - Platform Generic Watchdog
- NULL, ///< 11 - PCI Configuration Space Info
- TokenFixerItsGroup, ///< 12 - ITS Group
- TokenFixerNamedComponentNode, ///< 13 - Named Component
- TokenFixerRootComplexNode, ///< 14 - Root Complex
- TokenFixerNotImplemented, ///< 15 - SMMUv1 or SMMUv2
- TokenFixerSmmuV3Node, ///< 16 - SMMUv3
- TokenFixerNotImplemented, ///< 17 - PMCG
- NULL, ///< 18 - GIC ITS Identifier Array
- NULL, ///< 19 - ID Mapping Array
- NULL, ///< 20 - SMMU Interrupt Array
- TokenFixerNotImplemented, ///< 21 - Processor Hierarchy Info
- TokenFixerNotImplemented, ///< 22 - Cache Info
- NULL, ///< 23 - Memory Affinity Info
- NULL, ///< 24 - Device Handle Acpi
- NULL, ///< 25 - Device Handle Pci
- NULL, ///< 26 - Generic Initiator Affinity
- NULL, ///< 27 - CMN-600 Info
- NULL, ///< 28 - Lpi Info
- NULL, ///< 29 - Pci Address Map Info
- NULL, ///< 30 - Pci Interrupt Map Info
- NULL, ///< 31 - Reserved Memory Range Node
- NULL, ///< 32 - Memory Range Descriptor
- NULL, ///< 33 - Continuous Performance Control Info
- NULL, ///< 34 - Pcc Subspace Type 0 Info
+ TokenFixerItsGroup, ///< 11 - ITS Group
+ TokenFixerNamedComponentNode, ///< 12 - Named Component
+ TokenFixerRootComplexNode, ///< 13 - Root Complex
+ TokenFixerNotImplemented, ///< 14 - SMMUv1 or SMMUv2
+ TokenFixerSmmuV3Node, ///< 15 - SMMUv3
+ TokenFixerNotImplemented, ///< 16 - PMCG
+ NULL, ///< 17 - GIC ITS Identifier Array
+ NULL, ///< 18 - ID Mapping Array
+ NULL, ///< 19 - SMMU Interrupt Array
+ TokenFixerNotImplemented, ///< 20 - Processor Hierarchy Info
+ TokenFixerNotImplemented, ///< 21 - Cache Info
+ NULL, ///< 22 - Memory Affinity Info
+ NULL, ///< 23 - Device Handle Acpi
+ NULL, ///< 24 - Device Handle Pci
+ NULL, ///< 25 - Generic Initiator Affinity
+ NULL, ///< 26 - CMN-600 Info
+ NULL, ///< 27 - Lpi Info
+ NULL, ///< 28 - Pci Address Map Info
+ NULL, ///< 29 - Pci Interrupt Map Info
+ NULL, ///< 30 - Reserved Memory Range Node
+ NULL, ///< 31 - Memory Range Descriptor
+ NULL, ///< 32 - Continuous Performance Control Info
+ NULL, ///< 33 - Pcc Subspace Type 0 Info
+ NULL, ///< 34 - Pcc Subspace Type 2 Info
NULL, ///< 35 - Pcc Subspace Type 2 Info
- NULL, ///< 36 - Pcc Subspace Type 2 Info
- NULL, ///< 37 - Pcc Subspace Type 3 Info
- NULL, ///< 38 - Pcc Subspace Type 4 Info
- NULL, ///< 39 - Pcc Subspace Type 5 Info
- NULL, ///< 40 - Embedded Trace Extension/Module Info
- NULL ///< 41 - P-State Dependency (PSD) Info
+ NULL, ///< 36 - Pcc Subspace Type 3 Info
+ NULL, ///< 37 - Pcc Subspace Type 4 Info
+ NULL, ///< 38 - Pcc Subspace Type 5 Info
+ NULL, ///< 39 - Embedded Trace Extension/Module Info
+ NULL ///< 40 - P-State Dependency (PSD) Info
};
/** CmObj token fixer.
diff --git a/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c b/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c
index b35fb6a7dd45..3f8aae44bf9f 100644
--- a/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c
+++ b/DynamicTablesPkg/Library/Common/SsdtPcieSupportLib/SsdtPcieSupportLib.c
@@ -53,10 +53,10 @@
EFI_STATUS
EFIAPI
GeneratePciSlots (
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
- IN CONST MAPPING_TABLE *MappingTable,
- IN UINT32 Uid,
- IN OUT AML_OBJECT_NODE_HANDLE PciNode
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN CONST MAPPING_TABLE *MappingTable,
+ IN UINT32 Uid,
+ IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
EFI_STATUS Status;
@@ -132,8 +132,8 @@ GeneratePciSlots (
EFI_STATUS
EFIAPI
AddOscMethod (
- IN CONST CM_ARM_PCI_CONFIG_SPACE_INFO *PciInfo,
- IN OUT AML_OBJECT_NODE_HANDLE PciNode
+ IN CONST CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciInfo,
+ IN OUT AML_OBJECT_NODE_HANDLE PciNode
)
{
EFI_STATUS Status;
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
index 264e01cff29f..73dbb9879dcc 100644
--- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
+++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -182,9 +182,9 @@ STATIC CONST CM_OBJ_PARSER CmArmGenericWatchdogInfoParser[] = {
{ "Flags", 4, "0x%x", NULL }
};
-/** A parser for EArmObjPciConfigSpaceInfo.
+/** A parser for EArchCommonObjPciConfigSpaceInfo.
*/
-STATIC CONST CM_OBJ_PARSER CmArmPciConfigSpaceInfoParser[] = {
+STATIC CONST CM_OBJ_PARSER CmArchCommonPciConfigSpaceInfoParser[] = {
{ "BaseAddress", 8, "0x%llx", NULL },
{ "PciSegmentGroupNumber", 2, "0x%x", NULL },
{ "StartBusNumber", 1, "0x%x", NULL },
@@ -678,6 +678,7 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArchCommonObjHypervisorVendorIdentity, CmArchCommonHypervisorVendorIdentityParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjFixedFeatureFlags, CmArchCommonFixedFeatureFlagsParser),
CM_PARSER_ADD_OBJECT (EArchCommonObjCmRef, CmArchCommonObjRefParser),
+ CM_PARSER_ADD_OBJECT (EArchCommonObjPciConfigSpaceInfo, CmArchCommonPciConfigSpaceInfoParser),
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax)
};
@@ -695,7 +696,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjPlatformGenericWatchdogInfo, CmArmGenericWatchdogInfoParser),
- CM_PARSER_ADD_OBJECT (EArmObjPciConfigSpaceInfo, CmArmPciConfigSpaceInfoParser),
CM_PARSER_ADD_OBJECT (EArmObjItsGroup, CmArmItsGroupNodeParser),
CM_PARSER_ADD_OBJECT (EArmObjNamedComponent, CmArmNamedComponentNodeParser),
CM_PARSER_ADD_OBJECT (EArmObjRootComplex, CmArmRootComplexNodeParser),
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.c b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.c
index 2ffff1ccd27f..7d9fe7b1da22 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.c
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.c
@@ -468,7 +468,7 @@ ParseIrqMap (
@param [in] Fdt Pointer to a Flattened Device Tree (Fdt).
@param [in] HostPciNode Offset of a host-pci node.
- @param [in, out] PciInfo The CM_ARM_PCI_CONFIG_SPACE_INFO to populate.
+ @param [in, out] PciInfo The CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO to populate.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_ABORTED An error occurred.
@@ -579,7 +579,7 @@ PciNodeParser (
/** Add the parsed Pci information to the Configuration Manager.
CmObj of the following types are concerned:
- - EArmObjPciConfigSpaceInfo
+ - EArchCommonObjPciConfigSpaceInfo
- EArmObjPciAddressMapInfo
- EArmObjPciInterruptMapInfo
@@ -599,8 +599,8 @@ PciInfoAdd (
IN PCI_PARSER_TABLE *PciTableInfo
)
{
- EFI_STATUS Status;
- CM_ARM_PCI_CONFIG_SPACE_INFO *PciConfigSpaceInfo;
+ EFI_STATUS Status;
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO *PciConfigSpaceInfo;
if ((FdtParserHandle == NULL) ||
(PciTableInfo == NULL))
@@ -640,9 +640,11 @@ PciInfoAdd (
// Add the configuration space CmObj to the Configuration Manager.
Status = AddSingleCmObj (
FdtParserHandle,
- CREATE_CM_ARM_OBJECT_ID (EArmObjPciConfigSpaceInfo),
+ CREATE_CM_ARCH_COMMON_OBJECT_ID (
+ EArchCommonObjPciConfigSpaceInfo
+ ),
&PciTableInfo->PciConfigSpaceInfo,
- sizeof (CM_ARM_PCI_CONFIG_SPACE_INFO),
+ sizeof (CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO),
NULL
);
ASSERT_EFI_ERROR (Status);
@@ -682,15 +684,15 @@ FreeParserTable (
return EFI_SUCCESS;
}
-/** CM_ARM_PCI_CONFIG_SPACE_INFO parser function.
+/** CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO parser function.
The following structure is populated:
- typedef struct CmArmPciConfigSpaceInfo {
+ typedef struct CmArchCommonPciConfigSpaceInfo {
UINT64 BaseAddress; // {Populated}
UINT16 PciSegmentGroupNumber; // {Populated}
UINT8 StartBusNumber; // {Populated}
UINT8 EndBusNumber; // {Populated}
- } CM_ARM_PCI_CONFIG_SPACE_INFO;
+ } CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO;
typedef struct CmArmPciAddressMapInfo {
UINT8 SpaceCode; // {Populated}
diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.h b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.h
index 6e0027abeab6..4e269508a6e4 100644
--- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.h
+++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Pci/ArmPciConfigSpaceParser.h
@@ -83,24 +83,24 @@ typedef enum PciMappingTable {
*/
typedef struct PciParserTable {
/// PCI Configuration Space Info
- CM_ARM_PCI_CONFIG_SPACE_INFO PciConfigSpaceInfo;
+ CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO PciConfigSpaceInfo;
/// Store the address mapping and interrupt mapping as CmObjDesc
/// before adding them to the Configuration Manager.
- CM_OBJ_DESCRIPTOR Mapping[PciMappingTableMax];
+ CM_OBJ_DESCRIPTOR Mapping[PciMappingTableMax];
} PCI_PARSER_TABLE;
#pragma pack()
-/** CM_ARM_PCI_CONFIG_SPACE_INFO parser function.
+/** CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO parser function.
The following structure is populated:
- typedef struct CmArmPciConfigSpaceInfo {
+ typedef struct CmArchCommonPciConfigSpaceInfo {
UINT64 BaseAddress; // {Populated}
UINT16 PciSegmentGroupNumber; // {Populated}
UINT8 StartBusNumber; // {Populated}
UINT8 EndBusNumber; // {Populated}
- } CM_ARM_PCI_CONFIG_SPACE_INFO;
+ } CM_ARCH_COMMON_PCI_CONFIG_SPACE_INFO;
typedef struct CmArmPciAddressMapInfo {
UINT8 SpaceCode; // {Populated}
diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
index 9110c754690d..e0544fe40b1c 100644
--- a/DynamicTablesPkg/Readme.md
+++ b/DynamicTablesPkg/Readme.md
@@ -451,37 +451,36 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 8 | Platform GT Block Info | |
| 9 | Generic Timer Block Frame Info | |
| 10 | Platform Generic Watchdog | |
-| 11 | PCI Configuration Space Info | Move to Arch Common NS |
-| 12 | ITS Group | |
-| 13 | Named Component | |
-| 14 | Root Complex | |
-| 15 | SMMUv1 or SMMUv2 | |
-| 16 | SMMUv3 | |
-| 17 | PMCG | |
-| 18 | GIC ITS Identifier Array | |
-| 19 | ID Mapping Array | |
-| 20 | SMMU Interrupt Array | |
-| 21 | Processor Hierarchy Info | Move to Arch Common NS |
-| 22 | Cache Info | Move to Arch Common NS |
-| 23 | Memory Affinity Info | Move to Arch Common NS |
-| 24 | Device Handle Acpi | Move to Arch Common NS |
-| 25 | Device Handle PCI | Move to Arch Common NS |
-| 26 | Generic Initiator Affinity Info | Move to Arch Common NS |
-| 27 | CMN 600 Info | |
-| 28 | Low Power Idle State Info | Move to Arch Common NS |
-| 29 | PCI Address Map Info | Move to Arch Common NS |
-| 30 | PCI Interrupt Map Info | Move to Arch Common NS |
-| 31 | Reserved Memory Range Node | |
-| 32 | Memory Range Descriptor | |
-| 33 | Continuous Performance Control Info | Move to Arch Common NS |
-| 34 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
-| 35 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
-| 36 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
-| 37 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
-| 38 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
-| 39 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
-| 40 | Embedded Trace Extension/Module Info | |
-| 41 | P-State Dependency (PSD) Info | Move to Arch Common NS |
+| 11 | ITS Group | |
+| 12 | Named Component | |
+| 13 | Root Complex | |
+| 14 | SMMUv1 or SMMUv2 | |
+| 15 | SMMUv3 | |
+| 16 | PMCG | |
+| 17 | GIC ITS Identifier Array | |
+| 18 | ID Mapping Array | |
+| 19 | SMMU Interrupt Array | |
+| 20 | Processor Hierarchy Info | Move to Arch Common NS |
+| 21 | Cache Info | Move to Arch Common NS |
+| 22 | Memory Affinity Info | Move to Arch Common NS |
+| 23 | Device Handle Acpi | Move to Arch Common NS |
+| 24 | Device Handle PCI | Move to Arch Common NS |
+| 25 | Generic Initiator Affinity Info | Move to Arch Common NS |
+| 26 | CMN 600 Info | |
+| 27 | Low Power Idle State Info | Move to Arch Common NS |
+| 28 | PCI Address Map Info | Move to Arch Common NS |
+| 29 | PCI Interrupt Map Info | Move to Arch Common NS |
+| 30 | Reserved Memory Range Node | |
+| 31 | Memory Range Descriptor | |
+| 32 | Continuous Performance Control Info | Move to Arch Common NS |
+| 33 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
+| 34 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
+| 35 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
+| 36 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
+| 37 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
+| 38 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
+| 39 | Embedded Trace Extension/Module Info | |
+| 40 | P-State Dependency (PSD) Info | Move to Arch Common NS |
| `*` | All other values are reserved. | |
#### Object ID's in the Arch Common Namespace:
@@ -496,4 +495,5 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
| 5 | Hypervisor Vendor Id | |
| 6 | Fixed feature flags for FADT | |
| 7 | CM Object Reference | |
+| 8 | PCI Configuration Space Info | |
| `*` | All other values are reserved. | |
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116977): https://edk2.groups.io/g/devel/message/116977
Mute This Topic: https://groups.io/mt/105067992/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first)
2024-03-21 15:53 [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) PierreGondois
` (15 preceding siblings ...)
2024-03-21 15:53 ` [edk2-devel] [PATCH 16/16] DynamicTablesPkg & ArmVirtPkg: Move Pci Config Space Info PierreGondois
@ 2024-04-04 10:02 ` Sunil V L
2024-06-07 14:19 ` Sami Mujawar
16 siblings, 1 reply; 19+ messages in thread
From: Sunil V L @ 2024-04-04 10:02 UTC (permalink / raw)
To: Pierre Gondois
Cc: devel, Sami Mujawar, Yeo Reum Yun, AbdulLateef Attar,
Jeshua Smith, Jeff Brasen, Girish Mahadevan, Leif Lindholm,
Meenakshi Aggarwal
On Thu, Mar 21, 2024 at 04:53:03PM +0100, Pierre Gondois wrote:
> Following [1] and [2], other architectures than Arm aim to leverage
> the DynamicTablesPkg. The package uses namespaces/domains to split
> objects IDs. Currently most of the objects are part of the Arm
> namespace. Some objects are generic enough to be re-used by other
> architectures.
>
> In [2], an Arch Common namespace Id was created and some objects
> present in the Arm namespace were identified to be moved to this
> Arch Common namespace.
> Continue the effort by moving these objects to this new namespace.
>
> Some platforms rely on the DynamicTablesPkg and its namespace
> organization. Additional patches matching this change for the:
> - Juno
> - VExpress
> platforms will be submitted along this patchset.
>
> As the actual patchset is more than 20 patches, split it in
> two parts to avoid being detected as a spam/fraudulous activity.
>
> [1] Branch to reorg Dynamic Tables & support other arch
> https://edk2.groups.io/g/devel/topic/104054584#116308
> [2] DynamicTablesPkg: Arch Common Namespace
> https://edk2.groups.io/g/devel/message/116330
>
> Cc: Sami Mujawar <sami.mujawar@arm.com>
> Cc: Pierre Gondois <Pierre.Gondois@arm.com>
> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>
> Cc: Sunil V L <sunilvl@ventanamicro.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>
>
Hi Pierre, Sami,
Thank you very much for doing this!. The series look good to me.
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#117422): https://edk2.groups.io/g/devel/message/117422
Mute This Topic: https://groups.io/mt/105067964/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first)
2024-04-04 10:02 ` [edk2-devel] [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first) Sunil V L
@ 2024-06-07 14:19 ` Sami Mujawar
0 siblings, 0 replies; 19+ messages in thread
From: Sami Mujawar @ 2024-06-07 14:19 UTC (permalink / raw)
To: Sunil V L, Pierre Gondois
Cc: devel@edk2.groups.io, Yeo Reum Yun, AbdulLateef Attar,
Jeshua Smith, Jeff Brasen (jbrasen@nvidia.com), Girish Mahadevan,
Leif Lindholm, Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com)
[-- Attachment #1: Type: text/plain, Size: 3368 bytes --]
Hi All,
I have merged the [1] and [2] series at https://github.com/tianocore/edk2-staging/tree/dynamictables-reorg
I have also merged the Platform support series at https://github.com/tianocore/edk2-platforms/tree/devel-dynamictables-reorg.
Regards,
Sami Mujawar
From: Sunil V L <sunilvl@ventanamicro.com>
Date: Thursday, 4 April 2024 at 11:03
To: Pierre Gondois <Pierre.Gondois@arm.com>
Cc: devel@edk2.groups.io <devel@edk2.groups.io>, Sami Mujawar <Sami.Mujawar@arm.com>, Yeo Reum Yun <YeoReum.Yun@arm.com>, AbdulLateef Attar <AbdulLateef.Attar@amd.com>, Jeshua Smith <jeshuas@nvidia.com>, Jeff Brasen (jbrasen@nvidia.com) <jbrasen@nvidia.com>, Girish Mahadevan <gmahadevan@nvidia.com>, Leif Lindholm <quic_llindhol@quicinc.com>, Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com) <meenakshi.aggarwal@nxp.com>
Subject: Re: [PATCH 00/16] DynamicTablesPkg: Move objects to Arch Common NameSpace (first)
On Thu, Mar 21, 2024 at 04:53:03PM +0100, Pierre Gondois wrote:
> Following [1] and [2], other architectures than Arm aim to leverage
> the DynamicTablesPkg. The package uses namespaces/domains to split
> objects IDs. Currently most of the objects are part of the Arm
> namespace. Some objects are generic enough to be re-used by other
> architectures.
>
> In [2], an Arch Common namespace Id was created and some objects
> present in the Arm namespace were identified to be moved to this
> Arch Common namespace.
> Continue the effort by moving these objects to this new namespace.
>
> Some platforms rely on the DynamicTablesPkg and its namespace
> organization. Additional patches matching this change for the:
> - Juno
> - VExpress
> platforms will be submitted along this patchset.
>
> As the actual patchset is more than 20 patches, split it in
> two parts to avoid being detected as a spam/fraudulous activity.
>
> [1] Branch to reorg Dynamic Tables & support other arch
> https://edk2.groups.io/g/devel/topic/104054584#116308
> [2] DynamicTablesPkg: Arch Common Namespace
> https://edk2.groups.io/g/devel/message/116330
>
> Cc: Sami Mujawar <sami.mujawar@arm.com>
> Cc: Pierre Gondois <Pierre.Gondois@arm.com>
> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>
> Cc: Sunil V L <sunilvl@ventanamicro.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>
>
Hi Pierre, Sami,
Thank you very much for doing this!. The series look good to me.
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119515): https://edk2.groups.io/g/devel/message/119515
Mute This Topic: https://groups.io/mt/105067964/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 7578 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread