]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/ServiceProcessorManagementInterfaceTable.h
MdePkg/IndustryStandard: Add header file for SPMI ACPI table
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / ServiceProcessorManagementInterfaceTable.h
CommitLineData
77ca824c
HW
1/** @file\r
2 Service Processor Management Interface (SPMI) ACPI table definition from\r
3 Intelligent Platform Management Interface Specification Second Generation.\r
4\r
5 Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14 @par Revision Reference:\r
15 - Intelligent Platform Management Interface Specification Second Generation\r
16 v2.0 Revision 1.1, Dated October 2013.\r
17 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
18**/\r
19#ifndef _SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_H_\r
20#define _SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_H_\r
21\r
22#include <IndustryStandard/Acpi.h>\r
23\r
24#pragma pack(1)\r
25\r
26///\r
27/// Definition for the device identification information used by the Service\r
28/// Processor Management Interface Description Table\r
29///\r
30typedef union {\r
31 ///\r
32 /// For PCI IPMI device\r
33 ///\r
34 struct {\r
35 UINT8 SegmentGroup;\r
36 UINT8 Bus;\r
37 UINT8 Device;\r
38 UINT8 Function;\r
39 } Pci;\r
40 ///\r
41 /// For non-PCI IPMI device, the ACPI _UID value of the device\r
42 ///\r
43 UINT32 Uid;\r
44} EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_DEVICE_ID;\r
45\r
46\r
47///\r
48/// Definition for Service Processor Management Interface Description Table\r
49///\r
50typedef struct {\r
51 EFI_ACPI_DESCRIPTION_HEADER Header;\r
52 ///\r
53 /// Indicates the type of IPMI interface.\r
54 ///\r
55 UINT8 InterfaceType;\r
56 ///\r
57 /// This field must always be 01h to be compatible with any software that\r
58 /// implements previous versions of this spec.\r
59 ///\r
60 UINT8 Reserved1;\r
61 ///\r
62 /// Identifies the IPMI specification revision, in BCD format.\r
63 ///\r
64 UINT16 SpecificationRevision;\r
65 ///\r
66 /// Interrupt type(s) used by the interface.\r
67 ///\r
68 UINT8 InterruptType;\r
69 ///\r
70 /// The bit assignment of the SCI interrupt within the GPEx_STS register of a\r
71 /// GPE described if the FADT that the interface triggers.\r
72 ///\r
73 UINT8 Gpe;\r
74 ///\r
75 /// Reserved, must be 00h.\r
76 ///\r
77 UINT8 Reserved2;\r
78 ///\r
79 /// PCI Device Flag.\r
80 ///\r
81 UINT8 PciDeviceFlag;\r
82 ///\r
83 /// The I/O APIC or I/O SAPIC Global System Interrupt used by the interface.\r
84 ///\r
85 UINT32 GlobalSystemInterrupt;\r
86 ///\r
87 /// The base address of the interface register set described using the\r
88 /// Generic Address Structure (GAS, See [ACPI 2.0] for the definition).\r
89 ///\r
90 EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE BaseAddress;\r
91 ///\r
92 /// Device identification information.\r
93 ///\r
94 EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE_DEVICE_ID DeviceId;\r
95 ///\r
96 /// This field must always be null (0x00) to be compatible with any software\r
97 /// that implements previous versions of this spec.\r
98 ///\r
99 UINT8 Reserved3;\r
100} EFI_ACPI_SERVICE_PROCESSOR_MANAGEMENT_INTERFACE_TABLE;\r
101\r
102#pragma pack()\r
103\r
104#endif\r