烧写内核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!

“转”使用UBOOT烧写根文件系统和内核的方法

“转”使用UBOOT烧写根文件系统和内核的方法 2012-08-13 20:39:28 分类: 原文地址:“转”使用UBOOT烧写根文件系统和内核的方法 作者:xubin485...
  • dongfengkuayue
  • dongfengkuayue
  • 2014年05月29日 22:15
  • 2569

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

/*2011.1.8*/ /*uboot  1.1.4*/ /*内核:  linux-2.6.22.6*/ /*NAND FLASH为:k9f2g08u0a*/ 因为之前没连续写过一块...
  • ruan200885
  • ruan200885
  • 2013年02月28日 11:19
  • 264

U-Boot烧写系统到Nand Flash

参考资料 [1]uboot 下载内核和文件系统的步骤
  • Q1302182594
  • Q1302182594
  • 2016年05月05日 16:31
  • 3134

mini2440烧写linu内核以及文件系统

mini2440烧写linu内核以及文件系统 一、烧写内核    上电后,如果超级终端上打印出信息,那么就可以利用u-boot来烧写内核了。烧写内核的方式有很多种,其中网络以及dnw是最常用...
  • qq_22161609
  • qq_22161609
  • 2015年09月12日 22:29
  • 404

用tftp在u_boot下烧写uImage到Nand Flash

用tftp在u_boot下烧写uImage到Nand Flash(参考申嵌入的) 将uImage拷贝至/tftpboot/   在SecureCRT中依次输入: SMDK2440A>tftp ...
  • gdliweibing
  • gdliweibing
  • 2013年05月29日 15:39
  • 2949

mini2440烧写到nand flash 的方法

今晚偶然发现mini2440烧写逻辑程序到nand flash的办法,如图。点击开始烧写完成后。再按立即启动就能看到裸机程序的效果(比如跑马灯)。 但是重启后就没了,无论板子的开关nor还是nand...
  • sinat_20276189
  • sinat_20276189
  • 2016年03月16日 23:42
  • 634

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

【解答】内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的地址的 【某人问题 内核在启动的过程中,是如何完成将本地的flash设备映射成文件系统的? 】 我用的是ra...
  • acs713
  • acs713
  • 2012年11月01日 15:20
  • 1037

向nandflash中烧写内核和文件系统的方法

明天的一部分 QQ:318175542
  • yusiguyuan
  • yusiguyuan
  • 2013年07月24日 22:49
  • 2883

嵌入式linux 内核和根文件系统烧写方式简介

总体来说,嵌入式Linux内核和根文件的引导与PC机差不多。 嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我们将内核和根文件系统直接烧入到Flash中(包括NOR和NA...
  • sickbe
  • sickbe
  • 2016年08月22日 23:43
  • 2928

以jz2440为例用TFTP,NFS,linux下的dnw来下载烧写内核和文件系统

用tftp来烧写内核和文件系统 烧写内核(kernel) 1:下载命令 tftp 30000000 uImage_4.3 2: 插除命令 nand erase kernel 3: 烧写 ...
  • linuxalienyan
  • linuxalienyan
  • 2017年07月11日 12:10
  • 435
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:烧写内核uImage和根文件系统rootfs到NAND FLASH
举报原因:
原因补充:

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