magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1553回复:8

求助:如何新申请一块 PCI总线相关地址空间,谢谢!

楼主#
更多 发布于:2004-09-01 20:44

主要用于读PCI中扩展ROM数据。
[color=red]大头鬼! :P[/color]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-09-01 21:46
为何不把ROM映射到RAM?
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-01 22:32
谢谢,回复。

这种方式也想过,但是觉得不太可行。
ROM映射到RAM,这样读这个地址时,地址应该会到RAM,而不是送到PCI设备上。也就是读的是RAM中的数据,而不是PCI设备上的数据。不知是否对?

[color=red]大头鬼! :P[/color]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2004-09-01 23:03
看来只有I/O访问了。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
地下室#
发布于:2004-09-02 04:32
当然不对了.....

如果读是到ram的话
那还映射来干虾米呀........

pci设备必须要进行全地址解码的呀
你向pci bridge报告你有多大的rom
bridge会为你保留足够的地址空间
os软件会写入这个地址空间的开始地址跟长度.....

你的pci设备在地址解码阶段会解码到这个地址段的呀....
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2004-09-02 09:22
呵呵,就是,那还映射什么呀,大头鬼头大了 :D只许IO映射不许mem映射? :D
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-02 09:23
问题好象还没有解决。

to tiamo:
关键是很多机子上在WIN OS 启动好后就会将扩展ROM地址都清零了。

“看来只有I/O访问了。”--也不行,因为硬件上BUG只能是ROM中读。

问题:“如何》新《申请一块 PCI总线相关地址空间,谢谢!”

[color=red]大头鬼! :P[/color]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-02 10:00
如果各位能得到“os软件会写入这个地址空间的开始地址”这个地址,或有比较通用的算法“占用”一段内存空间也可。

UP。
[color=red]大头鬼! :P[/color]
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2004-09-07 13:49
建议你去看一下PCI规范里有关“配置寄存器”的内容!
tiamo 说得对,你只需要:
1, 在PCI 配置寄存器对应的BARx(x=0~5)中填入你的ROM的空间大小,也就是在系统启动完成后OS将会分配给你对应于该ROM的映射RAM或IO空间的大小(具体设置方法PCI规范中有详细说明)
2, 在你的PCI板的Local端,硬件上需要完成对该ROM空间的Local地址的译码和读、写操作时序。
游客

返回顶部