PCIE Feature ----- SRIOV

PCIE Feature 目录

PCIE Feature ------ SRIOV

  • PCIE Feature 目录
  • 一、验证方案
    • step1.分配EP PF的BDF 号
    • step2.配置SRIOV
    • step3.Romte RP discaover VF Capability
    • step4.验证VF 是否具有PF的功能(举例:MSIX)
  • 注意事项:
  • 二、SRIOV 初始化和资源分配
    • 1.配置VF BAR

一、验证方案

step1.分配EP PF的BDF 号

在上电时,软件可进行枚举,EP可以知道自己的BDF。在硬件层面来说EP不知道自己的BDF信息,可通过ECAM或Iatu进行配置;配置EP的 Secondary Bus Number Subordimate Bus Number ;RC向EP发起一个基于ID的路由(例如:配置读写),EP就会知道自己的BDF信息。

step2.配置SRIOV

需要配置(DBI):
(1)PF0 InitialVFs
(2)PF0 First VF Offset
(3)VF Stride
(4)VF Number
(5)VF Enable

step3.Romte RP discaover VF Capability

对于PCIE硬件上的枚举采用的方法:采用寄存器链表
具体的方法:PCIE总线规范要求必须支持Capabilities结构,在PCI总线的基本配置空间中,包含一个Capabilites Pointer 寄存器,该寄存器存放Capablites结构链表的头指针,这个指针指向下一个Capability 从而组成和一个单向链表这个链表的最后一个Capability结构的指针是0。
举例:
PCIE Feature ----- SRIOV_第1张图片
pointer 在第16~8bit
PCIE Feature ----- SRIOV_第2张图片
RP向EP发送ID路由的TLP,EP会向RP发送携带自己BDF信息的TLP。

step4.验证VF 是否具有PF的功能(举例:MSIX)

简单介绍一下msix:在PCIE总线中,MSI和MSIX中断机制存储器写请求TLP向处理器提交中断请求,PCIE设备在提交MSI中断请求时,都是向MSI/MSIX Capability结构中的Meassage Address的地址中的Meassag Data组成一个新的存储器写TLP,向处理器提交中断请求。
MSI与MSIX的区别:MSI中断机制最多只能支持32个中断请求,并且要中断向量连续,MSIX可以支持更多的中断请求并且不要求中断向量连续。
PCIE Feature ----- SRIOV_第3张图片

触发msix的条件是:axi slv interface 发送memory write 与MSIX_ADDRESS_MATCH相匹配就会触发MSIX DOORBELL,在RP侧的master awaddr 收到memory写操作,写操作的数据和地址是msix table中的地址和数据(据通过远端访问配置 msix table (msix table 在BAR中))。(这种不会有信号观察,可添加一个信号对memory 的数据和地址进行匹配,若匹配则为高电平)。

注意事项:

1、Function最大是8,可打开ARI功能扩展Function最大至256;
对于的BUS号改变,原来的Primary Bus Number 、Secondary Bus Number不会变 Subordinate Bus Number 会变,才能继续往下传 (有待研究)
补充:对于bus号会+1的情况 在一开始枚举的时候EP会占用两个bus号。
2、VF BAR的的地址,只需配置第一个VF BAR的地址和|VF BAR|是的offset 。
vf1的bar和pf的bar 映射的空间是否能够重合,有待研究。
在这里插入图片描述

二、SRIOV 初始化和资源分配

1.配置VF BAR

VF不支持I/O空间,因此VF BAR不应映射到I/O空间。
PCIE Feature ----- SRIOV_第4张图片

你可能感兴趣的:(PCIE,硬件架构)