首先,热烈祝贺一下,第一次移植啊,成功了。
我的开发板是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
图:
阅读(2084) | 评论(0) | 转发(0) |