我正在运行一个在 FPGA 上使用 ARM Cortex 处理器的操作系统。为了能够访问这块板上的内存区域,我需要运行一个安全的世界。有人告诉我,我需要使用 Secure Monitor 调用才能进入一个安全的世界。如果我不在一个安全的世界中,Arm Trusted Firmware 会阻止我的操作系统,并给我一个信号 2 中断。
如何使用 SMC?有没有实现这个的例子?
谢谢
我正在运行一个在 FPGA 上使用 ARM Cortex 处理器的操作系统。为了能够访问这块板上的内存区域,我需要运行一个安全的世界。有人告诉我,我需要使用 Secure Monitor 调用才能进入一个安全的世界。如果我不在一个安全的世界中,Arm Trusted Firmware 会阻止我的操作系统,并给我一个信号 2 中断。
如何使用 SMC?有没有实现这个的例子?
谢谢
我将您的问题理解为“如何实现 ARM 安全监视器调用 (SMC),以便我可以从不在 EL3 上运行的软件访问系统的特定区域”-如果您想知道如何使用现有的 SMC 调用,您已经在 Michael Dorgan 的第一条评论中得到了回答。
如果没有,您需要在系统启动时执行的在 EL3 上运行的软件中实现您自己的 SMC 调用。在典型的 Aarch64 系统中, Arm Trusted Firmware的 BL31 部分将对此负责,而 ATF 似乎是您的系统正在运行的。
一个实施示例是位于此处的 ZynqMP IPI 邮箱门铃服务的 SMC 处理程序。
底线,你应该:
由于您的平台使用的是 ATF,因此此代码可能支持它。否则,您的芯片/电路板供应商应为您的平台提供其源代码。
我希望这有帮助。