主题 : u-boot中移植fastboot功能-可以刷手机一样刷开发板 复制链接 | 浏览器收藏 | 打印
:)
级别: 骑士
UID: 61588
精华: 5
发帖: 248
金钱: 1500 两
威望: 300 点
贡献值: 5 点
综合积分: 596 分
注册时间: 2012-01-02
最后登录: 2018-03-05
楼主  发表于: 2013-09-08 23:30

 u-boot中移植fastboot功能-可以刷手机一样刷开发板

         (本文是针对s5pv210的u-boot移植分析文章,u-boot源码会在这里更新)
         感谢@dwgdwhxqs网友提出的BUG,现在在u-boot中已经实现了fastboot功能,就可以扔掉串口刷系统了。先来一个刷系统的截图:

然后是串口的反应:
U-Boot 2013.01-rc2-g5654154-dirty (Sep 08 2013 - 22:39:50) for TINY210(Nand:K9GAG08U0F)
CPU:    S5PC110@1000MHz
Board:   FriendlyARM-TINY210
DRAM:  512 MiB
WARNING: Caches not enabled
PWM Moudle Initialized.
GPD0CON  : 1111, GPD0DAT  : e
NAND:  256 MiB
MMC:   SAMSUNG SD/MMC: 0, SAMSUNG SD/MMC: 1
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
checking mode for fastboot ...
fastboot_preboot() = 0
checking mode for fastboot ...
Hit any key to stop autoboot:  0
[Ver130726-TINY210v2]# fastboot
Fastboot: employ default partition information
[Partition table on NAND]
ptn 0 name='bootloader' start=0x0 len=0x100000(~1024KB) (Uboot)
ptn 1 name='kernel' start=0x400000 len=0x500000(~5120KB)
ptn 2 name='system' start=0xE00000 len=0xF200000(~247808KB) (Yaffs)

Received 32 bytes: getvar:partition-type:bootloader
Received 24 bytes: getvar:max-download-size
Received 17 bytes: download:00046b08
Starting download of 289544 bytes

downloading of 289544 bytes finished
Received 16 bytes: flash:bootloader
flashing 'bootloader'
ptn->length = 1048576
cmd = nand erase 0 100000

NAND erase: device 0 offset 0x0, size 0x100000
Erasing at 0xe0000 -- 100% complete.
OK
cmd = nand erase 0 100000

NAND write: device 0 offset 0x0, size 0x60000
Writing at 0x40000 -- 100% is complete. 393216 bytes written: OK
partition 'bootloader' flashed
Received 28 bytes: getvar:partition-type:kernel
Received 24 bytes: getvar:max-download-size
Received 17 bytes: download:00496288
Starting download of 4809352 bytes
....
downloading of 4809352 bytes finished
Received 12 bytes: flash:kernel
flashing 'kernel'
ptn->length = 5242880
cmd = nand erase 400000 500000

NAND erase: device 0 offset 0x400000, size 0x500000
Erasing at 0x8e0000 -- 100% complete.
OK
cmd = nand erase 400000 500000

NAND write: device 0 offset 0x400000, size 0x4a0000
Writing at 0x880000 -- 100% is complete. 4849664 bytes written: OK
partition 'kernel' flashed
Received 28 bytes: getvar:partition-type:system
Received 24 bytes: getvar:max-download-size
Received 17 bytes: download:01672200
Starting download of 23536128 bytes
......................
downloading of 23536128 bytes finished
Received 12 bytes: flash:system
flashing 'system'
ptn->length = 253755392
cmd = nand erase e00000 f200000

NAND erase: device 0 offset 0xe00000, size 0xf200000
Skipping bad block at  0x00f40000                                          
Skipping bad block at  0x04de0000                                          
Skipping bad block at  0x08b20000                                          
Skipping bad block at  0x0ab40000                                          
Skipping bad block at  0x0b300000                                          
Skipping bad block at  0x0e0c0000                                          
Skipping bad block at  0x0f700000                                          
Skipping bad block at  0x0f980000                                          
Erasing at 0xffe0000 -- 100% complete.
OK
cmd = nand erase e00000 f200000

NAND write: device 0 offset 0xe00000, size 0x1672200
Writing at 0xf20000 -- 6% is complete.Skip bad block 0x00f40000
Writing at 0x2480000 -- 100% is complete. 23536128 bytes written: OK
partition 'system' flashed。
更有趣的是,MiniTools+SuperBoot也是基于fastboot来实现的。当u-boot进入fastboot模式的时候,如果PC上打开MiniTools的时候,MiniTools会以为开发上是SuperBoot,并显示为usb 已经连接,从串口还可以看到MiniTools和"SuperBoot"(这里是u-boot)通信信息。(为了正常使用,如果要用在u-boot进入fastboot的时候,PC上关闭MiniTools)


也就是说如果友善提供MiniTools的API,就可以用开源的u-boot实现与MiniTools对接烧写系统。为了方便大家实验,我把所用到的镜像都打包了,这里(
本部分内容设定了隐藏,需要回复后才能看到
)。
还有目前移植的是一个beta版本,还调试语句都没有去掉,还没有向主线版本中合并。大家也先来找找这个fastboot有没有bug。今天就不分析文章了,再有半个小时就又周一了。
另:
关于安装fastboot:我这边没有windows测试,你可以baidu一下。ubuntu12.10安装是:sudo apt-get install android-tools-fastboot
关于简单的更新系统:
fastboot flash bootloader tiny210v2-uboot.bin
fastboot flash kernel /work/tftpboot/uImage_softecc
fastboot flash system /work/tftpboot/rootfs_qtopia_qt4.img
更多关于fastboot的使用请见这里.
[ 此帖被kangear在2013-09-09 00:13重新编辑 ]
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
贡献值: 5 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
1楼  发表于: 2013-09-09 09:17
不错哦~
好好学习,天天鲁管
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2013-09-09 10:09
我们早已说明Superboot采用了fastboot底层驱动。

所不同的是,我们更加充分的发挥了fastboot驱动:
- 可以下载到指定内存运行
- 可以烧写ext3/4, yaffs2和ubi格式的系统,大多数安卓rom是ext3/4格式的
- 突出的特色,可以烧写裸机程序
- 更突出的特色,Superboot已经支持Mini2440了
- 更更突出的特色,可以烧写WindowsCE

还有很多方便的特色,需要你慢慢发掘了,总之在刷机更新和调试系统方面,Superboot比u-boot强很多。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 72653
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2012-06-26
最后登录: 2014-01-02
3楼  发表于: 2013-09-09 18:24
谢谢。。。。这个值得一看
:)
级别: 骑士
UID: 61588
精华: 5
发帖: 248
金钱: 1500 两
威望: 300 点
贡献值: 5 点
综合积分: 596 分
注册时间: 2012-01-02
最后登录: 2018-03-05
4楼  发表于: 2013-09-09 22:11

 回 2楼(mindee) 的帖子

MiniTools可以不开源,通信协议能不能公布。我让u-boot也能配合MiniTools刷系统。
级别: 新手上路
UID: 85678
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2013-01-08
最后登录: 2013-09-17
5楼  发表于: 2013-09-10 16:01
太棒了
太棒了
:)
级别: 骑士
UID: 61588
精华: 5
发帖: 248
金钱: 1500 两
威望: 300 点
贡献值: 5 点
综合积分: 596 分
注册时间: 2012-01-02
最后登录: 2018-03-05
6楼  发表于: 2013-09-10 17:17

 回 2楼(mindee) 的帖子

我的u-boot也会一步步实现如下功能:
- 可以下载到指定内存运行
- 可以烧写ext3/4, yaffs2和ubi格式的系统,大多数安卓rom是ext3/4格式的
- 突出的特色,可以烧写裸机程序
- 更突出的特色,Superboot已经支持Mini2440了
- 更更突出的特色,可以烧写WindowsCE
级别: 新手上路
UID: 89743
精华: 0
发帖: 15
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2013-04-03
最后登录: 2015-03-06
7楼  发表于: 2013-09-10 20:55
先收藏了
级别: 新手上路
UID: 64303
精华: 0
发帖: 38
金钱: 195 两
威望: 39 点
贡献值: 0 点
综合积分: 76 分
注册时间: 2012-03-02
最后登录: 2015-11-24
8楼  发表于: 2013-09-14 13:36
  
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
9楼  发表于: 2013-09-14 15:43
支持!功能再强的软件如果不开源,就等于没有自由。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."