linux/include/uapi/linux/ipmi_msgdefs.h
<<
>>
Prefs
   1/*
   2 * ipmi_smi.h
   3 *
   4 * MontaVista IPMI system management interface
   5 *
   6 * Author: MontaVista Software, Inc.
   7 *         Corey Minyard <minyard@mvista.com>
   8 *         source@mvista.com
   9 *
  10 * Copyright 2002 MontaVista Software Inc.
  11 *
  12 *  This program is free software; you can redistribute it and/or modify it
  13 *  under the terms of the GNU General Public License as published by the
  14 *  Free Software Foundation; either version 2 of the License, or (at your
  15 *  option) any later version.
  16 *
  17 *
  18 *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
  19 *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  20 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  21 *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  22 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  23 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  24 *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  25 *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
  26 *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
  27 *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28 *
  29 *  You should have received a copy of the GNU General Public License along
  30 *  with this program; if not, write to the Free Software Foundation, Inc.,
  31 *  675 Mass Ave, Cambridge, MA 02139, USA.
  32 */
  33
  34#ifndef __LINUX_IPMI_MSGDEFS_H
  35#define __LINUX_IPMI_MSGDEFS_H
  36
  37/* Various definitions for IPMI messages used by almost everything in
  38   the IPMI stack. */
  39
  40/* NetFNs and commands used inside the IPMI stack. */
  41
  42#define IPMI_NETFN_SENSOR_EVENT_REQUEST         0x04
  43#define IPMI_NETFN_SENSOR_EVENT_RESPONSE        0x05
  44#define IPMI_GET_EVENT_RECEIVER_CMD     0x01
  45
  46#define IPMI_NETFN_APP_REQUEST                  0x06
  47#define IPMI_NETFN_APP_RESPONSE                 0x07
  48#define IPMI_GET_DEVICE_ID_CMD          0x01
  49#define IPMI_COLD_RESET_CMD             0x02
  50#define IPMI_WARM_RESET_CMD             0x03
  51#define IPMI_CLEAR_MSG_FLAGS_CMD        0x30
  52#define IPMI_GET_DEVICE_GUID_CMD        0x08
  53#define IPMI_GET_MSG_FLAGS_CMD          0x31
  54#define IPMI_SEND_MSG_CMD               0x34
  55#define IPMI_GET_MSG_CMD                0x33
  56#define IPMI_SET_BMC_GLOBAL_ENABLES_CMD 0x2e
  57#define IPMI_GET_BMC_GLOBAL_ENABLES_CMD 0x2f
  58#define IPMI_READ_EVENT_MSG_BUFFER_CMD  0x35
  59#define IPMI_GET_CHANNEL_INFO_CMD       0x42
  60
  61/* Bit for BMC global enables. */
  62#define IPMI_BMC_RCV_MSG_INTR     0x01
  63#define IPMI_BMC_EVT_MSG_INTR     0x02
  64#define IPMI_BMC_EVT_MSG_BUFF     0x04
  65#define IPMI_BMC_SYS_LOG          0x08
  66
  67#define IPMI_NETFN_STORAGE_REQUEST              0x0a
  68#define IPMI_NETFN_STORAGE_RESPONSE             0x0b
  69#define IPMI_ADD_SEL_ENTRY_CMD          0x44
  70
  71#define IPMI_NETFN_FIRMWARE_REQUEST             0x08
  72#define IPMI_NETFN_FIRMWARE_RESPONSE            0x09
  73
  74/* The default slave address */
  75#define IPMI_BMC_SLAVE_ADDR     0x20
  76
  77/* The BT interface on high-end HP systems supports up to 255 bytes in
  78 * one transfer.  Its "virtual" BMC supports some commands that are longer
  79 * than 128 bytes.  Use the full 256, plus NetFn/LUN, Cmd, cCode, plus
  80 * some overhead; it's not worth the effort to dynamically size this based
  81 * on the results of the "Get BT Capabilities" command. */
  82#define IPMI_MAX_MSG_LENGTH     272     /* multiple of 16 */
  83
  84#define IPMI_CC_NO_ERROR                0x00
  85#define IPMI_NODE_BUSY_ERR              0xc0
  86#define IPMI_INVALID_COMMAND_ERR        0xc1
  87#define IPMI_TIMEOUT_ERR                0xc3
  88#define IPMI_ERR_MSG_TRUNCATED          0xc6
  89#define IPMI_REQ_LEN_INVALID_ERR        0xc7
  90#define IPMI_REQ_LEN_EXCEEDED_ERR       0xc8
  91#define IPMI_NOT_IN_MY_STATE_ERR        0xd5    /* IPMI 2.0 */
  92#define IPMI_LOST_ARBITRATION_ERR       0x81
  93#define IPMI_BUS_ERR                    0x82
  94#define IPMI_NAK_ON_WRITE_ERR           0x83
  95#define IPMI_ERR_UNSPECIFIED            0xff
  96
  97#define IPMI_CHANNEL_PROTOCOL_IPMB      1
  98#define IPMI_CHANNEL_PROTOCOL_ICMB      2
  99#define IPMI_CHANNEL_PROTOCOL_SMBUS     4
 100#define IPMI_CHANNEL_PROTOCOL_KCS       5
 101#define IPMI_CHANNEL_PROTOCOL_SMIC      6
 102#define IPMI_CHANNEL_PROTOCOL_BT10      7
 103#define IPMI_CHANNEL_PROTOCOL_BT15      8
 104#define IPMI_CHANNEL_PROTOCOL_TMODE     9
 105
 106#define IPMI_CHANNEL_MEDIUM_IPMB        1
 107#define IPMI_CHANNEL_MEDIUM_ICMB10      2
 108#define IPMI_CHANNEL_MEDIUM_ICMB09      3
 109#define IPMI_CHANNEL_MEDIUM_8023LAN     4
 110#define IPMI_CHANNEL_MEDIUM_ASYNC       5
 111#define IPMI_CHANNEL_MEDIUM_OTHER_LAN   6
 112#define IPMI_CHANNEL_MEDIUM_PCI_SMBUS   7
 113#define IPMI_CHANNEL_MEDIUM_SMBUS1      8
 114#define IPMI_CHANNEL_MEDIUM_SMBUS2      9
 115#define IPMI_CHANNEL_MEDIUM_USB1        10
 116#define IPMI_CHANNEL_MEDIUM_USB2        11
 117#define IPMI_CHANNEL_MEDIUM_SYSINTF     12
 118#define IPMI_CHANNEL_MEDIUM_OEM_MIN     0x60
 119#define IPMI_CHANNEL_MEDIUM_OEM_MAX     0x7f
 120
 121#endif /* __LINUX_IPMI_MSGDEFS_H */
 122