blob: 6d603f173a4bbe4c9e4ab025cd1902008cbb841f [file] [log] [blame]
.. _OPAL_NPU_SPA_SETUP:
OPAL_NPU_SPA_SETUP
==================
OpenCAPI devices only.
Sets up a Shared Process Area (SPA) with the Shared Process Area
Pointer (SPAP) set to the provided address `addr`, and sets the OTL PE
mask (used for PASID to PE handle conversion) to `PE_mask`.
If `addr` is NULL, the SPA will be disabled. `addr` must be 4K aligned.
Parameters
----------
::
uint64_t phb_id
int bdfn
uint64_t addr
uint64_t PE_mask
``phb_id``
OPAL ID of PHB
``bdfn``
Bus-Device-Function number of OpenCAPI AFU
``addr``
Address of Shared Process Area, or NULL to disable SPA. Must be 4K aligned.
``PE_mask``
Process Element mask for PASID to PE handle conversion
Return Values
-------------
OPAL_SUCCESS
SPAP and PE mask were successfully set
OPAL_PARAMETER
A provided parameter was invalid
OPAL_BUSY
SPA is already enabled (or if addr is NULL, SPA is already disabled)
.. _OPAL_NPU_SPA_CLEAR_CACHE:
OPAL_NPU_SPA_CLEAR_CACHE
========================
OpenCAPI devices only.
Invalidates the Process Element with the given `PE_handle` from the NPU's SPA cache.
Parameters
----------
::
uint64_t phb_id
uint32_t bdfn
uint64_t PE_handle
``phb_id``
OPAL ID of PHB
``bdfn``
Bus-Device-Function number of OpenCAPI AFU
``PE_handle``
Handle of Process Element being cleared from SPA cache
Return Values
-------------
OPAL_SUCCESS
PE was successfully cleared from SPA cache
OPAL_PARAMETER
A provided parameter was invalid
OPAL_BUSY
XSLO is currently invalidating a previously requested entry
.. _OPAL_NPU_TL_SET:
OPAL_NPU_TL_SET
===============
OpenCAPI devices only.
Update the NPU OTL configuration with device capabilities.
Parameters
----------
::
uint64_t phb_id
uint32_t bdfn
long capabilities
uint64_t rate_phys
int rate_sz
``phb_id``
OPAL ID of PHB
``bdfn``
Bus-Device-Function number of OpenCAPI AFU
``capabilities``
Bitmap of TL templates the device can receive
``rate_phys``
Physical address of rates buffer
``rate_sz``
Size of rates buffer (must be equal to 32)
Return Values
-------------
OPAL_SUCCESS
OTL configuration was successfully updated
OPAL_PARAMETER
A provided parameter was invalid
.. _OPAL_NPU_MEM_ALLOC:
OPAL_NPU_MEM_ALLOC
==================
OpenCAPI devices only.
Sets up the NPU memory BAR for Lowest Point of Coherency (LPC) memory.
At present, only one device per CPU can use LPC memory, and a maximum of 4TB
can be allocated.
Parameters
----------
::
uint64_t phb_id
uint32_t bdfn
uint64_t size
uint64_t *bar
``phb_id``
OPAL ID of PHB
``bdfn``
Bus-Device-Function number of OpenCAPI AFU
``size``
Size of requested LPC memory area in bytes
``bar``
Pointer to variable where base of LPC memory area will be returned
Return Values
-------------
OPAL_SUCCESS
BAR setup completed successfully
OPAL_PARAMETER
A provided parameter was invalid
OPAL_RESOURCE
The BAR could not be assigned due to limitations
.. _OPAL_NPU_MEM_RELEASE:
OPAL_NPU_MEM_RELEASE
====================
OpenCAPI devices only.
Releases NPU memory BAR.
Parameters
----------
::
uint64_t phb_id
uint32_t bdfn
``phb_id``
OPAL ID of PHB
``bdfn``
Bus-Device-Function number of OpenCAPI AFU
Return Values
-------------
OPAL_SUCCESS
BAR setup completed successfully
OPAL_PARAMETER
A provided parameter was invalid, or the specified device does not currently
have LPC memory assigned