Eugene, check slides 17, 20-22 out of my SNDF 2004 presentation H1125 found at http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=052577pzMPYZjg286165422098
... and attend the June 2005 FTF in Orlando ... http://www.freescale.com/ftf *grin* Heinz > -----Original Message----- > From: linuxppc-embedded-bounces at ozlabs.org > [mailto:linuxppc-embedded-bounces at ozlabs.org] On Behalf Of > Eugene Surovegin > Sent: Tuesday, April 26, 2005 9:22 PM > To: linuxppc-embedded at ozlabs.org > Subject: [RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2 > > Hi! > > There is a problem with big amount of spurious IRQs on 8248-based > design I'm working on. > > I observed this problem with 2.4.30 kernel, but it was reported to be > still present on 2.6 as well. > > Traces show that spurious IRQ happens right after handle_IRQ_events() > enables external interrupts and _before_ even calling real IRQ > handler. > > I fixed this problem by adding sync at the end of cpm2_mask_and_ack. > Using out_XXX macros for accessing SIU register doesn't seem to help. > Dan thinks there are some pipeline-related issues here, although I > failed to found any mentions of them in 8272 user manual. > > Also, there is a possibility, that we need more explicit sync's in > cpm2_pic code. > > Signed-off-by: Eugene Surovegin <ebs at ebshome.net> > > ===== arch/ppc/syslib/cpm2_pic.c 1.11 vs edited ===== > --- 1.11/arch/ppc/syslib/cpm2_pic.c 2005-03-31 02:59:05 -08:00 > +++ edited/arch/ppc/syslib/cpm2_pic.c 2005-04-26 11:55:51 -07:00 > @@ -90,6 +90,7 @@ > ppc_cached_irq_mask[word] &= ~(1 << bit); > simr[word] = ppc_cached_irq_mask[word]; > sipnr[word] = 1 << bit; > + mb(); > } > > static void cpm2_end_irq(unsigned int irq_nr) > > > > _______________________________________________ > Linuxppc-embedded mailing list > Linuxppc-embedded at ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-embedded >