0

我正在运行一个在 FPGA 上使用 ARM Cortex 处理器的操作系统。为了能够访问这块板上的内存区域,我需要运行一个安全的世界。有人告诉我,我需要使用 Secure Monitor 调用才能进入一个安全的世界。如果我不在一个安全的世界中,Arm Trusted Firmware 会阻止我的操作系统,并给我一个信号 2 中断。

如何使用 SMC?有没有实现这个的例子?

谢谢

4

1 回答 1

2

我将您的问题理解为“如何实现 ARM 安全监视器调用 (SMC),以便我可以从不在 EL3 上运行的软件访问系统的特定区域”-如果您想知道如何使用现有的 SMC 调用,您已经在 Michael Dorgan 的第一条评论中得到了回答。

如果没有,您需要在系统启动时执行的在 EL3 上运行的软件中实现您自己的 SMC 调用。在典型的 Aarch64 系统中, Arm Trusted Firmware的 BL31 部分将对此负责,而 ATF 似乎是您的系统正在运行的。

一个实施示例是位于此处的 ZynqMP IPI 邮箱门铃服务的 SMC 处理程序。

底线,你应该:

  • 检索系统正在运行的 Arm 可信固件的源代码,
  • 使用例如 IPI 邮箱门铃服务示例实现您自己的一组 SMC 呼叫,
  • 为您的平台重新编译 Arm 可信固件,
  • 升级你的系统,
  • 测试。

由于您的平台使用的是 ATF,因此此代码可能支持它。否则,您的芯片/电路板供应商应为您的平台提供其源代码。

我希望这有帮助。

于 2019-12-06T18:46:40.707 回答