uboot2015.04 裁剪过程记录

include\common.h #define DEBGU

common\cmd_mmc.c do_mmc_dev, do_mmc_rescan里面强制init_mmc,ture改为false,可以节省多余的三次mmc_init。

include\configs\mx6sabre_common.h
修改CONFIG_BOOTCOMMAND,不再loadbootscript,直接loadimage,节省20ms
修改boot_fdt这个环境变量try->null,不再loadfdt文件,直接bootz,节省10ms


串口静默
在include\configs\mx6sabre_common.h文件中
#define CONFIG_EXTRA_ENV_SETTINGS \
"silent=1\0" \

#define CONFIG_SILENT_CONSOLE
#define CONFIG_SYS_DEVICE_NULLDEV
#define CONFIG_SILENT_CONSOLE_UPDATE_ON_SET

That also killed kernel serial console after successful boot, until I added
#define CONFIG_SILENT_U_BOOT_ONLY


include/config_cmd_default.h
启动过程用到的命令:
【bootcmd:mmc,run loadimage/mmcboot,bootm】
【loadimage:fatload】
【mmcboot:echo,run mmcargs,test,bootz】
【mmcargs:setenv】

CONFIG_CMD_NFS nfs命令 没变化
CONFIG_CMD_MISC sleep命令 8k
CONFIG_CMD_XIMG imxtract- extract a part of a multi-image 没变化

#define CONFIG_CMD_SOURCE run script from memory 没变化
#define CONFIG_CMD_SETGETDCR 没变化,命令都没减少
#define CONFIG_CMD_MEMORY 4k(259k)
base - print or set address offset
cmp cpy crc32
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing address)
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)

#define CONFIG_CMD_SAVEENV save命令 没变化
#define CONFIG_CMD_LOADS loads (255k)
#define CONFIG_CMD_LOADB loadb,loadx,loady (247k)

一起去掉两个:
CONFIG_CMD_FLASH flinfo, erase, protect 没变化
CONFIG_CMD_IMLS

CONFIG_CMD_ITEST itest - integer ture/false 没变化
CONFIG_CMD_IMI iminfo显示Image信息 没变化

CONFIG_CMD_BOOTD boot/bootd 没变化
CONFIG_CMD_ECHO echo 4k

一起去掉三个:
CONFIG_CMD_EDITENV
CONFIG_CMD_ENV_EXISTS
CONFIG_CMD_FPGA
去掉的命令editenv - edit environment variable 没变化

CONFIG_CMD_CONSOLE coninfo 没变化
CONFIG_CMD_BDI bdinfo

CONFIG_CMD_NET去掉,编译不过。
根据出错信息,发现是usb/eth相关的。
查看/drivers/usb/eth/Makefile,发现依赖的宏
/* #define CONFIG_USB_HOST_ETHER lejia*/
/* #define CONFIG_USB_ETHER_ASIX */
都在mx6sabresd.h中,去掉这两个宏,则编译通过了。
去掉了20k左右
去掉的命令:
tftpboot- boot image via network using TFTP protocol
bootp - boot image via network using BOOTP/TFTP protocol

CONFIG_CMD_RUN 去掉之后,引导不起来系统,不可去


在mx6sabresd.h中,去掉USB相关的宏,代码减少28k
去掉的命令:
usb - USB sub-system
usbboot - boot from USB device

继续查看命令,有fdt相关的,去掉
搜索fdt - flattened device tree utility commands
找到定义的文件是cmd_fdt.c
搜索找到在Makefill中cmd_fdt.o依赖的宏是CONFIG_OF_LIBFDT(mx6sabre_common.h中)
去掉这个宏,编译出错:
arch/arm/cpu/armv7/built-in.o: In function `check_ldo_bypass':
home/book/book777/uboot2015-04/arch/arm/cpu/armv7/mx6/soc.c:799: undefined reference to `fdt_node_offset_by_compatible'
/home/book/book777/uboot2015-04/arch/arm/cpu/armv7/mx6/soc.c:805: undefined reference to `fdt_getprop'
/home/book/book777/uboot2015-04/arch/arm/cpu/armv7/mx6/soc.c:813: undefined reference to `working_fdt'
发现soc.o没有依赖任何宏,所以去不掉,遂放弃。。。

原来做过把menu去掉,咋去掉的?

uboot菜单输入help之后查看命令列表,还是有很多没有裁掉。
./common/cmd_xxx.c都可以选择性去掉

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值