diff options
author | Stewart Smith <stewart@linux.ibm.com> | 2019-05-31 16:12:54 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.ibm.com> | 2019-06-03 10:19:59 +1000 |
commit | 1fbddac373ef1439f13c2dd825b112c865f1e1d5 (patch) | |
tree | a047a670e0d4f796f13753303a9a063de3d8f016 | |
parent | 77f7c48a1fd6eef9f09b97a0f3e7a90d5844d08c (diff) | |
download | skiboot-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.rst | 91 |
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. |