【问题标题】:TrustZone monitor mode and IFAR, IFSR, DFAR, DFSRTrustZone 监控模式和 IFAR、IFSR、DFAR、DFSR
【发布时间】:2014-03-31 14:44:50
【问题描述】:

ARM TrustZone monitor mode 可以在监控模式下捕获异常。监控模式始终在安全世界或上下文中执行。正常情况下陷入监控模式instruction abortdata fault向量,我们怎么知道是什么地址和原因导致了故障?

IFSRIFARDFSRDFAR 是存储的 CP15 寄存器。

【问题讨论】:

    标签: arm trust-zone


    【解决方案1】:

    值得注意的是,只能将外部中止配置为在监视模式下进行,因此不会捕获MMU访问错误。

    至于主要问题:所有安全/非安全分组寄存器的状态在监控模式下由 cp15 安全配置寄存器 NS 位的状态控制:当它被设置时,您访问非安全版本,并且在确定时访问安全版本。

    以下是一些内联gcc 代码,它允许任何安全世界 模式检查这些CP15 寄存器。

        #define MODE_MONITOR 0x16
        unsigned int mode;
        unsigned int world;
        unsigned int dfar;
        unsigned int dfsr;
        unsigned int ifar;
        unsigned int ifsr;
    
        asm (" mrs %0, cpsr\n"                 /* Save mode. */
             " mrc p15, 0, %1, c1, c1, 0\n"
             " orr  %1, %1, #1\n"              /* Set NS bit in SCR. */
             " cpsid aif, %6\n"                /* To monitor mode... */
             " mcr p15, 0, %1, c1, c1, 0\n"
             " mrc p15, 0, %2, c6, c0, 0\n"
             " mrc p15, 0, %3, c5, c0, 0\n"
             " mrc p15, 0, %4, c6, c0, 2\n"
             " mrc p15, 0, %5, c5, c0, 1\n"
             " bic  %1, %1, #1\n"              /* Clear NS bit in SCR. */
             " mcr  p15, 0, %1, c1, c1, 0\n"
             " isb\n"
             " msr cpsr, %0\n"
             : "=&r" (mode), "=&r" (world),
               "=r"(dfar), "=r"(dfsr),
               "=r"(ifar), "=r"(ifsr)
             : "I" (MODE_MONITOR));
        printf("DFAR: %.8x dfsr: %.8x IFAR: %.8x ifsr: %.8x\n",
               dfar, dfsr, ifar, ifsr);
    

    【讨论】:

    • 这很奇怪;都是这样的CP15 寄存器吗?因此,当您处于监控状态时,应用安全 MMU 状态,但如果设置了 NS 位,您可以看到非安全 TTBR 等?
    • 正确。监控模式是“特殊的”。
    • 您能否解释一下“所以当您处于监控状态时,安全 MMU 状态适用,但如果设置了 NS 位,您可以看到非安全 TTBR 等?”跨度>
    • @mSO:监控模式本身是始终安全的。因此,在监视模式或任何其他安全模式下执行时分配的 TLB 条目是安全的 (NSTID=0),无论 NS 位的状态如何。
    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2018-09-23
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多