diff options
Diffstat (limited to 'roms/skiboot/doc/opal-api/opal-write-oppanel-async-95.rst')
-rw-r--r-- | roms/skiboot/doc/opal-api/opal-write-oppanel-async-95.rst | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/roms/skiboot/doc/opal-api/opal-write-oppanel-async-95.rst b/roms/skiboot/doc/opal-api/opal-write-oppanel-async-95.rst new file mode 100644 index 000000000..6a3d73886 --- /dev/null +++ b/roms/skiboot/doc/opal-api/opal-write-oppanel-async-95.rst @@ -0,0 +1,49 @@ +.. _OPAL_WRITE_OPPANEL_ASYNC: + +OPAL_WRITE_OPPANEL_ASYNC +======================== + +.. code-block:: c + + #define OPAL_WRITE_OPPANEL_ASYNC 95 + + typedef struct oppanel_line { + __be64 line; + __be64 line_len; + } oppanel_line_t; + + int64_t opal_write_oppanel_async(uint64_t async_token, + oppanel_line_t *lines, + uint64_t num_lines); + +Writes to a (possibly physical) Operator Panel. An Operator Panel contains +a small LCD screen (or similar) displaying a small amount of ASCII text. +It can be used to report on boot progress, failure, or witty messages from +a systems administrator. + +A typical panel, as present on IBM FSP based machines, is two lines of 16 +characters each. + +See :ref:`device-tree/ibm,opal/oppanel` for how the panel is described in the +device tree. Not all systems have an operator panel. + +Pass in an array of oppanel_line_t structs defining the ASCII characters +to display on each line of the oppanel. If there are two lines on the +physical panel, and you only want to write to the first line, you only +need to pass in one line. If you only want to write to the second line, +you need to pass in both lines, and set the line_len of the first line +to zero. + +Returns +------- +:ref:`OPAL_SUCCESS` + Success! Typically this is async operation, so immediate success is + unlikely. +:ref:`OPAL_ASYNC_COMPLETION` + Request submitted asynchronously. +:ref:`OPAL_PARAMETER` + Invalid `lines` or `num_lines` +:ref:`OPAL_NO_MEM` + Not enough free memory in OPAL to complete the request. +:ref:`OPAL_INTERNAL_ERROR` + Other internal error. |