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. PTA 08-图7 公路村村通 (30分)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数NN(\le 1000≤1000)和候选道 ...

  2. android_ViewPager_实现导航页

    android_ViewPager_实现导航页 既然是实现导航页的效果,那么我们肯定是要实现ViewPager的 要实现的效果如下 1.用户进入欢迎页面 2.判断是否是第一次进入,如果是,则进入导航页 ...

  3. ibm rational software architect download

    keep secret: rational software architect download: http://public.dhe.ibm.com/software/rationalsdp/v8 ...

  4. html传參中?和&amp;

    <a href="MealServlet?type=findbyid&mid=<%=m1.getMealId()%> 在这句传參中?之后的代表要传递的參数当中有两个 ...

  5. Android开源工具库

    一.依赖注入DI 通过依赖注入降低View.服务.资源简化初始化,事件绑定等反复繁琐工作 1. AndroidAnnotations(Code Diet) android高速开发框架 项目地址:htt ...

  6. 【Unity Shaders】使用CgInclude让你的Shader模块化——创建CgInclude文件存储光照模型

    本系列主要參考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同一时候会加上一点个人理解或拓展. 这里是本书全部的插图. 这里是本书所需的代码 ...

  7. Kinect开发学习笔记之(一)Kinect介绍和应用

    Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...

  8. JavaScript【5】高级特性(作用域、闭包、对象)

    笔记来自<Node.js开发指南>BYVoid编著 1.作用域 if (true) { var somevar = 'value'; } console.log(somevar); Jav ...

  9. Redis学习手册(Hashes数据类型)

    一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Ag ...

  10. linux安装java环境

    在linux下安装JDK如下: 第一步:查看Linux自带的JDK是否已安装 (1)查看已经安装的jdk: [root@web-server ~]# rpm -qa|grep jdk ← 查看jdk的 ...