快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
- 付费专栏-付费课程 【购买须知】
- 我的联系方式-自建交流群-学习群 【必看/必看!!】
- ATF架构开发精讲-专题目录👈👈👈
- 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈
1、背景
在vendor某些厂商的设计中,ATF并不是BOOTROM加载后的第一个启动镜像,可能是这样的:
BOOTROM—>PL—>ATF—>optee—>uboot…, 在PL阶段就已经将ATF/optee/uboot镜像的load到内存了.
2、ATF编译
由上述背景的原因,我们的ATF就不需要走BL1/BL2阶段load optee/uboot镜像到内存了,直接走BL3即可.
所以bl1和bl2目录也无需编译.
我们的编译方法是在make的时候传入RESET_TO_BL31=1参数:
make -C $DIRPATH RESET_TO_BL31=1 PLAT=xxxx clean
make -C $DIRPATH RESET_TO_BL31=1 PLAT=xxx xxxx_VDK
本文介绍了在特定厂商设计中,ATF(TrustZone固件)作为BOOTROM之后的启动过程。通过跳过BL1/BL2阶段,直接在BL31阶段启动,并详细阐述了ATF如何通过bl31_main()函数跳转到optee和uboot。在bl31_prepare_next_image_entry()中获取了optee和uboot的跳转地址,这些地址在platform_def.h中预定义。最后总结了ATF的启动流程。
订阅专栏 解锁全文
7142

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



