failed to initialize ethernet controller说明在初始化以太网接口控制器时出错,没有找到你的cs8900a,应该是硬件还有问题,或是地址不对.你可以先尝试去读cs8900a的id,正确的应该是630e.如果有仿真器直接在仿真器下读看结果,没有就在系统中添加打印信息,将读取的id打印出来。下述是以前在调试该芯片时记录下来的,希望对楼主有点借鉴:19.1 cs8900a调试步骤1.检查网络的物理连接。用交叉网线将目标板于pc机相联,此时目标板和pc机的以太网连接指示灯(linkled)将常亮,活动指示灯将闪烁,pc机(windows系统)将出现网络已连接信息。如果不正常,可能是接收或发送链路还有问题,或芯片的该相关部分有问题,特别注意芯片第93脚(res)连接的电阻阻值。2.读取芯片id判断芯片及isa总线是否正常。可在kernel/drivers/net/cs8900a.c的初始化部分增加读取芯片id号及打印的代码。正常的chipid:630e,通常不正确时读出来chipid:dc90。此时可能是i/o和内存空间读写部分的逻辑转换电路,或地址数据线等不正常等。
nt1 = 0x22222221; //cs8900a irq active higheintmask &= ~(1 << 8);intmsk &= ~(int_timer4 | int_uart0 | int_eint8_23); //enable timer4 ,uart0 ,eint8 irqintsubmsk &= ~(int_rxd0);已经确认的情况:1. 定时器4和串口0的中断是正常的。2. 用查询方式可以查询到cs8900a的id:630e,可以正确接收完整的以太网帧。3. 如果将cs8900a的中断输出改为irq1,即等于将2410的eint8悬空,那么eint8的外中断处理被频繁触发。4. 将eint8的管脚gpg0设置为gpio输入,并不断读取该管脚的电平,始终为低。(我没有示波器)我的问题是:为什么不能通过外部中断接收cs8900a的数据?我认为是cs8900a不产生中断。各位请指教。