BL1镜像的异常向量表初始化了两个:一个是入口bl1_entrypoint,EL1镜像正常执行流程;另一个是SMC调用接口,EL2执行结束会通过SMC返回执行BL31。 vector_base bl1_vector_table bbl1_entrypointb report_exception /* Undef */bbl1_aarch32_smc_handler/* SMC call */b report_exception /* Prefetch abort */...
官方将启动分为了BL1,BL2,BL31,BL32,BL33阶段,根据顺序,芯片启动后首先执行BL1阶段代码,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只有在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World(Normal World),四种异常级别从高到低分别为EL3,EL2,EL1,EL0。 • Se...
官方将启动分为了BL1,BL2,BL31,BL32,BL33阶段,根据顺序,芯片启动后首先执行BL1阶段代码,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只有在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World(Normal World),四种异常级别从高到低分别为EL3,EL2,EL1,EL0。 Secure ...
官方将启动分为了BL1,BL2,BL31,BL32,BL33阶段,根据顺序,芯片启动后首先执行BL1阶段代码,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只有在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World(Normal World),四种异常级别从高到低分别为EL3,EL2,EL1,EL0。 Secure ...
ATF:Arm TrustedFirmware(ARM安全固件),运行在EL3异常级别,ATF为Armv7-A 和 Armv8-A提供了一些安全可信固件。具体包括上面说的:ATF= BL1、BL2、BL31、BL32、BL33,其中BL33有就是U-Boot。都运行在EL3模式。具体为: BL1:也叫bootrom,rom的意思就是只读的,具有最高的执行权限EL3,在 CPU 出厂时就被写死了。
官方将启动分为了BL1,BL2,BL31,BL32,BL33阶段,根据顺序,芯片启动后首先执行BL1阶段代码,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只有在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World(Normal World),四种异常级别从高到低分别为EL3,EL2,EL1,EL0。
官方将启动分为了BL1,BL2,BL31,BL32,BL33阶段,根据顺序,芯片启动后首先执行BL1阶段代码,接着验签启动BL2,BL2根据具体设计启动BL31或者BL33,BL32只有在有BL31时才可能会存在并被验签加载启动。 armv8分为Secure World和Non-Secure World(Normal World),四种异常级别从高到低分别为EL3,EL2,EL1,EL0。
一、BL1阶段 BL1(Bootloader 1)是ARMv8架构中的第一个启动阶段。当系统启动时,BL1负责从非易失存储器中加载和执行接下来的引导加载程序(BL2或BL31)。 在BL1阶段,处理器会执行以下操作: 初始化硬件:包括CPU、内存、中断控制器等。 加载BL2:通过BootROM(非易失存储器)加载BL2到内存中。 设置异常向量表:为后续...
BL33可能不是EL1,也是有可能是EL2的 BL1 BL2 BL33 BL32 BL33 每一级镜像,也许不是aarch64的,也许是aarch32的 如上的场景中,看似也就那么回事吧,无非就是不同特权等级之间,调用同步异常指令或返回指令,切来切去而已。那么如果是相同的特权等级,那么如何切换呢?
BL1 BL2 BL33 BL32 BL33 每一级镜像,也许不是aarch64的,也许是aarch32的 如上的场景中,看似也就那么回事吧,无非就是不同特权等级之间,调用同步异常指令或返回指令,切来切去而已。那么如果是相同的特权等级,那么如何切换呢? 如uboot(EL1)到kernel(EL1), 至少有以下三种方式(其实我还能列出第4种第5种,这...