SRIOV Config Tab - 3.4 English - PG346

Versal Adaptive SoC CPM Mode for PCI Express Product Guide (PG346)

Document ID
PG346
Release Date
2024-11-22
Version
3.4 English

The SRIOV Configuration Advanced parameters, as shown in the following figure, are described in this section.

Figure 1. SRIOV Config Tab

General SRIOV Config
This value specifies the offset of the first PF with at least one enabled VF. The total number of VF in all PFs plus this field must not be greater than 4080.
Number of PFx VFs
Indicates the number of virtual functions associated to the physical function. A total of 4080 virtual functions are available that can be flexibly used across the 16 physical functions. Number of VFs for any enabled PF cannot be 0.
First VF Offset
Indicates the offset of the first virtual function (VF) for the physical function (PF). PFx offset is always fixed. PF0 resides at offset 0, PF1 resides at offset 1 and so on till PF15.

A total of 4080 virtual functions are available. They reside at the function number range 16 to 4095.

When ARI is enabled, allowed value is 'd16, and the total number of VF in all PFs plus this field must not be greater than 4096. When ARI is disabled, this field will be set to 1 to support 1 PF plus 7 VF non-ARI SR-IOV configurations only.

Virtual functions are mapped sequentially with VFs with PFs taking precedence. For example, if PF0 has two virtual functions and PF1 has three, the following mapping occurs:

The PFx_FIRST_VF_OFFSET is calculated by taking the first offset of the virtual function and subtracting that from the offset of the physical function.

PFx_FIRST_VF_OFFSET = (PFx first VF offset - PFx offset)

In the example above, the following offsets are used:

PF0_FIRST_VF_OFFSET = (4 - 0) = 4
PF1_FIRST_VF_OFFSET = (6 - 1) = 5

The initial offset for PF1 is a function of how many VFs are attached to PF0 and is defined in the following pseudo code:

PF1_FIRST_VF_OFFSET = FIRST_VF_OFFSET + NUM_PF0_VFs - 1

Similarly, for other PFs:

PF2_FIRST_VF_OFFSET = FIRST_VF_OFFSET + NUM_PF0_VFs + NUM_PF1_VFs - 2 PF3_FIRST_VF_OFFSET =
        FIRST_VF_OFFSET + NUM_PF0_VFs + NUM_PF1_VFs + NUM_PF2_VFs - 3
VF Device ID
Indicates the 16-bit Device ID for all virtual functions associated with the physical function.