From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Eran Liberty <liberty@extricom.com>
Cc: Xianghua Xiao <x.xiao@freescale.com>,
linuxppc-dev@ozlabs.org, linux-pci@vger.kernel.org,
Tony Li <tony.li@freescale.com>,
Linas Vepstas <linas@austin.ibm.com>,
ZHANG WEI <wei.zhang@freescale.com>
Subject: Re: Freescale P2020 / 85xx PCIe and Advance Error Reporting (AER) service problem
Date: Mon, 11 Oct 2010 11:19:23 +1100 [thread overview]
Message-ID: <1286756363.2463.517.camel@pasglop> (raw)
In-Reply-To: <4CADBD7B.3000506@extricom.com>
> - pcie_portdrv_probe() will be called for every BRIDGE class PCI device. P2020 PCIe is a PCI-PCI BRIDGE class so no problem here.
> - The code will continue to check that we have PCI_CAP_ID_EXP capability, which we have and continue to pcie_port_device_register().
> - Now ,the function pcie_port_device_register() will FAIL. It will fail because it will call assign_interrupt_mode(), return with PCIE_PORT_NO_IRQ, and giveup with a reasonable remark in the code
> "/*
> * Don't use service devices that require interrupts if there is
> * no way to generate them.
> */"
>
> So now the question is why calling assign_interrupt_mode() with the P2020 PCIe ROOT device return empty? Well...
> - First assign_interrupt_mode() will test for PCIE_PORT_MSIX_MODE. Freescale PCIe does not support this...
> - Second attampt is made to discover PCIE_PORT_MSI_MODE, which Freescale should support but the PCIe PCI_CAP_ID_MSI capability is published on the device side of the bridge and NOT on the PCIe ROOT device, which is the one probed and thus fails.
> - Last it attempts to look at "dev->pin" in order to set PCIE_PORT_INTx_MODE. On top of being the less recommended way (the old way), The Freescale PCIE ROOT device pin is not set anywhere.
>
> Failing all those the probe fails and the AER service is not activated for the PCIE device.
So the question boils down to how does the bridge generate the AER
interrupts. This should be documented in the FSL docs no ? The MSI in
the child/device should be unrelated (it's your device MSI) no ? So the
question is where's the missing interrupt.
If it's a SoC interrupt, coming from the device-tree, then perhaps the
generic AER code should be extended to recognize those.
Cheers,
Ben.
next prev parent reply other threads:[~2010-10-11 0:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-07 12:30 Freescale P2020 / 85xx PCIe and Advance Error Reporting (AER) service problem Eran Liberty
2010-10-07 14:42 ` Kumar Gala
2010-10-10 10:02 ` Eran Liberty
2010-10-11 0:19 ` Benjamin Herrenschmidt [this message]
2010-10-11 10:21 ` Eran Liberty
2010-10-11 11:32 ` Benjamin Herrenschmidt
2010-10-17 19:24 ` Freescale P2020 CPU Freeze over PCIe abort signal Eran Liberty
2010-10-18 5:26 ` Bin Meng
2010-10-18 9:52 ` tiejun.chen
2010-10-18 11:44 ` Eran Liberty
2010-10-18 18:00 ` Eran Liberty
2010-10-19 16:53 ` Eran Liberty
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=1286756363.2463.517.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=liberty@extricom.com \
--cc=linas@austin.ibm.com \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=tony.li@freescale.com \
--cc=wei.zhang@freescale.com \
--cc=x.xiao@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).