<div dir="ltr"><div>While I was cleaning up the ZynqMP RPU port for a revised patch (should be ready in a few hours) I noticed a possible minor bug in `bsps/arm/shared/start/start.S` affecting ARM A profile parts.  Someone familiar with ARM A parts, please check this.  Also for my own knowledge, why is this done with 2 bic instructions instead of one?<br></div><div><br></div><div>Reference A53 TRM SCTLR register:<br><a href="https://developer.arm.com/documentation/ddi0500/e/BABJAHDA">https://developer.arm.com/documentation/ddi0500/e/BABJAHDA</a></div><div><br></div><div>At line 401:<br>---</div><div>#if (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A') || __ARM_ARCH >= 8<br>    /*<br>     * Set VBAR to the vector table in the start section and make sure<br>     * SCTLR[M, I, A, C, V] are cleared.  Afterwards, exceptions are<br>      * handled by RTEMS.<br>   */<br>   ldr     r0, =bsp_start_vector_table_begin<br>     dsb<br>   mcr     p15, 0, r0, c12, c0, 0<br>        mrc     p15, 0, r0, c1, c0, 0</div><div>---</div><div>// Is 0x2800, clear V[13] and res1[11]</div><div>// Should be 0x3000, clear V[13] and I[12]</div><div>---<br></div><div>        bic     r1, r0, #0x2800<br>       bic     r1, r1, #0x7              // Clear C[2] A[1] and M[0] (this is fine)<br>     mcr     p15, 0, r1, c1, c0, 0<br> isb</div><div>---</div><div><br></div><div>-Phil<br></div></div>