aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Smith <stewart@linux.ibm.com>2019-05-31 16:12:54 +1000
committerStewart Smith <stewart@linux.ibm.com>2019-06-03 10:19:59 +1000
commit1fbddac373ef1439f13c2dd825b112c865f1e1d5 (patch)
treea047a670e0d4f796f13753303a9a063de3d8f016
parent77f7c48a1fd6eef9f09b97a0f3e7a90d5844d08c (diff)
downloadskiboot-1fbddac373ef1439f13c2dd825b112c865f1e1d5.zip
skiboot-1fbddac373ef1439f13c2dd825b112c865f1e1d5.tar.gz
skiboot-1fbddac373ef1439f13c2dd825b112c865f1e1d5.tar.bz2
doc: prettify and flesh out OPAL_XSCOM_READ and OPAL_XSCOM_WRITE
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
-rw-r--r--doc/opal-api/opal-xscom-read-write-65-66.rst91
1 files changed, 78 insertions, 13 deletions
diff --git a/doc/opal-api/opal-xscom-read-write-65-66.rst b/doc/opal-api/opal-xscom-read-write-65-66.rst
index d24651d..f8006e6 100644
--- a/doc/opal-api/opal-xscom-read-write-65-66.rst
+++ b/doc/opal-api/opal-xscom-read-write-65-66.rst
@@ -1,23 +1,88 @@
-OPAL_XSCOM_READ and OPAL_XSCOM_WRITE
-====================================
+.. _OPAL_XSCOM_READ:
-These low level calls will read/write XSCOM values directly.
+OPAL_XSCOM_READ
+===============
+
+.. code-block:: c
+
+ #define OPAL_XSCOM_READ 65
+
+ int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val);
+
+This low level call will read XSCOM values directly.
They should only be used by low level manufacturing/debug tools.
"Normal" host OS kernel code should not know about XSCOM.
-each takes three parameters: ::
-
- int xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val)
- int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val)
+This is also needed by HBRT/`opal-prd`.
Returns
-------
-OPAL_SUCCESS
- Success!
-OPAL_HARDWARE
- if operation failed
+:ref:`OPAL_SUCCESS`
+ Success!
+:ref:`OPAL_HARDWARE`
+ if operation failed
+:ref:`OPAL_WRONG_STATE`
+ if CPU is asleep
+:ref:`OPAL_XSCOM_BUSY`
+ Alias for :ref:`OPAL_BUSY`.
+:ref:`OPAL_XSCOM_CHIPLET_OFF`
+ Alias for :ref:`OPAL_WRONG_STATE`
+:ref:`OPAL_XSCOM_PARTIAL_GOOD`
+ XSCOM Partial Good
+:ref:`OPAL_XSCOM_ADDR_ERROR`
+ XSCOM Address Error
+:ref:`OPAL_XSCOM_CLOCK_ERROR`
+ XSCOM Clock Error
+:ref:`OPAL_XSCOM_PARITY_ERROR`
+ XSCOM Parity Error
+:ref:`OPAL_XSCOM_TIMEOUT`
+ XSCOM Timeout
+:ref:`OPAL_XSCOM_CTR_OFFLINED`
+ XSCOM Controller Offlined due to too many errors.
+
+.. _OPAL_XSCOM_WRITE:
+
+OPAL_XSCOM_WRITE
+================
+
+.. code-block:: c
+
+ #define OPAL_XSCOM_WRITE 66
+
+ int xscom_write(uint32_t partid, uint64_t pcb_addr, uint64_t val);
+
+
+This low level call will write an XSCOM value directly.
+
+They should only be used by low level manufacturing/debug tools.
+"Normal" host OS kernel code should not know about XSCOM.
+
+This is also needed by HBRT/`opal-prd`.
+
+Returns
+-------
-OPAL_WRONG_STATE
- if CPU is asleep
+:ref:`OPAL_SUCCESS`
+ Success!
+:ref:`OPAL_HARDWARE`
+ if operation failed
+:ref:`OPAL_WRONG_STATE`
+ if CPU is asleep
+:ref:`OPAL_XSCOM_BUSY`
+ Alias for :ref:`OPAL_BUSY`.
+:ref:`OPAL_XSCOM_CHIPLET_OFF`
+ Alias for :ref:`OPAL_WRONG_STATE`
+:ref:`OPAL_XSCOM_PARTIAL_GOOD`
+ XSCOM Partial Good
+:ref:`OPAL_XSCOM_ADDR_ERROR`
+ XSCOM Address Error
+:ref:`OPAL_XSCOM_CLOCK_ERROR`
+ XSCOM Clock Error
+:ref:`OPAL_XSCOM_PARITY_ERROR`
+ XSCOM Parity Error
+:ref:`OPAL_XSCOM_TIMEOUT`
+ XSCOM Timeout
+:ref:`OPAL_XSCOM_CTR_OFFLINED`
+ XSCOM Controller Offlined due to too many errors.