153a374c1SSascha Wildner.\" 253a374c1SSascha Wildner.\" Copyright (c) 2006 Tom Rhodes 353a374c1SSascha Wildner.\" All rights reserved. 453a374c1SSascha Wildner.\" 553a374c1SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 653a374c1SSascha Wildner.\" modification, are permitted provided that the following conditions 753a374c1SSascha Wildner.\" are met: 853a374c1SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 953a374c1SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 1053a374c1SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 1153a374c1SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 1253a374c1SSascha Wildner.\" documentation and/or other materials provided with the distribution. 1353a374c1SSascha Wildner.\" 1453a374c1SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1553a374c1SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1653a374c1SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1753a374c1SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1853a374c1SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1953a374c1SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2053a374c1SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2153a374c1SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2253a374c1SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2353a374c1SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2453a374c1SSascha Wildner.\" SUCH DAMAGE. 2553a374c1SSascha Wildner.\" 2653a374c1SSascha Wildner.\" $FreeBSD: head/share/man/man4/ipmi.4 267938 2014-06-26 21:46:14Z bapt $ 2753a374c1SSascha Wildner.\" 2853a374c1SSascha Wildner.Dd December 14, 2014 2953a374c1SSascha Wildner.Dt IPMI 4 3053a374c1SSascha Wildner.Os 3153a374c1SSascha Wildner.Sh NAME 3253a374c1SSascha Wildner.Nm ipmi 3353a374c1SSascha Wildner.Nd "OpenIPMI compatible IPMI interface driver" 3453a374c1SSascha Wildner.Sh SYNOPSIS 3553a374c1SSascha Wildner.Cd "device ipmi" 3653a374c1SSascha Wildner.\".Pp 3753a374c1SSascha Wildner.\"To manually specify I/O attachment in 3853a374c1SSascha Wildner.\".Pa /boot/device.hints : 3953a374c1SSascha Wildner.\".Cd hint.ipmi.0.at="isa" 4053a374c1SSascha Wildner.\".Cd hint.ipmi.0.port="0xCA2" 4153a374c1SSascha Wildner.\".Cd hint.ipmi.0.spacing="8" 4253a374c1SSascha Wildner.\".Cd hint.ipmi.0.mode="KCS" 4353a374c1SSascha Wildner.\".Pp 4453a374c1SSascha Wildner.\"To manually specify memory attachment in 4553a374c1SSascha Wildner.\".Pa /boot/device.hints : 4653a374c1SSascha Wildner.\".Cd hint.ipmi.0.at="isa" 4753a374c1SSascha Wildner.\".Cd hint.ipmi.0.maddr="0xf0000000" 4853a374c1SSascha Wildner.\".Cd hint.ipmi.0.spacing="8" 4953a374c1SSascha Wildner.\".Cd hint.ipmi.0.mode="SMIC" 5053a374c1SSascha Wildner.\".Pp 5153a374c1SSascha Wildner.\"Meaning of 5253a374c1SSascha Wildner.\".Ar spacing : 5353a374c1SSascha Wildner.\".Bl -tag -offset indent -compact -width 0x0 5453a374c1SSascha Wildner.\".It 8 5553a374c1SSascha Wildner.\"8 bit alignment 5653a374c1SSascha Wildner.\".It 16 5753a374c1SSascha Wildner.\"16 bit alignment 5853a374c1SSascha Wildner.\".It 32 5953a374c1SSascha Wildner.\"32 bit alignment 6053a374c1SSascha Wildner.\".El 6153a374c1SSascha Wildner.\".Pp 6253a374c1SSascha Wildner.\"If the 6353a374c1SSascha Wildner.\".Ar port 6453a374c1SSascha Wildner.\"and 6553a374c1SSascha Wildner.\".Ar spacing 6653a374c1SSascha Wildner.\"are not specified the interface type default will be used. Only specify 6753a374c1SSascha Wildner.\"either the 6853a374c1SSascha Wildner.\".Ar port 6953a374c1SSascha Wildner.\"for I/O access or 7053a374c1SSascha Wildner.\".Ar maddr 7153a374c1SSascha Wildner.\"for memory access. 7253a374c1SSascha Wildner.Sh DESCRIPTION 7353a374c1SSascha WildnerThe 7453a374c1SSascha Wildner.Tn IPMI 7553a374c1SSascha Wildner(Intelligent Platform Management Interface) is a standard for 7653a374c1SSascha Wildnermonitoring system hardware by permitting generic code to detect 7753a374c1SSascha Wildnerand monitor the sensors in a system. 7853a374c1SSascha WildnerThe 7953a374c1SSascha Wildner.Tn IPMI 8053a374c1SSascha Wildnerstandard offers watchdog support, an FRU database, and other 8153a374c1SSascha Wildnersupport extensions. 8253a374c1SSascha WildnerIt is currently being adopted by the makers of many 8353a374c1SSascha Wildnersingle board and embedded system manufacturers. 8453a374c1SSascha Wildner.Pp 8553a374c1SSascha WildnerThe 8653a374c1SSascha Wildner.Nm 8753a374c1SSascha Wildnerdriver in 8853a374c1SSascha Wildner.Dx 8953a374c1SSascha Wildneris heavily adopted from the standard and 9053a374c1SSascha Wildner.Tn Linux 9153a374c1SSascha Wildnerdriver; however, not all features described in the 9253a374c1SSascha Wildnerstandard are supported. 93*7670f87fSMarkus Pfeiffer.Sh SYSCTL VARIABLES 94*7670f87fSMarkus PfeifferThe following 95*7670f87fSMarkus Pfeiffer.Xr sysctl 8 96*7670f87fSMarkus Pfeiffervariables are available: 97*7670f87fSMarkus Pfeiffer.Bl -tag -width ".Va dev.ipmi.%d.watchdog_timeout" 98*7670f87fSMarkus Pfeiffer.It Va dev.ipmi.%d.watchdog_enable 99*7670f87fSMarkus PfeifferEnable watchdog functionality. 100*7670f87fSMarkus Pfeiffer.It Va dev.ipmi.%d.watchdog_timeout 101*7670f87fSMarkus PfeifferSet the watchdog timeout. 102*7670f87fSMarkus Pfeiffer.El 10353a374c1SSascha Wildner.Sh IOCTLS 10453a374c1SSascha WildnerSending and receiving messages through the 10553a374c1SSascha Wildner.Nm 10653a374c1SSascha Wildnerdriver requires the use of 10753a374c1SSascha Wildner.Xr ioctl 2 . 10853a374c1SSascha WildnerThe ioctls are used due to the complexity of 10953a374c1SSascha Wildnerdata sent to and from the device. 11053a374c1SSascha WildnerThe 11153a374c1SSascha Wildner.Xr ioctl 2 11253a374c1SSascha Wildnercommand codes below are defined in 11353a374c1SSascha Wildner.In sys/ipmi.h . 11453a374c1SSascha WildnerThe third argument to 11553a374c1SSascha Wildner.Xr ioctl 2 11653a374c1SSascha Wildnershould be a pointer to the type indicated. 11753a374c1SSascha Wildner.Pp 11853a374c1SSascha WildnerCurrently the following ioctls are supported: 11953a374c1SSascha Wildner.Bl -tag -width indent 12053a374c1SSascha Wildner.It Dv IPMICTL_RECEIVE_MSG Pq Vt "struct ipmi_recv" 12153a374c1SSascha WildnerReceive a message. 12253a374c1SSascha WildnerPossible error values: 12353a374c1SSascha Wildner.Bl -tag -width Er 12453a374c1SSascha Wildner.It Bq Er EAGAIN 12553a374c1SSascha WildnerNo messages are in the process queue. 12653a374c1SSascha Wildner.It Bq Er EFAULT 12753a374c1SSascha WildnerAn address supplied was invalid. 12853a374c1SSascha Wildner.It Bq Er EMSGSIZE 12953a374c1SSascha WildnerThe address could not fit in the message buffer and 13053a374c1SSascha Wildnerwill remain in the buffer. 13153a374c1SSascha Wildner.El 13253a374c1SSascha Wildner.It Dv IPMICTL_RECEIVE_MSG_TRUNC Pq Vt "struct ipmi_recv" 13353a374c1SSascha WildnerLike 13453a374c1SSascha Wildner.Dv IPMICTL_RECEIVE_MSG 13553a374c1SSascha Wildnerbut if the message cannot fit into the buffer, it 13653a374c1SSascha Wildnerwill truncate the contents instead of leaving the data 13753a374c1SSascha Wildnerin the buffer. 13853a374c1SSascha Wildner.It Dv IPMICTL_SEND_COMMAND Pq Vt "struct ipmi_req" 13953a374c1SSascha WildnerSend a message to the interface. 14053a374c1SSascha WildnerPossible error values: 14153a374c1SSascha Wildner.Bl -tag -width Er 14253a374c1SSascha Wildner.It Bq Er EFAULT 14353a374c1SSascha WildnerAn address supplied was invalid. 14453a374c1SSascha Wildner.It Bq Er ENOMEM 14553a374c1SSascha WildnerBuffers could not be allowed for the command, out of memory. 14653a374c1SSascha Wildner.El 14753a374c1SSascha Wildner.It Dv IPMICTL_SET_MY_ADDRESS_CMD Pq Vt "unsigned int" 14853a374c1SSascha WildnerSet the slave address for source messages. 14953a374c1SSascha Wildner.It Dv IPMICTL_GET_MY_ADDRESS_CMD Pq Vt "unsigned int" 15053a374c1SSascha WildnerGet the slave address for source messages. 15153a374c1SSascha Wildner.It Dv IPMICTL_SET_MY_LUN_CMD Pq Vt "unsigned int" 15253a374c1SSascha WildnerSet the slave LUN for source messages. 15353a374c1SSascha Wildner.It Dv IPMICTL_GET_MY_LUN_CMD Pq Vt "unsigned int" 15453a374c1SSascha WildnerGet the slave LUN for source messages. 15553a374c1SSascha Wildner.El 15653a374c1SSascha Wildner.Ss Unimplemented Ioctls 15753a374c1SSascha Wildner.Bl -tag -width indent 15853a374c1SSascha Wildner.It Dv IPMICTL_REGISTER_FOR_CMD Pq Vt "struct ipmi_cmdspec" 15953a374c1SSascha WildnerRegister to receive a specific command. 16053a374c1SSascha WildnerPossible error values: 16153a374c1SSascha Wildner.Bl -tag -width Er 16253a374c1SSascha Wildner.It Bq Er EFAULT 16353a374c1SSascha WildnerAn supplied address was invalid. 16453a374c1SSascha Wildner.It Bq Er EBUSY 16553a374c1SSascha WildnerThe network function/command is already in use. 16653a374c1SSascha Wildner.It Bq Er ENOMEM 16753a374c1SSascha WildnerCould not allocate memory. 16853a374c1SSascha Wildner.El 16953a374c1SSascha Wildner.It Dv IPMICTL_UNREGISTER_FOR_CMD Pq Vt "struct ipmi_cmdspec" 17053a374c1SSascha WildnerUnregister to receive a specific command. 17153a374c1SSascha WildnerPossible error values: 17253a374c1SSascha Wildner.Bl -tag -width Er 17353a374c1SSascha Wildner.It Bq Er EFAULT 17453a374c1SSascha WildnerAn address supplied was invalid. 17553a374c1SSascha Wildner.It Bq Er ENOENT 17653a374c1SSascha WildnerThe network function/command was not found. 17753a374c1SSascha Wildner.El 17853a374c1SSascha Wildner.El 17953a374c1SSascha Wildner.Ss Stub Only Ioctl 18053a374c1SSascha Wildner.Bl -tag -width indent 18153a374c1SSascha Wildner.It Dv IPMICTL_SET_GETS_EVENTS_CMD Pq Vt int 18253a374c1SSascha WildnerSet whether this interface receives events. 18353a374c1SSascha WildnerPossible error values: 18453a374c1SSascha Wildner.Bl -tag -width Er 18553a374c1SSascha Wildner.It Bq Er EFAULT 18653a374c1SSascha WildnerAn address supplied was invalid. 18753a374c1SSascha Wildner.El 18853a374c1SSascha Wildner.El 18953a374c1SSascha Wildner.Sh SEE ALSO 19053a374c1SSascha Wildner.Xr ioctl 2 , 19153a374c1SSascha Wildner.Xr watchdog 4 , 19253a374c1SSascha Wildner.\".Xr watchdog 8 , 19353a374c1SSascha Wildner.Xr watchdogd 8 , 19453a374c1SSascha Wildner.Xr wdog 9 19553a374c1SSascha Wildner.Sh HISTORY 19653a374c1SSascha WildnerThe 19753a374c1SSascha Wildner.Nm 19853a374c1SSascha Wildnerdriver first appeared in 19953a374c1SSascha Wildner.Fx 6.2 . 20053a374c1SSascha WildnerIt was imported to 20153a374c1SSascha Wildner.Dx 4.1 . 20253a374c1SSascha Wildner.Sh AUTHORS 20353a374c1SSascha Wildner.An -nosplit 20453a374c1SSascha WildnerThe 20553a374c1SSascha Wildner.Nm 20653a374c1SSascha Wildnerdriver was written by 20753a374c1SSascha Wildner.An Doug Ambrisko Aq Mt ambrisko@FreeBSD.org . 20853a374c1SSascha WildnerThis manual page was written by 20953a374c1SSascha Wildner.An Tom Rhodes Aq Mt trhodes@FreeBSD.org . 21053a374c1SSascha Wildner.Sh BUGS 21153a374c1SSascha WildnerNot all features of the MontaVista driver are supported. 21253a374c1SSascha Wildner.Pp 21353a374c1SSascha WildnerCurrently, IPMB and BT modes are not implemented. 214