在韦东山老师的视频教程第二期中修改移植了u-boot-2012.04.01版本u-boot,使用方法如下:
① 使用如下地址获取该版本u-boot源码u-boot-2012.04.01.tar.bz2
② 韦东山老师提供了其修改好的补丁文件

③ 解压、打补丁、编译(arm-linux-gcc v4.3.2)
# tar xjvf u-boot-2012.04.01.tar.bz2
# cd u-boot-2012.04.01/
# patch -p1 <../u-boot-2012.04.01_100ask.patch
# make smdk2440_config
# make
用以上方法即可得到u-boot.bin
问题:在韦老师制作的u-boot中给内核划分了2M的分区,其分区情况如下:
在include/configs/smdk2440.h中
点击(此处)折叠或打开
-
#define MTDIDS_DEFAULT "nand0=jz2440-0" /* 哪一个设备 */
-
#define MTDPARTS_DEFAULT "mtdparts=jz2440-0:256k(u-boot)," \
-
"128k(params)," \
-
"2m(kernel)," \
- "-(rootfs)" \
点击(此处)折叠或打开
-
#define MTDIDS_DEFAULT "nand0=nandflash0"
-
#define MTDPARTS_DEFAULT "mtdparts=nandflash0:384k(bootloader)," \
-
"128k(params)," \
-
"5m(kernel)," \
- "-(root)" \
点击(此处)折叠或打开
- #define CONFIG_SYS_PROMPT "[u-boot@MINI2440]# "

在我的mini2440上测试效果如下:

制作u-boot-2012.04.01的补丁文件方法
# make distclean //清除
# cd ../
# mv u-boot-2012.04.01 u-boot-2012.04.01_mini2440 //将修改好的u-boot命名为u-boot-2012.04.01_mini2440
# tar xjvf u-boot-2012.04.01.tar.bz2 //解压原来的u-boot
# diff -urN u-boot-2012.04.01 u-boot-2012.04.01_mini2440 > u-boot-2012.04.01_mini2440.patch