From: Sami Mujawar <sami.muja...@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.gond...@arm.com>
Cc: Yeo Reum Yun <yeoreum....@arm.com>
Cc: AbdulLateef Attar <abdullateef.at...@amd.com>
Cc: Jeshua Smith <jesh...@nvidia.com>
Cc: Jeff Brasen <jbra...@nvidia.com>
Cc: Girish Mahadevan <gmahade...@nvidia.com>
Cc: Leif Lindholm <quic_llind...@quicinc.com>
Cc: Meenakshi Aggarwal <meenakshi.aggar...@nxp.com>
Signed-off-by: Sami Mujawar <sami.muja...@arm.com>
Signed-off-by: Pierre Gondois <pierre.gond...@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/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Reply via email to