SRIOV Config Tab - 3.4 English

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

Document ID
PG346
Release Date
2023-11-20
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.
PFx Dependency Link
Indicates the SR-IOV Functional Dependency Link for the physical function. The programming model for a device can have vendor-specific dependencies between sets of functions. The Function Dependency Link field is used to describe these dependencies.
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.
SRIOV Supported Page Size
Indicates the page size supported by the physical function. This physical function supports a page size of 2(n+12), if bit n of the 32-bit register is set.