aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2017-02-08 18:34:16 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-03-07 15:40:20 +1100
commit139e32d139103fc7fcb2121146c89edb9f40c55f (patch)
tree81488319384125d77350c3eb4c2237132977e0ab /doc
parent28e96ffaba8b659f48312bdcea35a1403310fba3 (diff)
downloadskiboot-139e32d139103fc7fcb2121146c89edb9f40c55f.zip
skiboot-139e32d139103fc7fcb2121146c89edb9f40c55f.tar.gz
skiboot-139e32d139103fc7fcb2121146c89edb9f40c55f.tar.bz2
System reset IPI facility and Mambo implementation
Add an opal call OPAL_SIGNAL_SYSTEM_RESET which allows system reset exceptions to be raised on other CPUs and act as an NMI IPI. There is an initial simple Mambo implementation, but allowances are made for a more complex hardware implementation. This API is based on the POWER8 implementation from Alistair Popple. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [stewart@linux.vnet.ibm.com: minor RST fix] Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'doc')
-rw-r--r--doc/opal-api/opal-signal-system-reset-145.rst44
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/opal-api/opal-signal-system-reset-145.rst b/doc/opal-api/opal-signal-system-reset-145.rst
new file mode 100644
index 0000000..4c1ee93
--- /dev/null
+++ b/doc/opal-api/opal-signal-system-reset-145.rst
@@ -0,0 +1,44 @@
+OPAL_SIGNAL_SYSTEM_RESET
+========================
+::
+
+ int64_t signal_system_reset(int32_t cpu_nr);
+
+This OPAL call causes the specified cpu(s) to be reset to the system
+reset exception handler (0x100).
+
+The exact contents of system registers (e.g., SRR1 wakeup causes) may
+vary depending on implementation and should not be relied upon.
+
+Resetting active threads on the same core as this call is run may
+not be supported by some platforms. In that case, OPAL_PARTIAL will be
+returned and NONE of the interrupts will be delivered.
+
+Arguments
+---------
+::
+
+ int32_t cpu_nr
+ cpu_nr >= 0 The cpu server number of the target cpu to reset.
+ SYS_RESET_ALL (-1) All cpus should be reset.
+ SYS_RESET_ALL_OTHERS (-2) All but the current cpu should be reset.
+
+Returns
+-------
+OPAL_SUCCESS
+ The power down was updated successful.
+
+OPAL_PARAMETER
+ A parameter was incorrect.
+
+OPAL_HARDWARE
+ Hardware indicated failure during reset.
+
+OPAL_PARTIAL
+ Platform can not reset all requested CPUs at this time. This requires
+ platform-specific code to work around, otherwise to be treated as
+ failure. No CPUs are reset.
+
+OPAL_UNSUPPORTED
+ This processor/platform is not supported.
+