如何访问Linaro在juno board

时间:2015-11-17 18:33:17

标签: arm trust-zone

我在Juno board r1上使用Linaro提供的Trusted Firmware Image(LSK和Android文件系统)。就我而言,我只想在EL3中进行一些简单的测试,例如,阅读特定的内存。 为了方便起见,在系统完全启动之前我没有做任何事情。然后我加载一个发送SMC指令的内核模块,并通过自定义处理程序在BL3-1中处理SMC异常。在处理程序中,我为EL3禁用了MMU并尝试直接访问物理地址。但我发现如果物理地址大于0xffffffff(4G),我得到的内容将全部为0.低于0xffffffff的物理地址可以正常工作。如果我将该物理地址映射到小于0xffffffff的虚拟地址(Linaro的EL3仅支持低于0xffffffff的虚拟地址),它也可以工作。 那么,为什么在EL3中禁用MMU后,为什么我无法获得大于0xffffffff的物理地址的正确内容?

有没有人知道细节? 非常感谢帮助我!

1 个答案:

答案 0 :(得分:0)

Juno固件库存设置了TrustZone控制器,从RecyclerView.Adapter0x0ff000000的16MB DRAM被保留用于Secure世界,其余的仅为非安全。特定的TZC配置使得非安全区域只读为零并忽略写入而不是中止安全访问。

因此,并不是说您无法访问超过4GB的物理地址,它只是偶然发生的事情就是DRAM这是安全世界特别拒绝接触大多数人的事情。

固件来源的相关部分can be found here