IPMI(4) | Device Drivers Manual | IPMI(4) |
ipmi
— OpenIPMI
compatible IPMI interface driver
device ipmi
To manually specify I/O attachment in
/boot/device.hints:
hint.ipmi.0.at="isa"
hint.ipmi.0.port="0xCA2"
hint.ipmi.0.spacing="8"
hint.ipmi.0.mode="KCS"
To manually specify memory attachment in
/boot/device.hints:
hint.ipmi.0.at="isa"
hint.ipmi.0.maddr="0xf0000000"
hint.ipmi.0.spacing="8"
hint.ipmi.0.mode="SMIC"
Meaning of spacing:
If the port and spacing are not specified the interface type default will be used. Only specify either the port for I/O access or maddr for memory access.
The IPMI (Intelligent Platform Management Interface) is a standard for monitoring system hardware by permitting generic code to detect and monitor the sensors in a system. The IPMI standard offers watchdog support, an FRU database, and other support extensions. It is currently being adopted by the makers of many single board and embedded system manufacturers.
The ipmi
driver in
FreeBSD is heavily adopted from the standard and
Linux driver; however, not all features described in the standard are
supported.
The ipmi
driver implements the power
cycling option to shutdown(8) to implement power cycling
of the system. The motherboard's BMC must support the chassis device and the
optional power cycle subcomand of the chassis control command as described
in section 28.3 of the IPMI standard. The length of time the system is off
will be at least one second, but may be longer if the power cycle interval
has been set (see section 28.9).
Sending and receiving messages through the
ipmi
driver requires the use of
ioctl(2). The ioctls are used due to the complexity of
data sent to and from the device. The ioctl(2) command
codes below are defined in
<sys/ipmi.h>
. The third
argument to ioctl(2) should be a pointer to the type
indicated.
Currently the following ioctls are supported:
IPMICTL_RECEIVE_MSG
(struct ipmi_recv)EAGAIN
]EFAULT
]EMSGSIZE
]IPMICTL_RECEIVE_MSG_TRUNC
(struct ipmi_recv)IPMICTL_RECEIVE_MSG
but if the message cannot
fit into the buffer, it will truncate the contents instead of leaving the
data in the buffer.IPMICTL_SEND_COMMAND
(struct ipmi_req)EFAULT
]ENOMEM
]IPMICTL_SET_MY_ADDRESS_CMD
(unsigned int)IPMICTL_GET_MY_ADDRESS_CMD
(unsigned int)IPMICTL_SET_MY_LUN_CMD
(unsigned int)IPMICTL_GET_MY_LUN_CMD
(unsigned int)IPMICTL_REGISTER_FOR_CMD
(struct ipmi_cmdspec)EFAULT
]EBUSY
]ENOMEM
]IPMICTL_UNREGISTER_FOR_CMD
(struct ipmi_cmdspec)EFAULT
]ENOENT
]IPMICTL_SET_GETS_EVENTS_CMD
(int)EFAULT
]ioctl(2), watchdog(4), reboot(8), shutdown(8), watchdog(8), watchdogd(8), watchdog(9)
The ipmi
driver first appeared in
FreeBSD 6.2.
The ipmi
driver was written by
Doug Ambrisko
<ambrisko@FreeBSD.org>.
This manual page was written by Tom Rhodes
<trhodes@FreeBSD.org>.
Not all features of the MontaVista driver are supported.
Currently, IPMB and BT modes are not implemented.
October 25, 2017 | Debian |