Skip to contentSkip to conversation

powerpc/sec: Add workaround for SEC A-003571

PATCH New Shengzhou Liu 2 participants 2 messages Aug 15, 2013 – Aug 20, 2013 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 powerpc/sec: Add workaround for SEC A-003571

Multiple read/write transactions initiated by security engine may cause system to hang.
Workaround: set MCFGR[AXIPIPE] to 0 to avoid hang.

---
 arch/powerpc/cpu/mpc85xx/cmd_errata.c     |  4 ++++
 arch/powerpc/cpu/mpc85xx/cpu_init.c       | 10 +++++++++-
 arch/powerpc/include/asm/config_mpc85xx.h |  1 +
 3 files changed, 14 insertions(+), 1 deletion(-)
arch/powerpc/cpu/mpc85xx/cmd_errata.c +4 -0
index e6d1023..2e1fc06 100644
@@ -348,6 +348,10 @@ static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 #ifdef CONFIG_SYS_FSL_ERRATUM_A006593
 	puts("Work-around for Erratum A006593 enabled\n");
 #endif
+#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
+	if (IS_SVR_REV(svr, 1, 0))
+		puts("Work-around for Erratum A003571 enabled\n");
+#endif
 	return 0;
 }
 
arch/powerpc/cpu/mpc85xx/cpu_init.c +9 -1
index 7b81f5d..be09009 100644
@@ -444,7 +444,9 @@ int cpu_init_r(void)
 	extern int spin_table_compat;
 	const char *spin;
 #endif
-
+#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
+	ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR;
+#endif
 #if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \
 	defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011)
 	/*
@@ -634,6 +636,12 @@ skip_l2:
 	fsl_serdes_init();
 #endif
 
+#ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
+#define MCFGR_AXIPIPE 0x000000f0
+	if (IS_SVR_REV(svr, 1, 0))
+		clrbits_be32(&sec->mcfgr, MCFGR_AXIPIPE);
+#endif
+
 #ifdef CONFIG_SYS_FSL_ERRATUM_A005871
 	if (IS_SVR_REV(svr, 1, 0)) {
 		int i;
arch/powerpc/include/asm/config_mpc85xx.h +1 -0
index 86c2598..cc6e405 100644
@@ -149,6 +149,7 @@
 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
 #define CONFIG_SYS_FSL_ERRATUM_IFC_A002769
 #define CONFIG_SYS_FSL_ERRATUM_P1010_A003549
+#define CONFIG_SYS_FSL_ERRATUM_SEC_A003571
 #define CONFIG_SYS_FSL_ERRATUM_IFC_A003399
 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
 #define CONFIG_SYS_FSL_ISBC_VER		1
Signature · 1 line
1.8.0
#1 lore raw

PATCH 1/1 powerpc/sec: Add workaround for SEC A-003571

Quoted 4 lines · Shengzhou Liu

Multiple read/write transactions initiated by security engine may cause system to hang.
Workaround: set MCFGR[AXIPIPE] to 0 to avoid hang.

Quoted 8 lines
---
 arch/powerpc/cpu/mpc85xx/cmd_errata.c     |  4 ++++
 arch/powerpc/cpu/mpc85xx/cpu_init.c       | 10 +++++++++-
 arch/powerpc/include/asm/config_mpc85xx.h |  1 +
 3 files changed, 14 insertions(+), 1 deletion(-)

Applied to u-boot-mpc85xx/master after resolving conflicts.

York