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)

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.  Oracle Solaris DDI/DKI 服务汇总

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

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

E.  pci.conf 文件

索引

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

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

主机平台 DMA 的类型

设备运行的平台可提供直接内存访问 (direct memory access, DMA) 或直接虚拟内存访问 (direct virtual memory access, DVMA)。

在支持 DMA 的平台上,系统会为设备提供物理地址以执行传送。在此情况下,DMA 对象的传送实际上会包含许多在物理上不连续的传送。例如,当应用程序传送跨越若干连续虚拟页(但这些虚拟页映射到物理上不连续的页)的缓冲区时。要处理不连续的内存,用于这些平台的设备通常需要具有特定种类的分散/集中 DMA 功能。通常,x86 系统会为直接内存传送提供物理地址。

在支持 DVMA 的平台上,系统会为设备提供虚拟地址以执行传送。在此情况下,基础平台提供的内存管理单元 (memory management unit, MMU) 会将对这些虚拟地址的设备访问转换为正确的物理地址。设备会与可映射到不连续物理页的连续虚拟映像之间来回进行传送。在这些平台上运行的设备无需分散/集中 DMA 功能。通常,SPARC 平台会为直接内存传送提供虚拟地址。