没工作之前,连ATF是啥都不知道😑
ATF 简介
Arm Trusted Firmware,Arm可信固件,定义了secure world software中的一系列底层接口的参考实现。
ATF 上手
学习ATF之前,建议Documentation+code搭配食用。
Documentation
- 入门:第一次认识ATF,初步了解它是做什么的
- 进阶
- 阅读代码过程中,想知道一些全局变量的含义用法,如PROGRAMMABLE_RESET_ADDRESS
- 阅读代码过程中,想知道某些具体函数的含义用法,如plat_ic_raise_el3_sgi
- 了解某些术语含义,如mpidr:Multiprocessor Affinity Register
code
- 搭配software design及一些ATF启动相关的博客,按启动流程顺序来阅读
- 尝试修改其中部分接口,实现自己的功能,如smc中的fast call
tips
- 快速检索某个符号
- vscode:最左侧的放大镜搜索框,在项目内检索
- Linux bash:grep “text” ./ -nr
编译 ATF
git clone https://github.com/ARM-software/arm-trusted-firmware.git -b v2.7.0
cd arm-trusted-firmware
make PLAT=qemu CROSS_COMPILE=aarch64-linux-gnu- DEBUG=1
Q&A
1.error: unrecognized command-line option ‘-mstrict-align’; did you mean ‘-Wstrict-aliasing’?
It seems specify CROSS_COMPILE
by exporting it doesn’t work, instead, should be specified at build commandline, i.e:
make PLAT=qemu CROSS_COMPILE=aarch64-linux-gnu- DEBUG=1
2.failed to find romfile “efi-virtio.rom”