jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1198回复:3

想启动后产生9054的Lreset#信号,请大家支着!

楼主#
更多 发布于:2002-12-27 16:05
当初设计时是用9054的Local端Lreset#信号去初始化外围的逻辑控制芯片CPLD,但是现在发现所做的PCI卡不是很稳定。经常由于找不到卡无法启动。在正常找到卡的情况下,系统稳定,windriver什么看也正常。但是由于经常无法正常启动,CPLD无法正常复位。

所以想修改PCI9054的寄存器来触发local端的Lreset#信号,用windriver或者PCItree软件,可行吗?已经找到配置寄存器中44hPMCSR似乎是控制电源状态的。但是按照说明尝试了一下,没有成功。

请大家给点意见吧!谢谢!

最新喜欢:

lyjyjjlyjyjj
zab
zab
驱动小牛
驱动小牛
  • 注册日期2001-07-04
  • 最后登录2008-01-10
  • 粉丝0
  • 关注0
  • 积分126分
  • 威望14点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-31 09:54
下面的方法是网友leerom以前发的,对你会有帮助的,以下步骤即可实现软件复位了,也可以产生LRESETo#。

1)先是用READ_REGISTER_ULONG()读取9054寄存器:
6CH ―― Serial EEPROM Control, PCI Command Codes, User I/O Control, and init Control。
78H ―― Mailbox Register 0。
7CH ―― Mainbox Register 1。
2)然后是用HalGetBusDataByOffset()读取PCI配置空间:
偏移地址:3CH,读取长度:4字节 (中断配置信息)
偏移地址:48H,读取长度:4字节
偏移地址:44H,读取长度:4字节
3)再用WRITE_REGISTER_ULONG()写9054寄存器6CH:
先将软件复位位置位,再将PCI卡软件复位位清零。接着将重载配置寄存器(Reload configuration register)位置位,让PCI9054用EEPROM重载本地配置寄存器。最后将重载配置寄存器位清零。软件复位时还会写邮箱寄存器(Mailbox register),我没有用它,所以没做处理。
4)最后,用HalSetBusDataByOffset()将(2)读取的信息写回配置空间,但是我发现它只是在3CH和44H中各写了4个字节,不知为什么48H没有重写。

jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-03 10:15
非常感谢,我尝试一下!
jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-03 10:27
请问以上方法(函数)是Windriver产生的吗?或者是Windriver产生的VC代码吗?
游客

返回顶部