第 1 部分针对 Oracle Solaris 平台设计设备驱动程序
9. 直接内存访问 (Direct Memory Access, DMA)
14. 分层驱动程序接口 (Layered Driver Interface, LDI)
物理功能 (Physical Function, PF) 驱动程序
虚拟功能 (Virtual Function, VF) 驱动程序
具有 SR-IOV 功能的 PF 驱动程序在连接期间执行以下操作:
调用 pciv_vf_config() 函数以获取 VF 数量。
为 PF 和 VF 获取特定于设备的参数并验证这些参数。
相应地初始化硬件。
调用 pciv_vf_config() 接口以启用 VF。
如果 PF 驱动程序是网络驱动程序,则该驱动程序在连接期间将使用 mac_register() 接口向 GLDv3 框架进行注册。PF 驱动程序还执行特定于类的初始化。这将引发以下一系列操作:
GLDv3 接口识别 PF 设备的存在。
PF 驱动程序导出一组新的 MAC 提供者接口。该过程使 MAC 层能够识别驱动程序是否为 PF 驱动程序。MAC 层还将获取有关 VF 驱动程序的更多信息。
有关网络驱动程序和接口的更多信息,请参见《Oracle Solaris 管理:网络接口和网络虚拟化》中的第 19 章。
VF 实例现在已初始化。仅当将 VF 指定给根域时才连接 VF 驱动程序。