u-boot版本: u-boot-2010.03_tekkamanninja修改的u-boot

1、将uboot通过j-link烧写到norflash,启动后 saveenv 将参数保存到 nandflash的 0x60000位置。

2、由于uboot将param保存在0x60000位置,与内核不对应,需要修改内核的nand分区,修改内核文件arch/arm/mach-s3c2440/mach-mini2440.c

282 static struct mtd_partition friendly_arm_default_nand_part[] = {
283 [0] = {
284 .name = "supervivi",
285 .size = 0x00060000,
286 .offset = 0,
287 },
288 [1] = {
289 .name = "param",
290 .offset = 0x00060000,
291 .size = 0x00020000,
292 },
293 [2] = {
294 .name = "Kernel",
295 .offset = 0x00080000,
296 .size = 0x00500000,
297 },
298 [3] = {
299 .name = "root",
300 .offset = 0x00580000,
301 .size = 1024 * 1024 * 1024, //
302 },
303 [4] = {
304 .name = "nand",
305 .offset = 0x00000000,
306 .size = 1024 * 1024 * 1024, //
307 }
308 };

3、烧写uboot到nand flash

tftp 30008000 uboot.bin

nand erase 0 0x60000

nand write 30008000 0x0 60000

4、烧写kernel到nand flash

这里要看zImage.img是如何制作的

(1)若mkimage –n ‘linux-2.6.32.2’ –A arm –O linux –T kernel –C none –a 0x30008000 –e 0x30008000 –d zImage zImage.img

       由此方法制作的烧写方法如下,否则出错

       tftp 31000000 zImage.img     (不能是0x30008000,否则会出错,启动内核时显示 data abort)

       nand erase 0x80000 0x400000 (0x400000 不能是0x500000, 否则又会出错)

       nand write 31000000 0x80000 400000

若使用0x30008000 会出错,错误如下:

============================================================

Verifying Checksum ... OK
XIP Kernel Image ... OK
OK Starting kernel ... data abort
pc : [<30008008>] lr : [<33fa6500>]
sp : 33f3dd24 ip : 00000000 fp : 30008000
r10: 33fc2f08 r9 : 000007cf r8 : 33f3ffe0
r7 : 33f3ffc4 r6 : 33f4131a r5 : 30000100 r4 : 00000000
r3 : 00000000 r2 : 30000100 r1 : 000007cf r0 : 00000000

============================================================

(2)若mkimage –n ‘linux-2.6.32.2’ –A arm –O linux –T kernel –C none –a 0x30008000 –e 0x30008040 –d zImage zImage.img

       由此方法既可以使用30008000地址来烧写

(3)设置bootcmd参数

       setenv bootcmd ‘nand read 31000000 0x80000 400000; bootm 31000000’

 

5、烧写yaffs2文件系统的时候老是出错,应该把文件系统缩到64M以下再烧写,不知道行不行,待续…………………………

uboot下 Nand flash 启动 内核与根文件系统的更多相关文章

  1. EASYARM-IMX283 nfs启动内核和根文件系统

    EASYARM-IMX283(以下简称IMX283)默认采用从nand flash启动,但是在开发过程中因为要频繁的替换内核,我们更倾向于从nfs启动. 先看看IMX283中uboot中默认采用的启动 ...

  2. 嵌入式linux加载引导内核和根文件系统的方法

    总体来说,嵌入式Linux内核和根文件的引导与PC机差不多.嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我 们将内核和根文件系统直接烧入到Flash中(包括NOR和NAN ...

  3. DM365视频处理流程/DM368 NAND Flash启动揭秘

    出自http://blog.csdn.net/maopig/article/details/7029930 DM365的视频处理涉及到三个相关处理器,分别是视频采集芯片.ARM处理器和视频图像协处理器 ...

  4. DM368 NAND Flash启动

    概要: 本文介绍了DM368 NAND Flash启动的原理,并且以DM368  IPNC参考设计软件为例,介绍软件是如何配合硬件实现启动的. 芯片上电后是如何启动实现应用功能的?这是许多工程师在看到 ...

  5. 如何编写linux下nand flash驱动-3

    [读(read)操作过程详解] 以最简单的read操作为例,解释如何理解时序图,以及将时序图 中的要求,转化为代码. 解释时序图之前,让我们先要搞清楚,我们要做的事情:那就是,要从nand flash ...

  6. 如何编写linux下nand flash驱动-2

    [Nand Flash引脚(Pin)的说明] 图3.Nand Flash引脚功能说明 上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下: 1.       I/O0 ~ ...

  7. U-BOOT 对 Nand Flash 命令的支持

    U-BOOT 对 Nand Flash 命令的支持 在 U­BOOT 下对 Nand Flash 的支持主要是在命令行下实现对 nand flash 的操作.对 nand flash 实现的命令 为: ...

  8. TI davinci DM6467通过串口0将UBL和u-boot写入NAND flash

    TI的davinci系列一般支持好几种启动模式,如下图TMS320DM6467的datasheet可以查到所有的BOOTMODE LVS301和LW9226的开发板上有一个选择bootmode的拨码开 ...

  9. 如何编写linux下nand flash驱动-4

    2.       软件方面 如果想要在Linux下编写Nand Flash驱动,那么就先要搞清楚Linux下,关于此部分的整个框架.弄明白,系统是如何管理你的nand flash的,以及,系统都帮你做 ...

随机推荐

  1. 问题-RZ安装后报错“RzBorder.pas”

    错误象现:[Error] RzBorder.pas(1429): Number of elements differs from declaration [Fatal Error] RzEdit.pa ...

  2. 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询

    问题:System.Data.OleDb.OleDbException 操作必须使用一个可更新的查询 问题现象:用asp.net连access数据库,查询可以,插入数据报错.在.NET中F5可以使用方 ...

  3. SQL Server数据库PIVOT函数的使用详解(二)

    动态的行转列 原理就是 把需要转成列的行拼出来 DECLARE @fieldName VARCHAR(); SET @fieldName=''; SELECT @fieldName = @fieldN ...

  4. Emmet最全提示说明

    前一篇文章简单了说明了Emmet的使用:Emmet相关使用 今天我就将关于subline中Emmet插件的snippets.json文件进行具体说明, 在snippets.json文档中,我们能够看到 ...

  5. hdu4462 Scaring the Birds

    Scaring the Birds Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. [React] React Fundamentals: Component Lifecycle - Mounting Basics

    React components have a lifecycle, and you are able to access specific phases of that lifecycle. Thi ...

  7. 从BAE到SAE,从SAE又回到BAE

    版权声明:本文为博主原创文章,未经博主允许不得转载. [很久以后] 这段话是很久之后补充的,发现错误要勇于改正,以下红色字体是对以前观点的改正, 大概总结下: 1.bae最大缺点是需要备案,不过现在看 ...

  8. mysqldump 备份原理8

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; http://www.cnblogs.com/lyhabc/p/38 ...

  9. 动作-CCActionInterval之CCGridAction家族

    CCGrid3DAction // 作用:x轴3D反转特效 CCActionInterval *flipX3D= CCFlipX3D::create(4); //    作用:Y轴3D反转特效 CCA ...

  10. 【Unicode】字符编码表信息

    UTF-8有点类似于Haffman编码,它将Unicode编码为:0x00-0x7F的字符,用单个字节来表示:0x80-0x7FF的字符用两个字节表示:0x800-0xFFFF的字符用3字节表示:   ...