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。
举例:

pointer 在第16~8bit

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可以支持更多的中断请求并且不要求中断向量连续。

触发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相关推荐

  1. PCIE Feature ------ INTx

    PCIE Feature ------ INTx PCIE Feature ------ INTx PCIE Feature ------ INTx 1.简单介绍 2.验证方法 注意 1.简单介绍 I ...

  2. KVM 介绍(4):I/O 设备直接分配和 SR-IOV [KVM PCI/PCIe Pass-Through SR-IOV]

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  3. linux禁用及启用pcie设备,KVM 介绍(4):I/O设备直接分配和 SRIOV [KVM PCI/PCIe PassThrough SRIOV]...

    学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I/O PCI/PCIe设备直接分 ...

  4. 【PCIe 5.0 - 102】SR-IOV【3】

    承接[PCIe 5.0 - 101]SR-IOV[2] PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PC ...

  5. SR-IOV(Single Root I/O Virtualization):将PCIe共享给虚拟机的标准

    目录 SR-IOV要求 SR-IOV vs PCI path-through 架构上的比较(以网卡为例) Virtio 和 Pass-Through 的详细比较 SR-IOV vs DPDK SR-I ...

  6. 【PCIe 5.0 - 100】SR-IOV【1】

    本文将从PCIe角度讲SR-IOV. PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PCIe 5.0 - ...

  7. 【PCIe 5.0 - 101】SR-IOV【2】

    承接[PCIe 5.0 - 100]SR-IOV[1] PCIe 系列SR-IOV导航: [PCIe 5.0 - 100]SR-IOV[1] [PCIe 5.0 - 101]SR-IOV[2] [PC ...

  8. 【88】SR-IOV

    这篇文章已经写完半年,最近半年一直在适配各种国产CPU,一直没有时间整理.最近总算是把所有的国产CPU都适配完了. 0.前言 为了充分利用硬件资源,需要使用虚拟化技术.为了更准确地了解SR-IOV,我 ...

  9. suse linux 11 HBA信息,HP BL660 GEN8 SUSE 11 查询HBA信息 驱动版本 固件版本 设备名称

    测试环境为 HP BL660 GEN8 SUSE 11 SP4 root@localhost:/root#lspci |grep -i fibre root@localhost:/root#lspci ...

最新文章

  1. python数据结构与算法(二)
  2. torch topk
  3. tableau使用_使用Tableau探索墨尔本房地产市场
  4. python降维之时间类型数据的处理_使用Python进行数据降维|线性降维
  5. Linux下SCP使用技巧
  6. Kinect2.0 vs2013的配置
  7. Activiti 流程配置可视化:SpringBoot 集成 Activiti6 + Activiti Modeler
  8. java枚举构造器_java枚举类的构造函数实例详解
  9. eas账号是什么意思_账户和帐号是什么意思,有区别吗?
  10. java五子棋人机代码_Java五子棋AI实现代码
  11. 从知名外企到创业公司做CTO是一种怎样的体验?
  12. 设置浏览器显示小于12px以下字体的三种方法
  13. (转)DEDECMS模板原理、模板标签学习 - .Little Hann
  14. android sqlite3设置密码,sqlite3 加密
  15. C语言C++情人节红玫瑰代码
  16. broyden matlab,Broyden方法求解非线性方程组的Matlab实现
  17. 联发科6758_联发科MT6758
  18. 【iHMI43 4.3寸液晶模块】demo竖屏例程(版本1.01)发布
  19. 如何监测一个土豆的一生?
  20. 优势k歌软件功能说明

热门文章

  1. python commands 执行命令详解
  2. 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)
  3. ROS快捷操作键和话题记录与复现
  4. HTTP1.0、1.1、2.0的关系和区别以及编码和字符集的解释
  5. 微信小程序-云开发踩坑:errCode: -601031
  6. Excel制作九九乘法表
  7. 华尔街之所以成为世界金融中心
  8. Jquery解决collapsed收缩问题
  9. 乐视超级会员推亲子3.0 Plus,IP驱动新生态?
  10. 【IBM DS5300存储数据恢复】由于硬盘坏道导致RAID5崩溃的数据恢复案例