免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1177 | 回复: 0

uboot移植过程中的问题总结 [复制链接]

论坛徽章:
0
发表于 2011-12-23 03:35 |显示全部楼层
对于我们这样的初学者来说,不懂的UBOOT的原理,或者只知道那么一点点儿很肤浅的知识,哪怕是一个小小的问题,就可能困扰你一天,甚至一个月。
从六月末移植UBOOT到现在,已经有2个多月的时间了,中间虽然学了LINUX设备驱动程序。但现在的情况是,移植的UBOOT只带DM9000A的驱动,USB驱动还未移植。不过在这过程中,我收获颇丰。下面一一列出在UBOOT移植过程中遇到的问题,以免自己在将来又犯上同样的错误,却苦苦等待着很简单的答案。
问题一:
按照《嵌入式LINUX之我行》的UBOOT移植方法,修改好代码以后,下载到NAND FLASH中,在输出以下文字后死机:
  1. U-Boot 2009.08 ( 9 11 2011 - 20:00:03)
  2. DRAM: 64 MB
  3. Flash: 512 kB
  4. NAND: NAND_ECC_NONE selected by board driver. This is not recommended !!
  5. 64 MiB
  6. In: serial
  7. Out: serial
  8. Err: serial
解决方法:DM9000A网卡驱动有问题,下一个初始化的就是网卡驱动了。
 
问题二:
ping 192.168.0.16 主机时会死机,LCD屏会先出一道黑线,然后又全部变白。(这个问题困扰我达两月之久。起初以为是开发板有问题,然后送厂检修,果然网络不稳定。一个星期后,板回到我手中,再次ping,还是同样的问题,但是在WINCE下网络已经很稳定了,所以这次开发板是没有问题的了。其实找到解决这个问题的方法纯属意外,在某个论坛上浏览帖子时,发现别人描述的现象跟我的一样,那个前辈理解的比较深刻,提到可能是CPU占用过高,LCD屏刷新不过来。正是这个现象的描述,提醒了我:DM9000A的读写时序是什么样的?DM9000A是如何读取BUFFER中的数据的?)
解决方法:在某人的BLOG中找到了DM9000A的时序图(现已转载了我的BLOG),仔细研读:片选使能(nGCS)--》写命令使能(nOE)——》写命令全能结束--》片选使能结束。
首先,我的DM9000A的片选使能没有问题,其次检查片选使能后的Tcos,发现这里有问题,原来是没有设置BANK3上的位宽为16bit。由于网上比较流行的S3C2440开发板的DM9000的片选都是在BANK4上,而UBOOT默认的BANK4就是16bit的,所以不会出问题。
在board/samsung/my2440/lowlevel_init.S中修改#define B3_BWSCON (DW16)即OK。
 
问题三:
ping 主机的时候出现:operating at unknown: 0 mode。
解决方法:
/drivers/net/dm9000x.c
修改phy_read(int reg) 函数中的延时即解决,详细情况如下:
  1. /*
  2. Read a word from phyxcer
  3. */
  4. static u16
  5. phy_read(int reg)
  6. {
  7. u16 val;
  8. /* Fill the phyxcer register into REG_0C */
  9. DM9000_iow(DM9000_EPAR, DM9000_PHY | reg);
  10. DM9000_iow(DM9000_EPCR, 0xc); /* Issue phyxcer read command */
  11. udelay(1000); //udelay(100); /* Wait read complete */
  12. DM9000_iow(DM9000_EPCR, 0x0); /* Clear phyxcer read command */
  13. val = (DM9000_ior(DM9000_EPDRH) << 8) | DM9000_ior(DM9000_EPDRL);
  14. /* The read data keeps on REG_0D & REG_0E */
  15. DM9000_DBG("phy_read(0x%x): 0x%x\n", reg, val);
  16. return val;
  17. }
 
未完待续……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时9.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP