一、裁剪u-boot
移植到现在,uboot的基本功能已经都添加上了,但有很多功能不需要,造成了u-boot程序太大,对此可以通过修改include/configs/smdk2440.h,取消定义不需要的宏,对u-boot进行适当裁剪
usb相关宏:
#if 0
#define CONFIG_USB_OHCI
#define CONFIG_USB_KEYBOARD
#define CONFIG_USB_STORAGE
#define CONFIG_DOS_PARTITION
#endif
RTC相关宏:
#if 0
#define CONFIG_RTC_S3C24X0
#endif
bootp命令相关宏:
#if 0
#define CONFIG_BOOTP_BOOTFILESIZE
#define CONFIG_BOOTP_BOOTPATH
#define CONFIG_BOOTP_GATEWAY
#define CONFIG_BOOTP_HOSTNAME
#endif
命令的相关宏:
#define CONFIG_CMD_BSP
#define CONFIG_CMD_CACHE
#if 0
#define CONFIG_CMD_DATE
#define CONFIG_CMD_DHCP
#endif
#define CONFIG_CMD_ELF
#define CONFIG_CMD_NAND
#define CONFIG_CMD_PING
#define CONFIG_CMD_REGINFO
#if 0
#define CONFIG_CMD_USB
#endif
文件系统相关宏:
#if 0
#define CONFIG_CMD_FAT
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#endif
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#if 0
#define CONFIG_YAFFS2
#define CONFIG_RBTREE
#endif
二、制作补丁
1、清除配置、编译、链接过程的中间文件以及反汇编文件
虚拟机u-boot顶层目录下输入
make distclean && rm *.dis
2、重命名修改后的u-boot目录
cd ../ && mv u-boot-2012.04.01 u-boot-2012.04.01_JZ2440 -rf
3、解压u-boot源码
tar xjf u-boot-2012.04.01.tar.bz2
4、制作补丁
diff -urN u-boot-2012.04.01 u-boot-2012.04.01_JZ2440 > u-boot-2012.04.01_JZ2440.patch
5、使用补丁
cd u-boot-2012.04.01
patch -p1 < ../u-boot-2012.04.01_JZ2440.patch
make smdk2440_config
make