u-boot-2009.08 for mini2440 patch release
已经在github上建立了源代码管理,以后的所有源代码将在
有好一段时间没有弄u-boot了,而u-boot-2009.06的我也没时间移植了,直接移植u-boot-2009.08了。由于很多网友发邮件问128MB的NAND Flash版本的mini2440的U-boot移植,而我手边又没有128MB的板子,所有无法帮忙。
现在我入手了一块128MB的NAND Flash版本的mini2440,我以最快的速度移植了uboot最新的稳定版。并将补丁公布,为了网友更好地分析,我按其大致的作用将补丁拆分为了一个一个的模块(时间有限,不一定准确,请见谅)。
个人认为,u-boot-2009.08比起u-boot-2009.03有了明显进步的的地方是:代码的放置更加合理规范,程序的结构也更加合理了。在ubuntu下,大家可以使用Beyond Compare来对比两个版本的不同。
1、自动识别mini2440所使用的nand flash是512B/page还是2KB/page,调用不同的自拷贝程序,实现不论是64MB版本的mini2440,还是128MB的,都可以在Nand中烧写同一个bin文件。
2、自动识别S3C2440的启动方式是Nor boot还是Nand boot,调用不同的自拷贝程序,实现不论是Nor boot还是Nand boot,都可以烧写同一个bin文件。
3、添加支持OpenOCD导入内存启动,其实就是在一切flash识别之前,检测自己是否在内存,如果已在内存就跳过自拷贝程序。
4、添加支持读取SD卡中的FAT32文件系统,现在Uboot已经支持从U盘或SD卡上启动了。
所以,此U-boot版本可以烧写在mini2440的两个nand flash版本的任何flash上,只要烧写在存储器的0地址就可以了。
(1)以下是补丁(不支持OpenOCD导入内存启动):
|
文件: | u-boot-2009.08_tekkaman_patch.tar.bz2 |
大小: | 25KB |
下载: | 下载 |
|
(2)以下是补丁(支持OpenOCD导入内存启动):
|
文件: | u-boot-2009.08_tekkaman_patch_openocd.tar.bz2 |
大小: | 25KB |
下载: | 下载 |
|
导入步骤:现连接好硬件,并启动OpenOCD,参考
《关于OpenOCD的安装和配置(以mini2440+OpenJTAG为例)》然后使用telnet登录,并将bin文件导入内存0x33f80000处,并从此处启动。
$ telnet localhost 4444
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Open On-Chip Debugger
> poll
background polling: on
TAP: s3c2440.cpu (enabled)
target state: running
> halt
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x400000d3 pc: 0x33f8a914
MMU: disabled, D-Cache: enabled, I-Cache: enabled
> arm920t cp15 2 0
2: 00000000
> resume
> halt
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x400000d3 pc: 0x33f8a914
MMU: disabled, D-Cache: disabled, I-Cache: disabled
> load_image u-boot.bin 0x33f80000
256364 bytes written at address 0x33f80000
downloaded 256364 byte in 9.167877s
> resume 0x33f80000
|
(3)以下是支持读取SD卡中的FAT32文件系统的补丁(支持OpenOCD导入内存启动):
|
文件: | u-boot-2009.08_tekkaman_patch_MMC.tar.bz2 |
大小: | 32KB |
下载: | 下载 |
|
说明:此补丁在添加了SD卡支持以外,还替换了nand boot的代码自拷贝程序,使用了更为合理的代码。这些代码的来源: ,在此感谢 buserror@gmail.com !! (同时支持读取U盘的FAT32)
(4)以下是在完成上面更新后,使用了新的Nor boot 和Nand boot检测方法的补丁:
|
文件: | u-boot-2009.08_tekkaman_patch_bootfix.tar.bz2 |
大小: | 32KB |
下载: | 下载 |
|
(5)修正了烧写yaffs2镜像到128MB nand flash 会重启出错的问题。网友“李辉”提出BUG,并验证修改后的代码可用,在此表示感谢!
源码下载地址:
补丁包中包含了一个我自己写的批量打补丁的脚本(我不会写脚本,写得不好,请见谅),
只要将解开的源码、脚本和补丁放在同一文件夹下,运行:
./patch.sh install
即可,想删除补丁的话,运行:
./patch.sh uninstall
以下是可以直接使用的bin文件(支持OpenOCD导入内存启动 和 SD卡、使用新的Nor boot 和Nand boot检测方法、修正烧写yaffs2镜像烧写问题):
|
文件: | u-boot.bin.tar.bz2 |
大小: | 120KB |
下载: | 下载 |
|
以下是开机效果图:
阅读(17715) | 评论(24) | 转发(5) |