diff mbox series

[3/3] doc/opal-uv-abi.rst: Add information about SBE commands

Message ID 20200328010806.20621-4-bauerman@linux.ibm.com
State New
Headers show
Series Ultravisor SBE chipops | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch fail Failed to apply to any branch
snowpatch_ozlabs/apply_patch warning Failed to apply on branch master (d703ad5b8ea93f2bcd98ca2642dcd3c66da82c91)

Commit Message

Thiago Jung Bauermann March 28, 2020, 1:08 a.m. UTC
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com>
---
 doc/opal-uv-abi.rst | 50 +++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 48 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/doc/opal-uv-abi.rst b/doc/opal-uv-abi.rst
index bf91e730b..57584fc58 100644
--- a/doc/opal-uv-abi.rst
+++ b/doc/opal-uv-abi.rst
@@ -362,6 +362,9 @@  UV_READ_SCOM
 
 Perform an XSCOM read and put the value in a buffer.
 
+Some XSCOM addresses are restricted by the Ultravisor and will return
+U_PERMISSION if they have been blocked.
+
 Syntax
 ~~~~~~
 
@@ -376,7 +379,7 @@  Return values
 ~~~~~~~~~~~~~
 
 * U_SUCCESS     on success.
-* U_PERMISSION  if called from VM context.
+* U_PERMISSION  if called from VM context or if the XSCOM cannot be allowed.
 * U_PARAMETER   if invalid partiton or address.
 * U_BUSY        if unit is busy, need to retry.
 * U_XSCOM_CHIPLET_OFF   if cpu is asleep.
@@ -391,6 +394,9 @@  UV_WRITE_SCOM
 
 Perform an XSCOM write.
 
+Some XSCOM addresses are restricted by the Ultravisor and will return
+U_PERMISSION if they have been blocked.
+
 Syntax
 ~~~~~~
 
@@ -407,7 +413,7 @@  Return values
 One of the following values:
 
 * U_SUCCESS     on success.
-* U_PERMISSION  if called from VM context.
+* U_PERMISSION  if called from VM context or if the XSCOM cannot be allowed.
 * U_PARAMETER   if invalid partiton.
 * U_BUSY        if unit is busy, need to retry.
 * U_XSCOM_CHIPLET_OFF   if cpu is asleep.
@@ -417,6 +423,46 @@  One of the following values:
 * U_XSCOM_PARITY_ERROR  if parity error.
 * U_XSCOM_TIMEOUT       if timeout.
 
+UV_SEND_SBE_COMMAND
+-------------------
+
+Send a request to the SBE. These are the commands that can be sent:
+
+* SBE_CHIPOP_TIMER: Set the SBE timer to the target provided in the input
+  parameter.
+* SBE_CHIPOP_HANDLE_INTERRUPT: Read the host doorbell register and returns in
+  the output parameter the bits that were set. The bits in the doorbell register
+  are cleared. The input parameter is unused and must be zero.
+* SBE_CHIPOP_START_MPIPL: Send S0 interrupt to SBE. The input parameter is
+  unused and must be zero.
+
+Syntax
+~~~~~~
+
+.. code-block:: c
+
+        enum sbe_chipop_ops {
+                SBE_CHIPOP_TIMER,
+                SBE_CHIPOP_HANDLE_INTERRUPT,
+                SBE_CHIPOP_START_MPIPL
+        };
+
+        long ucall(UV_SEND_SBE_COMMAND,
+                unsigned long *retbuf,
+                u64 chip_id,
+                enum sbe_chipop_ops opcode,
+                u64 input)
+
+Return values
+~~~~~~~~~~~~~
+
+The same return values as UV_READ_SCOM and UV_WRITE_SCOM, or one of the
+following values:
+
+* U_SUCCESS     on success.
+* U_PERMISSION  if called from VM context.
+* U_PARAMETER   if invalid chip_id, opcode or input value.
+
 References
 ##########