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