mx6: Add workaround for ARM errata

Add workaround for the following ARM errata: 743622 and 751472.

The motivation for this change is the following kernel commit 62e4d357a
(ARM: 7609/1: disable errata work-arounds which access
secure registers), which removes the errata from multiplatform kernel.

Since imx has been converted to multiplatform in the kernel, we need to apply
such workarounds into the bootloader.

Workaround code has been taken from arch/arm/mm/proc-v7.S from 3.7.1 kernel.

Explanation of each erratum is provided at "Chip Errata for the i.MX 6Dual/6Quad"
document available at: cache.freescale.com/files/32bit/doc/errata/IMX6DQCE.pdf

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
This commit is contained in:
Fabio Estevam 2013-01-04 16:07:26 +00:00 committed by Stefano Babic
parent 7528cf5f01
commit 2b16e51c2f
1 changed files with 10 additions and 0 deletions

View File

@ -20,6 +20,16 @@
#include <linux/linkage.h>
.macro init_arm_errata
/* ARM erratum ID #743622 */
mrc p15, 0, r10, c15, c0, 1 /* read diagnostic register */
orr r10, r10, #1 << 6 /* set bit #6 */
/* ARM erratum ID #751472 */
orr r10, r10, #1 << 11 /* set bit #11 */
mcr p15, 0, r10, c15, c0, 1 /* write diagnostic register */
.endm
ENTRY(lowlevel_init)
init_arm_errata
mov pc, lr
ENDPROC(lowlevel_init)