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。
举例:
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相关推荐
- PCIE Feature ------ INTx
PCIE Feature ------ INTx PCIE Feature ------ INTx PCIE Feature ------ INTx 1.简单介绍 2.验证方法 注意 1.简单介绍 I ...
- 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设备直接分 ...
- 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设备直接分 ...
- 【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 ...
- 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 ...
- 【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 - ...
- 【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 ...
- 【88】SR-IOV
这篇文章已经写完半年,最近半年一直在适配各种国产CPU,一直没有时间整理.最近总算是把所有的国产CPU都适配完了. 0.前言 为了充分利用硬件资源,需要使用虚拟化技术.为了更准确地了解SR-IOV,我 ...
- 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 ...
最新文章
- python数据结构与算法(二)
- torch topk
- tableau使用_使用Tableau探索墨尔本房地产市场
- python降维之时间类型数据的处理_使用Python进行数据降维|线性降维
- Linux下SCP使用技巧
- Kinect2.0 vs2013的配置
- Activiti 流程配置可视化:SpringBoot 集成 Activiti6 + Activiti Modeler
- java枚举构造器_java枚举类的构造函数实例详解
- eas账号是什么意思_账户和帐号是什么意思,有区别吗?
- java五子棋人机代码_Java五子棋AI实现代码
- 从知名外企到创业公司做CTO是一种怎样的体验?
- 设置浏览器显示小于12px以下字体的三种方法
- (转)DEDECMS模板原理、模板标签学习 - .Little Hann
- android sqlite3设置密码,sqlite3 加密
- C语言C++情人节红玫瑰代码
- broyden matlab,Broyden方法求解非线性方程组的Matlab实现
- 联发科6758_联发科MT6758
- 【iHMI43 4.3寸液晶模块】demo竖屏例程(版本1.01)发布
- 如何监测一个土豆的一生?
- 优势k歌软件功能说明
热门文章
- python commands 执行命令详解
- 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)
- ROS快捷操作键和话题记录与复现
- HTTP1.0、1.1、2.0的关系和区别以及编码和字符集的解释
- 微信小程序-云开发踩坑:errCode: -601031
- Excel制作九九乘法表
- 华尔街之所以成为世界金融中心
- Jquery解决collapsed收缩问题
- 乐视超级会员推亲子3.0 Plus,IP驱动新生态?
- 【IBM DS5300存储数据恢复】由于硬盘坏道导致RAID5崩溃的数据恢复案例