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