现代 Arm 系统包含大量功能以支持调试和性能分析。我们必须确保这些功能不能被用于危害系统安全。Arm 架构中,搭载 RME,提供了控制来限制系统的哪些部分可以进行调试。
本节假定读者熟悉 Armv9-A 中的基本功能,并总结了 RME 引入的变化。
外部调试
外部调试是指通过位于处理器外部的代理进行软件调试的情况。以下图示展示了一个连接到开发板和运行调试器的主机机器的调试探针的示例:
用于启用不同调试、跟踪和性能分析功能的信号有助于处理这个示例中的情况。以下是启用不同安全状态下调试的独立信号:
- DBGEN:顶层侵入式调试使能
- SPIDEN:安全侵入式调试使能,控制在安全状态下外部调试的能力
- RLPIDEN:Realm 侵入式调试使能,控制在 realm 状态下外部调试的能力
- RTPIDEN:Root 侵入式调试使能,控制在 root 状态下外部调试的能力
调试认证信号通常连接到保险丝或认证模块,如下图所示:
芯片供应商在内部使用早期开发的硅片。这些硅片上的保险丝完好,允许对系统的各个方面进行调试。
后来的设备可能在 RLIDEN、SPIDEN 和 RTIDEN 三者之间使用熔断。这种情况允许开发团队只调试系统的特定区域。
在发货设备中,最终的生产硅片上所有保险丝都已熔断,以防止在任何状