
PCI
yyt8yyt8
点点滴滴,从烂笔头开始~
所有blog均为自己工作中遇到问题,网上搜集整理所来,归类统一为【翻译】。 如有侵权,请联系QQ12680009。
展开
-
linux 内存映射 PCI内存映射 DMA映射
内存映射, 就是指把外设的内存映射到用户空间访问。系统调用为: #include void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); 其中fd 可以为打开的普通文件或设备文件。返回的地址为用户地址(即vma的地址, vm_area_struct,原创 2012-04-13 13:50:38 · 6125 阅读 · 0 评论 -
Linux 系统启动过程详解
以RedHat9.0和i386平台为例----BIOS第一步:PC在上电以后,CPU从地址FFFF:0000开始执行(这个地址在ROM BIOS中,ROM BIOS一般是在FEOOOh到FFFFFh中),无论是Award BIOS还是AMI BIOS,这里只是一条跳转指令,跳到系统BIOS中真正的启动代码处。第二步: BIOS的首先进行POST(Power-On Self原创 2012-09-06 17:36:13 · 3383 阅读 · 0 评论 -
linux 设备模型
2.6内核的设备模型支持以下特性:1. 电源管理2. 与用户空间通信3. 热插拔设备4. 设备类型管理5. 对象生命周期 §1. 底层组件kobject, kset, kobj_type, ksubsystem(merge to kset after 2.6.31) kobject对象有名字和引用计数。每个kobject对应一个kobj_type(由kobject结原创 2012-09-06 17:39:09 · 957 阅读 · 0 评论 -
LINUX IO端口、IO内存释疑
IO端口是指接口电路中能够被CPU直接访问的寄存器,一般有数据端口、控制端口和状态端口。每个连接到IO总线的设备都有自己的地址(集合),即端口,可以被映射到物理地址空间。IO内存和IO端口的主要区别是,IO端口操作具有边际效应,而内存则没有(所以可以用多种方法进行优化,比如重新排序、告诉缓存等)。 使用IO内存前要先申请request_mem_region,然后ioremap映射;使用翻译 2012-09-21 13:29:59 · 712 阅读 · 0 评论 -
linux 电源管理
ACPI共有六种状态,分别是S0到S5,它们代表的含义分别是: S0--实际上这就是我们平常的工作状态,所有设备全开,功耗一般会超过80W; S1--也称为POS(Power on Suspend),这时除了通过CPU时钟控制器将CPU关闭之外,其他的部件仍然正常工作,这时的功耗一般在30W以下。In this state, no system context is lost (CPU原创 2012-10-24 15:58:08 · 7225 阅读 · 0 评论 -
MSI 与 MSIX
PCI 规范2.2 描述了MSI, optional MSI 目的:1. 允许一个设备申请多个中断,避免了共享中断,提高了效率,(最多32, 必须是2的倍数,MSIX则最多2048个);2. 当设备写入内存数据然后发起中断的时候有可能数据并未写入,CPU必须读设备的寄存器才能确定写完了;但是如果MSI中断,同样是写操作,中断肯定在数据写完以后才能收到;MSI操作: 在configrat原创 2013-04-10 17:56:47 · 2798 阅读 · 0 评论