免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4509 | 回复: 4
打印 上一主题 下一主题

pci IO内存和配置空间的概念理解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-27 11:36 |只看该作者 |倒序浏览
pci IO内存和配置空间其实是不是对应着同一个寄存器空间,是不同阶段的不同称呼?
配置空间是指在识别设备时候寄存器所存储的值,而当pci_request_region、ioremap后就成了IO内存?
还是说配置空间就是配置空间,里面存储了pci设备信息,而IO内存对应的是设备上的另一段寄存器?

论坛徽章:
0
2 [报告]
发表于 2011-01-27 14:46 |只看该作者
配置空间是pci的规范,一共256字节的配置空间,前64字节的配置空间是固定的(包括device/ventor id ,bar等)
配置了配置空间的bar,然后可以把这个pci设备的寄存器(非配置空间的内容)映射到io/memory空间中,这样可以操作io/memory空间访问这个pci设备的寄存器来。

论坛徽章:
0
3 [报告]
发表于 2011-01-27 17:12 |只看该作者
配置空间是pci的规范,一共256字节的配置空间,前64字节的配置空间是固定的(包括device/ventor id ,bar等)
...
shank941 发表于 2011-01-27 14:46



    也就是说:IO空间和配置空间并不相同,而且IO空间还可能会没有?
另外,配置空间有些寄存器是不是只读的,比如写入厂商ID的?
有些寄存器是可读可写的,比如基地址寄存器?

论坛徽章:
0
4 [报告]
发表于 2011-01-28 11:51 |只看该作者
也就是说:IO空间和配置空间并不相同,而且IO空间还可能会没有?
另外,配置空间有些寄存器是不 ...
wucongdonglai 发表于 2011-01-27 17:12



   
IO空间和配置空间并不相同,而且IO空间还可能会没有?
re:如果你配置空间的BAR配置的是memory空间,设备的寄存器(非配置空间的内容,而是你操作这个硬件需要的其他寄存器)就映射到memory空间了啊


配置空间有些寄存器是不是只读的,比如写入厂商ID的?
re:是,系统就是初始化时遍历到pci设备时 根据device id/ventor id找到相应的驱动代码来初始化这个pci设备

有些寄存器是可读可写的,比如基地址寄存器?

pci配置空间主要也就是配置下基地址寄存器还有中断啥的,通过pci_read_config_word,pci_write_config_word等函数来访问和操作配置空间,
配置空间配置完成后, 这个设备的寄存器(非配置空间内容,比如网卡的mac寄存器等)就通过基地址寄存器配置的映射地址映射到memory或者io
空间了,此时你就可以像访问内存一样访问 设备的寄存器去初始化和管理设备了,同时注意此时读写寄存器时,尽量加上volatile,防止被优化。

建议你先大概看下pci设备规范,再去linux底下找个pci设备的代码看下,比如e1000的网卡驱动。

论坛徽章:
0
5 [报告]
发表于 2011-01-29 09:21 |只看该作者
恩,好,这就清楚了,谢谢啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP