This used to happen in head.S, then got moved to per_cpu_trap_init, but that only covers secondary cpus. This takes care of the boot cpu. Regards, Brad diff -urNbB -X ../diff-linux-exclude ../oss/linux-oss-2.4-2002-03-19/arch/mips/kernel/traps.c linux-encore-oss-merge/arch/mips/kernel/traps.c --- ../oss/linux-oss-2.4-2002-03-19/arch/mips/kernel/traps.c Tue Mar 19 20:18:36 2002 +++ linux-encore-oss-merge/arch/mips/kernel/traps.c Fri Mar 22 09:58:36 2002 @@ -852,6 +852,9 @@ extern char except_vec_ejtag_debug; unsigned long i; + /* Some firmware leaves the BEV flag set, clear it. */ + clear_cp0_status(ST0_BEV); + /* Copy the generic exception handler code to it's final destination. */ memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80); memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);