To: linus, akpm Cc: lkml Subject: [PATCH] M68k 68060 errata I14 M68k: gcc lately manages to generate the code sequence described in the 060 errata I14, so use the described workaround (from Roman Zippel) Signed-off-by: Roman Zippel Signed-off-by: Geert Uytterhoeven --- setup.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) --- linux-2.6.8-rc2/arch/m68k/kernel/setup.c 2004-05-24 11:13:22.000000000 +0200 +++ linux-m68k-2.6.8-rc2/arch/m68k/kernel/setup.c 2004-07-04 22:03:49.000000000 +0200 @@ -238,6 +238,18 @@ } #endif + 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)); + } + } + init_mm.start_code = PAGE_OFFSET; init_mm.end_code = (unsigned long) &_etext; init_mm.end_data = (unsigned long) &_edata;