From: Po Liu <po.liu@nxp.com>
To: Bjorn Helgaas <helgaas@kernel.org>,
Murali Karicheri <m-karicheri2@ti.com>
Cc: "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>, Roy Zang <roy.zang@nxp.com>,
Marc Zyngier <marc.zyngier@arm.com>,
Stuart Yoder <stuart.yoder@nxp.com>,
Yang-Leo Li <leoyang.li@nxp.com>,
Minghuan Lian <minghuan.lian@nxp.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Shawn Guo <shawnguo@kernel.org>, Mingkai Hu <mingkai.hu@nxp.com>,
Rob Herring <robh@kernel.org>
Subject: RE: [PATCH 2/2] aer: add support aer interrupt with none MSI/MSI-X/INTx mode
Date: Tue, 7 Jun 2016 10:07:40 +0000 [thread overview]
Message-ID: <VI1PR0401MB17093077A7F0E3C52AC3392D925D0@VI1PR0401MB1709.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20160606181049.GA15171@localhost>
Hi Bjorn,
> -----Original Message-----
>
> On Mon, Jun 06, 2016 at 10:01:44AM -0400, Murali Karicheri wrote:
> > On 06/06/2016 03:32 AM, Po Liu wrote:
> > > Hi Bjorn,
> > > I confirm we met same problem with KeyStone base on DesignWare
> design.
> > >
> > >
> > > Best regards,
> > > Liu Po
> > >
> > >> -----Original Message-----
> > >> From: Bjorn Helgaas [mailto:helgaas@kernel.org]
> > >> Sent: Saturday, June 04, 2016 11:49 AM
> > >> To: Murali Karicheri
> > >> Cc: Po Liu; linux-pci@vger.kernel.org; linux-arm-
> > >> kernel@lists.infradead.org; linux-kernel@vger.kernel.org;
> > >> devicetree@vger.kernel.org; Arnd Bergmann; Roy Zang; Marc Zyngier;
> > >> Stuart Yoder; Yang-Leo Li; Minghuan Lian; Bjorn Helgaas; Shawn Guo;
> > >> Mingkai Hu; Rob Herring
> > >> Subject: Re: [PATCH 2/2] aer: add support aer interrupt with none
> > >> MSI/MSI-X/INTx mode
> > >>
> > >> On Fri, Jun 03, 2016 at 01:31:11PM -0400, Murali Karicheri wrote:
> > >> > Po,
> > >> >
> > >> > Sorry to hijack your discussion, but the problem seems to be
> > >> same for > Keystone PCI controller which is also designware (old
> version) based.
> > >> >
> > >> > On 06/03/2016 12:09 AM, Bjorn Helgaas wrote:
> > >> > > On Thu, Jun 02, 2016 at 11:37:28AM -0400, Murali Karicheri
> wrote:
> > >> > >> On 06/02/2016 09:55 AM, Bjorn Helgaas wrote:
> > >> > >>> On Thu, Jun 02, 2016 at 05:01:19AM +0000, Po Liu wrote:
> > >> > >>>>> -----Original Message----- > >>>>> From: Bjorn Helgaas
> > >> [mailto:helgaas@kernel.org] > >>>>> Sent: Thursday, June 02, 2016
> > >> 11:48 AM > >>>>> To: Po Liu > >>>>> Cc:
> > >> linux-pci@vger.kernel.org; > >>>>>
> > >> linux-arm-kernel@lists.infradead.org;
> > >> > >>>>> linux-kernel@vger.kernel.org; devicetree@vger.kernel.org;
> > >> Arnd > >>>>> Bergmann; Roy Zang; Marc Zyngier; Stuart Yoder;
> > >> Yang-Leo Li; > >>>>> Minghuan Lian; Bjorn Helgaas; Shawn Guo;
> > >> Mingkai Hu; Rob > >>>>> Herring > >>>>> Subject: Re: [PATCH 2/2]
> > >> aer: add support aer interrupt with > >>>>> none MSI/MSI-X/INTx
> > >> mode > >>>>> > >>>>> [+cc Rob] > >>>>> > >>>>> Hi Po, >
> > >> >>>>> > >>>>> On Thu, May 26, 2016 at 02:00:06PM +0800, Po Liu
> > >> wrote:
> > >> > >>>>> > On some platforms, root port doesn't support
> > >> MSI/MSI-X/INTx in RC mode.
> > >> > >>>>> > When chip support the aer interrupt with none
> > >> MSI/MSI-X/INTx > >>>>> mode, > maybe there is interrupt line for
> > >> aer pme etc. Search > >>>>> the interrupt > number in the fdt
> file.
> > >> > >>>>>
> > >> > >>>>> My understanding is that AER interrupt signaling can be
> > >> done > >>>>> via INTx, MSI, or MSI-X (PCIe spec r3.0, sec
> 6.2.4.1.2).
> > >> > >>>>> Apparently your device doesn't support MSI or MSI-X. Are
> > >> you > >>>>> saying it doesn't support INTx either? How is the
> > >> interrupt you're requesting here different from INTx?
> > >> > >>>>
> > >> > >>>> Layerscape use none of MSI or MSI-X or INTx to indicate the
> > >> > >>>> devices or root error in RC mode. But use an independent SPI
> > >> > >>>> interrupt(arm interrupt controller) line.
> > >> > >>>
> > >> > >>> The Root Port is a PCI device and should follow the normal
> > >> PCI > >>> rules for interrupts. As far as I understand, that
> > >> means it > >>> should use MSI, MSI-X, or INTx. If your Root Port
> > >> doesn't use MSI > >>> or MSI-X, it should use INTx, the
> > >> PCI_INTERRUPT_PIN register > >>> should tell us which (INTA/
> > >> INTB/etc.), and PCI_COMMAND_INTX_DISABLE should work to disable it.
> > >> > >>> That's all from the PCI point of view, of course.
> > >> > >>
> > >> > >> I am faced with the same issue on Keystone PCI hardware and
> > >> it has > >> been on my TODO list for quite some time. Keystone
> > >> PCI hardware > >> also doesn't use MSI or MSI-X or INTx for
> > >> reporting errors received > >> at the root port, but use a
> > >> platform interrupt instead (not > >> complaint to PCI standard as
> > >> per PCI base spec). So I would need > >> similar change to have
> > >> the error interrupt passed to the aer > >> driver. So there are
> > >> hardware out there like Keystone which requires to support this
> through platform IRQ.
> > >> > >
> > >> > > This is not a new area of the spec, and it's hard for me to
> > >> believe > > that these two new PCIe controllers are both broken
> > >> the same way > > (although I guess both are DesignWare-based, so
> > >> maybe this is the > > same underlying problem in both cases?). I
> > >> think it's more likely > > that we just haven't figured out the
> > >> right way to describe this in the DT.
> > >> >
> > >> > Keystone is using an older version of the designware IP and it
> > >> > implements all of the interrupts in the application register
> > >> space > unlike other newer version of the hardware. So I assume,
> > >> the version > used on Layerscape is also an older version and the
> > >> both have same > issue in terms of non standard platform interrupt
> > >> used for error reporting.
> > >> >
> > >> > > I assume you have a Root Port with an AER capability, no MSI
> > >> > > capability, and no MSI-X capability, right?
> > >> >
> > >> > Has AER capability and both MSI and INTx (legacy) capability >
> > >> > > What does its Interrupt > > Pin register contain? If it's
> > >> zero, it doesn't use INTx either, so > > according to the spec it
> > >> should generate no interrupts.
> > >> > >
> > >> > At address offset 0x3C by default has a value of 1, but it is
> > >> writable > by software. So default is INTx A.
> > >>
> > >> 0x3c is the Interrupt *Line*, which is read/write. The Interrupt
> > >> *Pin* is at 0x3d and should be read-only.
> > >>
> >
> > You are right. But default is 1 at this address.
> >
> > >> Does your Keystone driver support MSI? If so, since your Root
> > >> Port supports MSI, I would think we would use that by default, and
> > >> the INTx stuff wouldn't even matter.
> > >
> > > Layerscape is also shows "Both message signaled interrupts (MSI) and
> legacy INTx are supported."
> > > But both of them not work for AER interrupt when devices or root
> port report aer error.
> > > But another GIC interrupt line do.
> >
> > Same with Keystone. Even though both MSI and INTx are supported error
> > interrupt at root port is reported on a different interrupt line than
> > MSI/INTx. So for Power Management event interrupt is also different
> > line.
>
> I'm looking at the "Error Message Controls" diagram in the PCIe spec
> r3.0, sec 6.2.6. Does this hardware fit into the platform-specific
> "System Error" case there? Do the Root Control enable bits (in the PCIe
> Capability) control this interrupt? If so, maybe this makes more sense
> than I thought.
It supposedly not the "System Error" case. But "the Error Interrupt" case.
Which means " Root Error Command register " could control the interrupt
line we have now. (refer PCIe spec r3.0, sec 6.2.6)
May this kind of hardware design route broken the spec?
>
> We have to assume both notification paths work (the normal INTx/MSI/MSI-
> X AER interrupts as well as the platform-specific System Errors), so if
> we add support for System Errors, it should be structured so we prefer
> INTx/MSI/MSI-X, and only fall back to System Errors if they don't work.
> AER would have to know which path it's using so aer_enable_rootport()
> can disable the other one (currently it always disables System Errors).
>
> Then you'd have to add quirks to mark MSI/MSI-X/INTx as being broken on
> your devices to force the fallback to System Errors.
>
> How much would this screw up other PCIe services (PME, hotplug, VC, etc)?
> Does MSI work for them?
PME also like the AER. Hotplug is not supported. Others not known.
Po Liu
>
> Bjorn
next prev parent reply other threads:[~2016-06-07 10:23 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-26 6:00 [PATCH 2/2] aer: add support aer interrupt with none MSI/MSI-X/INTx mode Po Liu
2016-06-02 3:48 ` Bjorn Helgaas
2016-06-02 5:01 ` Po Liu
2016-06-02 13:55 ` Bjorn Helgaas
2016-06-02 15:37 ` Murali Karicheri
2016-06-03 4:09 ` Bjorn Helgaas
2016-06-03 17:31 ` Murali Karicheri
2016-06-04 3:48 ` Bjorn Helgaas
2016-06-06 7:32 ` Po Liu
2016-06-06 14:01 ` Murali Karicheri
2016-06-06 18:10 ` Bjorn Helgaas
2016-06-07 10:07 ` Po Liu [this message]
2016-06-07 22:46 ` Bjorn Helgaas
2016-06-08 4:56 ` Po Liu
2016-06-14 6:12 ` [PATCH v2 1/2] nxp/dts: add pcie aer interrupt-name property in the dts Po Liu
2016-06-14 6:12 ` [PATCH v2 2/2] pci/aer: interrupt fixup in the quirk Po Liu
2016-06-16 13:54 ` Bjorn Helgaas
2016-06-17 3:30 ` Po Liu
2016-07-01 8:46 ` Po Liu
2016-06-14 8:24 ` [PATCH v3 1/2] nxp/dts: add pcie aer interrupt-name property in the dts Po Liu
2016-06-14 8:24 ` [PATCH v3 2/2] pci/aer: interrupt fixup in the quirk Po Liu
2016-06-23 5:43 ` Dongdong Liu
2016-07-01 8:40 ` Po Liu
2016-07-04 8:44 ` Dongdong Liu
2016-07-05 3:03 ` Po Liu
2016-07-06 8:38 ` Dongdong Liu
2016-07-29 22:41 ` Bjorn Helgaas
2016-08-22 10:09 ` Po Liu
2016-09-20 20:47 ` Bjorn Helgaas
2016-09-21 6:51 ` Po Liu
2016-09-21 21:53 ` Bjorn Helgaas
2016-08-31 6:37 ` [PATCH v4 1/2] nxp/dts: add pcie aer interrupt-name property in the dts Po Liu
2016-08-31 6:37 ` [PATCH v4 2/2] pci:aer: add support aer interrupt with none MSI/MSI-X/INTx mode Po Liu
2016-09-02 15:17 ` Rob Herring
2016-09-05 6:05 ` Po Liu
2016-09-13 4:40 ` [PATCH v5 1/3] arm/dts: add pcie aer interrupt-name property in the dts Po Liu
2016-09-13 4:40 ` [PATCH v5 2/3] arm64/dts: " Po Liu
2016-09-13 4:40 ` [PATCH v5 3/3] pci:aer: add support aer interrupt with none MSI/MSI-X/INTx mode Po Liu
2016-09-18 0:52 ` Shawn Guo
2016-09-18 3:37 ` Po Liu
2016-09-20 12:39 ` Shawn Guo
2016-09-21 6:54 ` Po Liu
2016-09-30 22:13 ` Shawn Guo
2016-09-23 13:06 ` Rob Herring
2016-09-26 8:25 ` Po Liu
2016-09-21 22:37 ` Bjorn Helgaas
2016-09-22 2:53 ` Po Liu
2016-09-30 9:11 ` [PATCH v6 1/3] arm/dts-ls1021: add pcie aer/pme interrupt-name property in the dts Po Liu
2016-09-30 9:11 ` [PATCH v6 2/3] arm64/dts-ls1043-ls2080: " Po Liu
2016-09-30 9:11 ` [PATCH v6 3/3] pci:add support aer/pme interrupts with none MSI/MSI-X/INTx mode Po Liu
2016-10-08 20:49 ` Rob Herring
2016-10-09 2:47 ` Po Liu
2016-09-05 2:25 ` [PATCH v4 1/2] nxp/dts: add pcie aer interrupt-name property in the dts Shawn Guo
2016-09-12 22:13 ` Bjorn Helgaas
2016-09-13 3:02 ` Po Liu
2016-06-16 0:36 ` [PATCH v3 " Shawn Guo
2016-06-16 10:50 ` Po Liu
2016-06-16 22:19 ` Rob Herring
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=VI1PR0401MB17093077A7F0E3C52AC3392D925D0@VI1PR0401MB1709.eurprd04.prod.outlook.com \
--to=po.liu@nxp.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=devicetree@vger.kernel.org \
--cc=helgaas@kernel.org \
--cc=leoyang.li@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=m-karicheri2@ti.com \
--cc=marc.zyngier@arm.com \
--cc=minghuan.lian@nxp.com \
--cc=mingkai.hu@nxp.com \
--cc=robh@kernel.org \
--cc=roy.zang@nxp.com \
--cc=shawnguo@kernel.org \
--cc=stuart.yoder@nxp.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).