Bart Jonkers wrote:
 > > Here is a new version of the ipipe-sa1100-pxa patch that unmaks
 > > interrupts at the end of the demux handlers, and that attempt to fix the
 > > gettimeoffset issue. I have run 20 minutes (time for OSCR to wrap) latency
 > > with a test program verifying that time returned by gettimeofday is
 > > never going backward.
 > > 
 > > The patch and the test program are attached, it would be nice if you
 > > could test them.
 > I have tested the patch and ran the test program.
 > The test program give no problems.
 > 
 > The interrupt problem in Linux is also solved. But I have another one.
 > I have created a small real-time kernel module which uses the native
 > interface to handle an GPIO interrupt. The problem is that Xenomai
 > doesn't see the interrupt. When I use GPIO0 (which doesn't use the
 > chained handler) to receive the interrupt everything works as it should.
 > 
 > So it seems to be that xenomai have a problem with the chained handler.
 > Does someone have an idea to solve this problem?

The problem is that the demux handler is a root domain handler, and
directly call the cascaded interrupts root domain handlers through
desc_handle_irq, whereas in order for the I-pipe to intercept the
interrupt for any domain, the demux handler should be run for any
domain, and invoke __ipipe_grab_irq, __ipipe_handle_irq or
ipipe_trigger_irq so that the cascaded interrupts are pipelined.

So, there are two possible fixes:
- either fix the I-pipe patch so that the demux handler is invoked when
  the multiplexed interrupt is received for any domain, and triggers
  interrupts through ipipe_trigger_irq;
- or you may fix the issue locally by registering a demux handler in
  Xenomai domain through ipipe_virtualize_irq_from, and in this demux
  handler only clear the interrupt you want and call ipipe_trigger_irq 
  for them, and ipipe_propagate_irq the multiplexing interrupt to let
  other irqs be handled in the root domain.

Philippe, is there a way to tell the I-ipipe that an interrupt handler
should be executed for any domain? Is this what a "wired" handler is?

-- 


                                            Gilles Chanteperdrix.

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to