[U-Boot] CPU errata workarounds are using the SPL stack before it is initialized

Siarhei Siamashka siarhei.siamashka at gmail.com
Tue Jul 25 09:58:12 UTC 2017


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


More information about the U-Boot mailing list