烧写内核uImage和根文件系统rootfs到NAND FLASH

原创 2011年01月09日 22:52:00

/*2011.1.8*/
/*uboot1.1.4*/
/*内核:linux-2.6.22.6*/
/*NAND FLASH为:k9f2g08u0a*/

 

因为之前没连续写过一块以上的数据,今天写uImage才发现之前修改的uboot1.1.4里的NAND驱动有问题.
继续修改如下:

1.vi uboot1.1.4/include/configs/fl2440.h
添加:
#define CONFIG_FL2440           1

 

2.vi uboot1.1.4/common/cmd_nand.c
修改nand_rw函数:
将start  += n; 这句改为:
#if defined(CONFIG_FL2440)
                start  += 2*n;
#else
                start  += n;
#endif

 

3.vi uboot1.1.4/include/linux/mtd/nand.h
#define CFG_ENV_OFFSET  0x60000  -> define  CFG_ENV_OFFSET 0xC0000 /*0xC0000=2*0x60000*/
/*这样uboot的环境变量在NAND中存储的的实际地址才是0x60000*/

 

4.vi uboot1.1.4/common/cmd_nand.c
先注释了这行:
/*#define CONFIG_MTD_NAND_ECC */
要么使用nand write写过数据的块会被内核认为是坏块.

 

5.tftp 0x32000000 uImage
nand erase 0x100000 0x200000
nand write 0x32000000 0x100000 0x200000
这样内就写入NAND了.

 

接着写根文件系统到NAND:
设置uboot环境变量,从NAND启动内核,先用NFS挂载根文件系统:
6.setenv bootcmd nand read 0x32000000 0x100000 0x200000/;bootm 0x32000000

 

setenv bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.22:/home/arm/rootfs

ip=192.168.0.11:192.168.0.22:192.168.0.33:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200

 

saveenv

 

7.在主机上将根文件系统打包:
cd rootfs
tar cvf rootfs.tar ./

 

8.启动开发板,先用mount命令挂载要作为根文件系统的分区:
mount -t yaffs /dev/mtdblock2 /mnt


然后在开发板上执行以下命令将根文件系统解压到NAND里:
tar xvf rootfs.tar -C /mnt/

 

9.重设uboot环境变量,加载NAND中根文件系统:
setenv bootargs noinitrd root=/dev/mtdblock2 rootfstype=yaffs console=ttySAC0 init=/linuxrc

 

saveenv

 

OK!

相关文章推荐

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的

我用的是ramdisk.image.gz,烧写在flash的0x10140000处 我不太明白内核在启动过程中式如何将这个文件映射成/目录及各子目录的? 如果ramdisk.image.gz在fl...

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash

初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启动命令 ...

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的

初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启动命令...
  • maopig
  • maopig
  • 2012年03月08日 23:37
  • 1519

内核kernel、根文件系统rootfs如何映射到对应的nand flash

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的 【解答】内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的 【某...

内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的

原文 初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里...
  • maopig
  • maopig
  • 2012年12月16日 23:57
  • 1885

EasyARM i.mx287学习笔记——根文件系统rootfs修改和烧写

本文详细说明如何修改和制作根文件系统,包括修改根文件系统中的配置文件;在根文件系统中加入可执行文件,最后通过uboot tftp方式烧录根文件系统和镜像。...

关于内核uImage和文件系统(rootfs.ext2.gz.uboot)

这几天在进行环境搭建的时候遇到了一个错误: 错误信息如下: RAMDISK: gzip image found at block 0es: 4096 (order: 2, 16384 bytes)...

初步解决yaffs文件系统的nand flash烧写

1)获取yaffs工具 可以到 http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/ 下载yaffs源码 解压后进入yaffs目录下的utils目录。 m...

S3C6410 烧写u-boot 内核 根文件系统 遇到的问题 及总结

烧写u-boot 内核 根文件系统遇到的问题以及总结 两种常用的引导u-boot,启动内核和加载根文件系统的方式。s3c6410, 如果nandflash里面没有u-boot kene...

移植u-boot-2011.03到S3C2440(utu2440)的方法与步骤###8. u-boot引导启动nand flash中内核和根文件系统cramfs和用户文件系统yaffs2支持

作者:reille本博客网址:http://blog.csdn.net/reille/开发环境:主机:Window XP SP2;linux:VMware7.01+ubuntu9.10;目标板:扬创u...
  • reille
  • reille
  • 2011年07月09日 21:59
  • 13452
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:烧写内核uImage和根文件系统rootfs到NAND FLASH
举报原因:
原因补充:

(最多只允许输入30个字)