1637|0

59

帖子

0

资源

一粒金砂(初级)

关于8900网卡的驱动问题,请高手指点! [复制链接]

我的板子是2410的,与公板一致。

移植cs8900的vxworks驱动的时候,参考的是网上可以找到的驱动文件,文件名为csend.c,csSysEnd.c那个版本。

发现移植后,在进行fxp的时候,在host没有抓到任何数据包。在排除硬件链路的故障的情况下,我按照uboot的方式进行初始化8900。

如下:
   csWritePacketPage(pCS, PKTPG_RX_CFG, 0);

   csWritePacketPage(pCS, PKTPG_RX_CTL,(RX_CTL_RX_OK_A|RX_CTL_IND_A|RX_CTL_BCAST_A));

   csWritePacketPage(pCS, PKTPG_TX_CFG, 0);
  
   csWritePacketPage(pCS, PKTPG_BUF_CFG, 0);
  
   csWritePacketPage( pCS, PKTPG_LINE_CTL,LINE_CTL_RX_ON | LINE_CTL_TX_ON );
                    
   pIA = (PIA)pCS->enetAddr;
   csWritePacketPage( pCS, PKTPG_IND_ADDR,   pIA->word[0] );
   csWritePacketPage( pCS, PKTPG_IND_ADDR+2, pIA->word[1] );
   csWritePacketPage( pCS, PKTPG_IND_ADDR+4, pIA->word[2] );

将8900的工作模式设定为io模式和poll输出模式。

当执行到fxp的时候,发出的3次数据包如下:

ffffffffffff87420a780608100840610087420a780a8c0a12000a8c0212

ffffffffffff87420a780608100840610087420a780a8c0a12000a8c0212

ffffffffffff87420a780608100840610087420a780a8c0a12000a8c0212

最后提示如下:
Error loading file: errno = 0x3c.
Can't load boot file!!

我的host的ip为192.168.18.2,目标机ip为:192.168.18.10。发送的指令为0xc0,长度为42。

感觉到很奇怪,为了验证发包是否正确,我用其它机器进行ping包,并用sniff抓到ping的包结构,如下:

45003c4bdc08001498fc0a8120ac0a81202800475c2004006162636465666768696a6b6c6d6e6f7071727374757677616263646566676869

将这个共计60个byte的包写到8900里面进行发送,发现调用while( !TX_EVENT_TX_OK & csReadPacketPage(pCS,PKTPG_TX_EVENT))说明包发送完毕后,

在host侧仍然无法抓到任何包。

为了验证,将上面的ping包结够改为只需要协义中的前面28字节也不行。

修改过发送指令,包括选则pad,选则crc等组合都不生效,即无法抓到包。

甚是怀疑8900的芯片寄存器配置的问题,但是根据手册和linux的源代码没有找到原因,请高手帮忙分析指导一下,万分感谢!

cumedl@gmail.com

回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/6 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表