| .. _opal-sysparams: |
| |
| ========================= |
| Get/Set System Parameters |
| ========================= |
| |
| The usual way for setting system parameters is via IPMI for things controlled |
| by the service processor, or through NVRAM for things controlled by host |
| firmware. However, some platforms may have other options not easily (or |
| possible to be) exposed over IPMI. These OPAL calls will read (and write) |
| these parameters. |
| |
| The list of parameters is set at boot time, and is represented in the device |
| tree (see :ref:`device-tree/ibm,opal/sysparams` for details). |
| |
| Currently only implemented on FSP based systems. |
| |
| .. _OPAL_GET_PARAM: |
| |
| OPAL_GET_PARAM |
| ============== |
| |
| .. code-block:: c |
| |
| #define OPAL_GET_PARAM 89 |
| |
| int64_t fsp_opal_get_param(uint64_t async_token, uint32_t param_id, |
| uint64_t buffer, uint64_t length); |
| |
| Get the current setting of `param_id`. This is an asynchronous call as OPAL may |
| need to communicate with a service processor. The `param_id` and `length` are |
| described in the device tree for each parameter (see |
| :ref:`device-tree/ibm,opal/sysparams` for details). |
| |
| Returns |
| ------- |
| :ref:`OPAL_HARDWARE` |
| Hardware issue prevents retreiving parameter. e.g. FSP is offline or |
| absent. |
| :ref:`OPAL_PARAMETER` |
| Invalid `param_id` |
| :ref:`OPAL_PERMISSION` |
| Not allowed to read parameter. |
| :ref:`OPAL_NO_MEM` |
| Not enough free memory in OPAL to process request. |
| :ref:`OPAL_INTERNAL_ERROR` |
| Other internal OPAL error |
| :ref:`OPAL_ASYNC_COMPLETION` |
| Request is submitted. |
| |
| .. _OPAL_SET_PARAM: |
| |
| OPAL_SET_PARAM |
| ============== |
| |
| .. code-block:: c |
| |
| #define OPAL_SET_PARAM 90 |
| |
| int64_t fsp_opal_set_param(uint64_t async_token, uint32_t param_id, |
| uint64_t buffer, uint64_t length); |
| |
| |
| Write a new setting for `param_id`. This is an asynchronous call as OPAL may |
| need to communicate with a service processor. The `param_id` and `length` are |
| described in the device tree for each parameter (see |
| :ref:`device-tree/ibm,opal/sysparams` for details). |
| |
| |
| Returns |
| ------- |
| :ref:`OPAL_HARDWARE` |
| Hardware issue prevents retreiving parameter. e.g. FSP is offline or |
| absent. |
| :ref:`OPAL_PARAMETER` |
| Invalid `param_id` |
| :ref:`OPAL_PERMISSION` |
| Not allowed to write parameter. |
| :ref:`OPAL_NO_MEM` |
| Not enough free memory in OPAL to process request. |
| :ref:`OPAL_INTERNAL_ERROR` |
| Other internal OPAL error |
| :ref:`OPAL_ASYNC_COMPLETION` |
| Request is submitted. |