title: TrustZone monitor mode and IFAR, IFSR, DFAR, DFSR
body: <p>The ARM <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.prd29-genc-009492c/CACJBHJA.html" rel="nofollow">TrustZone monitor mode</a> can trap aborts in monitor mode.  The monitor mode always executes in the secure world or context.  How can we know what address and reason caused a fault in the normal world when it traps to the monitor mode <em>instruction abort</em> and <em>data fault</em> vectors?</p>
  
  <p>The <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0433b/CIHCEAAI.html" rel="nofollow"><code>IFSR</code></a>, <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0433b/CIHBEDBC.html" rel="nofollow"><code>IFAR</code></a>, <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0433b/CIHBEDBC.html" rel="nofollow"><code>DFSR</code></a> and <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0433b/CIHBEDBC.html" rel="nofollow"><code>DFAR</code></a> are banked <em>CP15</em> registers.</p>