Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/arm/arm Apply some errata workarounds
details: https://anonhg.NetBSD.org/src/rev/9b680aec5c6c
branches: trunk
changeset: 331079:9b680aec5c6c
user: skrll <skrll%NetBSD.org@localhost>
date: Wed Jul 30 20:52:18 2014 +0000
description:
Apply some errata workarounds
diffstat:
sys/arch/arm/arm/cpufunc.c | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diffs (44 lines):
diff -r 7f109ecf41bc -r 9b680aec5c6c sys/arch/arm/arm/cpufunc.c
--- a/sys/arch/arm/arm/cpufunc.c Wed Jul 30 19:33:56 2014 +0000
+++ b/sys/arch/arm/arm/cpufunc.c Wed Jul 30 20:52:18 2014 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cpufunc.c,v 1.148 2014/07/27 21:31:34 skrll Exp $ */
+/* $NetBSD: cpufunc.c,v 1.149 2014/07/30 20:52:18 skrll Exp $ */
/*
* arm7tdmi support code Copyright (c) 2001 John Fremlin
@@ -49,7 +49,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.148 2014/07/27 21:31:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.149 2014/07/30 20:52:18 skrll Exp $");
#include "opt_compat_netbsd.h"
#include "opt_cpuoptions.h"
@@ -3204,9 +3204,24 @@
}
/*
- * Enable an errata workaround
+ * This enables the workaround for the following ARM1176 r0pX
+ * errata.
+ *
+ * 394601: In low interrupt latency configuration, interrupted clean
+ * and invalidate operation may not clean dirty data.
+ *
+ * 716151: Clean Data Cache line by MVA can corrupt subsequent
+ * stores to the same cache line.
+ *
+ * 714068: Prefetch Instruction Cache Line or Invalidate Instruction
+ * Cache Line by MVA can cause deadlock.
*/
if ((cpuid & CPU_ID_CPU_MASK) == CPU_ID_ARM1176JZS) { /* ARM1176JZSr0 */
+ /* 394601 and 716151 */
+ cpuctrl |= CPU_CONTROL_FI_ENABLE;
+ auxctrl |= ARM1176_AUXCTL_FIO;
+
+ /* 714068 */
auxctrl |= ARM1176_AUXCTL_PHD;
}
Home |
Main Index |
Thread Index |
Old Index