]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdePkg/IndustryStandard: Add header file for SPMI ACPI table
authorHao Wu <hao.a.wu@intel.com>
Thu, 22 Mar 2018 07:52:31 +0000 (15:52 +0800)
committerHao Wu <hao.a.wu@intel.com>
Wed, 23 May 2018 06:26:37 +0000 (14:26 +0800)
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=840

Add the header file for Service Processor Management Interface ACPI table
definition.

Cc: Younas Khan <pmdyounaskhan786@gmail.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
MdePkg/Include/IndustryStandard/ServiceProcessorManagementInterfaceTable.h [new file with mode: 0644]

diff --git a/MdePkg/Include/IndustryStandard/ServiceProcessorManagementInterfaceTable.h b/MdePkg/Include/IndustryStandard/ServiceProcessorManagementInterfaceTable.h
new file mode 100644 (file)
index 0000000..681de3b
--- /dev/null
@@ -0,0 +1,104 @@
+/** @file\r
+  Service Processor Management Interface (SPMI) ACPI table definition from\r
+  Intelligent Platform Management Interface Specification Second Generation.\r
+\r
+  Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\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
+\r
+  @par Revision Reference:\r
+    - Intelligent Platform Management Interface Specification Second Generation\r
+      v2.0 Revision 1.1, Dated October 2013.\r
+      https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/ipmi-intelligent-platform-mgt-interface-spec-2nd-gen-v2-0-spec-update.pdf\r
+**/\r
+#ifndef _SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_H_\r
+#define _SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_H_\r
+\r
+#include <IndustryStandard/Acpi.h>\r
+\r
+#pragma pack(1)\r
+\r
+///\r
+/// Definition for the device identification information used by the Service\r
+/// Processor Management Interface Description Table\r
+///\r
+typedef union {\r
+  ///\r
+  /// For PCI IPMI device\r
+  ///\r
+  struct {\r
+    UINT8                                 SegmentGroup;\r
+    UINT8                                 Bus;\r
+    UINT8                                 Device;\r
+    UINT8                                 Function;\r
+  } Pci;\r
+  ///\r
+  /// For non-PCI IPMI device, the ACPI _UID value of the device\r
+  ///\r
+  UINT32                                  Uid;\r
+} EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_DEVICE_ID;\r
+\r
+\r
+///\r
+/// Definition for Service Processor Management Interface Description Table\r
+///\r
+typedef struct {\r
+  EFI_ACPI_DESCRIPTION_HEADER               Header;\r
+  ///\r
+  /// Indicates the type of IPMI interface.\r
+  ///\r
+  UINT8                                     InterfaceType;\r
+  ///\r
+  /// This field must always be 01h to be compatible with any software that\r
+  /// implements previous versions of this spec.\r
+  ///\r
+  UINT8                                     Reserved1;\r
+  ///\r
+  /// Identifies the IPMI specification revision, in BCD format.\r
+  ///\r
+  UINT16                                    SpecificationRevision;\r
+  ///\r
+  /// Interrupt type(s) used by the interface.\r
+  ///\r
+  UINT8                                     InterruptType;\r
+  ///\r
+  /// The bit assignment of the SCI interrupt within the GPEx_STS register of a\r
+  /// GPE described if the FADT that the interface triggers.\r
+  ///\r
+  UINT8                                     Gpe;\r
+  ///\r
+  /// Reserved, must be 00h.\r
+  ///\r
+  UINT8                                     Reserved2;\r
+  ///\r
+  /// PCI Device Flag.\r
+  ///\r
+  UINT8                                     PciDeviceFlag;\r
+  ///\r
+  /// The I/O APIC or I/O SAPIC Global System Interrupt used by the interface.\r
+  ///\r
+  UINT32                                    GlobalSystemInterrupt;\r
+  ///\r
+  /// The base address of the interface register set described using the\r
+  /// Generic Address Structure (GAS, See [ACPI 2.0] for the definition).\r
+  ///\r
+  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE    BaseAddress;\r
+  ///\r
+  /// Device identification information.\r
+  ///\r
+  EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_DEVICE_ID    DeviceId;\r
+  ///\r
+  /// This field must always be null (0x00) to be compatible with any software\r
+  /// that implements previous versions of this spec.\r
+  ///\r
+  UINT8                                     Reserved3;\r
+} EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE;\r
+\r
+#pragma pack()\r
+\r
+#endif\r