[Skiboot] [PATCH 3/3] doc/opal-uv-abi.rst: Add information about SBE commands
Thiago Jung Bauermann
bauerman at linux.ibm.com
Sat Mar 28 12:08:06 AEDT 2020
Signed-off-by: Thiago Jung Bauermann <bauerman at linux.ibm.com>
---
doc/opal-uv-abi.rst | 50 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 48 insertions(+), 2 deletions(-)
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
##########
More information about the Skiboot
mailing list