OPAL_IPMI_SEND

#define OPAL_IPMI_SEND                          107

enum {
             OPAL_IPMI_MSG_FORMAT_VERSION_1 = 1,
};

struct opal_ipmi_msg {
             uint8_t version;
             uint8_t netfn;
             uint8_t cmd;
             uint8_t data[];
};

int64_t opal_ipmi_send(uint64_t interface,
                       struct opal_ipmi_msg *opal_ipmi_msg, uint64_t msg_len);

OPAL_IPMI_SEND call will send an IPMI message to the service processor.

Parameters

interface

interface parameter is the value from the ipmi interface node ibm,ipmi-interface-id

opal_ipmi_msg

opal_ipmi_msg is the pointer to a struct opal_ipmi_msg (see above)

msg_len

ipmi message request size

Return Values

OPAL_SUCCESS

msg queued successfully

OPAL_PARAMETER

invalid ipmi message request length msg_len

OPAL_HARDWARE

backend support is not present as block transfer/service processor ipmi routines are not initialized which are used for communication

OPAL_UNSUPPORTED

in-correct opal ipmi message format version opal_ipmi_msg->version

OPAL_RESOURCE

insufficient resources to create ipmi_msg structure

OPAL_IPMI_RECV

#define OPAL_IPMI_RECV                          108

enum {
             OPAL_IPMI_MSG_FORMAT_VERSION_1 = 1,
};

struct opal_ipmi_msg {
             uint8_t version;
             uint8_t netfn;
             uint8_t cmd;
             uint8_t data[];
};

int64_t opal_ipmi_recv(uint64_t interface,
                       struct opal_ipmi_msg *opal_ipmi_msg, uint64_t *msg_len)

OPAL_IPMI_RECV call reads an ipmi message of type ipmi_msg from ipmi message queue msgq into host OS structure opal_ipmi_msg.

Parameters

interface

interface parameter is the value from the ipmi interface node ibm,ipmi-interface-id

opal_ipmi_msg

opal_ipmi_msg is the pointer to a struct opal_ipmi_msg (see above)

msg_len

msg_len is the pointer to ipmi message response size

Return Values

OPAL_SUCCESS

ipmi message dequeued from msgq queue and memory taken by it got released successfully

OPAL_EMPTY

msgq list is empty

ref:OPAL_PARAMETER

invalid ipmi interface value

OPAL_UNSUPPORTED

incorrect opal ipmi message format version opal_ipmi_msg->version