JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

第 1 部分针对 Oracle Solaris 平台设计设备驱动程序

1.  Oracle Solaris 设备驱动程序概述

2.  Oracle Solaris 内核和设备树

3.  多线程

4.  属性

5.  管理事件和排队任务

6.  驱动程序自动配置

7.  设备访问:程控 I/O

8.  中断处理程序

9.  直接内存访问 (Direct Memory Access, DMA)

10.  映射设备和内核内存

11.  设备上下文管理

12.  电源管理

13.  强化 Oracle Solaris 驱动程序

14.  分层驱动程序接口 (Layered Driver Interface, LDI)

第 2 部分设计特定种类的设备驱动程序

15.  字符设备驱动程序

16.  块设备驱动程序

17.  SCSI 目标驱动程序

18.  SCSI 主机总线适配器驱动程序

19.  网络设备驱动程序

20.  USB 驱动程序

21.  SR-IOV 驱动程序

SR-IOV 简介

SR-IOV 的优点

支持的平台

词汇表

SR-IOV 设备驱动程序概述

物理功能 (Physical Function, PF) 驱动程序

虚拟功能 (Virtual Function, VF) 驱动程序

设备配置参数

pci.conf 文件

设置设备配置参数

Sparc OVM 平台上的 SR-IOV 配置

裸机平台上的 SR-IOV 配置

引导配置序列

SR-IOV 接口汇总

驱动程序 Ioctl

SR-IOV 驱动程序的接口

pci_param_get() 接口

pci_param_get_ioctl() 接口

pci_plist_get() 接口

pci_plist_getvf() 接口

pciv_vf_config() 接口

pci_plist_lookup() 接口

pci_param_free() 接口

pciv_send() 接口

SR-IOV 驱动程序 Ioctl

数据结构

iov_param_ver_info 结构

iov_param_validate 结构

iov_param_desc 结构

IOV_GET_VER_INFO Ioctl

IOV_GET_PARAM_INFO Ioctl

IOV_VALIDATE_PARAM Ioctl

驱动程序回调

驱动程序 Ioctl 的样例代码

第 3 部分生成设备驱动程序

22.  编译、装入、打包和测试驱动程序

23.  调试、测试和调优设备驱动程序

24.  推荐的编码方法

第 4 部分附录

A.  硬件概述

B.  Oracle Solaris DDI/DKI 服务汇总

C.  使设备驱动程序支持 64 位

D.  控制台帧缓存器驱动程序

E.  pci.conf 文件

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

SR-IOV 设备驱动程序概述

SR-IOV 功能包括物理功能 (Physical Function, PF) 驱动程序和虚拟功能 (Virtual Function, VF) 驱动程序。以下各节介绍了 PF 和 VF 驱动程序以及必需的设备配置的详细信息。

物理功能 (Physical Function, PF) 驱动程序

SR-IOV 设备的 PF 驱动程序用于管理具有 SR-IOV 功能的设备的物理功能 (Physical Function, PF)。SR-IOV 规范中定义了支持 SR-IOV 功能的 PCI 功能。PF 包含 SR-IOV 功能结构,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。PF 驱动程序具有以下特征:

虚拟功能 (Virtual Function, VF) 驱动程序

与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 驱动程序具有以下特征:


注 - 具有 SR-IOV 功能的 PF 和 VF 驱动程序必须注册中断资源管理 (Interrupt Resource Management, IRM) 回调并提供对此功能的支持。有关 IRM 接口的详细信息和用法,请参见第 8 章



注 - 如果 VF 是一个网络 VF,则可以在启用 numVFs 后配置以下参数。配置应该在启用 VF 之前完成。


设备配置参数

PF 驱动程序必须支持下表中列出的配置参数。这些参数可以导出到 Sparc OVM Manager 中。仅当所有参数均已配置时,配置才算完成。

表 21-1 配置参数定义

配置参数
定义
示例
与标准相关的配置参数
可以支持的 VF 数量

注 - 如果要更改 VF 的数量,需要先分离然后重新连接 PF 设备。


max-config-vfs-实际上可以配置的最大 VF 数量。当 PF 驱动程序支持的最大 VF 数量不同于 SR-IOV 功能指示的容量时,PF 驱动程序可以导出此参数。
特定于资源和设备的参数
带宽、池 和 Q 对。对这些参数所做的更改会同时影响 PF 和 VF 驱动程序。

框架可能不能识别特定于设备的参数,可能只有 PF 驱动程序能够识别这些参数。在启用 VF 之前应该识别这些参数,以便 PF 驱动程序能够正确地初始化其硬件。

要了解如何获取可导出到 IOV 框架且特定于设备的参数,请参见 igb(7D)ixgbe(7D)

  • pvid-exclusive-表示不能同时支持 port-vlan-idvlan-ids
  • max-vf-mtu-允许 VF 使用的最大 MTU。

  • max-vlans-网络类 PF 驱动程序支持的 vlan 插槽的最大数量。

特定于类的参数
基于设备类的通用属性。例如,以太网设备可能具有 MAC 地址、VLAN ID、端口 VLAN ID、带宽等属性。

期望使用特定于类的配置,并且这些配置可以定义每个参数的行为。


注 - 当设备配置参数发生更改时,应重新连接设备。



注 - 在启用 VF 之前请按以下顺序配置参数。特定于类的参数将基于特定于类的配置。

  1. 与标准相关的参数

  2. 特定于资源和设备的参数

  3. 特定于类的参数


pci.conf 文件

通过 PCI 配置信息文件 /etc/pci.conf,系统可以保存 PCI 配置(如特定 PF 的 VF 数量)。pci.conf 文件提供了以下内容:


注 - /etc/pci.conf 添加到 /boot/solaris/filelist.ramdisk 文件中以便将 /etc/pci.conf 文件包括在 Oracle Solaris 引导进程中。


有关更多信息,请参见附录 E

设置设备配置参数

示例 21-1 设置设备配置参数

[[path=/pci@0,0/pci8086,3a40@1c/pci108e,4848@0,1]]
num-vf=2

[Device_Configuration]
[[path=/pci@0,0/pci8086,3a40@1c/pci108e,4848@0,1]]
VF[0] = {
        primary-mac-addr = 0xaabbccddeeff
        alt-mac-addrs = 0x102233445556, 0x102233445557
        vlan-id = 20, 30
}

VF[1] = {
        primary-mac-addr = 0xaabbccddeef1
        alt-mac-addrs = 0x102233445568
        vlan-id = 20, 30, 40, 50
} 

Sparc OVM 平台上的 SR-IOV 配置

Sparc OVM Manager 负责所有 Sparc OVM 平台上的 SR-IOV 配置。Sparc OVM Manager 负责以下操作:

下图显示了 Sparc OVM 配置的概要视图。

图 21-2 Sparc OVM 配置的概要视图

image:下图显示了 Sparc OVM 配置的概要视图

裸机平台上的 SR-IOV 配置

在发行 Oracle Solaris 11 时,未提供任何可用来在裸机平台(包括 x86)上配置 SR-IOV 的工具。