[U-Boot] [PATCH v3 1/2] ARM: Add workaround for Cortex-A9 errata 845369

From: Nitin Garg nitin.garg@freescale.com
Under very rare timing circumstances, transition into streaming mode might create a data corruption. Exists on all Cortex-A9 revisions.
Signed-off-by: Nitin Garg nitin.garg@freescale.com ---
Changes in v3: None Changes in v2: None
README | 1 + arch/arm/cpu/armv7/start.S | 5 +++++ 2 files changed, 6 insertions(+)
diff --git a/README b/README index b7c2a17..8976041 100644 --- a/README +++ b/README @@ -683,6 +683,7 @@ The following options need to be configured: CONFIG_ARM_ERRATA_751472 CONFIG_ARM_ERRATA_794072 CONFIG_ARM_ERRATA_761320 + CONFIG_ARM_ERRATA_845369
If set, the workarounds for these ARM errata are applied early during U-Boot startup. Note that these options force the diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S index 5ed0f45..db77adb 100644 --- a/arch/arm/cpu/armv7/start.S +++ b/arch/arm/cpu/armv7/start.S @@ -164,6 +164,11 @@ ENTRY(cpu_init_cp15) orr r0, r0, #1 << 21 @ set bit #21 mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register #endif +#ifdef CONFIG_ARM_ERRATA_845369 + mrc p15, 0, r0, c15, c0, 1 @ read diagnostic register + orr r0, r0, #1 << 22 @ set bit #22 + mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register +#endif
mov r5, lr @ Store my Caller mrc p15, 0, r1, c0, c0, 0 @ r1 has Read Main ID Register (MIDR)

From: Nitin Garg nitin.garg@freescale.com
The ARM errata 845369 only applies to one processor if the ACP is present OR two or more processors. i.MX6 family does not have the ACP and thus only the MPCore system will be impacted, which are the i.MX6DQ, i.MX6DL.
Signed-off-by: Nitin Garg nitin.garg@freescale.com
---
Changes in v3: Split the patch as suggested by Fabio.
Changes in v2: Apply 751472, 794072, 761320, 845369 to i.MX6DQ, i.MX6DL only.
include/configs/mx6_common.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h index e22336e..cc6b03e 100644 --- a/include/configs/mx6_common.h +++ b/include/configs/mx6_common.h @@ -23,6 +23,7 @@ defined(CONFIG_MX6QDL)) && !defined(CONFIG_MX6S) #define CONFIG_ARM_ERRATA_751472 #define CONFIG_ARM_ERRATA_794072 #define CONFIG_ARM_ERRATA_761320 +#define CONFIG_ARM_ERRATA_845369 #endif #define CONFIG_BOARD_POSTCLK_INIT
participants (1)
-
nitin.garg@freescale.com