From: Lucas Stach <l.stach@pengutronix.de>
To: Stefan Agner <stefan@agner.ch>,
Leonard Crestez <leonard.crestez@nxp.com>
Cc: lorenzo.pieralisi@arm.com, Trent Piepho <tpiepho@impinj.com>,
Richard Zhu <hongxing.zhu@nxp.com>,
linux-kernel@vger.kernel.org, jingoohan1@gmail.com,
gustavo.pimentel@synopsys.com, andrew.smirnov@gmail.com,
linux-pci@vger.kernel.org, bhelgaas@google.com
Subject: Re: [PATCH v3 2/2] PCI: imx6: limit DBI register length
Date: Wed, 28 Nov 2018 18:50:38 +0100 [thread overview]
Message-ID: <1543427438.2507.52.camel@pengutronix.de> (raw)
In-Reply-To: <fd74de3125bf7df8789e83f2e0631157@agner.ch>
Am Mittwoch, den 28.11.2018, 18:36 +0100 schrieb Stefan Agner:
> On 28.11.2018 13:19, Stefan Agner wrote:
> > On 21.11.2018 14:47, Leonard Crestez wrote:
> > > On 11/20/2018 11:28 PM, Trent Piepho wrote:
> > > > On Tue, 2018-11-20 at 21:42 +0100, Stefan Agner wrote:
> > > > > On 20.11.2018 20:13, Trent Piepho wrote:
> > > > > > It also seems to me that this doesn't need to be in the internal pci
> > > > > > config access functions. The driver shouldn't be reading registers
> > > > > > that don't exist anyway. It's really about trying to fix sysfs access
> > > > > > to registers that don't exist. So maybe it should be done there.
> > > > >
> > > > > That was my first approach, see:
> > > >
> > > > Yes, but that just used the pci device id which applies to every IMX
> > > > design.
> > > >
> > > > It's also not totally correct, as it seems real registers after 0x200
> > > > do work on imx6, and that would prevent access to them.
> > >
> > > I see that Lorenzo already accepted the patch in pci/dwc:
> > >
> > > https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/commit/?h=pci/dwc&id=f14eaec153aaebbe940ddd21e4198cc2abc927c2
> > >
> > > My tests show that this series breaks pci cards on 6qdl and I think it
> > > should be reverted until a fix is found. Are you OK with this?
> > >
> > > Fixing might require an entirely different approach.
> >
> > I tried to reproduce this issue on Apalis iMX6 (i.MX 6Q) with a ath9k
> > PCIe WiFi card, the issue you are seeing did not happen. My lspci looks
> > as follows:
> >
> > root@ea210c63d739:/# lspci -v
> > 00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01) (prog-if 00
> > [Normal decode])
> > Flags: bus master, fast devsel, latency 0, IRQ 255
> > Memory at 01000000 (32-bit, non-prefetchable) [size=1M]
> > Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
> > Memory behind bridge: 01100000-011fffff
> > [virtual] Expansion ROM at 01200000 [disabled] [size=64K]
> > Capabilities: [40] Power Management version 3
> > Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
> > Capabilities: [70] Express Root Port (Slot-), MSI 00
> > Capabilities: [100] Advanced Error Reporting
> > Capabilities: [140] Virtual Channel
> > lspci: Unable to load libkmod resources: error -12
> >
> > 01:00.0 Network controller: Qualcomm Atheros AR928X Wireless Network
> > Adapter (PCI-Express) (rev 01)
> > Subsystem: Foxconn International, Inc. Device e007
> > Flags: bus master, fast devsel, latency 0, IRQ 312
> > Memory at 01100000 (64-bit, non-prefetchable) [size=64K]
> > Capabilities: [40] Power Management version 2
> > Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
> > Capabilities: [60] Express Legacy Endpoint, MSI 00
> > Capabilities: [90] MSI-X: Enable- Count=1 Masked-
> > Capabilities: [100] Advanced Error Reporting
> > Capabilities: [140] Virtual Channel
> > Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
> > Kernel driver in use: ath9k
> >
> >
> > I did also setup a WiFi network and transmitted some packages, but I did
> > not get a nobody carred message. Do you have an idea why that might be?
> >
> > # cat /proc/interrupts
> > ...
> > 312: 10967 0 0 0 GPC 123 Level
> > ath9k
> > ...
> >
> >
> > Your conclusion in this thread seem reasonable, hence reverting the
> > issue does. However, I still would like to reproduce the issue so I can
> > make sure that future patches don't break it :-)
>
> Hm, I realized that I need to enable CONFIG_PCIEPORTBUS and set
> ath9k.use_msi=1 to get MSI for that card. However, it seems that ath9k
> does not behave well in that setup. It does get interrupts, and seems to
> work to some degree, but I was not successful in transmitting data over
> WiFi, but that might be an entirly different thing.
>
> However, what I noticed is that when CONFIG_PCIEPORTBUS and
> CONFIG_PCI_MSI is enabled, MSI works but legacy interrupt seem not to
> fire anymore. That is true for ath9k as well as e1000e (using
> e1000e.IntMode=0 to force legacy). Is that a known issue/limitation with
> i.MX 6 PCIe?
Yes, this is a known issue with the Designware PCIe core, not just on
i.MX6. As soon as any MSI interrupt is enabled, the core doesn't
forward legacy IRQs anymore.
So if any card in your system needs legacy interrupts (and ath9k is
very likely to need this, as MSI support is pretty new and
experimental), you need to boot with "nomsi" set on the kernel command
line.
Regards,
Lucas
next prev parent reply other threads:[~2018-11-28 17:50 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-20 16:56 [PATCH v3 1/2] PCI: imx6: introduce drvdata Stefan Agner
2018-11-20 16:56 ` [PATCH v3 2/2] PCI: imx6: limit DBI register length Stefan Agner
2018-11-20 18:19 ` Leonard Crestez
2018-11-20 19:13 ` Trent Piepho
2018-11-20 20:42 ` Stefan Agner
2018-11-20 21:28 ` Trent Piepho
2018-11-21 13:47 ` Leonard Crestez
2018-11-21 14:17 ` Lorenzo Pieralisi
2018-11-28 12:19 ` Stefan Agner
2018-11-28 17:36 ` Stefan Agner
2018-11-28 17:50 ` Lucas Stach [this message]
2018-11-28 17:56 ` Stefan Agner
2018-11-28 18:01 ` Leonard Crestez
2018-11-26 10:16 ` Leonard Crestez
2018-11-26 16:34 ` Trent Piepho
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=1543427438.2507.52.camel@pengutronix.de \
--to=l.stach@pengutronix.de \
--cc=andrew.smirnov@gmail.com \
--cc=bhelgaas@google.com \
--cc=gustavo.pimentel@synopsys.com \
--cc=hongxing.zhu@nxp.com \
--cc=jingoohan1@gmail.com \
--cc=leonard.crestez@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=stefan@agner.ch \
--cc=tpiepho@impinj.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).