Chinaunix首页 | 论坛 | 博客
  • 博客访问: 158360
  • 博文数量: 40
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 355
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-27 18:05
文章分类
文章存档

2011年(1)

2010年(9)

2009年(16)

2008年(14)

我的朋友

分类: LINUX

2009-04-09 17:22:57

首先,热烈祝贺一下,第一次移植啊,成功了。
 
我的开发板是MINI2440的开发板。
 
默认的flash.c不支持nor SST39VF160,我是参照这篇文章的
 
1.关于flash的一些基本信息
a.在inclue/flash.h中定义了能够识别的flash的厂商ID,设备ID,flash型号,在datasheet中可查到
   例如ST39VF160 ,在flash.h中定义的
   厂商ID为define SST_MANUFACT 0x00BF00BF  /*注意是0x00BF*/
   设备ID :#define SST_ID_xF1601 0x234B234B /* 也是一样的0x234B */
   flash型号:#define FLASH_SST160A 0x0082   /*这个不知道怎么得来的??*/
 
b.flash有两种标准jedec 和CFI(common flash interface)公共闪存接口
   如果uboot中没有合适驱动,可以考虑用cfi驱动
c.flash的容量是0x00200000(2M),数据位宽是16bit
 
2. 在UBOOT目录中输入grep -nir "sst160" 看看有没有使用这个flash的驱动,以方便我们修改。我选择了board/dave/目录下的flash.c
 
拷贝board/dave/common/flash.c到我们板子目录
将board/dave/B2/flash.c中的flash_init拷贝到刚刚的flash.c中,放到最未。去掉它原来的宏定义。
 
3.修改类似addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA00AA;
改为  addr2[CFG_FLASH_ADDR0] = (CFG_FLASH_WORD_SIZE)0x00AA;
 
4.修改flash.c 中的flash_get_size 函数中case (unsigned short)SST_ID_xF160A
改为SST_ID_xF1601
 
其它的都是些小错误,改改就行。
MAKE 得到UBOOT.BIN
图:
 

 

阅读(2051) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~