| .. _OPAL_IPMI_SEND: |
| |
| OPAL_IPMI_SEND |
| ============== |
| |
| .. code-block:: c |
| |
| #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); |
| |
| :ref:`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 |
| ------------- |
| |
| :ref:`OPAL_SUCCESS` |
| ``msg`` queued successfully |
| :ref:`OPAL_PARAMETER` |
| invalid ipmi message request length ``msg_len`` |
| :ref:`OPAL_HARDWARE` |
| backend support is not present as block transfer/service processor ipmi routines are not |
| initialized which are used for communication |
| :ref:`OPAL_UNSUPPORTED` |
| in-correct opal ipmi message format version ``opal_ipmi_msg->version`` |
| :ref:`OPAL_RESOURCE` |
| insufficient resources to create ``ipmi_msg`` structure |
| |
| .. _OPAL_IPMI_RECV: |
| |
| OPAL_IPMI_RECV |
| ============== |
| |
| .. code-block:: c |
| |
| #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 |
| ------------- |
| |
| :ref:`OPAL_SUCCESS` |
| ipmi message dequeued from ``msgq`` queue and memory taken by it got released successfully |
| :ref:`OPAL_EMPTY` |
| ``msgq`` list is empty |
| ref:`OPAL_PARAMETER` |
| invalid ipmi ``interface`` value |
| :ref:`OPAL_UNSUPPORTED` |
| incorrect opal ipmi message format version ``opal_ipmi_msg->version`` |