On Mon, 2006-09-11 at 16:22 +0200, Jan Kiszka wrote: > Philippe Gerum wrote: > > On Mon, 2006-09-11 at 14:20 +0200, Wolfgang Grandegger wrote: > >> Matthias Fuchs wrote: > >>> Hello Philippe, > >>> > >>> that helps. I will do some further testing. > >>> > >>> Matthias > >>> > >>> > >>> On Monday 11 September 2006 12:20, Philippe Gerum wrote: > >>>> It's likely an Adeos issue. Could you try this patch? TIA, > >>>> > >>>> --- arch/ppc/syslib/ppc4xx_pic.c~ 2005-10-28 02:02:08.000000000 > >>>> +0200 > >>>> +++ arch/ppc/syslib/ppc4xx_pic.c 2006-09-11 12:18:14.000000000 +0200 > >>>> @@ -72,7 +72,8 @@ > >>>> mtdcr(DCRN_UIC_SR(UIC##n), mask); > >>>> \ > >>>> ACK_UIC##n##_PARENT > >>>> \ > >>>> } > >>>> \ > >>>> - if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS))) { > >>>> \ > >>>> + if (!ipipe_root_domain_p || > >>>> \ > >>>> + !(status & (IRQ_DISABLED | IRQ_INPROGRESS))) { > >>>> \ > >>>> ppc_cached_irq_mask[n] |= mask; > >>>> \ > >>>> mtdcr(DCRN_UIC_ER(UIC##n), ppc_cached_irq_mask[n]); > >>>> \ > >>>> } > >>>> \ > >> Philippe, could you please explain the problem in more detail? And what > >> are the consequences for other PowerPC ARCs and PICs, also for Linux 2.4? > > > > The issue lies in the fact that PICs *_end() routines may be called over > > the Xenomai domain, and actually are, most of the time, since > > xnintr_irq_handler() -which invokes xnarch_end_irq()- is always called > > from the the Xenomai stage in the Adeos pipeline. > > > > In such a case, we must not check for the Linux-defined IRQ bits (e.g. > > IRQ_INPROGRESS), and always send the eoi, since those bits are not > > relevant to the Xenomai context. The patch above ensures this. > > > > And yes, the 2.4 patch has the very same problem, which should be fixed > > the same way for all supported ppc platforms in the various PIC > > management code. Oops. > > And why didn't this render PPC-over-2.4 useless, i.e. what is special > about this 405-scenario? >
A possible explanation is that configurations only using the timer IRQ are not affected, since the decrementer is not subject to this issue (the tick handler returns XN_ISR_NOENABLE anyway). -- Philippe. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core