patch-2.4.27 linux-2.4.27/arch/m68k/kernel/setup.c

Next file: linux-2.4.27/arch/m68k/mac/iop.c
Previous file: linux-2.4.27/arch/m68k/ifpsp060/iskeleton.S
Back to the patch index
Back to the overall index

diff -urN linux-2.4.26/arch/m68k/kernel/setup.c linux-2.4.27/arch/m68k/kernel/setup.c
@@ -244,6 +244,18 @@
 	else if (CPU_IS_060)
 		m68k_is040or060 = 6;
 
+	if (CPU_IS_060) {
+		u32 pcr;
+
+		asm (".chip 68060; movec %%pcr,%0; .chip 68k"
+		     : "=d" (pcr));
+		if (((pcr >> 8) & 0xff) <= 5) {
+			printk("Enabling workaround for errata I14\n");
+			asm (".chip 68060; movec %0,%%pcr; .chip 68k"
+			     : : "d" (pcr | 0x20));
+		}
+	}
+
 	/* FIXME: m68k_fputype is passed in by Penguin booter, which can
 	 * be confused by software FPU emulation. BEWARE.
 	 * We should really do our own FPU check at startup.

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)