@@ -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
##########
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.ibm.com> --- doc/opal-uv-abi.rst | 50 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-)