]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DynamicTablesPkg/Include/ArmNameSpaceObjects.h
DynamicTablesPkg: Add ACPI 6.3 SPE support to MADT generator
[mirror_edk2.git] / DynamicTablesPkg / Include / ArmNameSpaceObjects.h
index 73139eb3273e89205ef9e6bee67b1b842f7f516b..d9dcca12db68d16d3ddb73553ecd2383358832e7 100644 (file)
@@ -2,13 +2,7 @@
 \r
   Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
 \r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
   @par Glossary:\r
     - Cm or CM   - Configuration Manager\r
@@ -59,6 +53,8 @@ typedef enum ArmObjectID {
 \r
 /** A structure that describes the\r
     ARM Boot Architecture flags.\r
+\r
+    ID: EArmObjBootArchInfo\r
 */\r
 typedef struct CmArmBootArchInfo {\r
   /** This is the ARM_BOOT_ARCH flags field of the FADT Table\r
@@ -71,13 +67,10 @@ typedef struct CmArmCpuInfo {
   // Reserved for use when SMBIOS tables are implemented\r
 } CM_ARM_CPU_INFO;\r
 \r
-typedef struct CmArmCpuInfoList {\r
-  UINT32             CpuCount;\r
-  CM_ARM_CPU_INFO  * CpuInfo;\r
-} CM_ARM_CPU_INFO_LIST;\r
-\r
 /** A structure that describes the\r
     Power Management Profile Information for the Platform.\r
+\r
+    ID: EArmObjPowerManagementProfileInfo\r
 */\r
 typedef struct CmArmPowerManagementProfileInfo {\r
   /** This is the Preferred_PM_Profile field of the FADT Table\r
@@ -88,6 +81,8 @@ typedef struct CmArmPowerManagementProfileInfo {
 \r
 /** A structure that describes the\r
     GIC CPU Interface for the Platform.\r
+\r
+    ID: EArmObjGicCInfo\r
 */\r
 typedef struct CmArmGicCInfo {\r
   /// The GIC CPU Interface number.\r
@@ -160,10 +155,19 @@ typedef struct CmArmGicCInfo {
       ACPI Specification.\r
   */\r
   UINT8   ProcessorPowerEfficiencyClass;\r
+\r
+  /** Statistical Profiling Extension buffer overflow GSIV. Zero if\r
+      unsupported by this processor. This field was introduced in\r
+      ACPI 6.3 (MADT revision 5) and is therefore ignored when\r
+      generating MADT revision 4 or lower.\r
+  */\r
+  UINT16  SpeOverflowInterrupt;\r
 } CM_ARM_GICC_INFO;\r
 \r
 /** A structure that describes the\r
     GIC Distributor information for the Platform.\r
+\r
+    ID: EArmObjGicDInfo\r
 */\r
 typedef struct CmArmGicDInfo {\r
   /// The Physical Base address for the GIC Distributor.\r
@@ -184,6 +188,8 @@ typedef struct CmArmGicDInfo {
 \r
 /** A structure that describes the\r
     GIC MSI Frame information for the Platform.\r
+\r
+    ID: EArmObjGicMsiFrameInfo\r
 */\r
 typedef struct CmArmGicMsiFrameInfo {\r
   /// The GIC MSI Frame ID\r
@@ -207,6 +213,8 @@ typedef struct CmArmGicMsiFrameInfo {
 \r
 /** A structure that describes the\r
     GIC Redistributor information for the Platform.\r
+\r
+    ID: EArmObjGicRedistributorInfo\r
 */\r
 typedef struct CmArmGicRedistInfo {\r
   /** The physical address of a page range\r
@@ -220,6 +228,8 @@ typedef struct CmArmGicRedistInfo {
 \r
 /** A structure that describes the\r
     GIC Interrupt Translation Service information for the Platform.\r
+\r
+    ID: EArmObjGicItsInfo\r
 */\r
 typedef struct CmArmGicItsInfo {\r
   /// The GIC ITS ID\r
@@ -231,6 +241,9 @@ typedef struct CmArmGicItsInfo {
 \r
 /** A structure that describes the\r
     Serial Port information for the Platform.\r
+\r
+    ID: EArmObjSerialConsolePortInfo or\r
+        EArmObjSerialDebugPortInfo\r
 */\r
 typedef struct CmArmSerialPortInfo {\r
   /// The physical base address for the serial port\r
@@ -251,6 +264,8 @@ typedef struct CmArmSerialPortInfo {
 \r
 /** A structure that describes the\r
     Generic Timer information for the Platform.\r
+\r
+    ID: EArmObjGenericTimerInfo\r
 */\r
 typedef struct CmArmGenericTimerInfo {\r
   /// The physical base address for the counter control frame\r
@@ -286,6 +301,8 @@ typedef struct CmArmGenericTimerInfo {
 \r
 /** A structure that describes the\r
     Platform Generic Block Timer Frame information for the Platform.\r
+\r
+    ID: EArmObjGTBlockTimerFrameInfo\r
 */\r
 typedef struct CmArmGTBlockTimerFrameInfo {\r
   /// The Generic Timer frame number\r
@@ -321,6 +338,8 @@ typedef struct CmArmGTBlockTimerFrameInfo {
 \r
 /** A structure that describes the\r
     Platform Generic Block Timer information for the Platform.\r
+\r
+    ID: EArmObjPlatformGTBlockInfo\r
 */\r
 typedef struct CmArmGTBlockInfo {\r
   /// The physical base address for the GT Block Timer structure\r
@@ -335,6 +354,8 @@ typedef struct CmArmGTBlockInfo {
 \r
 /** A structure that describes the\r
     SBSA Generic Watchdog information for the Platform.\r
+\r
+    ID: EArmObjPlatformGenericWatchdogInfo\r
 */\r
 typedef struct CmArmGenericWatchdogInfo {\r
   /// The physical base address of the SBSA Watchdog control frame\r
@@ -354,6 +375,8 @@ typedef struct CmArmGenericWatchdogInfo {
 \r
 /** A structure that describes the\r
     PCI Configuration Space information for the Platform.\r
+\r
+    ID: EArmObjPciConfigSpaceInfo\r
 */\r
 typedef struct CmArmPciConfigSpaceInfo {\r
   /// The physical base address for the PCI segment\r
@@ -371,6 +394,8 @@ typedef struct CmArmPciConfigSpaceInfo {
 \r
 /** A structure that describes the\r
     Hypervisor Vendor ID information for the Platform.\r
+\r
+    ID: EArmObjHypervisorVendorIdentity\r
 */\r
 typedef struct CmArmHypervisorVendorId {\r
   /// The hypervisor Vendor ID\r
@@ -379,6 +404,8 @@ typedef struct CmArmHypervisorVendorId {
 \r
 /** A structure that describes the\r
     Fixed feature flags for the Platform.\r
+\r
+    ID: EArmObjFixedFeatureFlags\r
 */\r
 typedef struct CmArmFixedFeatureFlags {\r
   /// The Fixed feature flags\r
@@ -387,9 +414,11 @@ typedef struct CmArmFixedFeatureFlags {
 \r
 /** A structure that describes the\r
     ITS Group node for the Platform.\r
+\r
+    ID: EArmObjItsGroup\r
 */\r
 typedef struct CmArmItsGroupNode {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// The number of ITS identifiers in the ITS node\r
   UINT32            ItsIdCount;\r
@@ -399,6 +428,8 @@ typedef struct CmArmItsGroupNode {
 \r
 /** A structure that describes the\r
     GIC ITS Identifiers for an ITS Group node.\r
+\r
+    ID: EArmObjGicItsIdentifierArray\r
 */\r
 typedef struct CmArmGicItsIdentifier {\r
   /// The ITS Identifier\r
@@ -407,9 +438,11 @@ typedef struct CmArmGicItsIdentifier {
 \r
 /** A structure that describes the\r
     Named component node for the Platform.\r
+\r
+    ID: EArmObjNamedComponent\r
 */\r
 typedef struct CmArmNamedComponentNode {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// Number of ID mappings\r
   UINT32            IdMappingCount;\r
@@ -436,9 +469,11 @@ typedef struct CmArmNamedComponentNode {
 \r
 /** A structure that describes the\r
     Root complex node for the Platform.\r
+\r
+    ID: EArmObjRootComplex\r
 */\r
 typedef struct CmArmRootComplexNode {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// Number of ID mappings\r
   UINT32            IdMappingCount;\r
@@ -462,9 +497,11 @@ typedef struct CmArmRootComplexNode {
 \r
 /** A structure that describes the\r
     SMMUv1 or SMMUv2 node for the Platform.\r
+\r
+    ID: EArmObjSmmuV1SmmuV2\r
 */\r
 typedef struct CmArmSmmuV1SmmuV2Node {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// Number of ID mappings\r
   UINT32            IdMappingCount;\r
@@ -502,9 +539,11 @@ typedef struct CmArmSmmuV1SmmuV2Node {
 \r
 /** A structure that describes the\r
     SMMUv3 node for the Platform.\r
+\r
+    ID: EArmObjSmmuV3\r
 */\r
 typedef struct CmArmSmmuV3Node {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// Number of ID mappings\r
   UINT32            IdMappingCount;\r
@@ -536,9 +575,11 @@ typedef struct CmArmSmmuV3Node {
 \r
 /** A structure that describes the\r
     PMCG node for the Platform.\r
+\r
+    ID: EArmObjPmcg\r
 */\r
 typedef struct CmArmPmcgNode {\r
-  /// An unique token used to ideintify this object\r
+  /// An unique token used to identify this object\r
   CM_OBJECT_TOKEN   Token;\r
   /// Number of ID mappings\r
   UINT32            IdMappingCount;\r
@@ -558,6 +599,8 @@ typedef struct CmArmPmcgNode {
 \r
 /** A structure that describes the\r
     ID Mappings for the Platform.\r
+\r
+    ID: EArmObjIdMappingArray\r
 */\r
 typedef struct CmArmIdMapping {\r
   /// Input base\r
@@ -574,6 +617,8 @@ typedef struct CmArmIdMapping {
 \r
 /** A structure that describes the\r
     SMMU interrupts for the Platform.\r
+\r
+    ID: EArmObjSmmuInterruptArray\r
 */\r
 typedef struct CmArmSmmuInterrupt {\r
   /// Interrupt number\r