* [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q
@ 2026-07-16 21:40 Soeren Moch
2026-07-16 22:27 ` Bjorn Helgaas
0 siblings, 1 reply; 3+ messages in thread
From: Soeren Moch @ 2026-07-16 21:40 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Soeren Moch, stable, Richard Zhu, Frank Li, Manivannan Sadhasivam,
Lucas Stach, Fabio Estevam, linux-pci, linux-arm-kernel, imx,
linux-kernel
On the NXP i.MX6Q chipset MSIs from the endpoints won't be received by
the iMSI-RX MSI controller if the Root Port MSI capability is disabled.
Even though the Root Port MSIs won't be received by the iMSI-RX controller
due to design, this chipset has some weird hardware bug that prevents
the endpoint MSIs from reaching when the Root Port MSI capability is
disabled.
Hence, always keep the Root Port MSI capability for this chipset.
Note that by keeping Root Port MSI capability, Root Port MSIs such as AER,
PME and others won't be received by default. So users need to use
workarounds such as passing 'pcie_pme=nomsi' cmdline param.
Fixes: f5cd8a929c825 ("PCI: dwc: Remove MSI/MSIX capability for Root Port if iMSI-RX is used as MSI controller")
Cc: <stable@vger.kernel.org> # 7.0+
Signed-off-by: Soeren Moch <smoch@web.de>
Acked-by: Richard Zhu <hongxing.zhu@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
---
Cc: Manivannan Sadhasivam <mani@kernel.org>
Cc: Richard Zhu <hongxing.zhu@nxp.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Frank Li <Frank.Li@nxp.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: linux-pci@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: imx@lists.linux.dev
Cc: linux-kernel@vger.kernel.org
This patch is similar to
3a4e8302e72f ("PCI: imx6: Keep Root Port MSI capability with iMSI-RX to work around hardware bug")
Tested on a tbs2910 board [1]
[1] arch/arm/boot/dts/nxp/imx/imx6q-tbs2910.dts
changes in v2:
- collect a-b and r-b tags
- use correct fixes tag (Manivannan)
(reference commit that introduced the bug, not the incomplete fix)
Since this is a fix for a regression in linux-7.0+, can this still be merged for 7.2-rcS ?
---
drivers/pci/controller/dwc/pci-imx6.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 98e1db751132..8130cf93c2bb 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1995,7 +1995,8 @@ static const struct imx_pcie_drvdata drvdata[] = {
.flags = IMX_PCIE_FLAG_IMX_PHY |
IMX_PCIE_FLAG_SPEED_CHANGE_WORKAROUND |
IMX_PCIE_FLAG_BROKEN_SUSPEND |
- IMX_PCIE_FLAG_SUPPORTS_SUSPEND,
+ IMX_PCIE_FLAG_SUPPORTS_SUSPEND |
+ IMX_PCIE_FLAG_KEEP_MSI_CAP,
.dbi_length = 0x200,
.gpr = "fsl,imx6q-iomuxc-gpr",
.ltssm_off = IOMUXC_GPR12,
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q 2026-07-16 21:40 [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q Soeren Moch @ 2026-07-16 22:27 ` Bjorn Helgaas 2026-07-17 2:48 ` Hongxing Zhu 0 siblings, 1 reply; 3+ messages in thread From: Bjorn Helgaas @ 2026-07-16 22:27 UTC (permalink / raw) To: Soeren Moch Cc: Bjorn Helgaas, stable, Richard Zhu, Frank Li, Manivannan Sadhasivam, Lucas Stach, Fabio Estevam, linux-pci, linux-arm-kernel, imx, linux-kernel On Thu, Jul 16, 2026 at 11:40:54PM +0200, Soeren Moch wrote: > On the NXP i.MX6Q chipset MSIs from the endpoints won't be received by > the iMSI-RX MSI controller if the Root Port MSI capability is disabled. > > Even though the Root Port MSIs won't be received by the iMSI-RX controller > due to design, this chipset has some weird hardware bug that prevents > the endpoint MSIs from reaching when the Root Port MSI capability is > disabled. > > Hence, always keep the Root Port MSI capability for this chipset. > > Note that by keeping Root Port MSI capability, Root Port MSIs such as AER, > PME and others won't be received by default. So users need to use > workarounds such as passing 'pcie_pme=nomsi' cmdline param. I'd like to align the subject a little more with 3a4e8302e72f and avoid repeating the ".. from reaching when the Root Port MSI ..." part of the commit log, which seems to be missing a word. So I propose the following (if you think it's accurate): PCI: imx6: Keep i.MX6Q Root Port MSI capability with iMSI-RX to work around hardware bug On some NXP chipsets, disabling Root Port MSI/MSI-X Capabilities blocks MSIs originating from Endpoints from reaching the iMSI-RX controller. To address this hardware bug, 3a4e8302e72f ("PCI: imx6: Keep Root Port MSI capability with iMSI-RX to work around hardware bug") preserves Root Port MSI and MSI-X Capabilities on i.MX7D, i.MX8MM, and i.MX8MQ when iMSI-RX is in use. The same applies to i.MX6Q, so preserve Root Port MSI/MSI-X Capabilities there as well. Note that preserving these Capabilities means Root Port-originated MSIs such as AER and PME won't be received due to separate hardware limitations. Users may need to use workarounds such as passing the 'pcie_pme=nomsi' command-line parameter. Also, we need to resolve the Sashiko question about whether IMX6QP and IMX6SX also need this. NXP folks, can you verify? > Fixes: f5cd8a929c825 ("PCI: dwc: Remove MSI/MSIX capability for Root Port if iMSI-RX is used as MSI controller") > Cc: <stable@vger.kernel.org> # 7.0+ > Signed-off-by: Soeren Moch <smoch@web.de> > Acked-by: Richard Zhu <hongxing.zhu@nxp.com> > Reviewed-by: Frank Li <Frank.Li@nxp.com> > Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> > --- > Cc: Manivannan Sadhasivam <mani@kernel.org> > Cc: Richard Zhu <hongxing.zhu@nxp.com> > Cc: Lucas Stach <l.stach@pengutronix.de> > Cc: Bjorn Helgaas <bhelgaas@google.com> > Cc: Frank Li <Frank.Li@nxp.com> > Cc: Fabio Estevam <festevam@gmail.com> > Cc: linux-pci@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: imx@lists.linux.dev > Cc: linux-kernel@vger.kernel.org > > This patch is similar to > 3a4e8302e72f ("PCI: imx6: Keep Root Port MSI capability with iMSI-RX to work around hardware bug") > > Tested on a tbs2910 board [1] > [1] arch/arm/boot/dts/nxp/imx/imx6q-tbs2910.dts > > changes in v2: > - collect a-b and r-b tags > - use correct fixes tag (Manivannan) > (reference commit that introduced the bug, not the incomplete fix) > > Since this is a fix for a regression in linux-7.0+, can this still be merged for 7.2-rcS ? > --- > drivers/pci/controller/dwc/pci-imx6.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 98e1db751132..8130cf93c2bb 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -1995,7 +1995,8 @@ static const struct imx_pcie_drvdata drvdata[] = { > .flags = IMX_PCIE_FLAG_IMX_PHY | > IMX_PCIE_FLAG_SPEED_CHANGE_WORKAROUND | > IMX_PCIE_FLAG_BROKEN_SUSPEND | > - IMX_PCIE_FLAG_SUPPORTS_SUSPEND, > + IMX_PCIE_FLAG_SUPPORTS_SUSPEND | > + IMX_PCIE_FLAG_KEEP_MSI_CAP, > .dbi_length = 0x200, > .gpr = "fsl,imx6q-iomuxc-gpr", > .ltssm_off = IOMUXC_GPR12, > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q 2026-07-16 22:27 ` Bjorn Helgaas @ 2026-07-17 2:48 ` Hongxing Zhu 0 siblings, 0 replies; 3+ messages in thread From: Hongxing Zhu @ 2026-07-17 2:48 UTC (permalink / raw) To: Bjorn Helgaas, Soeren Moch Cc: Bjorn Helgaas, stable@vger.kernel.org, Frank Li, Manivannan Sadhasivam, Lucas Stach, Fabio Estevam, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org > -----Original Message----- > From: Bjorn Helgaas <helgaas@kernel.org> > Sent: Friday, July 17, 2026 6:27 AM > To: Soeren Moch <smoch@web.de> > Cc: Bjorn Helgaas <bhelgaas@google.com>; stable@vger.kernel.org; Hongxing > Zhu <hongxing.zhu@nxp.com>; Frank Li <frank.li@nxp.com>; Manivannan > Sadhasivam <mani@kernel.org>; Lucas Stach <l.stach@pengutronix.de>; Fabio > Estevam <festevam@gmail.com>; linux-pci@vger.kernel.org; linux-arm- > kernel@lists.infradead.org; imx@lists.linux.dev; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q > > On Thu, Jul 16, 2026 at 11:40:54PM +0200, Soeren Moch wrote: > > On the NXP i.MX6Q chipset MSIs from the endpoints won't be received by > > the iMSI-RX MSI controller if the Root Port MSI capability is disabled. > > > > Even though the Root Port MSIs won't be received by the iMSI-RX > > controller due to design, this chipset has some weird hardware bug > > that prevents the endpoint MSIs from reaching when the Root Port MSI > > capability is disabled. > > > > Hence, always keep the Root Port MSI capability for this chipset. > > > > Note that by keeping Root Port MSI capability, Root Port MSIs such as > > AER, PME and others won't be received by default. So users need to use > > workarounds such as passing 'pcie_pme=nomsi' cmdline param. > > I'd like to align the subject a little more with 3a4e8302e72f and avoid repeating > the ".. from reaching when the Root Port MSI ..." part of the commit log, which > seems to be missing a word. So I propose the following (if you think it's accurate): > > PCI: imx6: Keep i.MX6Q Root Port MSI capability with iMSI-RX to work around > hardware bug > > On some NXP chipsets, disabling Root Port MSI/MSI-X Capabilities blocks > MSIs originating from Endpoints from reaching the iMSI-RX controller. > > To address this hardware bug, 3a4e8302e72f ("PCI: imx6: Keep Root Port MSI > capability with iMSI-RX to work around hardware bug") preserves Root Port > MSI and MSI-X Capabilities on i.MX7D, i.MX8MM, and i.MX8MQ when iMSI-RX > is > in use. > > The same applies to i.MX6Q, so preserve Root Port MSI/MSI-X Capabilities > there as well. > > Note that preserving these Capabilities means Root Port-originated MSIs > such as AER and PME won't be received due to separate hardware limitations. > Users may need to use workarounds such as passing the 'pcie_pme=nomsi' > command-line parameter. > > Also, we need to resolve the Sashiko question about whether IMX6QP and > IMX6SX also need this. NXP folks, can you verify? Hi Bjorn: Thank you for the reminder. You are correct. I apologize for not covering these legacy platforms initially. I have now verified that i.MX6QP and i.MX6SX PCIe controllers have the same issue, so the fix should be applied to these platforms as well. Should I send a separate patch for i.MX6QP and i.MX6SX, or would you prefer that I extend this commit to cover all three variants in v3? Best Regards Richard Zhu > > > Fixes: f5cd8a929c825 ("PCI: dwc: Remove MSI/MSIX capability for Root > > Port if iMSI-RX is used as MSI controller") > > Cc: <stable@vger.kernel.org> # 7.0+ > > Signed-off-by: Soeren Moch <smoch@web.de> > > Acked-by: Richard Zhu <hongxing.zhu@nxp.com> > > Reviewed-by: Frank Li <Frank.Li@nxp.com> > > Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> > > --- > > Cc: Manivannan Sadhasivam <mani@kernel.org> > > Cc: Richard Zhu <hongxing.zhu@nxp.com> > > Cc: Lucas Stach <l.stach@pengutronix.de> > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > Cc: Frank Li <Frank.Li@nxp.com> > > Cc: Fabio Estevam <festevam@gmail.com> > > Cc: linux-pci@vger.kernel.org > > Cc: linux-arm-kernel@lists.infradead.org > > Cc: imx@lists.linux.dev > > Cc: linux-kernel@vger.kernel.org > > > > This patch is similar to > > 3a4e8302e72f ("PCI: imx6: Keep Root Port MSI capability with iMSI-RX > > to work around hardware bug") > > > > Tested on a tbs2910 board [1] > > [1] arch/arm/boot/dts/nxp/imx/imx6q-tbs2910.dts > > > > changes in v2: > > - collect a-b and r-b tags > > - use correct fixes tag (Manivannan) > > (reference commit that introduced the bug, not the incomplete fix) > > > > Since this is a fix for a regression in linux-7.0+, can this still be merged for 7.2- > rcS ? > > --- > > drivers/pci/controller/dwc/pci-imx6.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c > > b/drivers/pci/controller/dwc/pci-imx6.c > > index 98e1db751132..8130cf93c2bb 100644 > > --- a/drivers/pci/controller/dwc/pci-imx6.c > > +++ b/drivers/pci/controller/dwc/pci-imx6.c > > @@ -1995,7 +1995,8 @@ static const struct imx_pcie_drvdata drvdata[] = { > > .flags = IMX_PCIE_FLAG_IMX_PHY | > > IMX_PCIE_FLAG_SPEED_CHANGE_WORKAROUND | > > IMX_PCIE_FLAG_BROKEN_SUSPEND | > > - IMX_PCIE_FLAG_SUPPORTS_SUSPEND, > > + IMX_PCIE_FLAG_SUPPORTS_SUSPEND | > > + IMX_PCIE_FLAG_KEEP_MSI_CAP, > > .dbi_length = 0x200, > > .gpr = "fsl,imx6q-iomuxc-gpr", > > .ltssm_off = IOMUXC_GPR12, > > -- > > 2.43.0 > > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-17 2:48 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-16 21:40 [PATCH v2] PCI: imx6: Keep Root Port MSI capability also for i.MX6Q Soeren Moch 2026-07-16 22:27 ` Bjorn Helgaas 2026-07-17 2:48 ` Hongxing Zhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox