diff options
Diffstat (limited to 'roms/skiboot/doc/opal-api/opal-npu2-opencapi-159-160-161-171-172.rst')
-rw-r--r-- | roms/skiboot/doc/opal-api/opal-npu2-opencapi-159-160-161-171-172.rst | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/roms/skiboot/doc/opal-api/opal-npu2-opencapi-159-160-161-171-172.rst b/roms/skiboot/doc/opal-api/opal-npu2-opencapi-159-160-161-171-172.rst new file mode 100644 index 000000000..6d603f173 --- /dev/null +++ b/roms/skiboot/doc/opal-api/opal-npu2-opencapi-159-160-161-171-172.rst @@ -0,0 +1,203 @@ +.. _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 |