Visible to Intel only — GUID: khq1614036534506
Ixiasoft
Visible to Intel only — GUID: khq1614036534506
Ixiasoft
3.2.1.2. Implementation
The VF configuration space is implemented in R-tile logic, and does not require FPGA fabric resources.
Accessing VF PCIe Information:
Due to the limited number of pins between R-tile and the FPGA fabric, the PCIe configuration space for VFs is not directly available to the user application.
- Monitor specific VF registers using the Configuration Intercept Interface (for more details, refer to section Configuration Intercept Interface).
- Read/write specific VF registers using the Hard IP Reconfiguration Interface (for more details, refer to section Hard IP Reconfiguration Interface).
Accessing VF PCIe Information:
VF IDs are calculated within R-tile. User application has sideband signals pX_rx_st_vfnum_o[10:0] and pX_rx_st_vfactive_o with the TLP to identify the associated VFs within the PFs.
BDF Assignments:
When SR-IOV is enabled, the ARI capability is always enabled.
The R-tile IP for PCIe automatically calculates the completer/requester ID on the Transmit side.
User application needs to provide the VF and PF information in the Header as shown below:
- pX_tx_st_hdr_sn_i[127]: must be set to 0
- pX_tx_st_hdr_sn_i[83]: pX_tx_st_vfactive_i
- pX_tx_st_hdr_sn_i[82:80]: pX_tx_st_pfnum_i[2:0]
- pX_tx_st_hdr_sn_i[95:84]: pX_tx_st_vfnum_i[10:0]
In the following example, VF3 of PF1 is receiving and sending a request:
For the Receive TLP:
pX_rx_st_pfnum_o = 1h indicating that a VF associated with PF1 is making the request.
pX_rx_st_vfnum_o = 3h, and pX_rx_st_vfactive_o = 1 indicating that VF3 of PF1 is the active VF.
- pX_tx_st_hdr_sn_i[83] = 1h
- pX_tx_st_hdr_sn_i[82:80] = 1h
- pX_tx_st_hdr_sn_i[95:84] = 3h