Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1204148
  • 博文数量: 122
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4002
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-20 08:27
文章分类
文章存档

2016年(1)

2015年(21)

2014年(100)

发布时间:2014-07-09 17:14:57

pci配置空间中有6个bar,表示mmio或端口在CPU域物理地址空间的分布情况。?
?在写驱动时,通常需要从配置空间中读取相关bar信息,然后使用request_mem_region之类的接口,申请资源,然后使用ioremap将相关的区域映射到内核地址空间中,然后即可使用。
?问题是:pci配置空间中的bar信息,即mmio或io端口的分布,到底是谁决定、谁填写的呢?是硬件自己 or BIOS or OS kernel
?答案:对于x86环境来说(其它硬件环境不确认),pci配置空间中的bar信息最初是由BIOS根据当前环境中的硬件分布信息,进行分配后填入的,32位环境,PCI设备的mmio基本分布于3.5G-4G范围中,基本能保证各设备分配的空间不冲突。在OS kernel启动硬件扫描和初始化时,会读取相应内容,如果有需要,会根据需要进行调整(通常不会)。......【阅读全文】

阅读(4483) | 评论(0) | 转发(0)

发布时间:2014-03-14 15:08:34

ioremap相关笔记......【阅读全文】

阅读(2142) | 评论(0) | 转发(1)

发布时间:2014-03-06 11:53:51

request_mem_region(start,len,name)请求IO内存空间
start是给定的其实地址,是物理地址,通常是从PCI配置空间中读出来的,
而PCI配置空间的bar地址,通常是BIOS根据硬件情况分配的,防止冲突
如果申请成功,则返回非NULL指针,否则返回NULL
映射后的地址是物理地址,需要使用ioremap将其映射到内核的虚拟地址空间中,将其转换为虚拟地址,才能访问和使用。......【阅读全文】

阅读(2119) | 评论(0) | 转发(0)

发布时间:2014-03-06 11:20:43

DMA--直接内存访问,硬件提供的机制,允许外设和主存之间直接传输数据,不需要CPU参与。
可大大提高外设的吞吐量,节省CPU开销。

......【阅读全文】

阅读(3663) | 评论(0) | 转发(0)

发布时间:2014-03-06 10:23:33

DMA---dma_map_single流程......【阅读全文】

阅读(10984) | 评论(0) | 转发(0)

发布时间:2014-02-20 15:50:25

bounce buffer概念......【阅读全文】

阅读(3172) | 评论(0) | 转发(0)

发布时间:2014-02-20 14:48:00

硬件扫描和驱动加载大致流程。......【阅读全文】

阅读(2208) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

啦哆A梦2014-02-21 11:08

回复  |  举报
留言热议
请登录后留言。

登录 注册