| .. _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 |