gogo2000
驱动牛犊
驱动牛犊
  • 注册日期2002-11-28
  • 最后登录2005-10-06
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1384回复:0

我已经被搞的死去活来了,搞pci的帮一下小弟。

楼主#
更多 发布于:2005-06-24 20:45
  情况如下:用pci9052做一记数板,开机一切正常,dos下可用plxmon正确读写eep,windows下用windrive也可以正确识别卡,驱动安装也正常,可以分配正确的资源,pci这一侧我想应该是正常的。
但是local端的读写,不管怎样都不能正确读写,用示波器看地址信号的产生都是正常的(译码正确)。
local端是这么接的,lad0-lad7数据线挂两个8253,
LBE0#,LBE1#,LA2,LA3挂cpld做译码产生两个8253片选,
RD#,WR#挂cpld译码并且直接接到8253做读写信号。(cpld还做其他信号的处理,暂时未加这些处理部分)
LRDYI#接地
LCLK,BCLO用50 ou电阻连起
LHOLD用电阻下拉
NOWS#下拉
CHRDY上拉
MODE下拉
其余local脚全部留空
读写方式为io读写
总共需分配16个io地址0x00-0x0f
本来设计是isa方式的,后来注意到了isa方式是8M的时钟,我这里用了33M,所以改成非ISA方式了
eep内容如下
eep 0 905210b5 echo PCIIDR; Device ID, Vendor ID
eep 4 06800002 echo PCICCR; Class Code
eep 8 905210b5 echo Subsystem ID, Subsystem Vendor ID
eep c 00000100 echo Maximum Latency, Minimum Grant, Int Pin, Int Routing
eep 10 00000000 echo LAS0RR; Local Address Space 0 Range
eep 14 fffffff1 echo LAS1RR; Local Address Space 1 Range
eep 18 00000000 echo LAS2RR; Local Address Space 2 Range
eep 1c 00000000 echo LAS3RR; Local Address Space 3 Range
eep 20 00000000 echo EROMRR; Expansion ROM Range
eep 24 00000000 echo LAS0BA; Local Address Space 0 Base Address (Re-Map)
eep 28 00000001 echo LAS1BA; Local Address Space 1 Base Address (Re-Map)
eep 2c 00000000 echo LAS2BA; Local Address Space 2 Base Address (Re-Map)
eep 30 00000000 echo LAS3BA; Local Address Space 3 Base Address (Re-Map)
eep 34 00000000 echo EROMBA; Expansion ROM Base Address (Re-Map)
eep 38 00000000 echo LAS0BRD; Local Address Space 0 Bus Region Descriptors
eep 3c 00000022 echo LAS1BRD; Local Address Space 1 Bus Region Descriptors
eep 40 00000000echo LAS2BRD; Local Address Space 2 Bus Region Descriptors
eep 44 00000000 echo LAS3BRD; Local Address Space 3 Bus Region Descriptors
eep 48 00000000 echo EROMBRD; Expansion ROM Bus Region Descriptors
eep 4c 00000000 echo CS0BASE; Chip Select 0 Base
eep 50 00000009 echo CS1BASE; Chip Select 1 Base
eep 54 00000000 echo CS2BASE; Chip Select 2 Base
eep 58 00000000 echo CS3BASE; Chip Select 3 Base
eep 5c 00000000 echo INTCSR; Interrupt Control/Status
eep 60  00454012 echo CNTRL; User I/O, EEPROM, Init Control

分配的资源为BAR0 0xfa000000-0xfa00007f
BAR1 0xd000-0xd07f
BAR3 0xd400-0xd40f
请帮忙分析一下会是什么原因,是不是由于时钟太快要在CNTRL里设置相应的延时和保持?
游客

返回顶部