//zz//####################################################################################
zz-tiny210-u-boot-Makefile分析141207b
zz-tiny210csdn-u-boot2011.06-Makefile分析141207.txt
zz-write:
@2014-12-7 18:15:22
@2014-12-7 18:41:59
@
REF:
tiny210-u-boot-version4.0.tar.gz
u-boot for tiny210 ver1.0(by liukun321咕唧咕唧)
http://blog.csdn.net/liukun321/article/details/7270426
tiny210-u-boot-2011.06v4.0.tgz
KeyWord:
/spl/Makefile
cat $(obj)$(BOARD)-spl.bin $(TOPDIR)/u-boot.bin > $(TOPDIR)/$(BOARD)-uboot.bin
//zz//####################################################################################
1.
make tiny210_config
参见 u-boot-2011.06 源码根目录下的 boards.cfg 文件内 tiny210 板子的设置得到
为什么不加 ARCH=arm CROSS_COMPILE=arm-linux-
根目录的 Makefile 中包含了
include $(obj)include/config.mk
export ARCH CPU BOARD VENDOR SOC
指定了 ARCH=arm
根目录的 config.mk 包含了
sinclude $(TOPDIR)/arch/$(ARCH)/config.mk
而 arch/arm/config.mk 中又指定了
CROSS_COMPILE ?= arm-linux-
//zz//####################################################################################
2.
SPL 关于最后生成的 u-boot.bin(216.8K) tiny210-uboot.bin(240.8k)
/spl/Makefile
指定了 tiny210-uboot.bin 的生成,是将两个文件连接得到的
cat $(obj)$(BOARD)-spl.bin $(TOPDIR)/u-boot.bin > $(TOPDIR)/$(BOARD)-uboot.bin
而 SPL 即这个 $(obj)$(BOARD)-spl.bin 又是来自 $(obj)u-boot-spl.bin
同样有如下生成依赖
$(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin
$(TOPDIR)/board/$(BOARDDIR)/tools/mk$(BOARD)spl.exe \
$(obj)u-boot-spl.bin $(obj)$(BOARD)-spl.bin
查看 tiny210-spl.bin(24K) 和 u-boot-spl.bin(3.3K)
用 BeyondCompare 发现,tiny210-spl.bin 是 u-boot-spl.bin 前面添加 16bytes 的头
后面用 0x00 把文件填充到了 24K
加 16bytes 头是为了被 ROM 中的 BL0 正确加载到内存中
后面扩充到 24K 则是为了能将他与 u-boot.bin 连接,定位方便
u-boot.bin 正好放到了 SPL(u-boot-spl.bin) 去拷贝到内存的位置
REF 中的 csdn 作者的博客中 早期v1.0版本 提到的烧写命令如下
$sudo dd iflag=dsync oflag=dsync if=spl/tiny210-spl.bin of=/dev/sdb seek=1
$sudo dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdb seek=49
从中也可以看到,确实 SPL(u-boot-spl.bin) 的大小最终是扩展到了 24KB的
49-1 => 48 sector => 48 * 512Bytes => 24KB
//zz//####################################################################################
zz-tiny210-u-boot-Makefile分析141207b
zz-tiny210csdn-u-boot2011.06-Makefile分析141207.txt
zz-write:
@2014-12-7 18:15:22
@2014-12-7 18:41:59
@
REF:
tiny210-u-boot-version4.0.tar.gz
u-boot for tiny210 ver1.0(by liukun321咕唧咕唧)
http://blog.csdn.net/liukun321/article/details/7270426
tiny210-u-boot-2011.06v4.0.tgz
KeyWord:
/spl/Makefile
cat $(obj)$(BOARD)-spl.bin $(TOPDIR)/u-boot.bin > $(TOPDIR)/$(BOARD)-uboot.bin
//zz//####################################################################################
1.
make tiny210_config
参见 u-boot-2011.06 源码根目录下的 boards.cfg 文件内 tiny210 板子的设置得到
为什么不加 ARCH=arm CROSS_COMPILE=arm-linux-
根目录的 Makefile 中包含了
include $(obj)include/config.mk
export ARCH CPU BOARD VENDOR SOC
指定了 ARCH=arm
根目录的 config.mk 包含了
sinclude $(TOPDIR)/arch/$(ARCH)/config.mk
而 arch/arm/config.mk 中又指定了
CROSS_COMPILE ?= arm-linux-
//zz//####################################################################################
2.
SPL 关于最后生成的 u-boot.bin(216.8K) tiny210-uboot.bin(240.8k)
/spl/Makefile
指定了 tiny210-uboot.bin 的生成,是将两个文件连接得到的
cat $(obj)$(BOARD)-spl.bin $(TOPDIR)/u-boot.bin > $(TOPDIR)/$(BOARD)-uboot.bin
而 SPL 即这个 $(obj)$(BOARD)-spl.bin 又是来自 $(obj)u-boot-spl.bin
同样有如下生成依赖
$(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin
$(TOPDIR)/board/$(BOARDDIR)/tools/mk$(BOARD)spl.exe \
$(obj)u-boot-spl.bin $(obj)$(BOARD)-spl.bin
查看 tiny210-spl.bin(24K) 和 u-boot-spl.bin(3.3K)
用 BeyondCompare 发现,tiny210-spl.bin 是 u-boot-spl.bin 前面添加 16bytes 的头
后面用 0x00 把文件填充到了 24K
加 16bytes 头是为了被 ROM 中的 BL0 正确加载到内存中
后面扩充到 24K 则是为了能将他与 u-boot.bin 连接,定位方便
u-boot.bin 正好放到了 SPL(u-boot-spl.bin) 去拷贝到内存的位置
REF 中的 csdn 作者的博客中 早期v1.0版本 提到的烧写命令如下
$sudo dd iflag=dsync oflag=dsync if=spl/tiny210-spl.bin of=/dev/sdb seek=1
$sudo dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdb seek=49
从中也可以看到,确实 SPL(u-boot-spl.bin) 的大小最终是扩展到了 24KB的
49-1 => 48 sector => 48 * 512Bytes => 24KB
//zz//####################################################################################