89 lines
2.8 KiB
ReStructuredText
89 lines
2.8 KiB
ReStructuredText
![]() |
.. _OPAL_PCI_SET_PHB_CAPI_MODE:
|
||
|
|
||
|
OPAL_PCI_SET_PHB_CAPI_MODE
|
||
|
==========================
|
||
|
|
||
|
.. code-block:: c
|
||
|
|
||
|
#define OPAL_PCI_SET_PHB_CAPI_MODE 93
|
||
|
|
||
|
/* CAPI modes for PHB */
|
||
|
enum {
|
||
|
OPAL_PHB_CAPI_MODE_PCIE = 0,
|
||
|
OPAL_PHB_CAPI_MODE_CAPI = 1,
|
||
|
OPAL_PHB_CAPI_MODE_SNOOP_OFF = 2,
|
||
|
OPAL_PHB_CAPI_MODE_SNOOP_ON = 3,
|
||
|
OPAL_PHB_CAPI_MODE_DMA = 4,
|
||
|
OPAL_PHB_CAPI_MODE_DMA_TVT1 = 5,
|
||
|
};
|
||
|
|
||
|
int64_t opal_pci_set_phb_capi_mode(uint64_t phb_id, uint64_t mode, uint64_t pe_number);
|
||
|
|
||
|
Switch the CAPP attached to the given PHB in one of the supported CAPI modes.
|
||
|
|
||
|
Parameters
|
||
|
----------
|
||
|
|
||
|
``uint64_t phb_id``
|
||
|
the ID of the PHB which identifies attached CAPP to perform mode switch on
|
||
|
``uint64_t mode``
|
||
|
A mode id as described below
|
||
|
``pe_number``
|
||
|
PE number for the initiating device
|
||
|
|
||
|
Calling
|
||
|
-------
|
||
|
|
||
|
Switch CAPP attached to the given PHB in one of the following supported modes: ::
|
||
|
|
||
|
OPAL_PHB_CAPI_MODE_PCIE = 0
|
||
|
OPAL_PHB_CAPI_MODE_CAPI = 1
|
||
|
OPAL_PHB_CAPI_MODE_SNOOP_OFF = 2
|
||
|
OPAL_PHB_CAPI_MODE_SNOOP_ON = 3
|
||
|
OPAL_PHB_CAPI_MODE_DMA = 4
|
||
|
OPAL_PHB_CAPI_MODE_DMA_TVT1 = 5
|
||
|
|
||
|
Modes `OPAL_PHB_CAPI_MODE_PCIE` and `OPAL_PHB_CAPI_MODE_CAPI` are used to
|
||
|
enable/disable CAPP attached to the PHB.
|
||
|
|
||
|
Modes `OPAL_PHB_CAPI_MODE_SNOOP_OFF` and `OPAL_PHB_CAPI_MODE_SNOOP_ON` are
|
||
|
used to enable/disable CAPP snooping of Powerbus traffic for cache line
|
||
|
invalidates.
|
||
|
|
||
|
Mode `OPAL_PHB_CAPI_MODE_DMA` and `OPAL_PHB_CAPI_MODE_DMA_TVT1` are used to
|
||
|
enable CAPP DMA mode.
|
||
|
|
||
|
Presently Mode `OPAL_PHB_CAPI_MODE_DMA_TVT1` is exclusively used by the Mellanox
|
||
|
CX5 adapter. Requesting this mode will also indicate to opal that the card
|
||
|
requests maximum number of DMA read engines allocated to improve DMA read
|
||
|
performance at cost of reduced bandwidth available to other traffic including
|
||
|
CAPP-PSL transactions.
|
||
|
|
||
|
Notes
|
||
|
-----
|
||
|
|
||
|
* If PHB is in PEC2 then requesting mode `OPAL_PHB_CAPI_MODE_DMA_TVT1` will
|
||
|
allocate extra 16/8 dma read engines to the PHB depending on its stack
|
||
|
(stack 0/ stack 1). This is needed to improve the Direct-GPU DMA read
|
||
|
performance for the Mellanox CX5 card.
|
||
|
* Mode `OPAL_PHB_CAPI_MODE_PCIE` not yet supported on Power-9.
|
||
|
* Requesting mode `OPAL_PHB_CAPI_MODE_CAPI` on Power-9 will disable fast-reboot.
|
||
|
* Modes `OPAL_PHB_CAPI_MODE_DMA`, `OPAL_PHB_CAPI_MODE_SNOOP_OFF` are
|
||
|
not supported on Power-9 yet.
|
||
|
|
||
|
Return Codes
|
||
|
------------
|
||
|
|
||
|
:ref:`OPAL_SUCCESS`
|
||
|
Switch to the requested capi mode performed successfully.
|
||
|
:ref:`OPAL_PARAMETER`
|
||
|
The requested value of mode or phb_id parameter is not valid.
|
||
|
:ref:`OPAL_HARDWARE`
|
||
|
An error occurred while switching the CAPP to requested mode.
|
||
|
:ref:`OPAL_UNSUPPORTED`
|
||
|
Switching to requested capi mode is not possible at the moment
|
||
|
:ref:`OPAL_RESOURCE`
|
||
|
CAPP ucode not available hence activating CAPP not supported.
|
||
|
:ref:`OPAL_BUSY`
|
||
|
CAPP is presently in recovery-mode and mode switch cannot be performed.
|