DM8168心得之从sd卡烧写到nand

 


DM8168心得之从sd卡烧写到nand

 

/******************************************************************

*      author:        卢浩

*      time:          12.03.08

*      environment:   ubuntu10.04LTS +TI DM8186

*      kernel version:  linux-2.6.37

******************************************************************/

 

这个还是比较纠结的...

当时看ti的文档,如图



但是我输入mmc init 却没反应...后来再看文档才发现TI坑人啊...mmc init 应该更换为

Mmc rescan 0

而下面的fatloadmmc 1 0x81000000 uImage 应该把其中的1改成0

fatload mmc 0 0x81000000 uImage

 

好了,现在可以在uboot阶段初始化mmc了...我们可以开始烧写了

首先

拨码开关调至从sd卡启动,按空格进入uboot状态

输入mmc rescan 0

然后会显示如图


然后再输入

mw.b 0x81000000 0xFF 0x260000  『初始化使用的内存,全部置1』

输入

fatload mmc 0 81000000 u-boot.noxip.bin[从SD卡中下载u-boot.noxip.bin到内存81000000处

输入

nand erase 0x0 0x260000 对将要使用的区域进行擦除操作

输入

nandecc hw 2

请看图,下图是TI对于ecc的一段说明


接下来输入

nand write.i 0x81000000 0x0 0x260000 [把内存81000000处的内容写到nand里面,从0x0开始,到0x260000结束]

接下来输入

nandecc hw 0

 

OK,至此,uboot烧写完毕

 

接下来烧写kernel

 

 

 

 

输入

mw.b 0x81000000 0xFF 0x440000 [初始化使用的内存,全部置1]

输入

Fatload mmc 0 81000000 uImage [从SD卡下载uImage到内存]

输入

nand erase 0x00280000 0x00440000 [对要使用的区域进行擦除操作]

输入

nand write 0x81000000 0x00280000 0x00251000 [从内存把uImage写入nand里面]

 

 

接下来烧写filesystem

输入

mw.b 0x81000000 0xFF 0x0C820000 [初始化使用的内存,全部置1]

输入

Fatload mmc 0 81000000 rd-jffs2.bin [从SD卡下载rd-jffs2.bin到内存]

输入

nand erase clean 0x006C0000 0x0C820000 [对要使用的区域进行擦除操作]

输入

nand write 0x81000000 0x006C0000 0x000e0700 [从内存把rd-jffs2.bin写入nand里面]

 

这里有个需要注意的就是我们的镜像文件的size

TI的文档有这么一段描述

这个nand是2K对齐的。

我一开始没注意到,直接用的镜像的size,然后错误,如图

尝试写入非对齐页失败

后来我改了下,稍微比0xe06128大一点用的是0xe07000。于是成功了。

设置拨码开关从nand启动

按空格进入uboot状态,设置env变量。如图

 

Setenv bootcmd 'nandecc sw;nand read81000000 280000 440000;bootm 81000000'

Setenv bootargs 'console=ttyO2,115200n8root=/dev/mtdblock 7 rw rootfstype=jffs2 mem=100M earlyprintk'

如果root=/dev/mtdblock7启动不了的话尝试换成root=/dev/mtdblock3

然后记得saveenv

重启开发板,可以从nand启动linux系统了。

这里有个插曲

TI的uboot默认是nandecc是硬件校验,结果启动kernel的时候出错,显示crc校验失败

如图

后来我在bootcmd 里面加入了一句 nandecc sw ,变成从软件校验,结果通过了。


输入root登录即可


嵌入式开发者爱好群 122879839


你可能感兴趣的:(ARM-LINUX)