27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACPI Software Programming Model<br />

5.5.2.4.3 Declaring IPMI Operation Regions<br />

This section describes the Intelligent Platform Management <strong>Interface</strong> (IPMI) address space <strong>and</strong> the<br />

use of this address space to communicate with the Baseboard Management Controller (BMC)<br />

hardware from AML.<br />

Similar to SMBus, IPMI operation regions are comm<strong>and</strong> based, where each offset within an IPMI<br />

address space represent an IPMI comm<strong>and</strong> <strong>and</strong> response pair. Given this uniqueness, IPMI operation<br />

regions include restrictions on their field definitions <strong>and</strong> require the use of an IPMI-specific data<br />

buffer for all transactions. The IPMI interface presented in this section is intended for use with any<br />

hardware implementation compatible with the IPMI specification, regardless of the system interface<br />

type.<br />

Support of the IPMI generic address space by ACPI-compatible operating systems is optional, <strong>and</strong> is<br />

contingent on the existence of an ACPI IPMI device, i.e. a device with the “IPI0001” plug <strong>and</strong> play<br />

ID. If present, OSPM should load the necessary driver software based on the system interface type as<br />

specified by the _IFT (IPMI <strong>Interface</strong> Type) control method under the device, <strong>and</strong> register h<strong>and</strong>lers<br />

for accesses into the IPMI operation region space.<br />

For more information, refer to the IPMI specification.<br />

Each IPMI operation region definition identifies a single IPMI network function. Operation regions<br />

are defined only for those IPMI network functions that need to be accessed from AML. As with<br />

other regions, IPMI operation regions are only accessible via the Field term (see Section 5.5.2.4.3.1,<br />

“Declaring IPMI Fields”).<br />

This interface models each IPMI network function as having a 256-byte linear address range. Each<br />

byte offset within this range corresponds to a single comm<strong>and</strong> value (for example, byte offset 0xC1<br />

equates to comm<strong>and</strong> value 0xC1), with a maximum of 256 comm<strong>and</strong> values. By doing this, IPMI<br />

address spaces appear linear <strong>and</strong> can be processed in a manner similar to the other address space<br />

types.<br />

The syntax for the OperationRegion term (from Section 19.6.97, “OperationRegion (Declare<br />

Operation Region]”) is described below.<br />

OperationRegion (<br />

RegionName,<br />

RegionSpace,<br />

Offset,<br />

Length<br />

)<br />

Where:<br />

// NameString<br />

// RegionSpaceKeyword<br />

// TermArg=>Integer<br />

// TermArg=>Integer<br />

• RegionName specifies a name for this IPMI network function (for example, “POWR”).<br />

• RegionSpace must be set to IPMI (operation region type value 0x07).<br />

• Offset is a word-sized value specifying the network function <strong>and</strong> initial comm<strong>and</strong> value offset<br />

for the target device. The network function address is stored in the high byte <strong>and</strong> the comm<strong>and</strong><br />

value offset is stored in the low byte. For example, the value 0x3000 would be used for a device<br />

with the network function of 0x06, <strong>and</strong> an initial comm<strong>and</strong> value offset of zero (0).<br />

• Length is set to the 0x100 (256), representing the maximum number of possible comm<strong>and</strong><br />

values, for regions with an initial comm<strong>and</strong> value offset of zero (0). The difference of these two<br />

values is used for regions with non-zero offsets. For example, a region with an Offset value of<br />

0x3010 would have a corresponding Length of 0xF0 (0x100 minus 0x10).<br />

Version 6.0 223

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!