8260 - Spurious interrupt when calling __sti()

Jean-Denis Boyer jdboyer at mediatrix.com
Wed Apr 10 00:53:45 EST 2002


I have a custom board that uses an 8260 (rev. A.1 1K22A).
We've had for a long time a problem of spurious interrupt.
On kernel 2.4.10, at boot up, the following message was written to the
console:

  Unhandled interrupt 0, disabled

This message did not appear on kernel 2.4.18 (I don't know why),
but in /proc/interrupts, the number at the right of BAD was increasing
slowly.

When flooding the board through the network, thus generating a lot of
interrupts,
the number of BAD increased faster (but not as fast as the fenet).

[root at 10.20.125.254 /]# cat /proc/interrupts
           CPU0
  4:        290   8260 SIU   Edge      uart
 33:     192388   8260 SIU   Edge      fenet
BAD:        738

Putting traces in the interrupt handler, it appeared that the interrupt
happened in '__sti()' (arch/ppc/kernel/misc.S), just after calling 'mtmsr'
to turn on the 'EE' bit.

I added a 'sync', between 'ori r3,r3,MSR_EE' and 'mtmsr r3',
and it has fixed the problem.

My questions are:
 - Did anybody encountered the same problem on that core?
 - Did anybody seen something about that in the user's manual and/or the
errata?
 - Is my fix correct, and should it be brought to other calls to 'mtmsr' ?



--------------------------------------------
 Jean-Denis Boyer, B.Eng., System Architect
 Mediatrix Telecom Inc.
 4229 Garlock Street
 Sherbrooke (Québec)
 J1L 2C8  CANADA
 (819)829-8749 x241
--------------------------------------------

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list