Blackfin arch: Random read/write errors are a bad thing
Robin Getz [Thu, 5 Mar 2009 10:18:49 +0000 (18:18 +0800)]
Random read/write errors are a bad thing - so don't let anyone
(including the test bench) run on something we know is bad.

Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org>
Signed-off-by: Bryan Wu <cooloney@kernel.org>

arch/blackfin/kernel/setup.c
arch/blackfin/mach-common/arch_checks.c

index e5c1162..4646b98 100644 (file)
@@ -889,6 +889,10 @@ void __init setup_arch(char **cmdline_p)
                               CPU, bfin_revid());
        }
 
+       /* We can't run on BF548-0.1 due to ANOMALY 05000448 */
+       if (bfin_cpuid() == 0x27de && bfin_revid() == 1)
+               panic("You can't run on this processor due to 05000448\n");
+
        printk(KERN_INFO "Blackfin Linux support by http://blackfin.uclinux.org/\n");
 
        printk(KERN_INFO "Processor Speed: %lu MHz core clock and %lu MHz System Clock\n",
index b3a2e3f..a2ca26a 100644 (file)
@@ -67,3 +67,9 @@
 #if ((0xffffffff - L1_CODE_START + 1) + CONFIG_BOOT_LOAD) > 0x1000000
 # error "The kernel load address is too high; keep it below 10meg for safety"
 #endif
+
+#ifdef ANOMALY_05000448
+# if ANOMALY_05000448
+#  error You are using a part with anomaly 05000448, this issue causes random memory read/write failures - that means random crashes.
+# endif
+#endif