* [Xenomai-help] Shared interrupt usage questions
@ 2009-08-18 22:00 Steve Deiters
2009-08-25 7:04 ` Jan Kiszka
0 siblings, 1 reply; 2+ messages in thread
From: Steve Deiters @ 2009-08-18 22:00 UTC (permalink / raw)
To: xenomai
Is there any acceptable method to share interrupts in userspace using
the native or other skin? I am writing a userspace driver for a
Freescale mpc5121e PSC serial controller, which has 12 programmable
serial controllers which share a single FIFO controller. The single
FIFO controller has only a single IRQ line for all 12 PSCs. This is
further complicated by the fact that I also have to share this IRQ line
with the Linux domain, as it uses it for the console and other devices.
I cannot create multiple descriptors for the same IRQ line using
rt_intr_create and the I_SHARED flag doesn't seem to be exported to
userspace. Is it valid to create one interrupt object and have multiple
tasks call rt_intr_wait for the same interrupt object?
As far as sharing with the Linux domain, from the documentation it seems
I would just pass I_PROPAGATE and this should then be transparent to the
Linux domain. Are there additional concerns I should be aware of with
sharing the IRQ between domains?
I have set this up with a single shared interrupt object and it seems to
function properly. I just want to make sure I'm not putting myself in a
condition where I could get some obscure race condition or have a
deadlocked interrupt server task.
Thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Xenomai-help] Shared interrupt usage questions
2009-08-18 22:00 [Xenomai-help] Shared interrupt usage questions Steve Deiters
@ 2009-08-25 7:04 ` Jan Kiszka
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kiszka @ 2009-08-25 7:04 UTC (permalink / raw)
To: Steve Deiters; +Cc: xenomai
[-- Attachment #1: Type: text/plain, Size: 1600 bytes --]
Steve Deiters wrote:
> Is there any acceptable method to share interrupts in userspace using
> the native or other skin? I am writing a userspace driver for a
> Freescale mpc5121e PSC serial controller, which has 12 programmable
> serial controllers which share a single FIFO controller. The single
> FIFO controller has only a single IRQ line for all 12 PSCs. This is
> further complicated by the fact that I also have to share this IRQ line
> with the Linux domain, as it uses it for the console and other devices.
>
> I cannot create multiple descriptors for the same IRQ line using
> rt_intr_create and the I_SHARED flag doesn't seem to be exported to
> userspace. Is it valid to create one interrupt object and have multiple
> tasks call rt_intr_wait for the same interrupt object?
>
> As far as sharing with the Linux domain, from the documentation it seems
> I would just pass I_PROPAGATE and this should then be transparent to the
> Linux domain. Are there additional concerns I should be aware of with
> sharing the IRQ between domains?
>
> I have set this up with a single shared interrupt object and it seems to
> function properly. I just want to make sure I'm not putting myself in a
> condition where I could get some obscure race condition or have a
> deadlocked interrupt server task.
>
> Thanks.
I_PROPAGATE does not help resolving the IRQ sharing problem reliably.
See
http://www.xenomai.org/index.php/FAQs#What_can_I_do_if_Xenomai_and_Linux_devices_share_the_same_IRQ.3F
for more information and browse the mailing list archives.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-08-25 7:04 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-18 22:00 [Xenomai-help] Shared interrupt usage questions Steve Deiters
2009-08-25 7:04 ` Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.