Chinaunix

标题: pci的寄存器的大小 [打印本页]

作者: wucongdonglai    时间: 2011-03-30 19:12
标题: pci的寄存器的大小
看《linux设备驱动程序》上写的,所有的PCI设备都有至少256个字节的地址空间,前64字节是标准化的,而其余的是设备相关的。这256字节是不是都是配置寄存器的空间?
我装上我自己的pci板卡后,用pci_resource_len(pdev,0)得到IO内存的长度为128,这单位应该是字节,我想问下:这IO内存所对应的寄存器是包括在之前那256字节里吗?还说是说另外的寄存器,专门的拿来实际应用的?
另外,这里是128,但是我实际的人家给的datasheet里只有32字节有对应的说明啊?那是不是说另外的96字节没有应用?

作者: accessory    时间: 2011-03-31 00:37
PCI 规范里规定了至少2个以上的地址空间。一个是“配置空间”,另外一个是一般的IO访问空间(具体名字记不清了 = =)。前面是标准的,所有PCI设备都要支持(当然,里面有些字节是可选的)。 后面一个是每个设备不同的。

你看的书里面说的是配置空间,代码里那个函数拿到的应该是后面的一般IO空间。二者没关系。人家给你的手册里,32的单位是啥? byte? dword?
作者: wucongdonglai    时间: 2011-03-31 08:38
回复 2# accessory

32应该是字节,因为他写的寄存器是32位的,而BASE+00用于测试,下一个单元是BASE+04,所以应该是字节,也就是有32字节
作者: accessory    时间: 2011-04-01 00:11
那就问问做硬件的人。。。其实空间大了还是小了无所谓,设备的功能都能实现就可以了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2