I am using Xenomai 2.6.0 on kernel 3.0.13, with
adeos-ipipe-3.0.13-powerpc-2.13-06 applied. My target CPU
is Freescale MPC8378.
On a powerpc, GPIO's are mapped to virtual irqs. Thus, in order to install an
irq handler for a gpio
interrupt, one must do the following in the kernel:
err = gpio_request(HYPHY_IRQ_GPIO, NULL);
if (err<0) {
printk(KERN_ERR "%s: could not request gpio %d, rc %d\n",
__func__, HYPHY_IRQ_GPIO, err);
return err;
}
err = gpio_direction_input(HYPHY_IRQ_GPIO);
if (err<0) {
printk(KERN_ERR "%s: could not set gpio %d to input, rc %d\n",
__func__, HYPHY_IRQ_GPIO, err);
return err;
}
virq = __gpio_to_irq(HYPHY_IRQ_GPIO);
if (virq < 0) {
printk(KERN_ERR "%s: could not map gpio %d to virq \n",
__func__, HYPHY_IRQ_GPIO);
return virq;
}
err = request_irq(virq, hyphy20G_irq, 0, hyphy20G_dev.name,
&hyphy20G_dev);
In other words, you install the irq handler on the virtual irq number returned
from __gpio_to_irq. The above
code works in my system, i.e., the hyphy20G_irq handler is called on an
interrupt.
However, if I use:
err = rt_intr_create(intrObj, "HyPhyIRQ", virq, hyphy20G_irq, NULL, 0);
rt_intr_enable(intrObj);
then the hyphy20G_irq handler is not called on an interrupt. I realize that
interrupt handlers are
recommended to be implemented in user space, but a user space implementation
does not work either,
so I moved into the kernel to see if I could get something to work.
Is it possible to install an Xenomai ISR on a powerpc virtual irq?
I have attached the full driver code.
Chris Stone
Embedded Linux Architect
Optelian
1 Brewer Hunt Way
Ottawa, Ontario K2K 2B5
Phone: 613-287-2000 x2106
www.optelian.com
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: hyphypcie.c
URL:
<http://www.xenomai.org/pipermail/xenomai/attachments/20120607/b899a195/attachment.c>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: hyphypcie.h
URL:
<http://www.xenomai.org/pipermail/xenomai/attachments/20120607/b899a195/attachment.h>
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai