主题 : 提供一个可以用的u-boot(附烧写过程) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 8615
精华: 0
发帖: 8
金钱: 80 两
威望: 40 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2009-08-30
最后登录: 2009-09-07
楼主  发表于: 2009-09-02 18:33

 提供一个可以用的u-boot(附烧写过程)

管理提醒: 本帖被 arm9home 从 Linux技术交流专区 移动到本区(2010-02-08)
这个U-BOOT是从一个Mini2440 GPE项目中直接拿出来的,可以正常使用。注意内核必须是uImage。uImage格式的内核大家自己编译,和编译zImage的过程完全一样,只是最后是输入"make uImage",另外系统中必须有mkimage这个工具,它在uboot源码包的tools目录下,需要自己编译。

烧写到NAND的方法
STEP1:
把开关打到NOR启动的位置,设置好超级终端(Vista/Win7下没有超级终端就用PUTTY代替),打开Mini2440电源,按q进入supervivi的Shell
STEP2:(在Supervivi的Shell下,即看到提示符Supervivi>)

执行
复制代码
  1. load ram 0x31000000 239016 u-boot


终端里会显示 USB host is connected. Waiting a download.,这时用DNW下载附件中的u-boot.bin,下载成功后可以在终端里看到
Now, Downloading [ADDRESS:31000000h,TOTAL:239026]                              
RECEIVED FILE SIZE:  239026 (116KB/S, 2S)                                      
Downloaded file at 0x31000000, size = 239016 bytes

下载完后执行
复制代码
  1. go 0x31000000


会进入u-boot的shell,提示符变成MINI2440 #

执行
复制代码
  1. nand scrub


出现如下信息一些警告信息,不必理会,最后一行看到                                                                                                                       Really scrub this NAND flash? <y/N> ,回答y,然后按Enter

完成后再执行
复制代码
  1. nand write 0x31000000 u-boot


这样U-BOOT就被写入NAND,至此Bootloader被替换为U-Boot

STEP3:
把开关打到NAND启动的位置,重启Mini2440,如果前面操作无误那么现在的Bootloader就是U-Boot了,关于U-Boot的使用方法就不多说了。


附件: u-boot.rar (112 K) 下载次数:152
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
贡献值: 21 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
1楼  发表于: 2009-09-03 09:12
何必这么麻烦,使用supervivi的[a]功能直接烧写到nand flash就行了,根本不需要这么多步骤。
级别: 新手上路
UID: 8697
精华: 0
发帖: 2
金钱: 15 两
威望: 6 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2009-09-03
最后登录: 2010-07-04
2楼  发表于: 2009-09-03 11:06
感觉现在用u-boot的比较多```
级别: 侠客
UID: 5949
精华: 0
发帖: 51
金钱: 470 两
威望: 353 点
贡献值: 0 点
综合积分: 102 分
注册时间: 2009-05-14
最后登录: 2010-12-07
3楼  发表于: 2009-09-03 11:18
LZ你这个uboot是那个版本的呢???
ping通网络了吗??
这个阶段正是我事业的上升期,我怎么能走得开呢?
级别: 精灵王
UID: 3197
精华: 3
发帖: 770
金钱: 6995 两
威望: 5398 点
贡献值: 21 点
综合积分: 1600 分
注册时间: 2008-12-30
最后登录: 2010-12-31
4楼  发表于: 2009-09-03 12:03

 回 1楼(26672624) 的帖子

supervivi比较专用,更加适合于2440开发板,特别是批量产和初学者
u-boot比较通用,更适合醉心于“自由,开放”,喜欢钻代码的爱好者。

bootloader顾名思义,就是boot+loader,最多再加上installer功能。除了能满足一下自己探索“根源”和把握“根源”的心理外,我没见过u-boot更有实用价值的地方。特别是大多数使用2440做开发的人。
级别: 新手上路
UID: 8398
精华: 0
发帖: 2
金钱: 20 两
威望: 10 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2009-08-22
最后登录: 2009-11-16
5楼  发表于: 2009-09-03 15:10
新手上路,问个菜鸟的问题。我按照楼主的方法做了,但是最后从nand flash启动以后,串口终端没有任何反应,这是为什么呢?
级别: 新手上路
UID: 8351
精华: 0
发帖: 12
金钱: 115 两
威望: 56 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-08-20
最后登录: 2017-09-13
6楼  发表于: 2009-09-17 21:44
我的也是,我的环境是升级版mini2440,用8-23号发布的H-Flasher_mini2440.hfc跟h-flash烧到norflash,启动后串口终端没有任何反应,屏幕显示为白色
级别: 新手上路
UID: 8351
精华: 0
发帖: 12
金钱: 115 两
威望: 56 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-08-20
最后登录: 2017-09-13
7楼  发表于: 2009-09-17 22:01
按照LZ的方法烧到NAND中,设置成nand启动出现如下信息:
U-Boot 1.3.2-dirty-moko12 (Apr 16 2009 - 18:14:52)

I2C:   ready

DRAM:  64 MB

Flash:  2 MB

NAND:  nand_scan(): Cannot allocate oob_buf

0 MiB
级别: 新手上路
UID: 8351
精华: 0
发帖: 12
金钱: 115 两
威望: 56 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-08-20
最后登录: 2017-09-13
8楼  发表于: 2009-09-17 22:36
使用h-flash烧到norflash在从norflash启动没有反应原因是该uboot的启动方式为nandflash根本就没有初始化norflash的模块,int nand_scan (struct mtd_info *mtd, int maxchips)这个函数是扫描Nand Flash芯片, 用来初始化Nand Flash驱动,但启动后出现“Cannot allocate oob_buf”这个原因可能跟我的环境是升级版mini2440的128M Nand Flash的配置有关,照成无法分配oob,这样理解对吗?那为什么在ram中可以使用go 0x31000000启动?