返回

基于qemu+gdb,调试ATF

 

没工作之前,连ATF是啥都不知道😑

ATF 简介

Arm Trusted Firmware,Arm可信固件,定义了secure world software中的一系列底层接口的参考实现。

ATF 上手

学习ATF之前,建议Documentation+code搭配食用。

Documentation

  1. 入门:第一次认识ATF,初步了解它是做什么的
  2. 进阶
    • 阅读代码过程中,想知道一些全局变量的含义用法,如PROGRAMMABLE_RESET_ADDRESS
    • 阅读代码过程中,想知道某些具体函数的含义用法,如plat_ic_raise_el3_sgi
  3. 了解某些术语含义,如mpidr:Multiprocessor Affinity Register

code

  1. 搭配software design及一些ATF启动相关的博客,按启动流程顺序来阅读
  2. 尝试修改其中部分接口,实现自己的功能,如smc中的fast call

tips

  1. 快速检索某个符号
    • 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”

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计
© Licensed Under CC BY-NC-SA 4.0