dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
阅读:1681回复:3

关于网络掉线后只能reset系统恢复的问题(CS8900,DM9000)

楼主#
更多 发布于:2007-06-28 21:34
最近在调一个2410的板子,上面分别接了CS8900A和DM9000这两个网卡芯片,遇到了一个很奇怪的问题,就是无论在linux还是WinCE下,当你用大包(大于5000)或者上网浏览www.sohu.com等内容比较丰富的网页时,过一会就会断线,而且这种情况下只能reset系统才能恢复,这个是一个必然的现象。

我的网卡芯片的reset是和2410的reset接一起的,所以网卡乱掉后只能software reset,而这个几乎不起什么作用,无论怎么修改IP地址都不行。经过跟踪,发现一般是出现了下面这样的情况:

正常的情况下,比如DM9000,当发送完一个帧的数据(内部分两次发送),卡会给系统一个中断,表示现在发送完成,那么驱动记数,当两次都发完后就告诉上层这个帧发送完毕,当外部有数据到卡这边时,卡也会向系统发中断通知过来接收,这个是正常的现象。

那么不正常的时候就会出现,当发送完一个帧的数据后,卡给系统中断了,而系统此时去读卡中断状态寄存器却发现并不是发送完毕的中断,所以也就没有给上层返回发送完毕的事件。不知道这个是不是跟总线BANK的时序配置有关?另外,当外面用5000这样的大包ping的时候,卡也不应该崩溃啊,即使对于1500以上这样的大包,卡会discard掉,但是为什么会崩溃到无法恢复呢?

相信我说的cs8900,DM9000这样的现象,其他的朋友也遇到过,不知道大家有没有什么好的建议?
dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-02 12:14
最近发现,原来是这个驱动在大于1472以上的数据包上有问题,当外面发来的数据需要重组,或者发出去的数据需要分片发送时(即大于MTU),就会出现问题,诶,到底是那里出现问题呢?我的PB有问题,NDIS不支持IP重组?还是DM9000的官方驱动有问题呢?
buaadallas
驱动牛犊
驱动牛犊
  • 注册日期2005-03-16
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望47点
  • 贡献值0点
  • 好评度47点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-02 15:51
我用的DM9000,没有这样的问题呀。可以和我交流一下,qq 29942206
dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-07-02 18:38
多谢老兄,等下加你聊聊
游客

返回顶部