CONFIG_SPL_BUILD := y export CONFIG_SPL_BUILD export CONFIG_SPL_BUILD: 在接下来的编译中, 这个变量为y. 从后面的分析中可以看到, uboot的stage1, stage2阶段的代码用的是同一个Start.S, 只不过在Start.S中用#ifdef CONFIG_SPL_BUILD这种条件编译来区分. 类似的还有其他一些文件. HAVE_VENDOR_COMMON_L...
CONFIG_SPL_BUILD := y export CONFIG_SPL_BUILD export CONFIG_SPL_BUILD: 在接下来的编译中, 这个变量为y. 从后面的分析中可以看到, uboot的stage1, stage2阶段的代码用的是同一个Start.S, 只不过在Start.S中用#ifdef CONFIG_SPL_BUILD这种条件编译来区分. 类似的还有其他一些文件. [plain]view ...
project-X/u-boot/scripts/Makefile.spl KBUILD_CPPFLAGS+=-DCONFIG_SPL_BUILD 1. 所以说在编译SPL的代码的过程中,CONFIG_SPL_BUILD这个宏是打开的。 uboot-spl和uboot的代码是通用的,其区别就是通过CONFIG_SPL_BUILD宏来进行区分的。 二、uboot-spl需要做的事情 CPU初始刚上电的状态。需要小心的设置好很多...
ifdef CONFIG_SPL_BUILD//我使用的平台有定义 -DCONFIG_SPL_BUILD ifdef CONFIG_TEGRA CPU := arm720t endif endif BOARD := $(CONFIG_SYS_BOARD:"%"=%)//板 myimx8mm ifneq ($(CONFIG_SYS_VENDOR),) VENDOR := $(CONFIG_SYS_VENDOR:"%"=%)//厂商 myzr endif ifneq ($(CONFIG_SYS_SOC),) SO...
#if defined(CONFIG_ARMV8_SPIN_TABLE) && !defined(CONFIG_SPL_BUILD) (1) branch_if_master x0, x1, master_cpu (2) b spin_table_secondary_jump (3) #elif defined(CONFIG_ARMV8_MULTIENTRY) (4) branch_if_master x0, x1, master_cpu (5) ...
所以u-boot又定义了spl和tpl,spl和tpl走u-boot完全相同的boot流程,不过在spl和tpl中大多数驱动和功能被去除了,根据需要只保留一部分spl和tpl需要的功能,通过CONFIG_SPL_BUILD和CONFIG_TPL_BUILD控制;一般只用spl就足够了,spl完成ddr初始化,并完成一些外设驱动初始化,比如usb,emmc,以此从其他外围设备加载u-boot,...
*/#ifdefined(CONFIG_SPL_BUILD)&&defined(CONFIG_SPL_STACK)ldr x0,=(CONFIG_SPL_STACK)#elseldr x0,=(CONFIG_SYS_INIT_SP_ADDR)#endif bic sp,x0,#0xf/* 16-byte alignment for ABI compliance */mov x0,sp bl board_init_f_alloc_reserve ...
CONFIG_SYS_TEXT_BASE: lds文档中偏位为0,再融合-Ttext选择项, 因此 CONFIG_SYS_TEXT_BASE是重精准定位以前,最开始的uboot起止详细地址 3.1 start.S, 通道 此环节的CONFIG_ code 已界定: CONFIG_SYS_TEXT_BASE: uboot realocate以前的起止详细地址,编码里 _TEXT_BASE = CONFIG_SYS_TEXT_BASE ...
#ifdefined(CONFIG_TPL_BUILD)&&defined(CONFIG_TPL_NEEDS_SEPARATE_STACK)ldr x0,=(CONFIG_TPL_STACK)#elifdefined(CONFIG_SPL_BUILD)&&defined(CONFIG_SPL_STACK)ldr x0,=(CONFIG_SPL_STACK)#elifdefined(CONFIG_INIT_SP_RELATIVE)#ifCONFIG_POSITION_INDEPENDENTadrp x0,__bss_start ...
简介: U-BOOT小全(五):BootLoader源码(SPL-UBoot 2) 前面我们分析到了s_init函数,现在继续。 1、s_init函数 然后调用s_init来进行更多模块的初始化。函数s_init在arch/arm/cpu/armv7/sunxi/board.c中定义,代码如下。 87 void s_init(void) 88 { 89 #if !defined CONFIG_SPL_BUILD && defined CONFIG...