On Fri, 2011-10-21 at 16:39 -0400, David Daney wrote: > On 10/21/2011 01:18 PM, Noor wrote: > > what does it mean if cause register IP bits are zero after > > interrupt exception has already been invoked ? > > > > It might mean that something was asserting a '1' on to those bits, but > quit doing so before you could read the cause register, or it could be > that you get random interrupt exceptions for no reason at all. > In my case it was the following: diff --git a/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h index dedef7d..7500c55 100644 --- a/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h +++ b/arch/mips/include/asm/mach-cavium-octeon/kernel-entry-init.h @@ -63,6 +63,10 @@ # CN30XX Disable instruction prefetching or v0, v0, 0x2000 skip: +#ifdef CONFIG_ERICSSON_ASE + # Set CvmCtl[IPTI] to 7 + ori v0, v0, (7 << 4) +#endif # First clear off CvmCtl[IPPCI] bit and move the performance # counters interrupt to IRQ 6 li v1, ~(7 << 7) This should not be needed in the Linux code, but CvmCtl[IPTI] was set to 0 by ROMMON. Guenter