1. 有PCIe Functions共享一个PCIe Link,Link和PCIe Function由PCIe Function 0来管理。
- 上图只列了3个,一个PCIe设备支持256个Functions
- 所有Functions都共用同一个经由PCIe枚举分配的Bus Number
2. 每个PCIe Function都有唯一的物理地址,包括独立的配置空间和BAR。
3. 每个PCIe Function可以分配给一个SI。为了阻止不同SI管理同一个PCIe Function,所有的PCIe配置操作必须由VI统一管理。
4. VF:VF是轻量级的PCIe设备,可以由SI访问。
- VF可以被不同的SI共享,如 一个VF可以分配一个SI,然后重启后分给另一个SI
- VF可以从一个PF转移给另一个PF。
- 一个PF下的所有VF都必须公用device type,如同样的网络设备类型或者存储设备类型
5. PF是符合PCIe规范的
- 系统重启后,支持SR-IOV的PCIe Function,应该默认关闭SR-IOV Capabilities
- VF命名VF M,N表明了VF关联的PF的M,VF从1开始,所以VF M,1表明是第M号PF的1个VF
EDKII中如果发现PCIe设备有SR-IOV,会依循以下的流程去加载(在PCIe Enumeration之后开始):