]> Pileus Git - ~andy/linux/commit
IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller
authorZhao Yakui <yakui.zhao@intel.com>
Wed, 8 Dec 2010 02:10:18 +0000 (10:10 +0800)
committerLen Brown <len.brown@intel.com>
Tue, 14 Dec 2010 05:22:14 +0000 (00:22 -0500)
commite92b297cc72ade7a58eaec7e01c906d856f8ab6e
tree098f92ee2ffed488e5c6438bc2e93c3212edbf25
parent37bf501bdda1d5d6ea73ce29d4b00d291b6f3811
IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller

ACPI 4.0 spec adds the ACPI IPMI opregion, which means that the ACPI AML
code can also communicate with the BMC controller. This is to install
the ACPI IPMI opregion and enable the ACPI to access the BMC controller
through the IPMI message.

     It will create IPMI user interface for every IPMI device detected
in ACPI namespace and install the corresponding IPMI opregion space handler.
Then it can enable ACPI to access the BMC controller through the IPMI
message.

The following describes how to process the IPMI request in IPMI space handler:
    1. format the IPMI message based on the request in AML code.
    IPMI system address. Now the address type is SYSTEM_INTERFACE_ADDR_TYPE
    IPMI net function & command
    IPMI message payload
    2. send the IPMI message by using the function of ipmi_request_settime
    3. wait for the completion of IPMI message. It can be done in different
routes: One is in handled in IPMI user recv callback function. Another is
handled in timeout function.
    4. format the IPMI response and return it to ACPI AML code.

At the same time it also addes the module dependency. The ACPI IPMI opregion
will depend on the IPMI subsystem.

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/Kconfig
drivers/acpi/Makefile
drivers/acpi/acpi_ipmi.c [new file with mode: 0644]