给客户做的一款低端板子,其实就是8241+5*DM9000。之前用的Intel的82551太贵了,而且已经停产。市面上其他网络芯片的厂商基本上也没有PCI总线的网络芯片。
板子到手后,5V、3V3、1V8,测量均无短路。
好的,上电电压正常,烧写CPLD,但是串口打印信息并没有按照想象的出现。问题麻烦了。
重新烧了一块FLASH,换了依然没有打印。
看来要动用重武器了。
测量复位、时钟输入、SDRAM时钟均无问题。看来PLL应该发挥作用了。
接着测量Boot Flash的CS,复位后有波形,但是会一直保持。难道是DM9000前面总线驱动的逻辑错了。
审阅了以下CPLD逻辑,果然有错误,改掉后在量CS,发现每次复位后只出现13次。
这个是不应该的,因为前面读u-boot应该会保持一段时间。拿公司另外一块同平台的板子测试印证了我的想法。
然后给郑州的一位同事电话,希望得到一些提示。结果很遗憾,答曰看启动配置。。。。。
这个是Copy的图,应该是不会有问题的。
难道还是CPLD逻辑的问题?我改了以后又用示波器测了一遍,应该没问题的啊。不会是开始烧坏了吧。算了,还是把不用的逻辑禁掉吧。
奇迹出现了,久违的启动信息出来了。看来就是逻辑问题。
接着配置了一路DM9000,probe成功,发送超时,cat /proc/interrupts无中断,量中断管脚是有的。怀疑是发送设置定时器,结果没有中断清除定时器。改回并行中断,ok。在改回去串行中断,ok。估计是’/IRQ1/S_CLK’在拷逻辑的时候忘了加反向。
之后5片DM9000全部找到。
TODO:u-boot下无法配置RCS2,准备飞线将RCS1和RCS2对调。
Added on 08/01/2011
PS: 悲剧,今天测量网卡速度只有30Mbps。