uboot移植记录之前言
很久没来打理我的BLOG了,一晃近半年过去了。前段时间一直忙于几个内核驱动和工作中的一些事情,而无暇分心管理自己的Blog,这次稍微闲下来点,打算把以前写过的一些文章整理一下发出来。希望能给网络上同样热衷于嵌入式开发的朋友们一点帮助。同时也回顾一下自己以前做过的事,当作一个备忘录吧。
首先是uboot移植记录系列。这系列文章适合于uboot移植的初学者,这里基于常见的开发平台S3C2410。若需要移植uboot到一个全新开发板,则需要参考更多的资料并对uboot有更深入的了解。本人对此也有所钻研,也有个较牛的同事专门做这这个的,呵呵~:) 若感兴趣的朋友大家可以一起探讨。因此关于新平台uboot的移植这里就不多讲了。
uboot移植记录系列专题
环境:Crosstool 3.3.2 + uboot 1.14 + ARMSYS2410开发板
作者:Dongas
移植uboot,通常的方法是参考uboot中已支持的板子进行修改。
在源码下执行#find . -exec grep -l 2410 {} \; 可以查看到uboot中已支持的2410相关的板子。里面有smdk2410,一般情况下我们移植uboot到s3c2410时都是基于这个配置进行修改。具体修改的多少要视板子而定。如果你的板子和smdk2410配置相同的话,甚至不需要修改直接编译针对smdk210平台的就能使用。但这种情况并不多,大部分情况下还是需要进行些简单的修改。 uboot的整个移植过程我们可以分为三个阶段:
一,移植可以从Nor flash启动的uboot
这个阶段是移植一个最简单的uboot,可以烧在Nor flash内运行.
http://blog.chinaunix.net/u2/60011/showart.php?id=1005057
Because I don't want to make a complete framework to my linux OS,so only I transplant u-boot under skyeye and it can work,and next that is my transplant process.
under the /include/configs/smdk2410.h #define CONFIG_DRIVER_CS8900 0 #define CONFIG_BOOTDELAY 5 start time make smdk2410_config make all It will appear that mistake lib_arm/libarm.a(_udivsi3.o)(.text+0x8c):_udivsi3.S:67: relocation truncated to fit: R_ARM_PLT32 __div0 lib_arm/libarm.a(_umodsi3.o)(.text+0xa8):_umodsi3.S:79: relocation truncated to fit: R_ARM_PLT32 __div0 make: *** [u-boot] Error 1 configurate the skyeye.conf It called softfloat,and you need to change sth as follows 1.如下修改lib_arm/_umodsi3.S、lib_arm/_udivsi3.S即可编译通过: bl __div0 (PLT) ===> bl __div0 2.如下修改lib_arm/_umodsi3.S、lib_arm/_umodsi3.S即可编译通过: bl __div0 (PLT) ===> bl __div0 mem_bank: map=M, type=RW, addr=0x00000000, size=0x01000000, file=./u-boot, boot=yes mem_bank: map=M, type=RW, addr=0x30000000, size=0x04000000 and then it success. run skyeye -e u-boot you must do that Next,I will transplant a linux OS to a hand-held disk. and maybe it will very small.
二,移植支持Nand flash驱动的uboot
加入Nand flash驱动的支持,可以在uboot命令行下操作Nand flash.但还未能从Nand flash启动,只能在Nor flash内运行.
http://blog.chinaunix.net/u2/60011/showart.php?id=1005795
三,移植可以从Nand flash启动的uboot
可以烧录在Nand flash,并设置从Nand flash启动运行uboot.
http://blog.chinaunix.net/u2/60011/showart.php?id=1006458
分三个阶段进行移植,可以对整个uboot的移植过程及原理更加清晰明了,同时降低了发现问题时解决问题的困难度和解决范围.
|
|