Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140253
  • 博文数量: 24
  • 博客积分: 672
  • 博客等级: 上士
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-29 09:28
文章分类

全部博文(24)

文章存档

2011年(24)

我的朋友

分类: LINUX

2011-07-06 21:50:31

    今天拿出板子,开始玩一玩u-boot,板子上的Nor Flash 型号是:AM29LV160DB-90EC,NAND Flash型号是:K9F1208U0B,SDRAM型号是:HY57V561620FTP-H。
    按照网上的方法开始移植过程,基本都比较顺利,但使用ping测试CS8900A的时候,总是提示:
    CS8900 Ethernet chip not found?!
在网上找了很多方法,测试还是不成功,最后打开vivi源码,对比CS8900.c,在u-boot的cs8900.c中添加:
  1. #define rBWSCON (*(volatile unsigned *) 0x48000000 )
  2. #define rBANKCON3 (*(volatile unsigned *) 0x48000010 )
并在eth_init()函数中添加:
     
  1.      printf(" rBWSCON 0x%08X \n",rBWSCON );
  2.      rBWSCON = ( rBWSCON & ~(0xf<<12)) | (0xd << 12);
  3.      printf(" rBWSCON 0x%08X \n",rBWSCON );
  4.      rBANKCON3 = ( 3<<11)|(0x7<<8)|(0x1<<6)|(0x3<<4)|(0x3<<2);
重新编译下载到SDRAM中,ping一下主机,令人欣喜的打印出现:
  1. MY2440 # ping 192.168.3.49
  2. rBWSCON 0x22111112
  3. rBWSCON 0x2211D112
  4. host 192.168.0.10 is alive
    这说明在某个地方BWSCON被修改过,导致读取CS8900A的ID错误,所以会出现上面的错误。具体原因有时间的时候再查找,如果哪位遇到同样的问题并找出原因请告知我。
 
    可以ping通之后接下来试试tftp,问题又出现了,不断的出现以下信息:
  1. TFTP from server 192.168.3.49; our IP address is 192.168.3.52
  2. Filename 'testttt'.
  3. Load address: 0x32000000
  4. Loading: T T T T T T T T T T
  5. Retry count exceeded; starting again
于是又开始在网上查找解决办法,还好这个问题有前人遇到过,解决方法如下:
把net/tftp.c中
  1. #define TIMEOUT 5000UL /* Millisecs to timeout for lost pkt */
改为
  1. #define TIMEOUT 60000UL /* Millisecs to timeout for lost pkt */
再次测试:
  1. MY2440 # tftp 0x33000000 testttt
  2.  rBWSCON 0x2211D112
  3.  rBWSCON 0x2211D112
  4. TFTP from server 192.168.3.49; our IP address is 192.168.3.52
  5. Filename 'testttt'.
  6. Load address: 0x33000000
  7. Loading: #################################################################
  8.          #################################################################
  9.          #################################################################
  10.          #################################################################
  11.          ###################################
  12. done
  13. Bytes transferred = 4317184 (41e000 hex)
解决这个问题参考了以下博文:
阅读(1687) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~