有谁知道如何在ZedBoard的ARM文档网站上实现运行“Secure world”和“Normal world”的TrustZone示例?有关此主题的任何文档(在ZedBoard上运行TrustZone)也会有所帮助。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15417.html
ZedBoard拥有Xilinx:Zynq®-7000全可编程SoC双ARM®Cortex™-A9 MPCore™。有关ZedBoard的更多信息,请访问:
答案 0 :(得分:4)
这是一个广泛的主题。希望以下一些信息可以提供帮助。
首先只是去解决一点,SOC ==片上系统。
如果您可以访问Xilinx工具链,董事会制造商Digilent会为您的主板提供一些支持文件。首先,如果你转到底部的http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD,你会发现两个名为“Linux硬件设计ISE”的文件<版本号>。
另外假设您正在使用Xilinx开发工具,如果您浏览到Xilinx /<版本号> /ISE_DS/EDK/hw/XilinxProcessorIPLib/pcores/axi_interconnect_v1_06_a/doc/ds768_axi_interconnect.pdf,您将找到有关AXI的信息你的主板使用中断控制器。这包括它支持TrustZone以及实际使用它的一些信息。
接下来,如果您转到http://zedboard.org/content/creating-custom-peripheral,您会找到有关制作“外围设备”的一些说明。我把它放在引号中,因为设备实际上完全存在于可编程逻辑中;这不是你插入micro usb端口或你传统上认为是“外围设备”的东西。
在本教程结束时,还有一个链接可帮助您从外围设备读取数据。
如果您使用最初下载的zip中包含的system.xmp文件重复所有这些步骤,那么您将注意到已经为您完成了所有繁重的工作。您已经插入并准备好在AXI总线上使用可与TrustZone配合使用的中断控制器,只需准备就绪并等待您将一个小型hello world设备连接到它。
但你打算用那个hello world设备做什么?如果你查看你所链接的教程的程序集,你会在评论中看到他们谈论了很多关于“安全配置注册”的东西。如果您查看处理器的文档(在此处的资源部分http://www.arm.com/products/processors/cortex-a/cortex-a9.php)并搜索术语“TrustZone扩展”(目前第34页,但显然可能会有更改),您将找到指向其他页面的链接详细说明该登记册。这与他们在教程中使用的寄存器相同,因此理论上,如果您设置了可信执行环境,现在可以使hello world教程工作(大多数情况下;您可能希望执行他们在使用vhdl或verilog代码进行汇编,并将结果暴露在C)中易于阅读的地方。
现在我刚刚提到的所有内容都只是让您访问AXI总线中的TrustZone数据。为了做一些有趣的事情,你将不得不真正创建一个安全的世界和正常的世界来阅读。否则,您放在一起的任何演示只会打印“Hello from Secure World”(或功能不正确)。所以这就是解压缩你链接到的教程并真正阅读其来源的地方将带来好处。
虽然到目前为止我的回答也不完整,但是您链接的Hello World教程并不是为了教您如何创建Normal World(以及可能的Monitor World)。它在ReadMe.txt中明确说明。所以阅读消息来源对你没有帮助。为此,您需要链接http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/index.html。那里有很多信息,但它的目的是作为参考,前两章,在我的拙见中,正是我喜欢称之为“可跳过的味道文本”。虽然如果你确实有时间浪费一些,那么就安全理论而言,其中一些内容很有吸引力,而且信息量很大。第3章将开始教你如何为TrustZone开发。
但是,希望我提供的信息可以将此更多地转化为您的权限问题以及更多的教育问题。我还在教这些东西。