linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Nancy Isaac <nancy.isaac@pobox.com>
To: Scott Wood <scottwood@freescale.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: 8544 external interrupt configuration problems
Date: Thu, 28 May 2009 18:48:48 -0700	[thread overview]
Message-ID: <1bcc666d0905281848m5d237742h12b4bac272f28ca9@mail.gmail.com> (raw)
In-Reply-To: <20090528200215.GA9793@b07421-ec1.am.freescale.net>

[-- Attachment #1: Type: text/plain, Size: 3237 bytes --]

Thank you for your response.  My responses below.

On Thu, May 28, 2009 at 1:02 PM, Scott Wood <scottwood@freescale.com> wrote:

> On Thu, May 28, 2009 at 12:05:52PM -0700, Nancy Isaac wrote:
> > My device tree has the following entry for my fpga:
> >
> > CpuCpld\@f0000000{
> >                         compatible = "MPC8544DS";
> >                         device_type = "CpuCpld";
> >                         reg = <f0000000 00000040>;
> >                         interrupts = <41 2 42 2 43 2>;
> >                         interrupt-parent = <&mpic>;
> > };
>
> Where did you get those interrupt numbers from?  External interrupt
> numbers start at zero on MPIC.


<NI> I  tried several  things and this is the last set I tried. These
numbers start at the end of the internal interrupts.

I also tried specifying 1, 2 and 3 because it looks like there is just an
array of these interrupts and the interrupts are just added to this array as
they are registered with the hwirq and the virq is the index into the array
where the hwirq was added.  I get slightly different results but still not
accurate.

For example, in the device tree, I had setup interrupts = <1 2 2 2 3 2>; for
irq1, 2 and 3 which are all level sensitive interrupts. These map to virq
0x12, 0x13 and 0x14 .  I verify that there is no interrupt present by
looking at the registers in the FPGA and also by connecting a scope to the
signal.  Immediately after I finish registering the irqs listed above, I get
an interrupt  and my print statement in the do_IRQ function returns irq
number 0x12.  This happens even if I've disabled the interrupt at the FPGA.
Then I forced an interrupt to occur at the FPGA on irq2 and the do_irq
function still reports that the irq occured for 0x12.

>
> Is the level/sense information correct?


[NI] Yes, these interrupts are supposed to be active low, level sensitive
interrupts.


> > My driver does the mapping to the virq:
> >
> >  np = of_find_node_by_type(NULL, "CpuCpld");
> >     if (!np) {
> >         ret = -ENODEV;
> >     }
> >     cpldCpuDrv->MateIntIrq = irq_of_parse_and_map(np, 0);
> >     cpldCpuDrv->FtaIrq =  irq_of_parse_and_map(np, 1);
> >     cpldCpuDrv->ExtractIrq =  irq_of_parse_and_map(np, 2);
> >     cpldCpuDrv->XauiIrq =  irq_of_parse_and_map(np, 0);
> >
> >     of_node_put(np);
>
> Looks good (other than that you should be using compatible (with a more
> specific name) rather than device_type).
>
> > Does anyone know what the virq should be for these external interrupts?
>
> They're dynamically assigned.
>
> > I've tried specifying the actual irq numbers 1,2 and 3 and that doesn't
> work
> > either.
>
> Specifying them where?  In the device tree or as virq numbers?  Never
> hard-code virq numbers.


[NI] I specify this in the device tree.

>
>
> > Is there some PCI configuration that's getting in the way?  I've tried
> > disabling the FSL_PCIE and I get the same behavior.
>
> Barring an unusual bug, PCI should have nothing to do with the interrupt
> routing of things that aren't on the PCI bus.


[NI]. For 8544, the external interrupts can be shared with PCI Express. I
thought that if I am somehow enabling PCI Express, maybe it would explain
this behavior.


>
>
> -Scott
>

Thanks
Nancy

[-- Attachment #2: Type: text/html, Size: 4659 bytes --]

  reply	other threads:[~2009-05-29  1:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-28 19:05 8544 external interrupt configuration problems Nancy Isaac
2009-05-28 20:02 ` Scott Wood
2009-05-29  1:48   ` Nancy Isaac [this message]
2009-05-29 17:09     ` Scott Wood
2009-05-29 17:20       ` Nancy Isaac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1bcc666d0905281848m5d237742h12b4bac272f28ca9@mail.gmail.com \
    --to=nancy.isaac@pobox.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=scottwood@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).