M68k 68060 errata I14
Geert Uytterhoeven
maintainerPATCH 1/1 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 <[email protected]>
Signed-off-by Geert Uytterhoeven <[email protected]>
arch/m68k/kernel/setup.c +12 -0
@@ -249,6 +249,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.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds