z13455525731
驱动牛犊
驱动牛犊
  • 注册日期2005-03-10
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分107分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1373回复:9

关于驱动程序分配地址的问题

楼主#
更多 发布于:2005-05-22 18:21
最近搞pci又搞应用程序都把我告乱了有点思维不清了 :D
pci设备的地址是如何设定的,我知道在设备插入系统后开机bios自动为设备映射一段空间,但是这个空间的大小有谁决定,在pci上的配置空间上?还是在什么地方,在有有的的方提到基地址,如果在配置空间设定了基地址那么岂不把地址定死不能灵活分配??如何能够得到这个地址
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-22 19:01
有PCI的配置空间决定的(那几个基地址寄存器)

一般配置空间内容有板卡上的EEPROM在启动的时候填写了。。

你要提前烧写EPPROM内容

你找PCI规范看看就知道了。。。或者你的硬件的datesheeet也应该有说明的。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
z13455525731
驱动牛犊
驱动牛犊
  • 注册日期2005-03-10
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分107分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-22 20:56
回楼上如果假设在pcirom同时基地址为0x100000那么映射出来的地址不冲突吗,我理解偏移表示的是大小基地址表示的是位置,如果进行映射没有必要要基地址
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-05-22 22:12
回楼上如果假设在pcirom同时基地址为0x100000那么映射出来的地址不冲突吗,我理解偏移表示的是大小基地址表示的是位置,如果进行映射没有必要要基地址


你还是没有看懂PCI的配置空间那段,,再仔细看看,,

它应该是以2的基数分配空间的,,而且基地址也是2的基数

我语言能力差说不很清楚,,你看看那规范把,,说的清楚

好好琢磨。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
edua714
驱动牛犊
驱动牛犊
  • 注册日期2005-04-22
  • 最后登录2005-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-24 10:48
pci卡的基地址是bios分配的,不同的系统是不同的。这个写到pci配置空间的bar0,,和扩展rom基地址寄存器。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-05-24 15:41
pci卡的基地址是bios分配的,不同的系统是不同的。这个写到pci配置空间的bar0,,和扩展rom基地址寄存器。


EEPROM的优先权更高吧,,,
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
z13455525731
驱动牛犊
驱动牛犊
  • 注册日期2005-03-10
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分107分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-25 10:34
如何能够获得这个分配的这个物理地址哪。 :o :( :D
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2005-05-25 14:29
如何能够获得这个分配的这个物理地址哪。 :o :( :D

startdevice的时候不是有个资源列表吗?里面有起始基地址
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
lishi626
驱动牛犊
驱动牛犊
  • 注册日期2003-11-25
  • 最后登录2008-07-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-05-26 23:20
    我只知道pci接口芯片比如9054,可以在EEPROM里设你需要的地址范围,具体是随便设个基址(没关系),再设个范围大小,都有具体的寄存器。
   主机会读你的寄存器,再为你分配个基址和大小,就是BOIS看到的。
z13455525731
驱动牛犊
驱动牛犊
  • 注册日期2005-03-10
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分107分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-05-27 18:25
感谢各位大哥,我已经明白分配问题了。各位解答的很详细,感激不禁
游客

返回顶部