ipmi(7D) Devices ipmi(7D)NAMEipmi - service processor driver interface using IPMI
SYNOPSIS
#include <sys/ipmi.h>
open("/dev/ipmi0", mode);
DESCRIPTION
The ipmi driver provides access to a system's service processor using
an IPMI (Intelligent Platform Management Interface) standard interface.
This driver is OpenIPMI compliant and supports the service processor's
watchdog timer.
ipmi supplies a standard way to access and monitor system sensors, the
FRU database, and the overall environmental state and health of the
system.
The primary method for communication between user land and the driver
is through the use of ioctl(2).
This driver follows the pseudo OpenIPMI standard. See
http://openipmi.sourceforge.net for details of the OpenIPMI and its
uses.
ipmi supplies the new functionality of the OpenIPMI compatible driver
module. If you only need the functionality of the legacy bmc driver,
use the bmc module.
Properties
The impi module supplies an OpenIPMI compatible driver module. If
you need this new functionality then this is the driver module
that you should use.
If you only need the functionality of the legacy bmc driver, use the
bmc module.
If you want the extended features of the new OpenIPMI driver, but still
require legacy bmc driver functionality you have the choice of using
the new sbmc/ipmi driver module pair. This new pair offers an OpenIPMI
compatible driver (ipmi) and a legacy bmc compatible driver, sbmc, both
of which can be used at the same time.
Driver Module Functionality Enable Property
bmc Legacy bmc driver bmc.conf/bmc-enable
ipmi OpenIPMI driver ipmi.conf/ipmi-enable
sbmc bmc compatibility sbmc.conf/sbmc-enable
for OpenIPMI
The above properties can be set to either 1 (enable) or 0 (disable). If
you need OpenIPMI with legacy support then ipmi-anable=1 should be in
the file ipmi.conf. Also sbmc-enable=1 should be in the file sbmc.conf.
and bmc-enable=0 must be in the file bmc.conf.
The driver properties are set by editing the related configuration
file. For the ipmi driver the file is ipmi.conf.
The following properties are supported:
ipmi-enable Enables or disables the ipmi driver. When the driver
is disabled it does not attach and is not active.
When set to 1 the ipmi driver is enabled. The default
is disabled.
ipmi-polltime The time in milliseconds between polls to check for
asynchronous events.
If this value is set to 0 then asynchronous event
notification is disabled. The default value is 1 sec‐
ond.
ipmi-wdtime The initial value for the watch-dog time out period in
seconds. The watch-dog counts down from this value
until it reaches 0, at which time the system resets.
The default for is 90 seconds. If this value is set to
0 the watch-dog feature is disabled.
ipmi-wdupdate The driver watch-dog update period in seconds. The
driver watch-dog update period is the number of sec‐
onds between the time that the driver resets the
watch-dog timer back to its initial value.
If this value is set to 0 the watch-dog feature is
disabled. The default for this value is 30 seconds.
IOCTLS
The following ioctls are supported:
IPMICTL_GET_MY_ADDRESS_CMD:
Passed an argument of type (unsigned int *). Gets the slave address
for source messages.
IPMICTL_GET_TIMING_PARMS_CMD
Passed an argument of type (struct ipmi_timing_parms *). Gets the
retry and error timeout metrics for an open session. The time value
is in milliseconds.
IPMICTL_RECEIVE_MSG
Passed an argument of type (struct ipmi_recv *). ioctl(2) receives
a message. If the received message is too large to fit in the buf‐
fer an error is returned.
IPMICTL_RECEIVE_MSG_TRUNC
Like IPMICTL_RECEIVE_MSG with the exception that if the message
does not fit in the buffer it is truncated.
IPMICTL_REGISTER_FOR_CMD
Passed an argument of type (struct ipmi_cmdspec *). Registers to
receive a specific command.
IPMICTL_SEND_COMMAND
Passed an argument of type (struct ipmi_req *). ioctl(2) is used to
send a request to the interface.
IPMICTL_SEND_COMMAND_SETTIME
Passed an argument of type (struct ipmi_req_settime *). Like
IPMICTL_SEND_COMMAND but also sets the retries and error timeout
value passed in for this request only.
IPMICTL_SET_GETS_EVENTS_CMD
Passed an argument of type (int). This is passed a boolean which
when set to none. zero causes the interface to deliver asynchronous
events to this open session.
IPMICTL_SET_MY_ADDRESS_CMD
Passed an argument of type (unsigned int *). Sets the slave address
for source messages.
IPMICTL_SET_MY_LUN_CMD
Passed an argument of type (unsigned int *). Sets the slave address
for source messages.
IPMICTL_SET_TIMING_PARMS_CMD
Passed an argument of type (struct ipmi_timing_parms *). Sets the
retry and error timeout metrics for an open session. The time value
is in milliseconds.
IPMICTL_UNREGISTER_FOR_CMD
Passed an argument of type (struct ipmi_cmdspec *). Unregisters to
receive a specific command.
ERRORS
An open(2) fails if:
EAGAIN There are too many open instances. Try again later.
EIO There is a hardware initialization problem.
ENXIO There is a problem and the driver is not available.
An ioctl(2) fails if:
EAGAIN None available. Try again later.
EACCESS The operation violates permissions.
EFAULT An address is invalid.
ENOIOCTL Invalid ioctl.
FILES
/dev/bmc Legacy bmc driver file node
/dev/ipmi0 OpenIPMI compatible driver file node
/kernel/drv/bmc.conf bmc configuration file
/kernel/drv/ipmi.conf ipmi configuration file
/kernel/drv/sbmc.conf bmc compatibility module for OpenIPMI con‐
figuration file
/kernel/drv/amd64/bmc 64-bit x86 kernel bmc driver module
/kernel/drv/amd64/ipmi 64-bit x86 kernel OpenIPMI driver module
/kernel/drv/amd64/sbmc 64-bit x86 kernel bmc compatible driver
module
/kernel/drv/sparcv9/bmc 64-bit SPARC kernel bmc driver module
/kernel/drv/sparcv9/ipmi 64-bit SPARC kernel OpenIPMI driver module
/kernel/drv/sparcv9/sbmc 64-bit SPARC kernel bmc compatible driver
module
ATTRIBUTES
See attributes(5) for a description of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ATTRIBUTE TYPE │ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │SPARC, x86 │
├─────────────────────────────┼─────────────────────────────┤
│Availability │driver/management/bmc │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Uncommitted │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOclose(2), ioctl(2), open(2), poll(2),attributes(5), bmc(7D)
http://openipmi.sourceforge.net
SunOS 5.10 24 Feb 2011 ipmi(7D)