[RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2
Wrobel Heinz-r39252
Heinz.Wrobel at freescale.com
Wed Apr 27 16:54:44 EST 2005
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
>
More information about the Linuxppc-embedded
mailing list