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