From: Conor Dooley <conor@kernel.org>
To: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
Cc: Ron Economos <re@w6rz.net>,
bhelgaas@google.comk, rishna.chundru@oss.qualcomm.com,
mani@kernel.org, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: SiFive FU740 PCI driver fails on 6.18-rc1
Date: Mon, 13 Oct 2025 15:51:47 +0100 [thread overview]
Message-ID: <20251013-blatancy-husband-ed9872a46e25@spud> (raw)
In-Reply-To: <bc7f397c-1739-465e-b195-e1a41c34504d@oss.qualcomm.com>
[-- Attachment #1.1: Type: text/plain, Size: 3592 bytes --]
On Mon, Oct 13, 2025 at 01:49:39PM +0530, Krishna Chaitanya Chundru wrote:
>
>
> On 10/13/2025 12:44 PM, Ron Economos wrote:
> > The SiFive FU740 PCI driver fails on the HiFive Unmatched board with
> > Linux 6.18-rc1. The error message is:
> >
> > [ 3.166624] fu740-pcie e00000000.pcie: host bridge
> > /soc/pcie@e00000000 ranges:
> > [ 3.166706] fu740-pcie e00000000.pcie: IO
> > 0x0060080000..0x006008ffff -> 0x0060080000
> > [ 3.166767] fu740-pcie e00000000.pcie: MEM
> > 0x0060090000..0x007fffffff -> 0x0060090000
> > [ 3.166805] fu740-pcie e00000000.pcie: MEM
> > 0x2000000000..0x3fffffffff -> 0x2000000000
> > [ 3.166950] fu740-pcie e00000000.pcie: ECAM at [mem
> > 0xdf0000000-0xdffffffff] for [bus 00-ff]
> > [ 3.579500] fu740-pcie e00000000.pcie: No iATU regions found
> > [ 3.579552] fu740-pcie e00000000.pcie: Failed to configure iATU in
> > ECAM mode
> > [ 3.579655] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
> > failed with error -22
> >
> > The normal message (on Linux 6.17.2) is:
> >
> > [ 3.381487] fu740-pcie e00000000.pcie: host bridge
> > /soc/pcie@e00000000 ranges:
> > [ 3.381584] fu740-pcie e00000000.pcie: IO
> > 0x0060080000..0x006008ffff -> 0x0060080000
> > [ 3.381682] fu740-pcie e00000000.pcie: MEM
> > 0x0060090000..0x007fffffff -> 0x0060090000
> > [ 3.381724] fu740-pcie e00000000.pcie: MEM
> > 0x2000000000..0x3fffffffff -> 0x2000000000
> > [ 3.484809] fu740-pcie e00000000.pcie: iATU: unroll T, 8 ob, 8 ib,
> > align 4K, limit 4096G
> > [ 3.683678] fu740-pcie e00000000.pcie: PCIe Gen.1 x8 link up
> > [ 3.883674] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
> > [ 3.987678] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
> > [ 3.988164] fu740-pcie e00000000.pcie: PCI host bridge to bus 0000:00
> >
> > Reverting the following commits solves the issue.
> >
> > 0da48c5b2fa731b21bc523c82d927399a1e508b0 PCI: dwc: Support ECAM
> > mechanism by enabling iATU 'CFG Shift Feature'
> >
> > 4660e50cf81800f82eeecf743ad1e3e97ab72190 PCI: qcom: Prepare for the DWC
> > ECAM enablement
> >
> > f6fd357f7afbeb34a633e5688a23b9d7eb49d558 PCI: dwc: Prepare the driver
> > for enabling ECAM mechanism using iATU 'CFG Shift Feature'
> >
> Hi Ron,
>
> can you try with this change.
> Looks like fu740-pcie driver has 256MB space of config space so dwc
> driver is trying to enable ecam and seeing failures while enabling.
>
> you can try two options 1 is to enable ecam if your hardware supports
> it and other is to use native method like below.
> If you want to enable
> ecam your config space should start with dbi address and should have
> 256Mb aligned 256Mb memory of config space. Uf you want to enable ecam
> and had this memory requirement fulfilled, try to change your devicetree
> by starting config space with dbi start address and give it a try.
If it worked before your changes, but now does not, I am not going to
accept a dts change to make it work again FYI.
>
> diff --git a/drivers/pci/controller/dwc/pcie-fu740.c
> b/drivers/pci/controller/dwc/pcie-fu740.c
> index 66367252032b..b5e0f016a580 100644
> --- a/drivers/pci/controller/dwc/pcie-fu740.c
> +++ b/drivers/pci/controller/dwc/pcie-fu740.c
> @@ -328,6 +328,8 @@ static int fu740_pcie_probe(struct platform_device
> *pdev)
>
> platform_set_drvdata(pdev, afp);
>
> + pci->pp.native_ecam = true;
> +
> return dw_pcie_host_init(&pci->pp);
> }
>
> - Krishna Chaitanya.
> >
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 161 bytes --]
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-10-13 14:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-13 7:14 SiFive FU740 PCI driver fails on 6.18-rc1 Ron Economos
2025-10-13 8:19 ` Krishna Chaitanya Chundru
2025-10-13 14:51 ` Conor Dooley [this message]
2025-10-13 21:28 ` Bjorn Helgaas
2025-10-14 5:20 ` Krishna Chaitanya Chundru
2025-10-14 5:26 ` Ron Economos
2025-10-14 5:36 ` Krishna Chaitanya Chundru
2025-10-14 5:52 ` Ron Economos
2025-10-14 16:25 ` Manivannan Sadhasivam
2025-10-14 22:41 ` Ron Economos
2025-10-15 14:03 ` Manivannan Sadhasivam
2025-10-17 11:43 ` Krishna Chaitanya Chundru
2025-10-17 14:21 ` Ron Economos
2025-10-17 15:17 ` Manivannan Sadhasivam
2025-10-28 22:38 ` Bjorn Helgaas
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=20251013-blatancy-husband-ed9872a46e25@spud \
--to=conor@kernel.org \
--cc=bhelgaas@google.comk \
--cc=krishna.chundru@oss.qualcomm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mani@kernel.org \
--cc=re@w6rz.net \
--cc=rishna.chundru@oss.qualcomm.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