xiaoban
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2162回复:7

高分求助: 9054访问local端的问题

楼主#
更多 发布于:2005-05-30 00:14
我做了一个PCI卡。板上有一个altera公司的Cyclone FPGA,FPGA上有一个altera公司自己定制的总线--avalon总线。9054做

avalon总线和PCI总线的转换设备。希望通过9054,在主机上可以直接读写板上的SDRAM中的内容(SDRAM是连在Avalon总线上的)
现在调试工作已进行到:
   主机已可以识别板卡,PLX公司提供的驱动已经安装上。PLX Mon能够找到9054芯片,并能够正确读取寄存器中的内容。由于没有

EEPROM烧写工具,我先让9054以默认方式启动(EEDIO下拉)。
现在的问题是:
    在local侧,sdram的起始地址是00800000,数据宽度32bit。按照9054芯片的默认设置启动后,win2000系统给9054分配了几个

内存空间。其中一个内存空间是EF200000~EF2FFFFF。我想把这段空间映射到sdram对应的local地址上。于是把LAS0BA改为

00800001(结尾的1表明该空间有效)。使用PLX MON 的memory fill功能写入数据。但发现根本没有写入SDRAM。而且尤其奇怪的是

:用read block读取S0空间偏移地址为0的数据,显示的地址却是 01350000,这个地址和任意一个PCI空间的地址以及我设置的

local端的空间地址都不符。我搞不清楚这个地址是从哪里冒出来的。
  所以自己就产生了一些疑惑:
   (我只把9054芯片默认设置LAS0BA寄存器修改为00800001,以便建立PCI空间和local space0空间的映射。其他设置都没有动)


   1、在这种设置下,PLX Mon写数据,是否工作在PCI Target模式(我的9054是C mode)。怎么设置才能让9054工作在PCI Target

模式,才能让PLX Mon工作在PCITarget模式。
   2、我的地址空间映射的对不对?
   3 、memory command窗口中,read block读出的地址01350000是从哪冒出来的哪?
   9054 local端和avalon总线间要有一个转换模块,我把这个模块进行了时序仿真,模块的9054端按9054 datasheet 上single

write的timing diagram设计,仿真后avalon端输出的信号完全符合avalon总线规范。说明这个模块应该没问题。我想问题应该集中

在9054的寄存器设置上,如地址的映射。还有一种可能就是PLX Mon的默认工作模式不是PCI Target,但自己搞不清楚。


 肯请各位高手出出主意,给点建议。
          
xiaoban
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-30 00:16
请各位高手帮忙指点
wistful
驱动牛犊
驱动牛犊
  • 注册日期2003-10-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-30 11:33
(1)建议你用SOFTICE软件调试底层数据读写
(2)建议你找到EEPROM的编程器,不要使用PLX MON软件调试
(3)你的地址映射没有问题
(4)注意LHOLD和LHOLDA的时序
(5)仿真可行,不等于上板子就一定行

以上仅供参考
xiaoban
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-30 23:19
wistful,你说得很好。我也是这么想得。
我现在装了driverstudio,准备用它调一下。但是还是想问一下,
1、用PLX Mon 写的时候,是否是PCI Target single write。
2、9054如何被配置工作在PCI Target模式,设置哪些寄存器啊?我看得头都大了,也没找到明确的。
xiaoban
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-30 23:22
wistful,刚才给了分,分不多,表示感谢。希望你能再指点我一下。
wistful
驱动牛犊
驱动牛犊
  • 注册日期2003-10-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-31 08:23
1)用PLX Mon 写的时候,是PCI Target single write,同样,用SOFTICE写,也是PCI Target single write
2)你不用着急,9054还是比较简单的,你静下心来,仔细阅读9054DATA SHEET的1,4,5,11部分。你要配置的寄存器,在4部分有他们的偏移地址,在11部分,有详细的介绍,5部分有详细的时序。你静下心来看,3天就彻底看完了。你要配置的无非是局部地址寄存器,邮箱寄存器你不用管,DMA寄存器你不用管,电源管理寄存器不用管,但是在写配置文件的时候,你不用的寄存器一定要设置成缺省值。你要配置局部地址寄存器,如LAS0RR,LAS0BA,PROT_AREA,LMISC[7:0] / BIGEND[7:0],PCI部分的寄存器你还是要配置的,如PCIIDR,PCICCR[7:0] / PCIREV[7:0],PCIMLR[7:0] / PCIMGR[7:0],PCIIPR[7:0] / PCIILR[7:0],操作系统靠PCI配置寄存器来装载驱动。祝你好运。
xiaoban
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2005-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-01 23:27
wistful,十分感谢。
昨天有事,没有及时看到你的帖子。今天看了,很受益。我再潜心搞几天。过几天再和你交流。再次给分!
wjnong
驱动牛犊
驱动牛犊
  • 注册日期2004-07-30
  • 最后登录2007-01-25
  • 粉丝0
  • 关注0
  • 积分97分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-07 13:23
关注
游客

返回顶部