diff options
author | 2023-10-10 14:33:42 +0000 | |
---|---|---|
committer | 2023-10-10 14:33:42 +0000 | |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst')
-rw-r--r-- | roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst b/roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst new file mode 100644 index 000000000..52d377892 --- /dev/null +++ b/roms/skiboot/doc/opal-api/opal-lpc-read-write-67-68.rst @@ -0,0 +1,114 @@ +.. _OPAL_LPC_READ: + +OPAL_LPC_READ +============= + +.. code-block:: c + + #define OPAL_LPC_READ 67 + + /* + * Address cycle types for LPC accesses. These also correspond + * to the content of the first cell of the "reg" property for + * device nodes on the LPC bus + */ + enum OpalLPCAddressType { + OPAL_LPC_MEM = 0, + OPAL_LPC_IO = 1, + OPAL_LPC_FW = 2, + }; + + int64_t opal_lpc_read(uint32_t chip_id, enum OpalLPCAddressType addr_type, + uint32_t addr, uint32_t *data, uint32_t sz); + +This function related to Low Pin Count (LPC) bus. This function reads the +data from IDSEL register for ``chip_id``, which has LPC information. +From ``addr`` for ``addr_type`` with read size ``sz`` bytes in to a +variable named ``data``. + +Parameters +---------- + +``chip_id`` + The ``chip_id`` parameter contains value of the chip number identified at + boot time. +``addr_type`` + The ``addr_type`` is one of the LPC supported address types. + Supported address types are: + + - LPC memory, + - LPC IO and + - LPC firmware. + +``addr`` + The ``addr`` from which the data has to be read. +``data`` + The ``data`` will be used to store the read data. +``sz`` + How many ``sz`` bytes to be read in to ``data``. + +Return Codes +------------ + +:ref:`OPAL_PARAMETER` + Indicates either ``chip_id`` not found or ``chip_id`` doesn’t contain + LPC information. +:ref:`OPAL_SUCCESS` + Indicates Success! + +.. _OPAL_LPC_WRITE: + +OPAL_LPC_WRITE +============== + +.. code-block:: c + + #define OPAL_LPC_WRITE 68 + + /* + * Address cycle types for LPC accesses. These also correspond + * to the content of the first cell of the "reg" property for + * device nodes on the LPC bus + */ + enum OpalLPCAddressType { + OPAL_LPC_MEM = 0, + OPAL_LPC_IO = 1, + OPAL_LPC_FW = 2, + }; + + int64_t opal_lpc_write(uint32_t chip_id, enum OpalLPCAddressType addr_type, + uint32_t addr, uint32_t data, uint32_t sz); + +This function related to Low Pin Count (LPC) bus. This function writes the +``data`` in to ECCB register for ``chip_id``, which has LPC information. +From ``addr`` for ``addr_type`` with write size ``sz`` bytes. + +Parameters +---------- + +``chip_id`` + The ``chip_id`` parameter contains value of the chip number identified at + boot time. +``addr_type`` + The ``addr_type`` is one of the address types LPC supported. + Supported address types are: + + - LPC memory, + - LPC IO and + - LPC firmware. + +``addr`` + The ``addr`` to where the ``data`` need to be written. +``data`` + The ``data`` for writing. +``sz`` + How many ``sz`` bytes to write. + +Return Codes +------------ + +:ref:`OPAL_PARAMETER` + Indicates either ``chip_id`` not found or ``chip_id`` doesn’t contain LPC + information. +:ref:`OPAL_SUCCESS` + Indicates Success! |