All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@google.com>
To: Mark Lord <liml@rtr.ca>
Cc: Daniel Barkalow <barkalow@iabervon.org>,
	IDE/ATA development list <linux-ide@vger.kernel.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Tejun Heo <htejun@gmail.com>, Jeff Garzik <jgarzik@pobox.com>,
	linux-pci@vger.kernel.org
Subject: Re: libata, devm_*, and MSI ?
Date: Tue, 20 Jan 2009 20:02:33 -0800	[thread overview]
Message-ID: <da824cf30901202002g52fb73f9v8229fb702dcd033d@mail.gmail.com> (raw)
In-Reply-To: <497698E2.7090807@rtr.ca>

On Tue, Jan 20, 2009 at 7:39 PM, Mark Lord <liml@rtr.ca> wrote:
...
> Next.. who knows something about debugging MSI across PCI bridges ?
> I've got a 64-bit box here, PCIe near the core, but with full PCI-X
> slots on the far side of two bridges.
>
> The kernel happily allows my driver to setup MSI, but the interrupts
> never arrive.  So something somewhere in between is either
>
> (1) not set up or quirked quite right, or
> (2) one of the bridges won't pass MSI and we don't detect that.
>
> I'll poke more at it later and post some info, if somebody out there
> knows enough about this kind of thing to provide some basic hints.


Basic Hints:
1) post lspci -v output to verify device (and bridges) is programmed correctly.
2) look for chipset quirks that disable global msi
3) Make sure MMIO ranges for 0xfee00000 are routed to local APIC
   ie each bridge needs to route that address somehow (negative decode
is common for upstream).
4) manually trigger the MSI by doing a MMIO write to the correct
0xfee00000 address with the assigned vector in order to see if your
interrupt handler gets called.

After that, it's about collecting PCI-X or PCIe traces to verify the
device is generating the transactions correctly and the bridges are
forwarding them.

hth,
grant

  reply	other threads:[~2009-01-21  4:02 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-20 16:03 libata, devm_*, and MSI ? Mark Lord
2009-01-20 16:07 ` Mark Lord
2009-01-20 17:44 ` Grant Grundler
2009-01-20 18:16   ` Mark Lord
2009-01-20 18:51     ` Grant Grundler
2009-01-20 19:54       ` Mark Lord
2009-01-21 11:59         ` Tejun Heo
2009-01-20 21:50 ` Daniel Barkalow
2009-01-21  3:39   ` Mark Lord
2009-01-21  4:02     ` Grant Grundler [this message]
2009-01-21  4:16       ` Michael Ellerman
2009-01-21 15:05         ` Mark Lord
2009-01-22  0:33           ` Robert Hancock
2009-01-23 18:11             ` Mark Lord

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=da824cf30901202002g52fb73f9v8229fb702dcd033d@mail.gmail.com \
    --to=grundler@google.com \
    --cc=barkalow@iabervon.org \
    --cc=htejun@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=liml@rtr.ca \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    /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 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.