系统架构
分为安全世界和非安全世界。Loader、Trust 运行在安全世界;U-Boot、kernel、Android 运行在非安全世界里(安全的 driver、APP 除外)。
“hypervisor”常见释义为“管理程序”“虚拟机监控器”“超级监督者”。
它是一种可以创建、运行和管理多个虚拟机的软件或硬件组件,允许多个操作系统在同一台物理计算机上同时运行,实现计算资源的虚拟化和隔离。
CPU 特权等级
Android 系统的固件启动顺序
Maskrom -> Loader -> Trust -> U-Boot -> kernel -> Android
运行内存和生命周期
运行内存: ARM Trusted Firmware 运行在 DRAM 起始偏移 0M~2M 的空间,以 0x10000(64KB)作为程序入口地
址。
生命周期: Trust 自上电初始化之后就始终常驻于内存之中,完成着自己的使命。
问题
目前对外发布的固件只提供 Trust 的 binary 文件,不提供源代码。目前对于 Trust 的调试方式比较少,更
多需要借助专门的 jtag 工具来进行分析,当 Trust 出问题的时候普通使用者一般并不具备自行调试和解决
问题的能力,所以出现问题时请尽量保护好现场、收集足够多的信息反馈给负责 Trust 的 maintainer。因
此通常使用者应当知道哪些是 Trust 的打印信息、Trust 对应的版本号、哪些是 Trust 的 PANIC 信息等。
参考
[0] 开源代码下载:
ARM Trusted Firmware:https://github.com/ARM-software/arm-trusted-firmware
OP-TEE OS:https://github.com/OP-TEE/optee_os
[1] ARM TrustZone:
https://www.arm.com/products/security-on-arm/trustzone
https://developer.arm.com/technologies/trustzone
[2] op-tee 官网:https://www.op-tee.org/
[3] PSCI:http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_
Interface.pdf “Power State Coordination Interface PDD (ARM DEN 0022C)”