Uboot的裁剪是裁剪什么?
Uboot的裁剪分为两个方面:Uboot本身命令的裁剪和具体SoC硬件配置的裁剪。
Uboot本身命令的裁剪:Uboot提供了很多的操作命令,我们使用Uboot的时候通常只使用最常用的一些命令,其他很多的命令有时候用不上,这个时候我们可以在SoC的头文件中进行Uboot命令的使能或者禁止,对IMX6ULL的Uboot来说,这个文件的路径为:uboot/include/configs/mx6ullxxx.h(这个.h文件的名字可以根据自己的板子来进行随意设置)。其中和Uboot命令相关的选择都是通过宏定义的,如下:
#define CONFIG_CMD_MEMTEST
#ifdef CONFIG_CMD_NET
#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
#define CONFIG_CMD_MII
....
可以看到,Uboot命令本身的宏定义其中都包含了CMD字段,如果需要该命令就宏定义出来,如果不需要,希望禁用该命令,直接注释掉即可。通常如果希望编译出来的Uboot的大小尽量小的话,可以只使能必要的命令,不需要的命令全部注释掉,这样在编译的时候这些不需要的命令的代码文件不会被编译进最后的Uboot文件中,可以减小最后的Uboot.bin的大小。
Uboot中关于SoC硬件信息的裁剪:SoC厂商发布的Uboot是完美适配官方的评估板的,我们自己的板子上的硬件配置和官方的评估板是不同