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. PC问题-使用BAT方法设置IP地址

    ::------以下为批处理文件内容---- @echo off ::set slection1= set/p slection1=请输入IP地址: netsh interface ip set ad ...

  2. JS好的学习网站

    1.JavaScript 秘密花园 2.W3CSchool 3.js严格模式 4.js核心之原型 5.尼古拉斯怎么面试前端工程师 6.zepto中文版api 7.jquery API

  3. 关闭utorrent的广告

    版本:3.4.9 / 方法来源:wikihow. 在"选项-高级"里将下面的选项全部改成false. offers.left_rail_offer_enabledoffers.sp ...

  4. 大数据与可靠性会碰撞出什么样的Spark?

    可靠性工程领域的可靠性评估,可靠性仿真计算,健康检测与预管理(PHM)技术,可靠性试验,都需要大规模数据来进行支撑才能产生好的效果,以往这些数据都是不全并且收集困难,而随着互联网+的大数据时代的来临, ...

  5. IOS获取物理尺寸中7Plus中获取的是7的物理尺寸

    IOS获取物理尺寸中7Plus中获取的是7的物理尺寸: 在开发调试过程中我的7Plus手机获取[uiscreen mainscreen].bounds为750  .1334. 解决方案:在手机中的显示 ...

  6. JS/JQ综合总结

    总结 js部分 一 语法结构 1 区分大小写 2注意 //单行  /*多行注释*/ 3子面量(直接量 literal) 12//数字 5.8//小数 "hello"字符串 true ...

  7. LIMS系统供应商一览表

    LIMS系统供应商一览表. 国内自主研发的LIMS供应商的产品质量一般,国外的LIMS产品在本土化方面,北京三维天地的质量最佳. LIMS系统JAVA..Net平台上都有,由于实验室业务数据量等原因, ...

  8. 初涉A*剪枝

    挖坑防忘,天亮补题解. #include <algorithm> #include <iostream> #include <cstring> #include & ...

  9. C学习笔记之预处理指令

          一.什么是预处理指令            预处理指令是告诉编译器在编译之前预先处理的一些指令,有宏定义,文件包括,条件编译. 预处理指令一般以 # 号开头,能够出如今文件的不论什么地方, ...

  10. 数据持久层(三)ODB介绍

    ODB: C++ Object-Relational Mapping (ORM) ODB is an open-source, cross-platform, and cross-database o ...