JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 10 1/13 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)

DMA 模型

设备 DMA 的类型

总线主控器 DMA

第三方 DMA

第一方 DMA

主机平台 DMA 的类型

DMA 软件组件:句柄、窗口和 Cookie

DMA 操作

执行总线主控器 DMA 传送

执行第一方 DMA 传送

执行第三方 DMA 传送

DMA 特性

ddi_dma_attr 结构

S 总线示例

ISA 总线示例

管理 DMA 资源

对象锁定

分配 DMA 句柄

分配 DMA 资源

设备寄存器结构

DMA 回调示例

确定最大突发流量大小

分配专用 DMA 缓冲区

处理资源分配故障

对 DMA 引擎进行编程

释放 DMA 资源

释放 DMA 句柄

取消 DMA 回调

同步内存对象

高速缓存

ddi_dma_sync() 函数

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 驱动程序

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

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

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

24.  推荐的编码方法

第 4 部分附录

A.  硬件概述

B.  Solaris DDI/DKI 服务汇总

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

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

E.  pci.conf 文件

索引

DMA 软件组件:句柄、窗口和 Cookie

DMA 句柄是表示对象(通常为内存缓冲区或地址)的不透明指针。设备通过 DMA 句柄可执行 DMA 传送。对 DMA 例程的若干个不同调用可使用句柄来标识为对象分配的 DMA 资源。

DMA 句柄所表示的对象全部包含在一个或多个 DMA cookie 中。DMA cookie 表示 DMA 引擎在数据传送中使用的一段连续内存。系统会根据以下信息将对象划分为多个 cookie:

如果一个对象不满足 DMA 引擎的限制,则必须将该对象分为多个 DMA 窗口。一次只能为一个窗口激活和分配资源。使用 ddi_dma_getwin(9F) 函数可在一个对象内的多个窗口之间切换。每个 DMA 窗口都包含一个或多个 DMA cookie。有关更多信息,请参见DMA 窗口

某些 DMA 引擎可以接受多个 cookie。此类引擎不用借助系统即可执行分散/集中 I/O。如果从一个绑定中返回多个 cookie,则驱动程序应重复调用 ddi_dma_nextcookie(9F) 以检索每个 cookie。然后,必须将这些 cookie 编程到引擎中。随后可对设备进行编程,以传送这些 DMA cookie 聚集所包含的总字节数。