voidbl2_setup(u_register_targ0,u_register_targ1,u_register_targ2,u_register_targ3){/* Perform early platform-specific setup *//* 执行早期特定平台的配置 */bl2_early_platform_setup2(arg0, arg1, arg2, arg3);/* Perform late platform-specific setup *//* 执行后期特定平台的配置 */bl2_pl...
(1)从x1参数中获取bl2的内存layout信息 (2)初始化串口控制台 (3)设置bl2的内存layout信息 (4)初始化qemu的storage加载驱动 qemu平台初始化主要是为bl2内存建立MMU页表,并启动MMU和dcache,其主要目的是加快后面镜像加载的速度。其代码如下: QEMU_CONFIGURE_BL2_MMU(bl2_tzram_layout.total_base, bl2_tzram_layout...
在bl2_load_images函数中通过调用plat_get_bl_image_load_info函数来获取bl3x镜像文件的信息,ATF源代码中通过使用REGISTER_BL_IMAGE_DESCS宏将事先定义好的bl2_mem_params_descs变量中的数据保存到bl_mem_params_desc_ptr数组中,而bl2_mem_params_descs中保存的就是所有bl3x镜像文件的基本信息,开发者可根据不...
BL1_SMC_RUN_IMAGE=0x4 用于 BL2 发起 SMC 调用到 EL3 BL1,在 BL1异常处理中启动 BL31 typedefstructbl_mem_params_node{unsignedintimage_id;image_info_timage_info;entry_point_info_tep_info;unsignedintnext_handoff_image_id;// 用于形成 image 加载顺序的链表bl_load_info_node_tload_node_mem;bl_p...
bl2镜像将为后续镜像的加载执行相关的初始化操作,主要是内存、MMU、串口以及EL3软件运行环境的设置,并且加载bl3x的镜像到内存中。 通过查看bl2.ld.S文件可发现,bl2镜像的入口函数是bl2_entrypoint。该函数定义在bl2/aarch64/bl2_entrypoint.S文件中。该阶段的执行流程如图所示。
下面整理并介绍 BL1、BL2、BL31、BL33(uboot)各个阶段的启动流程与代码实现。 3.1 BL1启动流程 BL1 又被称为Trusted Boot ROM,是启动最早的ROM,它不过它是在CPU的ROM里而不是和BIOS在一起,是一切的信任根。BL1是系统启动的第一阶段,其主要目的是初始化系统环境和启动第二阶段镜像BL2。它的代码定位在: /atf...
BL2(Bootloader Level 2):位于RAM中,运行在安全模式下,负责加载BL31。BL31(Bootloader Level 3-1):运行在EL3级别,负责初始化安全服务和加载BL32。BL32(Bootloader Level 3-2):运行在安全EL1级别,通常用于加载TEE(Trusted Execution Environment)操作系统。BL33(Bootloader Level 3-3):运行在非安全...
ARM系统启动流程分为多个阶段,包括BL1、BL2、BL31、BL32与BL33。BL1是启动的第一阶段,必须存储在可直接执行的介质中,如NOR Flash或Boot ROM。随后,BL1加载BL2至内部静态RAM,完成DDR初始化。BL31作为安全监控阶段,负责确保系统安全运行。BL32则执行可信操作系统,而BL33通常为U-Boot或UEFI,用于...
BL1是系统启动的第一阶段,其主要目的是初始化系统环境和启动第二阶段镜像BL2。详细流程如下:入口函数:bl1_entrypoint,由bl1/bl1.ld.S通过ENTRY标号定义。首先初始化EL3环境,执行平台相关的初始化流程,接着加载下一阶段镜像、为其准备合适的参数,最后跳转到下一阶段镜像入口处运行。具体实现细节如下...
2、ATF的编译不同平台之间的设计肯定都是不一样的,但大多数类似如下,请注意 RESET_TO_BL31=1,表示该ATF从BL31启动。make -C $DIRPATH RESET_TO_BL31=1 PLAT=xxx cleanmake -C $DIRPATH RESET_TO_BL31=1 PLAT=xxx HIGHADDR_DEVICE=1 all 3、ATF的启动废话不多说,直接上图,请自行理解:BL1 BL2 ...