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

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

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

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

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