]> git.proxmox.com Git - mirror_edk2.git/blame - DynamicTablesPkg/Include/ArmNameSpaceObjects.h
UefiCpuPkg CpuCommFeaturesLib: Fix GP fault issue about ProcTrace
[mirror_edk2.git] / DynamicTablesPkg / Include / ArmNameSpaceObjects.h
CommitLineData
26147c77
SM
1/** @file\r
2\r
24534823 3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
26147c77 4\r
9cd9bdc6 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
26147c77
SM
6\r
7 @par Glossary:\r
8 - Cm or CM - Configuration Manager\r
9 - Obj or OBJ - Object\r
10 - Std or STD - Standard\r
11**/\r
12\r
13#ifndef ARM_NAMESPACE_OBJECTS_H_\r
14#define ARM_NAMESPACE_OBJECTS_H_\r
15\r
16#include <StandardNameSpaceObjects.h>\r
17\r
18#pragma pack(1)\r
19\r
20/** The EARM_OBJECT_ID enum describes the Object IDs\r
21 in the ARM Namespace\r
22*/\r
23typedef enum ArmObjectID {\r
24 EArmObjReserved, ///< 0 - Reserved\r
25 EArmObjBootArchInfo, ///< 1 - Boot Architecture Info\r
26 EArmObjCpuInfo, ///< 2 - CPU Info\r
27 EArmObjPowerManagementProfileInfo, ///< 3 - Power Management Profile Info\r
28 EArmObjGicCInfo, ///< 4 - GIC CPU Interface Info\r
29 EArmObjGicDInfo, ///< 5 - GIC Distributor Info\r
30 EArmObjGicMsiFrameInfo, ///< 6 - GIC MSI Frame Info\r
31 EArmObjGicRedistributorInfo, ///< 7 - GIC Redistributor Info\r
32 EArmObjGicItsInfo, ///< 8 - GIC ITS Info\r
33 EArmObjSerialConsolePortInfo, ///< 9 - Serial Console Port Info\r
34 EArmObjSerialDebugPortInfo, ///< 10 - Serial Debug Port Info\r
35 EArmObjGenericTimerInfo, ///< 11 - Generic Timer Info\r
36 EArmObjPlatformGTBlockInfo, ///< 12 - Platform GT Block Info\r
37 EArmObjGTBlockTimerFrameInfo, ///< 13 - Generic Timer Block Frame Info\r
38 EArmObjPlatformGenericWatchdogInfo, ///< 14 - Platform Generic Watchdog\r
39 EArmObjPciConfigSpaceInfo, ///< 15 - PCI Configuration Space Info\r
40 EArmObjHypervisorVendorIdentity, ///< 16 - Hypervisor Vendor Id\r
41 EArmObjFixedFeatureFlags, ///< 17 - Fixed feature flags for FADT\r
42 EArmObjItsGroup, ///< 18 - ITS Group\r
43 EArmObjNamedComponent, ///< 19 - Named Component\r
44 EArmObjRootComplex, ///< 20 - Root Complex\r
45 EArmObjSmmuV1SmmuV2, ///< 21 - SMMUv1 or SMMUv2\r
46 EArmObjSmmuV3, ///< 22 - SMMUv3\r
47 EArmObjPmcg, ///< 23 - PMCG\r
48 EArmObjGicItsIdentifierArray, ///< 24 - GIC ITS Identifier Array\r
98a4a7a9 49 EArmObjIdMappingArray, ///< 25 - ID Mapping Array\r
26147c77
SM
50 EArmObjSmmuInterruptArray, ///< 26 - SMMU Interrupt Array\r
51 EArmObjMax\r
52} EARM_OBJECT_ID;\r
53\r
54/** A structure that describes the\r
55 ARM Boot Architecture flags.\r
c606f472
SM
56\r
57 ID: EArmObjBootArchInfo\r
26147c77
SM
58*/\r
59typedef struct CmArmBootArchInfo {\r
60 /** This is the ARM_BOOT_ARCH flags field of the FADT Table\r
61 described in the ACPI Table Specification.\r
62 */\r
63 UINT32 BootArchFlags;\r
64} CM_ARM_BOOT_ARCH_INFO;\r
65\r
66typedef struct CmArmCpuInfo {\r
67 // Reserved for use when SMBIOS tables are implemented\r
68} CM_ARM_CPU_INFO;\r
69\r
26147c77
SM
70/** A structure that describes the\r
71 Power Management Profile Information for the Platform.\r
c606f472
SM
72\r
73 ID: EArmObjPowerManagementProfileInfo\r
26147c77
SM
74*/\r
75typedef struct CmArmPowerManagementProfileInfo {\r
76 /** This is the Preferred_PM_Profile field of the FADT Table\r
77 described in the ACPI Specification\r
78 */\r
79 UINT8 PowerManagementProfile;\r
80} CM_ARM_POWER_MANAGEMENT_PROFILE_INFO;\r
81\r
82/** A structure that describes the\r
83 GIC CPU Interface for the Platform.\r
c606f472
SM
84\r
85 ID: EArmObjGicCInfo\r
26147c77
SM
86*/\r
87typedef struct CmArmGicCInfo {\r
88 /// The GIC CPU Interface number.\r
89 UINT32 CPUInterfaceNumber;\r
90\r
91 /** The ACPI Processor UID. This must match the\r
92 _UID of the CPU Device object information described\r
93 in the DSDT/SSDT for the CPU.\r
94 */\r
95 UINT32 AcpiProcessorUid;\r
96\r
97 /** The flags field as described by the GICC structure\r
98 in the ACPI Specification.\r
99 */\r
100 UINT32 Flags;\r
101\r
102 /** The parking protocol version field as described by\r
103 the GICC structure in the ACPI Specification.\r
104 */\r
105 UINT32 ParkingProtocolVersion;\r
106\r
107 /** The Performance Interrupt field as described by\r
108 the GICC structure in the ACPI Specification.\r
109 */\r
110 UINT32 PerformanceInterruptGsiv;\r
111\r
112 /** The CPU Parked address field as described by\r
113 the GICC structure in the ACPI Specification.\r
114 */\r
115 UINT64 ParkedAddress;\r
116\r
117 /** The base address for the GIC CPU Interface\r
118 as described by the GICC structure in the\r
119 ACPI Specification.\r
120 */\r
121 UINT64 PhysicalBaseAddress;\r
122\r
123 /** The base address for GICV interface\r
124 as described by the GICC structure in the\r
125 ACPI Specification.\r
126 */\r
127 UINT64 GICV;\r
128\r
129 /** The base address for GICH interface\r
130 as described by the GICC structure in the\r
131 ACPI Specification.\r
132 */\r
133 UINT64 GICH;\r
134\r
135 /** The GICV maintenance interrupt\r
136 as described by the GICC structure in the\r
137 ACPI Specification.\r
138 */\r
139 UINT32 VGICMaintenanceInterrupt;\r
140\r
141 /** The base address for GICR interface\r
142 as described by the GICC structure in the\r
143 ACPI Specification.\r
144 */\r
145 UINT64 GICRBaseAddress;\r
146\r
147 /** The MPIDR for the CPU\r
148 as described by the GICC structure in the\r
149 ACPI Specification.\r
150 */\r
151 UINT64 MPIDR;\r
152\r
153 /** The Processor Power Efficiency class\r
154 as described by the GICC structure in the\r
155 ACPI Specification.\r
156 */\r
157 UINT8 ProcessorPowerEfficiencyClass;\r
158} CM_ARM_GICC_INFO;\r
159\r
160/** A structure that describes the\r
161 GIC Distributor information for the Platform.\r
c606f472
SM
162\r
163 ID: EArmObjGicDInfo\r
26147c77
SM
164*/\r
165typedef struct CmArmGicDInfo {\r
26147c77
SM
166 /// The Physical Base address for the GIC Distributor.\r
167 UINT64 PhysicalBaseAddress;\r
168\r
169 /** The global system interrupt\r
170 number where this GIC Distributor's\r
171 interrupt inputs start.\r
172 */\r
173 UINT32 SystemVectorBase;\r
174\r
175 /** The GIC version as described\r
176 by the GICD structure in the\r
177 ACPI Specification.\r
178 */\r
179 UINT8 GicVersion;\r
180} CM_ARM_GICD_INFO;\r
181\r
182/** A structure that describes the\r
183 GIC MSI Frame information for the Platform.\r
c606f472
SM
184\r
185 ID: EArmObjGicMsiFrameInfo\r
26147c77
SM
186*/\r
187typedef struct CmArmGicMsiFrameInfo {\r
188 /// The GIC MSI Frame ID\r
189 UINT32 GicMsiFrameId;\r
190\r
191 /// The Physical base address for the MSI Frame\r
192 UINT64 PhysicalBaseAddress;\r
193\r
194 /** The GIC MSI Frame flags\r
195 as described by the GIC MSI frame\r
196 structure in the ACPI Specification.\r
197 */\r
198 UINT32 Flags;\r
199\r
200 /// SPI Count used by this frame\r
201 UINT16 SPICount;\r
202\r
203 /// SPI Base used by this frame\r
204 UINT16 SPIBase;\r
205} CM_ARM_GIC_MSI_FRAME_INFO;\r
206\r
207/** A structure that describes the\r
208 GIC Redistributor information for the Platform.\r
c606f472
SM
209\r
210 ID: EArmObjGicRedistributorInfo\r
26147c77
SM
211*/\r
212typedef struct CmArmGicRedistInfo {\r
213 /** The physical address of a page range\r
214 containing all GIC Redistributors.\r
215 */\r
216 UINT64 DiscoveryRangeBaseAddress;\r
217\r
218 /// Length of the GIC Redistributor Discovery page range\r
219 UINT32 DiscoveryRangeLength;\r
220} CM_ARM_GIC_REDIST_INFO;\r
221\r
222/** A structure that describes the\r
223 GIC Interrupt Translation Service information for the Platform.\r
c606f472
SM
224\r
225 ID: EArmObjGicItsInfo\r
26147c77
SM
226*/\r
227typedef struct CmArmGicItsInfo {\r
228 /// The GIC ITS ID\r
229 UINT32 GicItsId;\r
230\r
231 /// The physical address for the Interrupt Translation Service\r
232 UINT64 PhysicalBaseAddress;\r
233} CM_ARM_GIC_ITS_INFO;\r
234\r
235/** A structure that describes the\r
236 Serial Port information for the Platform.\r
c606f472
SM
237\r
238 ID: EArmObjSerialConsolePortInfo or\r
239 EArmObjSerialDebugPortInfo\r
26147c77
SM
240*/\r
241typedef struct CmArmSerialPortInfo {\r
242 /// The physical base address for the serial port\r
243 UINT64 BaseAddress;\r
244\r
245 /// The serial port interrupt\r
246 UINT32 Interrupt;\r
247\r
248 /// The serial port baud rate\r
249 UINT64 BaudRate;\r
250\r
251 /// The serial port clock\r
252 UINT32 Clock;\r
253\r
254 /// Serial Port subtype\r
255 UINT16 PortSubtype;\r
256} CM_ARM_SERIAL_PORT_INFO;\r
257\r
258/** A structure that describes the\r
259 Generic Timer information for the Platform.\r
c606f472
SM
260\r
261 ID: EArmObjGenericTimerInfo\r
26147c77
SM
262*/\r
263typedef struct CmArmGenericTimerInfo {\r
264 /// The physical base address for the counter control frame\r
265 UINT64 CounterControlBaseAddress;\r
266\r
267 /// The physical base address for the counter read frame\r
268 UINT64 CounterReadBaseAddress;\r
269\r
270 /// The secure PL1 timer interrupt\r
271 UINT32 SecurePL1TimerGSIV;\r
272\r
273 /// The secure PL1 timer flags\r
274 UINT32 SecurePL1TimerFlags;\r
275\r
276 /// The non-secure PL1 timer interrupt\r
277 UINT32 NonSecurePL1TimerGSIV;\r
278\r
279 /// The non-secure PL1 timer flags\r
280 UINT32 NonSecurePL1TimerFlags;\r
281\r
282 /// The virtual timer interrupt\r
283 UINT32 VirtualTimerGSIV;\r
284\r
285 /// The virtual timer flags\r
286 UINT32 VirtualTimerFlags;\r
287\r
288 /// The non-secure PL2 timer interrupt\r
289 UINT32 NonSecurePL2TimerGSIV;\r
290\r
291 /// The non-secure PL2 timer flags\r
292 UINT32 NonSecurePL2TimerFlags;\r
293} CM_ARM_GENERIC_TIMER_INFO;\r
294\r
295/** A structure that describes the\r
296 Platform Generic Block Timer Frame information for the Platform.\r
c606f472
SM
297\r
298 ID: EArmObjGTBlockTimerFrameInfo\r
26147c77
SM
299*/\r
300typedef struct CmArmGTBlockTimerFrameInfo {\r
301 /// The Generic Timer frame number\r
302 UINT8 FrameNumber;\r
303\r
304 /// The physical base address for the CntBase block\r
305 UINT64 PhysicalAddressCntBase;\r
306\r
307 /// The physical base address for the CntEL0Base block\r
308 UINT64 PhysicalAddressCntEL0Base;\r
309\r
310 /// The physical timer interrupt\r
311 UINT32 PhysicalTimerGSIV;\r
312\r
313 /** The physical timer flags as described by the GT Block\r
314 Timer frame Structure in the ACPI Specification.\r
315 */\r
316 UINT32 PhysicalTimerFlags;\r
317\r
318 /// The virtual timer interrupt\r
319 UINT32 VirtualTimerGSIV;\r
320\r
321 /** The virtual timer flags as described by the GT Block\r
322 Timer frame Structure in the ACPI Specification.\r
323 */\r
324 UINT32 VirtualTimerFlags;\r
325\r
326 /** The common timer flags as described by the GT Block\r
327 Timer frame Structure in the ACPI Specification.\r
328 */\r
329 UINT32 CommonFlags;\r
330} CM_ARM_GTBLOCK_TIMER_FRAME_INFO;\r
331\r
332/** A structure that describes the\r
333 Platform Generic Block Timer information for the Platform.\r
c606f472
SM
334\r
335 ID: EArmObjPlatformGTBlockInfo\r
26147c77
SM
336*/\r
337typedef struct CmArmGTBlockInfo {\r
338 /// The physical base address for the GT Block Timer structure\r
339 UINT64 GTBlockPhysicalAddress;\r
340\r
341 /// The number of timer frames implemented in the GT Block\r
342 UINT32 GTBlockTimerFrameCount;\r
343\r
344 /// Reference token for the GT Block timer frame list\r
345 CM_OBJECT_TOKEN GTBlockTimerFrameToken;\r
346} CM_ARM_GTBLOCK_INFO;\r
347\r
348/** A structure that describes the\r
349 SBSA Generic Watchdog information for the Platform.\r
c606f472
SM
350\r
351 ID: EArmObjPlatformGenericWatchdogInfo\r
26147c77
SM
352*/\r
353typedef struct CmArmGenericWatchdogInfo {\r
354 /// The physical base address of the SBSA Watchdog control frame\r
355 UINT64 ControlFrameAddress;\r
356\r
357 /// The physical base address of the SBSA Watchdog refresh frame\r
358 UINT64 RefreshFrameAddress;\r
359\r
360 /// The watchdog interrupt\r
361 UINT32 TimerGSIV;\r
362\r
363 /** The flags for the watchdog as described by the SBSA watchdog\r
364 structure in the ACPI specification.\r
365 */\r
366 UINT32 Flags;\r
367} CM_ARM_GENERIC_WATCHDOG_INFO;\r
368\r
369/** A structure that describes the\r
370 PCI Configuration Space information for the Platform.\r
c606f472
SM
371\r
372 ID: EArmObjPciConfigSpaceInfo\r
26147c77
SM
373*/\r
374typedef struct CmArmPciConfigSpaceInfo {\r
375 /// The physical base address for the PCI segment\r
376 UINT64 BaseAddress;\r
377\r
378 /// The PCI segment group number\r
379 UINT16 PciSegmentGroupNumber;\r
380\r
381 /// The start bus number\r
382 UINT8 StartBusNumber;\r
383\r
384 /// The end bus number\r
385 UINT8 EndBusNumber;\r
386} CM_ARM_PCI_CONFIG_SPACE_INFO;\r
387\r
388/** A structure that describes the\r
389 Hypervisor Vendor ID information for the Platform.\r
c606f472
SM
390\r
391 ID: EArmObjHypervisorVendorIdentity\r
26147c77
SM
392*/\r
393typedef struct CmArmHypervisorVendorId {\r
394 /// The hypervisor Vendor ID\r
395 UINT64 HypervisorVendorId;\r
396} CM_ARM_HYPERVISOR_VENDOR_ID;\r
397\r
398/** A structure that describes the\r
399 Fixed feature flags for the Platform.\r
c606f472
SM
400\r
401 ID: EArmObjFixedFeatureFlags\r
26147c77
SM
402*/\r
403typedef struct CmArmFixedFeatureFlags {\r
404 /// The Fixed feature flags\r
405 UINT32 Flags;\r
406} CM_ARM_FIXED_FEATURE_FLAGS;\r
407\r
408/** A structure that describes the\r
409 ITS Group node for the Platform.\r
c606f472
SM
410\r
411 ID: EArmObjItsGroup\r
26147c77
SM
412*/\r
413typedef struct CmArmItsGroupNode {\r
c606f472 414 /// An unique token used to identify this object\r
26147c77
SM
415 CM_OBJECT_TOKEN Token;\r
416 /// The number of ITS identifiers in the ITS node\r
417 UINT32 ItsIdCount;\r
418 /// Reference token for the ITS identifier array\r
419 CM_OBJECT_TOKEN ItsIdToken;\r
420} CM_ARM_ITS_GROUP_NODE;\r
421\r
422/** A structure that describes the\r
423 GIC ITS Identifiers for an ITS Group node.\r
c606f472
SM
424\r
425 ID: EArmObjGicItsIdentifierArray\r
26147c77
SM
426*/\r
427typedef struct CmArmGicItsIdentifier {\r
428 /// The ITS Identifier\r
429 UINT32 ItsId;\r
430} CM_ARM_ITS_IDENTIFIER;\r
431\r
432/** A structure that describes the\r
433 Named component node for the Platform.\r
c606f472
SM
434\r
435 ID: EArmObjNamedComponent\r
26147c77
SM
436*/\r
437typedef struct CmArmNamedComponentNode {\r
c606f472 438 /// An unique token used to identify this object\r
26147c77
SM
439 CM_OBJECT_TOKEN Token;\r
440 /// Number of ID mappings\r
441 UINT32 IdMappingCount;\r
442 /// Reference token for the ID mapping array\r
443 CM_OBJECT_TOKEN IdMappingToken;\r
444\r
445 /// Flags for the named component\r
446 UINT32 Flags;\r
447\r
448 /// Memory access properties : Cache coherent attributes\r
449 UINT32 CacheCoherent;\r
450 /// Memory access properties : Allocation hints\r
451 UINT8 AllocationHints;\r
452 /// Memory access properties : Memory access flags\r
453 UINT8 MemoryAccessFlags;\r
454\r
455 /// Memory access properties : Address size limit\r
456 UINT8 AddressSizeLimit;\r
457 /** ASCII Null terminated string with the full path to\r
458 the entry in the namespace for this object.\r
459 */\r
460 CHAR8* ObjectName;\r
461} CM_ARM_NAMED_COMPONENT_NODE;\r
462\r
463/** A structure that describes the\r
464 Root complex node for the Platform.\r
c606f472
SM
465\r
466 ID: EArmObjRootComplex\r
26147c77
SM
467*/\r
468typedef struct CmArmRootComplexNode {\r
c606f472 469 /// An unique token used to identify this object\r
26147c77
SM
470 CM_OBJECT_TOKEN Token;\r
471 /// Number of ID mappings\r
472 UINT32 IdMappingCount;\r
473 /// Reference token for the ID mapping array\r
474 CM_OBJECT_TOKEN IdMappingToken;\r
475\r
476 /// Memory access properties : Cache coherent attributes\r
477 UINT32 CacheCoherent;\r
478 /// Memory access properties : Allocation hints\r
479 UINT8 AllocationHints;\r
480 /// Memory access properties : Memory access flags\r
481 UINT8 MemoryAccessFlags;\r
482\r
483 /// ATS attributes\r
484 UINT32 AtsAttribute;\r
485 /// PCI segment number\r
486 UINT32 PciSegmentNumber;\r
487 /// Memory address size limit\r
488 UINT8 MemoryAddressSize;\r
489} CM_ARM_ROOT_COMPLEX_NODE;\r
490\r
491/** A structure that describes the\r
492 SMMUv1 or SMMUv2 node for the Platform.\r
c606f472
SM
493\r
494 ID: EArmObjSmmuV1SmmuV2\r
26147c77
SM
495*/\r
496typedef struct CmArmSmmuV1SmmuV2Node {\r
c606f472 497 /// An unique token used to identify this object\r
26147c77
SM
498 CM_OBJECT_TOKEN Token;\r
499 /// Number of ID mappings\r
500 UINT32 IdMappingCount;\r
501 /// Reference token for the ID mapping array\r
502 CM_OBJECT_TOKEN IdMappingToken;\r
503\r
504 /// SMMU Base Address\r
505 UINT64 BaseAddress;\r
506 /// Length of the memory range covered by the SMMU\r
507 UINT64 Span;\r
508 /// SMMU Model\r
509 UINT32 Model;\r
510 /// SMMU flags\r
511 UINT32 Flags;\r
512\r
513 /// Number of context interrupts\r
514 UINT32 ContextInterruptCount;\r
515 /// Reference token for the context interrupt array\r
516 CM_OBJECT_TOKEN ContextInterruptToken;\r
517\r
518 /// Number of PMU interrupts\r
519 UINT32 PmuInterruptCount;\r
520 /// Reference token for the PMU interrupt array\r
521 CM_OBJECT_TOKEN PmuInterruptToken;\r
522\r
523 /// GSIV of the SMMU_NSgIrpt interrupt\r
524 UINT32 SMMU_NSgIrpt;\r
525 /// SMMU_NSgIrpt interrupt flags\r
526 UINT32 SMMU_NSgIrptFlags;\r
527 /// GSIV of the SMMU_NSgCfgIrpt interrupt\r
528 UINT32 SMMU_NSgCfgIrpt;\r
529 /// SMMU_NSgCfgIrpt interrupt flags\r
530 UINT32 SMMU_NSgCfgIrptFlags;\r
531} CM_ARM_SMMUV1_SMMUV2_NODE;\r
532\r
533/** A structure that describes the\r
534 SMMUv3 node for the Platform.\r
c606f472
SM
535\r
536 ID: EArmObjSmmuV3\r
26147c77
SM
537*/\r
538typedef struct CmArmSmmuV3Node {\r
c606f472 539 /// An unique token used to identify this object\r
26147c77
SM
540 CM_OBJECT_TOKEN Token;\r
541 /// Number of ID mappings\r
542 UINT32 IdMappingCount;\r
543 /// Reference token for the ID mapping array\r
544 CM_OBJECT_TOKEN IdMappingToken;\r
545\r
546 /// SMMU Base Address\r
547 UINT64 BaseAddress;\r
548 /// SMMU flags\r
549 UINT32 Flags;\r
550 /// VATOS address\r
551 UINT64 VatosAddress;\r
552 /// Model\r
553 UINT32 Model;\r
554 /// GSIV of the Event interrupt if SPI based\r
555 UINT32 EventInterrupt;\r
556 /// PRI Interrupt if SPI based\r
557 UINT32 PriInterrupt;\r
558 /// GERR interrupt if GSIV based\r
559 UINT32 GerrInterrupt;\r
560 /// Sync interrupt if GSIV based\r
561 UINT32 SyncInterrupt;\r
562\r
563 /// Proximity domain flag\r
564 UINT32 ProximityDomain;\r
565 /// Index into the array of ID mapping\r
566 UINT32 DeviceIdMappingIndex;\r
567} CM_ARM_SMMUV3_NODE;\r
568\r
569/** A structure that describes the\r
570 PMCG node for the Platform.\r
c606f472
SM
571\r
572 ID: EArmObjPmcg\r
26147c77
SM
573*/\r
574typedef struct CmArmPmcgNode {\r
c606f472 575 /// An unique token used to identify this object\r
26147c77
SM
576 CM_OBJECT_TOKEN Token;\r
577 /// Number of ID mappings\r
578 UINT32 IdMappingCount;\r
579 /// Reference token for the ID mapping array\r
580 CM_OBJECT_TOKEN IdMappingToken;\r
581\r
582 /// Base Address for performance monitor counter group\r
583 UINT64 BaseAddress;\r
584 /// GSIV for the Overflow interrupt\r
585 UINT32 OverflowInterrupt;\r
586 /// Page 1 Base address\r
587 UINT64 Page1BaseAddress;\r
588\r
589 /// Reference token for the IORT node associated with this node\r
590 CM_OBJECT_TOKEN ReferenceToken;\r
591} CM_ARM_PMCG_NODE;\r
592\r
593/** A structure that describes the\r
594 ID Mappings for the Platform.\r
c606f472
SM
595\r
596 ID: EArmObjIdMappingArray\r
26147c77
SM
597*/\r
598typedef struct CmArmIdMapping {\r
599 /// Input base\r
600 UINT32 InputBase;\r
601 /// Number of input IDs\r
602 UINT32 NumIds;\r
603 /// Output Base\r
604 UINT32 OutputBase;\r
605 /// Reference token for the output node\r
606 CM_OBJECT_TOKEN OutputReferenceToken;\r
607 /// Flags\r
608 UINT32 Flags;\r
609} CM_ARM_ID_MAPPING;\r
610\r
611/** A structure that describes the\r
612 SMMU interrupts for the Platform.\r
c606f472
SM
613\r
614 ID: EArmObjSmmuInterruptArray\r
26147c77
SM
615*/\r
616typedef struct CmArmSmmuInterrupt {\r
617 /// Interrupt number\r
618 UINT32 Interrupt;\r
619\r
620 /// Flags\r
621 UINT32 Flags;\r
622} CM_ARM_SMMU_INTERRUPT;\r
623\r
624#pragma pack()\r
625\r
626#endif // ARM_NAMESPACE_OBJECTS_H_\r