85 lines
2.4 KiB
ReStructuredText
85 lines
2.4 KiB
ReStructuredText
|
.. _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.
|