看 t3 的芯片手册,可以看到t3 的启动流程:板卡上有个 36KB的 ROM boot loader,然后进入fast boot, fast boot 启动后加载存储设备中的 BOOT0,启动boot0 ,boot0再引导uboot 启动;


/***************************************************************************************************************************************/
t3 boot0 编译:
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-ld /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libchipid.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libdram.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/libs/libgeneric.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/main/libmain.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/spl/libsource_spl.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/libgeneric.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/nand/libnand.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/load_nand/libloadnand.o -L /home/sylixos/workspace/lrj/lichee/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3 -lgcc -T/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0.lds -o boot0_nand.axf -Map boot0_nand.map
bootaddr is (0x00000)
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-objcopy -O binary /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0_nand.axf /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0_nand.bin
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/mmc/
CC mmc_bsp.c ...
CC mmc.c ...
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/load_mmc/
CC load_boot1_from_sdmmc.c ...
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-ld /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libchipid.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libdram.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/libs/libgeneric.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/main/libmain.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/spl/libsource_spl.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/libgeneric.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/mmc/libmmc.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/load_mmc/libloadmmc.o -L /home/sylixos/workspace/lrj/lichee/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3 -lgcc -T/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0.lds -o boot0_sdcard.axf -Map boot0_sdcard.map
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-objcopy -O binary /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0_sdcard.axf /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/boot0/boot0_sdcard.bin
fatal: Not a git repository (or any of the parent directories): .git
not set commit log
'boot0_nand_sun8iw11p1.bin' -> '/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../../tools/pack/chips/sun8iw11p1/bin/boot0_nand_sun8iw11p1.bin'
fatal: Not a git repository (or any of the parent directories): .git
not set commit log
'boot0_sdcard_sun8iw11p1.bin' -> '/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../../tools/pack/chips/sun8iw11p1/bin/boot0_sdcard_sun8iw11p1.bin'
/*********************************************************************************************************************************/
t3 fes 编译:
make -f spl_make fes
make -C sunxi_spl/fes_init all
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/
libdram exist
lib-chipid exist
cp ./libdram ./libdram.o
cp ./libchipid ./libchipid.o
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/
libdram exist
lib-chipid exist
cp ./libdram ./libdram.o
cp ./libchipid ./libchipid.o
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/main/
CC fes_head.c ...
CC fes1_entry.S ...
CC fes1_main.c ...
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/spl/
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/
make[3]: Nothing to be done for 'all'.
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-ld /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libchipid.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/libdram.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/main/libmain.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/spl/libsource_spl.o /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/spl/lib/libgeneric.o -L /home/sylixos/workspace/lrj/lichee/brandy/gcc-linaro/bin/../lib/gcc/arm-linux-gnueabi/4.6.3 -lgcc -T/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/fes_init.lds -o fes1.axf -Map fes1.map
/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../gcc-linaro/bin/arm-linux-gnueabi-objcopy -O binary /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/fes1.axf /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/fes_init/fes1.bin
'fes1_sun8iw11p1.bin' -> '/home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/../../tools/pack/chips/sun8iw11p1/bin/fes1_sun8iw11p1.bin'
/*********************************************************************************************************************************/
t3 sboot 编译:再编译 sboot 时报错,发现 sun8iw11p1.h 将 sbrom 宏定义已经去掉,估计不使用这种方式启动
make -f spl_make sboot
make -C sunxi_spl/sbrom all
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/
libdram exist
lib-chipid exist
cp ./libdram ./libdram.o
cp ./libchipid ./libchipid.o
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/dram/
libdram exist
lib-chipid exist
cp ./libdram ./libdram.o
cp ./libchipid ./libchipid.o
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/mmc/
make[3]: Nothing to be done for 'all'.
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/arch/arm/cpu/armv7/sun8iw11p1/nand/
make[3]: Nothing to be done for 'all'.
make -C /home/sylixos/workspace/lrj/lichee/brandy/u-boot-2014.07/sunxi_spl/sbrom/flash/
flash.c: In fun

本文详细解析了T3芯片的启动流程,包括ROM bootloader、fastboot、BOOT0、uboot等阶段,以及U-Boot 2014.07在Allwinner T3平台上的编译过程。涵盖了boot0、fes、sboot及uboot的编译步骤,深入介绍了编译中涉及的链接脚本、目标文件生成、软链接创建及配置文件生成等关键环节。

1万+

被折叠的 条评论
为什么被折叠?



