farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2829回复:12

请教pci9054主模式下的操作问题

楼主#
更多 发布于:2004-11-11 12:08
pci9054工作在主模式(pci initiator)下,现在的问题是:
本地处理器可以正确访问pci9054的内部寄存器,但访问PCI总线侧的IO或Memory空间时,pci9054不能输出ready#信号。哪位有这方面的经验请指点一下,多谢!

最新喜欢:

jackywangwenjackyw...
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-11-12 11:59
用户被禁言,该主题自动屏蔽!
x810421
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2006-04-15
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-12 15:33
是这样的,在initiator方式下的PCI9054的ready#信号是输入信号的,你可能搞错了.
ythweb
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2013-08-04
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望32点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-15 19:42
请问内部寄存器的地址怎么确定呀?俺正郁闷呢
x810421
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2006-04-15
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-15 21:42
先确定vendor id的地址,再用偏移地址确定寄存器的地址就可以了.
farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-25 17:48
感谢老大回复,不过在Initiator模式下ready#信号是9054的输出信号,手册上的时序图中明确标出了,在5.6节。

已查明ready#没有输出的原因是板上没有加PCI仲裁器。

farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-25 17:49
感谢老大回复,不过在Initiator模式下ready#信号是9054的输出信号,手册上的时序图中明确标出了,在5.6节。

已查明ready#没有输出的原因是板上没有加PCI仲裁器。

neibu
farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-25 17:52
手册中给出了寄存器的偏移,对本地处理器而言,自己加一个基地址就可以了,外加地址译码电路对基地址进行译码。
ythweb
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2013-08-04
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望32点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-25 19:26
请问基地址示自己随便加的吗
farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-26 09:15
基地址是自己加的,只要与板上的其他器件的地址不冲突就行。
9054的ccs#信号是根据自己加的这个基地址进行译码而得到的。
ythweb
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2013-08-04
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望32点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-02 20:47
现在访问内部寄存器时,读可以,当写时,计算机就死掉了,请问是什么原因?都需要对那些信号译码?地址在eeprom中有体现吗?
farsky70
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2004-12-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-03 09:28
回复10搂:

地址译码是针对本地处理器的地址空间而言的,这个地址不在EEPROM中体现。

举例来说:
假定本地处理器的地址范围为0x00000000 ~ 0xffffffff,分配给9054的地址空间为0x88000000 ~ 0x89ffffff。

对高7位地址即A31~A25 (1000 100)进行译码得到ccs#,本地处理器的其他位地址A24~A2直接接9054的LA24~LA2。9054的高位地址接地就行了。
如果操作不正确,建议看看ADS# CCS# BLAST# READY# WAIT# LW/NR等信号的时序
ythweb
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2013-08-04
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望32点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-04 13:16
谢谢楼上的回答。我现在能读到数据,但是第二个数据不对,现在正在调呢,可能是blast不对
游客

返回顶部