t3 uboot 流程分析

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

看 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值