/** @file\r
\r
- Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR>\r
+ Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
EArmObjLpiInfo, ///< 37 - Lpi Info\r
EArmObjPciAddressMapInfo, ///< 38 - Pci Address Map Info\r
EArmObjPciInterruptMapInfo, ///< 39 - Pci Interrupt Map Info\r
+ EArmObjRmr, ///< 40 - Reserved Memory Range Node\r
+ EArmObjMemoryRangeDescriptor, ///< 41 - Memory Range Descriptor\r
EArmObjMax\r
} EARM_OBJECT_ID;\r
\r
UINT32 ItsIdCount;\r
/// Reference token for the ITS identifier array\r
CM_OBJECT_TOKEN ItsIdToken;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_ITS_GROUP_NODE;\r
\r
/** A structure that describes the\r
the entry in the namespace for this object.\r
*/\r
CHAR8 *ObjectName;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_NAMED_COMPONENT_NODE;\r
\r
/** A structure that describes the\r
UINT32 PciSegmentNumber;\r
/// Memory address size limit\r
UINT8 MemoryAddressSize;\r
+ /// PASID capabilities\r
+ UINT16 PasidCapabilities;\r
+ /// Flags\r
+ UINT32 Flags;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_ROOT_COMPLEX_NODE;\r
\r
/** A structure that describes the\r
UINT32 SMMU_NSgCfgIrpt;\r
/// SMMU_NSgCfgIrpt interrupt flags\r
UINT32 SMMU_NSgCfgIrptFlags;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_SMMUV1_SMMUV2_NODE;\r
\r
/** A structure that describes the\r
UINT32 ProximityDomain;\r
/// Index into the array of ID mapping\r
UINT32 DeviceIdMappingIndex;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_SMMUV3_NODE;\r
\r
/** A structure that describes the\r
\r
/// Reference token for the IORT node associated with this node\r
CM_OBJECT_TOKEN ReferenceToken;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
} CM_ARM_PMCG_NODE;\r
\r
/** A structure that describes the\r
CM_ARM_GENERIC_INTERRUPT IntcInterrupt;\r
} CM_ARM_PCI_INTERRUPT_MAP_INFO;\r
\r
+/** A structure that describes the\r
+ RMR node for the Platform.\r
+\r
+ ID: EArmObjRmr\r
+*/\r
+typedef struct CmArmRmrNode {\r
+ /// An unique token used to identify this object\r
+ CM_OBJECT_TOKEN Token;\r
+ /// Number of ID mappings\r
+ UINT32 IdMappingCount;\r
+ /// Reference token for the ID mapping array\r
+ CM_OBJECT_TOKEN IdMappingToken;\r
+\r
+ /// Unique identifier for this node.\r
+ UINT32 Identifier;\r
+\r
+ /// Reserved Memory Range flags.\r
+ UINT32 Flags;\r
+\r
+ /// Memory range descriptor count.\r
+ UINT32 MemRangeDescCount;\r
+ /// Reference token for the Memory Range descriptor array\r
+ CM_OBJECT_TOKEN MemRangeDescToken;\r
+} CM_ARM_RMR_NODE;\r
+\r
+/** A structure that describes the\r
+ Memory Range descriptor.\r
+\r
+ ID: EArmObjMemoryRangeDescriptor\r
+*/\r
+typedef struct CmArmRmrDescriptor {\r
+ /// Base address of Reserved Memory Range,\r
+ /// aligned to a page size of 64K.\r
+ UINT64 BaseAddress;\r
+\r
+ /// Length of the Reserved Memory range.\r
+ /// Must be a multiple of the page size of 64K.\r
+ UINT64 Length;\r
+} CM_ARM_MEMORY_RANGE_DESCRIPTOR;\r
+\r
#pragma pack()\r
\r
#endif // ARM_NAMESPACE_OBJECTS_H_\r