
25 Jul
2017
25 Jul
'17
11:58 a.m.
Hello,
Currently the code in 'arch/arm/cpu/armv7/start.S' calls the 'cpu_init_cp15' function before 'cpu_init_crit'. The initial SPL stack is initialized in 'lowlevel_init', which is called from 'cpu_init_crit'. But 'cpu_init_cp15' is already using stack when applying errata workarounds. Here is one example:
#ifdef CONFIG_ARM_ERRATA_430973 cmp r2, #0x21 @ Only on < r2p1 bge skip_errata_430973
mrc p15, 0, r0, c1, c0, 1 @ Read ACR orr r0, r0, #(0x1 << 6) @ Set IBE bit push {r1-r5} @ Save the cpu info registers bl v7_arch_cp15_set_acr pop {r1-r5} @ Restore the cpu info - fall through
skip_errata_430973: #endif
--
Best regards,
Siarhei Siamashka