* SiFive FU740 PCI driver fails on 6.18-rc1
@ 2025-10-13 7:14 Ron Economos
2025-10-13 8:19 ` Krishna Chaitanya Chundru
2025-10-13 21:28 ` Bjorn Helgaas
0 siblings, 2 replies; 15+ messages in thread
From: Ron Economos @ 2025-10-13 7:14 UTC (permalink / raw)
To: bhelgaas, rishna.chundru, mani
Cc: helgass, linux-pci, linux-kernel, linux-riscv
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'
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
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
2025-10-13 21:28 ` Bjorn Helgaas
1 sibling, 1 reply; 15+ messages in thread
From: Krishna Chaitanya Chundru @ 2025-10-13 8:19 UTC (permalink / raw)
To: Ron Economos, bhelgaas, rishna.chundru, mani
Cc: helgass, linux-pci, linux-kernel, linux-riscv
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.
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.
>
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-13 8:19 ` Krishna Chaitanya Chundru
@ 2025-10-13 14:51 ` Conor Dooley
0 siblings, 0 replies; 15+ messages in thread
From: Conor Dooley @ 2025-10-13 14:51 UTC (permalink / raw)
To: Krishna Chaitanya Chundru
Cc: Ron Economos, bhelgaas, rishna.chundru, mani, linux-pci,
linux-kernel, linux-riscv
[-- Attachment #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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
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 21:28 ` Bjorn Helgaas
2025-10-14 5:20 ` Krishna Chaitanya Chundru
1 sibling, 1 reply; 15+ messages in thread
From: Bjorn Helgaas @ 2025-10-13 21:28 UTC (permalink / raw)
To: Ron Economos
Cc: bhelgaas, rishna.chundru, mani, helgaas, linux-pci, linux-kernel,
linux-riscv, Paul Walmsley, Greentime Hu, Samuel Holland,
Conor Dooley, regressions
[+cc FU740 driver folks, Conor, regressions]
On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
As Conor pointed out, we can't fix a code regression with a DT change.
#regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the driver for enabling ECAM mechanism using iATU 'CFG Shift Feature'")
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-13 21:28 ` Bjorn Helgaas
@ 2025-10-14 5:20 ` Krishna Chaitanya Chundru
2025-10-14 5:26 ` Ron Economos
0 siblings, 1 reply; 15+ messages in thread
From: Krishna Chaitanya Chundru @ 2025-10-14 5:20 UTC (permalink / raw)
To: Bjorn Helgaas, Ron Economos, Conor Dooley
Cc: bhelgaas, rishna.chundru, mani, linux-pci, linux-kernel,
linux-riscv, Paul Walmsley, Greentime Hu, Samuel Holland,
regressions
On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
> [+cc FU740 driver folks, Conor, regressions]
>
> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>
> As Conor pointed out, we can't fix a code regression with a DT change.
>
> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the driver for enabling ECAM mechanism using iATU 'CFG Shift Feature'")
Hi Conor,
Can you try with this patch and see if it is fixing the issue.
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.
>
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 5:20 ` Krishna Chaitanya Chundru
@ 2025-10-14 5:26 ` Ron Economos
2025-10-14 5:36 ` Krishna Chaitanya Chundru
0 siblings, 1 reply; 15+ messages in thread
From: Ron Economos @ 2025-10-14 5:26 UTC (permalink / raw)
To: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley
Cc: bhelgaas, mani, linux-pci, linux-kernel, linux-riscv,
Paul Walmsley, Greentime Hu, Samuel Holland, regressions
On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>
>
> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>> [+cc FU740 driver folks, Conor, regressions]
>>
>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>
>> As Conor pointed out, we can't fix a code regression with a DT change.
>>
>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the driver for
>> enabling ECAM mechanism using iATU 'CFG Shift Feature'")
> Hi Conor,
>
> Can you try with this patch and see if it is fixing the issue.
> 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.
>
>>
I've already tried it. It doesn't work. Same error message as before.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 5:26 ` Ron Economos
@ 2025-10-14 5:36 ` Krishna Chaitanya Chundru
2025-10-14 5:52 ` Ron Economos
0 siblings, 1 reply; 15+ messages in thread
From: Krishna Chaitanya Chundru @ 2025-10-14 5:36 UTC (permalink / raw)
To: Ron Economos, Bjorn Helgaas, Conor Dooley
Cc: bhelgaas, mani, linux-pci, linux-kernel, linux-riscv,
Paul Walmsley, Greentime Hu, Samuel Holland, regressions
On 10/14/2025 10:56 AM, Ron Economos wrote:
> On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>>
>>
>> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>>> [+cc FU740 driver folks, Conor, regressions]
>>>
>>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>>
>>> As Conor pointed out, we can't fix a code regression with a DT change.
>>>
>>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the driver for
>>> enabling ECAM mechanism using iATU 'CFG Shift Feature'")
>> Hi Conor,
>>
>> Can you try with this patch and see if it is fixing the issue.
>> 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.
>>
>>>
> I've already tried it. It doesn't work. Same error message as before.
Can you share us dmesg logs for this change.
- Krishna Chaitanya.
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 5:36 ` Krishna Chaitanya Chundru
@ 2025-10-14 5:52 ` Ron Economos
2025-10-14 16:25 ` Manivannan Sadhasivam
0 siblings, 1 reply; 15+ messages in thread
From: Ron Economos @ 2025-10-14 5:52 UTC (permalink / raw)
To: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley
Cc: bhelgaas, mani, linux-pci, linux-kernel, linux-riscv,
Paul Walmsley, Greentime Hu, Samuel Holland, regressions
On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
>
>
> On 10/14/2025 10:56 AM, Ron Economos wrote:
>> On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>>>
>>>
>>> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>>>> [+cc FU740 driver folks, Conor, regressions]
>>>>
>>>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>>>
>>>> As Conor pointed out, we can't fix a code regression with a DT change.
>>>>
>>>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the driver
>>>> for enabling ECAM mechanism using iATU 'CFG Shift Feature'")
>>> Hi Conor,
>>>
>>> Can you try with this patch and see if it is fixing the issue.
>>> 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.
>>>
>>>>
>> I've already tried it. It doesn't work. Same error message as before.
> Can you share us dmesg logs for this change.
>
> - Krishna Chaitanya.
>>
[ 3.159763] fu740-pcie e00000000.pcie: host bridge
/soc/pcie@e00000000 ranges:
[ 3.159853] fu740-pcie e00000000.pcie: IO
0x0060080000..0x006008ffff -> 0x0060080000
[ 3.159916] fu740-pcie e00000000.pcie: MEM
0x0060090000..0x007fffffff -> 0x0060090000
[ 3.159953] fu740-pcie e00000000.pcie: MEM
0x2000000000..0x3fffffffff -> 0x2000000000
[ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
0xdf0000000-0xdffffffff] for [bus 00-ff]
[ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
[ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU in
ECAM mode
[ 3.571529] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
failed with error -22
Same as before the change. The entire log is here:
https://www.w6rz.net/dmesg.txt
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 5:52 ` Ron Economos
@ 2025-10-14 16:25 ` Manivannan Sadhasivam
2025-10-14 22:41 ` Ron Economos
0 siblings, 1 reply; 15+ messages in thread
From: Manivannan Sadhasivam @ 2025-10-14 16:25 UTC (permalink / raw)
To: Ron Economos
Cc: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley, bhelgaas,
linux-pci, linux-kernel, linux-riscv, Paul Walmsley, Greentime Hu,
Samuel Holland, regressions
On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
> On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
> >
> >
> > On 10/14/2025 10:56 AM, Ron Economos wrote:
> > > On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
> > > >
> > > >
> > > > On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
> > > > > [+cc FU740 driver folks, Conor, regressions]
> > > > >
> > > > > On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
> > > > >
> > > > > As Conor pointed out, we can't fix a code regression with a DT change.
> > > > >
> > > > > #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the
> > > > > driver for enabling ECAM mechanism using iATU 'CFG Shift
> > > > > Feature'")
> > > > Hi Conor,
> > > >
> > > > Can you try with this patch and see if it is fixing the issue.
> > > > 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.
> > > >
> > > > >
> > > I've already tried it. It doesn't work. Same error message as before.
> > Can you share us dmesg logs for this change.
> >
> > - Krishna Chaitanya.
> > >
> [ 3.159763] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000
> ranges:
> [ 3.159853] fu740-pcie e00000000.pcie: IO
> 0x0060080000..0x006008ffff -> 0x0060080000
> [ 3.159916] fu740-pcie e00000000.pcie: MEM
> 0x0060090000..0x007fffffff -> 0x0060090000
> [ 3.159953] fu740-pcie e00000000.pcie: MEM
> 0x2000000000..0x3fffffffff -> 0x2000000000
> [ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
> 0xdf0000000-0xdffffffff] for [bus 00-ff]
> [ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
> [ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU in ECAM
> mode
> [ 3.571529] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
> failed with error -22
>
> Same as before the change. The entire log is here:
>
> https://www.w6rz.net/dmesg.txt
>
Weird that the driver still creates ECAM even after skipping it using the flag.
The flag is not meant for that purpose, but it should've worked anyway.
Can you try this diff and share the dmesg log?
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 20c9333bcb1c..58080928df9f 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -523,8 +523,12 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
pp->cfg0_size = resource_size(res);
pp->cfg0_base = res->start;
+ dev_info(dev, "%s: %d native_ecam: %d", __func__, __LINE__,
+pp->native_ecam);
+
pp->ecam_enabled = dw_pcie_ecam_enabled(pp, res);
if (pp->ecam_enabled) {
+ dev_info(dev, "%s: %d ECAM ENABLED", __func__, __LINE__);
ret = dw_pcie_create_ecam_window(pp, res);
if (ret)
return ret;
@@ -533,6 +537,7 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
pp->bridge->sysdata = pp->cfg;
pp->cfg->priv = pp;
} else {
+ dev_info(dev, "%s: %d ECAM DISABLED", __func__, __LINE__);
pp->va_cfg0_base = devm_pci_remap_cfg_resource(dev, res);
if (IS_ERR(pp->va_cfg0_base))
return PTR_ERR(pp->va_cfg0_base);
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 16:25 ` Manivannan Sadhasivam
@ 2025-10-14 22:41 ` Ron Economos
2025-10-15 14:03 ` Manivannan Sadhasivam
0 siblings, 1 reply; 15+ messages in thread
From: Ron Economos @ 2025-10-14 22:41 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley, bhelgaas,
linux-pci, linux-kernel, linux-riscv, Paul Walmsley, Greentime Hu,
Samuel Holland, regressions
On 10/14/25 09:25, Manivannan Sadhasivam wrote:
> On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
>> On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
>>>
>>> On 10/14/2025 10:56 AM, Ron Economos wrote:
>>>> On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>>>>>
>>>>> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>>>>>> [+cc FU740 driver folks, Conor, regressions]
>>>>>>
>>>>>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>>>>> As Conor pointed out, we can't fix a code regression with a DT change.
>>>>>>
>>>>>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the
>>>>>> driver for enabling ECAM mechanism using iATU 'CFG Shift
>>>>>> Feature'")
>>>>> Hi Conor,
>>>>>
>>>>> Can you try with this patch and see if it is fixing the issue.
>>>>> 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.
>>>>>
>>>> I've already tried it. It doesn't work. Same error message as before.
>>> Can you share us dmesg logs for this change.
>>>
>>> - Krishna Chaitanya.
>> [ 3.159763] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000
>> ranges:
>> [ 3.159853] fu740-pcie e00000000.pcie: IO
>> 0x0060080000..0x006008ffff -> 0x0060080000
>> [ 3.159916] fu740-pcie e00000000.pcie: MEM
>> 0x0060090000..0x007fffffff -> 0x0060090000
>> [ 3.159953] fu740-pcie e00000000.pcie: MEM
>> 0x2000000000..0x3fffffffff -> 0x2000000000
>> [ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
>> 0xdf0000000-0xdffffffff] for [bus 00-ff]
>> [ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
>> [ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU in ECAM
>> mode
>> [ 3.571529] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
>> failed with error -22
>>
>> Same as before the change. The entire log is here:
>>
>> https://www.w6rz.net/dmesg.txt
>>
> Weird that the driver still creates ECAM even after skipping it using the flag.
> The flag is not meant for that purpose, but it should've worked anyway.
>
> Can you try this diff and share the dmesg log?
>
> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
> index 20c9333bcb1c..58080928df9f 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> @@ -523,8 +523,12 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
> pp->cfg0_size = resource_size(res);
> pp->cfg0_base = res->start;
>
> + dev_info(dev, "%s: %d native_ecam: %d", __func__, __LINE__,
> +pp->native_ecam);
> +
> pp->ecam_enabled = dw_pcie_ecam_enabled(pp, res);
> if (pp->ecam_enabled) {
> + dev_info(dev, "%s: %d ECAM ENABLED", __func__, __LINE__);
> ret = dw_pcie_create_ecam_window(pp, res);
> if (ret)
> return ret;
> @@ -533,6 +537,7 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
> pp->bridge->sysdata = pp->cfg;
> pp->cfg->priv = pp;
> } else {
> + dev_info(dev, "%s: %d ECAM DISABLED", __func__, __LINE__);
> pp->va_cfg0_base = devm_pci_remap_cfg_resource(dev, res);
> if (IS_ERR(pp->va_cfg0_base))
> return PTR_ERR(pp->va_cfg0_base);
>
> - Mani
>
After testing with this patch, I must have transferred the wrong image
to the target when testing before. The "pci->pp.native_ecam = true;"
patch to pcie-fu740.c does work. Here's the message with the debug prints:
[ 3.227746] fu740-pcie e00000000.pcie: host bridge
/soc/pcie@e00000000 ranges:
[ 3.227833] fu740-pcie e00000000.pcie: IO
0x0060080000..0x006008ffff -> 0x0060080000
[ 3.227896] fu740-pcie e00000000.pcie: MEM
0x0060090000..0x007fffffff -> 0x0060090000
[ 3.227934] fu740-pcie e00000000.pcie: MEM
0x2000000000..0x3fffffffff -> 0x2000000000
[ 3.227993] fu740-pcie e00000000.pcie: dw_pcie_host_get_resources:
526 native_ecam: 1
[ 3.228019] fu740-pcie e00000000.pcie: dw_pcie_host_get_resources:
539 ECAM DISABLED
[ 3.331449] fu740-pcie e00000000.pcie: iATU: unroll T, 8 ob, 8 ib,
align 4K, limit 4096G
[ 3.531131] fu740-pcie e00000000.pcie: PCIe Gen.1 x8 link up
[ 3.731132] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
[ 3.835131] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
[ 3.835465] fu740-pcie e00000000.pcie: PCI host bridge to bus 0000:00
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-14 22:41 ` Ron Economos
@ 2025-10-15 14:03 ` Manivannan Sadhasivam
2025-10-17 11:43 ` Krishna Chaitanya Chundru
0 siblings, 1 reply; 15+ messages in thread
From: Manivannan Sadhasivam @ 2025-10-15 14:03 UTC (permalink / raw)
To: Ron Economos
Cc: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley, bhelgaas,
linux-pci, linux-kernel, linux-riscv, Paul Walmsley, Greentime Hu,
Samuel Holland, regressions
On Tue, Oct 14, 2025 at 03:41:39PM -0700, Ron Economos wrote:
> On 10/14/25 09:25, Manivannan Sadhasivam wrote:
> > On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
> > > On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
> > > >
> > > > On 10/14/2025 10:56 AM, Ron Economos wrote:
> > > > > On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
> > > > > >
> > > > > > On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
> > > > > > > [+cc FU740 driver folks, Conor, regressions]
> > > > > > >
> > > > > > > On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
> > > > > > > As Conor pointed out, we can't fix a code regression with a DT change.
> > > > > > >
> > > > > > > #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the
> > > > > > > driver for enabling ECAM mechanism using iATU 'CFG Shift
> > > > > > > Feature'")
> > > > > > Hi Conor,
> > > > > >
> > > > > > Can you try with this patch and see if it is fixing the issue.
> > > > > > 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.
> > > > > >
> > > > > I've already tried it. It doesn't work. Same error message as before.
> > > > Can you share us dmesg logs for this change.
> > > >
> > > > - Krishna Chaitanya.
> > > [ 3.159763] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000
> > > ranges:
> > > [ 3.159853] fu740-pcie e00000000.pcie: IO
> > > 0x0060080000..0x006008ffff -> 0x0060080000
> > > [ 3.159916] fu740-pcie e00000000.pcie: MEM
> > > 0x0060090000..0x007fffffff -> 0x0060090000
> > > [ 3.159953] fu740-pcie e00000000.pcie: MEM
> > > 0x2000000000..0x3fffffffff -> 0x2000000000
> > > [ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
> > > 0xdf0000000-0xdffffffff] for [bus 00-ff]
> > > [ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
> > > [ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU in ECAM
> > > mode
> > > [ 3.571529] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
> > > failed with error -22
> > >
> > > Same as before the change. The entire log is here:
> > >
> > > https://www.w6rz.net/dmesg.txt
> > >
> > Weird that the driver still creates ECAM even after skipping it using the flag.
> > The flag is not meant for that purpose, but it should've worked anyway.
> >
> > Can you try this diff and share the dmesg log?
> >
> > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
> > index 20c9333bcb1c..58080928df9f 100644
> > --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> > @@ -523,8 +523,12 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
> > pp->cfg0_size = resource_size(res);
> > pp->cfg0_base = res->start;
> >
> > + dev_info(dev, "%s: %d native_ecam: %d", __func__, __LINE__,
> > +pp->native_ecam);
> > +
> > pp->ecam_enabled = dw_pcie_ecam_enabled(pp, res);
> > if (pp->ecam_enabled) {
> > + dev_info(dev, "%s: %d ECAM ENABLED", __func__, __LINE__);
> > ret = dw_pcie_create_ecam_window(pp, res);
> > if (ret)
> > return ret;
> > @@ -533,6 +537,7 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
> > pp->bridge->sysdata = pp->cfg;
> > pp->cfg->priv = pp;
> > } else {
> > + dev_info(dev, "%s: %d ECAM DISABLED", __func__, __LINE__);
> > pp->va_cfg0_base = devm_pci_remap_cfg_resource(dev, res);
> > if (IS_ERR(pp->va_cfg0_base))
> > return PTR_ERR(pp->va_cfg0_base);
> >
> > - Mani
> >
> After testing with this patch, I must have transferred the wrong image to
> the target when testing before. The "pci->pp.native_ecam = true;" patch to
> pcie-fu740.c does work.
Thanks! However, it was not a proper fix. The issue seems to be due the
assumption that the whole DBI space (Root Port + misc registers) lies at the
start of the ECAM region. This is true for Qcom, but not for all DWC glue
platforms.
Krishna is working on a patch that decouples the DBI region from ECAM so that
the driver will continue using DBI for accessing Root Port config space and ECAM
for bus > 0.
This is one step backwards for ECAM since the driver is supposed to use ECAM for
accessing all devices starting from the Root Port. But since DWC has clubbed
non-Root Port specific registers in the DBI space, we have to live with this
limitation as ECAM is supposed to access only Root Port specific registers.
The patch will be posted after internal validation asap.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-15 14:03 ` Manivannan Sadhasivam
@ 2025-10-17 11:43 ` Krishna Chaitanya Chundru
2025-10-17 14:21 ` Ron Economos
0 siblings, 1 reply; 15+ messages in thread
From: Krishna Chaitanya Chundru @ 2025-10-17 11:43 UTC (permalink / raw)
To: Manivannan Sadhasivam, Ron Economos
Cc: Bjorn Helgaas, Conor Dooley, bhelgaas, linux-pci, linux-kernel,
linux-riscv, Paul Walmsley, Greentime Hu, Samuel Holland,
regressions
On 10/15/2025 7:33 PM, Manivannan Sadhasivam wrote:
> On Tue, Oct 14, 2025 at 03:41:39PM -0700, Ron Economos wrote:
>> On 10/14/25 09:25, Manivannan Sadhasivam wrote:
>>> On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
>>>> On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
>>>>>
>>>>> On 10/14/2025 10:56 AM, Ron Economos wrote:
>>>>>> On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>>>>>>>
>>>>>>> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>>>>>>>> [+cc FU740 driver folks, Conor, regressions]
>>>>>>>>
>>>>>>>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>>>>>>> As Conor pointed out, we can't fix a code regression with a DT change.
>>>>>>>>
>>>>>>>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the
>>>>>>>> driver for enabling ECAM mechanism using iATU 'CFG Shift
>>>>>>>> Feature'")
>>>>>>> Hi Conor,
>>>>>>>
>>>>>>> Can you try with this patch and see if it is fixing the issue.
>>>>>>> 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.
>>>>>>>
>>>>>> I've already tried it. It doesn't work. Same error message as before.
>>>>> Can you share us dmesg logs for this change.
>>>>>
>>>>> - Krishna Chaitanya.
>>>> [ 3.159763] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000
>>>> ranges:
>>>> [ 3.159853] fu740-pcie e00000000.pcie: IO
>>>> 0x0060080000..0x006008ffff -> 0x0060080000
>>>> [ 3.159916] fu740-pcie e00000000.pcie: MEM
>>>> 0x0060090000..0x007fffffff -> 0x0060090000
>>>> [ 3.159953] fu740-pcie e00000000.pcie: MEM
>>>> 0x2000000000..0x3fffffffff -> 0x2000000000
>>>> [ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
>>>> 0xdf0000000-0xdffffffff] for [bus 00-ff]
>>>> [ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
>>>> [ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU in ECAM
>>>> mode
>>>> [ 3.571529] fu740-pcie e00000000.pcie: probe with driver fu740-pcie
>>>> failed with error -22
>>>>
>>>> Same as before the change. The entire log is here:
>>>>
>>>> https://www.w6rz.net/dmesg.txt
>>>>
>>> Weird that the driver still creates ECAM even after skipping it using the flag.
>>> The flag is not meant for that purpose, but it should've worked anyway.
>>>
>>> Can you try this diff and share the dmesg log?
>>>
>>> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
>>> index 20c9333bcb1c..58080928df9f 100644
>>> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
>>> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
>>> @@ -523,8 +523,12 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
>>> pp->cfg0_size = resource_size(res);
>>> pp->cfg0_base = res->start;
>>>
>>> + dev_info(dev, "%s: %d native_ecam: %d", __func__, __LINE__,
>>> +pp->native_ecam);
>>> +
>>> pp->ecam_enabled = dw_pcie_ecam_enabled(pp, res);
>>> if (pp->ecam_enabled) {
>>> + dev_info(dev, "%s: %d ECAM ENABLED", __func__, __LINE__);
>>> ret = dw_pcie_create_ecam_window(pp, res);
>>> if (ret)
>>> return ret;
>>> @@ -533,6 +537,7 @@ static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp)
>>> pp->bridge->sysdata = pp->cfg;
>>> pp->cfg->priv = pp;
>>> } else {
>>> + dev_info(dev, "%s: %d ECAM DISABLED", __func__, __LINE__);
>>> pp->va_cfg0_base = devm_pci_remap_cfg_resource(dev, res);
>>> if (IS_ERR(pp->va_cfg0_base))
>>> return PTR_ERR(pp->va_cfg0_base);
>>>
>>> - Mani
>>>
>> After testing with this patch, I must have transferred the wrong image to
>> the target when testing before. The "pci->pp.native_ecam = true;" patch to
>> pcie-fu740.c does work.
>
> Thanks! However, it was not a proper fix. The issue seems to be due the
> assumption that the whole DBI space (Root Port + misc registers) lies at the
> start of the ECAM region. This is true for Qcom, but not for all DWC glue
> platforms.
>
> Krishna is working on a patch that decouples the DBI region from ECAM so that
> the driver will continue using DBI for accessing Root Port config space and ECAM
> for bus > 0.
>
> This is one step backwards for ECAM since the driver is supposed to use ECAM for
> accessing all devices starting from the Root Port. But since DWC has clubbed
> non-Root Port specific registers in the DBI space, we have to live with this
> limitation as ECAM is supposed to access only Root Port specific registers.
>
> The patch will be posted after internal validation asap.
>
Hi Ron,
Can you try with this series and let us know if it is helping you or
not.
https://lore.kernel.org/all/20251017-ecam_fix-v1-0-f6faa3d0edf3@oss.qualcomm.com/
- Krishna Chaitanya.
> - Mani
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
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
0 siblings, 2 replies; 15+ messages in thread
From: Ron Economos @ 2025-10-17 14:21 UTC (permalink / raw)
To: Krishna Chaitanya Chundru, Manivannan Sadhasivam
Cc: Bjorn Helgaas, Conor Dooley, bhelgaas, linux-pci, linux-kernel,
linux-riscv, Paul Walmsley, Greentime Hu, Samuel Holland,
regressions
On 10/17/25 04:43, Krishna Chaitanya Chundru wrote:
>
>
> On 10/15/2025 7:33 PM, Manivannan Sadhasivam wrote:
>> On Tue, Oct 14, 2025 at 03:41:39PM -0700, Ron Economos wrote:
>>> On 10/14/25 09:25, Manivannan Sadhasivam wrote:
>>>> On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
>>>>> On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
>>>>>>
>>>>>> On 10/14/2025 10:56 AM, Ron Economos wrote:
>>>>>>> On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
>>>>>>>>
>>>>>>>> On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
>>>>>>>>> [+cc FU740 driver folks, Conor, regressions]
>>>>>>>>>
>>>>>>>>> On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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'
>>>>>>>>> As Conor pointed out, we can't fix a code regression with a DT
>>>>>>>>> change.
>>>>>>>>>
>>>>>>>>> #regzbot introduced: f6fd357f7afb ("PCI: dwc: Prepare the
>>>>>>>>> driver for enabling ECAM mechanism using iATU 'CFG Shift
>>>>>>>>> Feature'")
>>>>>>>> Hi Conor,
>>>>>>>>
>>>>>>>> Can you try with this patch and see if it is fixing the issue.
>>>>>>>> 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.
>>>>>>>>
>>>>>>> I've already tried it. It doesn't work. Same error message as
>>>>>>> before.
>>>>>> Can you share us dmesg logs for this change.
>>>>>>
>>>>>> - Krishna Chaitanya.
>>>>> [ 3.159763] fu740-pcie e00000000.pcie: host bridge
>>>>> /soc/pcie@e00000000
>>>>> ranges:
>>>>> [ 3.159853] fu740-pcie e00000000.pcie: IO
>>>>> 0x0060080000..0x006008ffff -> 0x0060080000
>>>>> [ 3.159916] fu740-pcie e00000000.pcie: MEM
>>>>> 0x0060090000..0x007fffffff -> 0x0060090000
>>>>> [ 3.159953] fu740-pcie e00000000.pcie: MEM
>>>>> 0x2000000000..0x3fffffffff -> 0x2000000000
>>>>> [ 3.160039] fu740-pcie e00000000.pcie: ECAM at [mem
>>>>> 0xdf0000000-0xdffffffff] for [bus 00-ff]
>>>>> [ 3.571421] fu740-pcie e00000000.pcie: No iATU regions found
>>>>> [ 3.571472] fu740-pcie e00000000.pcie: Failed to configure iATU
>>>>> in ECAM
>>>>> mode
>>>>> [ 3.571529] fu740-pcie e00000000.pcie: probe with driver
>>>>> fu740-pcie
>>>>> failed with error -22
>>>>>
>>>>> Same as before the change. The entire log is here:
>>>>>
>>>>> https://www.w6rz.net/dmesg.txt
>>>>>
>>>> Weird that the driver still creates ECAM even after skipping it
>>>> using the flag.
>>>> The flag is not meant for that purpose, but it should've worked
>>>> anyway.
>>>>
>>>> Can you try this diff and share the dmesg log?
>>>>
>>>> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c
>>>> b/drivers/pci/controller/dwc/pcie-designware-host.c
>>>> index 20c9333bcb1c..58080928df9f 100644
>>>> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
>>>> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
>>>> @@ -523,8 +523,12 @@ static int dw_pcie_host_get_resources(struct
>>>> dw_pcie_rp *pp)
>>>> pp->cfg0_size = resource_size(res);
>>>> pp->cfg0_base = res->start;
>>>>
>>>> + dev_info(dev, "%s: %d native_ecam: %d", __func__, __LINE__,
>>>> +pp->native_ecam);
>>>> +
>>>> pp->ecam_enabled = dw_pcie_ecam_enabled(pp, res);
>>>> if (pp->ecam_enabled) {
>>>> + dev_info(dev, "%s: %d ECAM ENABLED", __func__,
>>>> __LINE__);
>>>> ret = dw_pcie_create_ecam_window(pp, res);
>>>> if (ret)
>>>> return ret;
>>>> @@ -533,6 +537,7 @@ static int dw_pcie_host_get_resources(struct
>>>> dw_pcie_rp *pp)
>>>> pp->bridge->sysdata = pp->cfg;
>>>> pp->cfg->priv = pp;
>>>> } else {
>>>> + dev_info(dev, "%s: %d ECAM DISABLED", __func__,
>>>> __LINE__);
>>>> pp->va_cfg0_base =
>>>> devm_pci_remap_cfg_resource(dev, res);
>>>> if (IS_ERR(pp->va_cfg0_base))
>>>> return PTR_ERR(pp->va_cfg0_base);
>>>>
>>>> - Mani
>>>>
>>> After testing with this patch, I must have transferred the wrong
>>> image to
>>> the target when testing before. The "pci->pp.native_ecam = true;"
>>> patch to
>>> pcie-fu740.c does work.
>>
>> Thanks! However, it was not a proper fix. The issue seems to be due the
>> assumption that the whole DBI space (Root Port + misc registers) lies
>> at the
>> start of the ECAM region. This is true for Qcom, but not for all DWC
>> glue
>> platforms.
>>
>> Krishna is working on a patch that decouples the DBI region from ECAM
>> so that
>> the driver will continue using DBI for accessing Root Port config
>> space and ECAM
>> for bus > 0.
>>
>> This is one step backwards for ECAM since the driver is supposed to
>> use ECAM for
>> accessing all devices starting from the Root Port. But since DWC has
>> clubbed
>> non-Root Port specific registers in the DBI space, we have to live
>> with this
>> limitation as ECAM is supposed to access only Root Port specific
>> registers.
>>
>> The patch will be posted after internal validation asap.
>>
> Hi Ron,
>
> Can you try with this series and let us know if it is helping you or
> not.
>
> https://lore.kernel.org/all/20251017-ecam_fix-v1-0-f6faa3d0edf3@oss.qualcomm.com/
>
>
> - Krishna Chaitanya.
The patch works good. Here's the log of PCI messages.
[ 3.221506] fu740-pcie e00000000.pcie: host bridge
/soc/pcie@e00000000 ranges:
[ 3.221594] fu740-pcie e00000000.pcie: IO
0x0060080000..0x006008ffff -> 0x0060080000
[ 3.221658] fu740-pcie e00000000.pcie: MEM
0x0060090000..0x007fffffff -> 0x0060090000
[ 3.221696] fu740-pcie e00000000.pcie: MEM
0x2000000000..0x3fffffffff -> 0x2000000000
[ 3.221783] fu740-pcie e00000000.pcie: ECAM at [mem
0xdf0000000-0xdffffffff] for [bus 00-ff]
[ 3.323453] fu740-pcie e00000000.pcie: iATU: unroll T, 8 ob, 8 ib,
align 4K, limit 4096G
[ 3.523137] fu740-pcie e00000000.pcie: PCIe Gen.1 x8 link up
[ 3.723138] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
[ 3.827134] fu740-pcie e00000000.pcie: PCIe Gen.3 x8 link up
[ 3.827445] fu740-pcie e00000000.pcie: PCI host bridge to bus 0000:00
[ 3.827479] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 3.827503] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
(bus address [0x60080000-0x6008ffff])
[ 3.827529] pci_bus 0000:00: root bus resource [mem
0x60090000-0x7fffffff]
[ 3.827551] pci_bus 0000:00: root bus resource [mem
0x2000000000-0x3fffffffff pref]
[ 3.827750] pci 0000:00:00.0: [f15e:0000] type 01 class 0x060400 PCIe
Root Port
[ 3.827797] pci 0000:00:00.0: BAR 0 [mem 0x00000000-0x000fffff]
[ 3.827821] pci 0000:00:00.0: ROM [mem 0x00000000-0x0000ffff pref]
[ 3.827844] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[ 3.827866] pci 0000:00:00.0: bridge window [io 0x0000-0x0fff]
[ 3.827888] pci 0000:00:00.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.827912] pci 0000:00:00.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.827998] pci 0000:00:00.0: supports D1
[ 3.828018] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[ 3.829345] pci 0000:01:00.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Upstream Port
[ 3.829398] pci 0000:01:00.0: PCI bridge to [bus 00]
[ 3.829424] pci 0000:01:00.0: bridge window [io 0x0000-0x0fff]
[ 3.829446] pci 0000:01:00.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.829475] pci 0000:01:00.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.829509] pci 0000:01:00.0: enabling Extended Tags
[ 3.829597] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[ 3.835150] pci 0000:01:00.0: ASPM: DT platform, enabling L0s-up
L0s-dw L1 ASPM-L1.1 ASPM-L1.2 PCI-PM-L1.1 PCI-PM-L1.2
[ 3.835188] pci 0000:01:00.0: ASPM: DT platform, enabling ClockPM
[ 3.835274] pci 0000:01:00.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.835433] pci 0000:02:00.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Downstream Port
[ 3.835483] pci 0000:02:00.0: PCI bridge to [bus 00]
[ 3.835508] pci 0000:02:00.0: bridge window [io 0x0000-0x0fff]
[ 3.835530] pci 0000:02:00.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.835557] pci 0000:02:00.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.835592] pci 0000:02:00.0: enabling Extended Tags
[ 3.835680] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[ 3.836142] pci 0000:02:02.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Downstream Port
[ 3.836193] pci 0000:02:02.0: PCI bridge to [bus 00]
[ 3.836217] pci 0000:02:02.0: bridge window [io 0x0000-0x0fff]
[ 3.836240] pci 0000:02:02.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.836267] pci 0000:02:02.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.836302] pci 0000:02:02.0: enabling Extended Tags
[ 3.836391] pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
[ 3.836840] pci 0000:02:03.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Downstream Port
[ 3.836890] pci 0000:02:03.0: PCI bridge to [bus 00]
[ 3.836915] pci 0000:02:03.0: bridge window [io 0x0000-0x0fff]
[ 3.836936] pci 0000:02:03.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.836965] pci 0000:02:03.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.836999] pci 0000:02:03.0: enabling Extended Tags
[ 3.837088] pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
[ 3.837513] pci 0000:02:04.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Downstream Port
[ 3.837563] pci 0000:02:04.0: PCI bridge to [bus 00]
[ 3.837588] pci 0000:02:04.0: bridge window [io 0x0000-0x0fff]
[ 3.837610] pci 0000:02:04.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.837638] pci 0000:02:04.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.837672] pci 0000:02:04.0: enabling Extended Tags
[ 3.837760] pci 0000:02:04.0: PME# supported from D0 D3hot D3cold
[ 3.838260] pci 0000:02:08.0: [1b21:2824] type 01 class 0x060400 PCIe
Switch Downstream Port
[ 3.838311] pci 0000:02:08.0: PCI bridge to [bus 00]
[ 3.838336] pci 0000:02:08.0: bridge window [io 0x0000-0x0fff]
[ 3.838358] pci 0000:02:08.0: bridge window [mem 0x00000000-0x000fffff]
[ 3.838386] pci 0000:02:08.0: bridge window [mem
0x00000000-0x000fffff 64bit pref]
[ 3.838421] pci 0000:02:08.0: enabling Extended Tags
[ 3.838509] pci 0000:02:08.0: PME# supported from D0 D3hot D3cold
[ 3.839437] pci 0000:02:00.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.839472] pci 0000:02:02.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.839501] pci 0000:02:03.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.839530] pci 0000:02:04.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.839557] pci 0000:02:08.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[ 3.839788] pci_bus 0000:03: busn_res: [bus 03-ff] end is updated to 03
[ 3.839964] pci 0000:04:00.0: [1b21:1142] type 00 class 0x0c0330 PCIe
Legacy Endpoint
[ 3.840056] pci 0000:04:00.0: BAR 0 [mem 0x00000000-0x00007fff 64bit]
[ 3.840181] pci 0000:04:00.0: PME# supported from D3cold
[ 3.847149] pci 0000:04:00.0: ASPM: DT platform, enabling L0s-up
L0s-dw L1 ASPM-L1.1 ASPM-L1.2 PCI-PM-L1.1 PCI-PM-L1.2
[ 3.847190] pci 0000:04:00.0: ASPM: DT platform, enabling ClockPM
[ 3.847225] pci_bus 0000:04: busn_res: [bus 04-ff] end is updated to 04
[ 3.847421] pci_bus 0000:05: busn_res: [bus 05-ff] end is updated to 05
[ 3.847743] pci 0000:06:00.0: [15b7:5002] type 00 class 0x010802 PCIe
Endpoint
[ 3.847823] pci 0000:06:00.0: BAR 0 [mem 0x00000000-0x00003fff 64bit]
[ 3.847852] pci 0000:06:00.0: BAR 4 [mem 0x00000000-0x000000ff 64bit]
[ 3.860322] pci 0000:06:00.0: ASPM: DT platform, enabling L0s-up
L0s-dw L1 ASPM-L1.1 ASPM-L1.2 PCI-PM-L1.1 PCI-PM-L1.2
[ 3.860362] pci 0000:06:00.0: ASPM: DT platform, enabling ClockPM
[ 3.860414] pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 06
[ 3.860613] pci_bus 0000:07: busn_res: [bus 07-ff] end is updated to 07
[ 3.860645] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 07
[ 3.860671] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 07
[ 3.860751] pci 0000:00:00.0: BAR 0 [mem 0x60100000-0x601fffff]: assigned
[ 3.860781] pci 0000:00:00.0: bridge window [mem
0x60200000-0x606fffff]: assigned
[ 3.860808] pci 0000:00:00.0: bridge window [mem
0x2000000000-0x20004fffff 64bit pref]: assigned
[ 3.860834] pci 0000:00:00.0: ROM [mem 0x60090000-0x6009ffff pref]:
assigned
[ 3.860857] pci 0000:00:00.0: bridge window [io 0x1000-0x5fff]: assigned
[ 3.860886] pci 0000:01:00.0: bridge window [mem
0x60200000-0x606fffff]: assigned
[ 3.860912] pci 0000:01:00.0: bridge window [mem
0x2000000000-0x20004fffff 64bit pref]: assigned
[ 3.860937] pci 0000:01:00.0: bridge window [io 0x1000-0x5fff]: assigned
[ 3.860975] pci 0000:02:00.0: bridge window [mem
0x60200000-0x602fffff]: assigned
[ 3.861001] pci 0000:02:00.0: bridge window [mem
0x2000000000-0x20000fffff 64bit pref]: assigned
[ 3.861026] pci 0000:02:02.0: bridge window [mem
0x60300000-0x603fffff]: assigned
[ 3.861050] pci 0000:02:02.0: bridge window [mem
0x2000100000-0x20001fffff 64bit pref]: assigned
[ 3.861075] pci 0000:02:03.0: bridge window [mem
0x60400000-0x604fffff]: assigned
[ 3.861099] pci 0000:02:03.0: bridge window [mem
0x2000200000-0x20002fffff 64bit pref]: assigned
[ 3.861124] pci 0000:02:04.0: bridge window [mem
0x60500000-0x605fffff]: assigned
[ 3.861148] pci 0000:02:04.0: bridge window [mem
0x2000300000-0x20003fffff 64bit pref]: assigned
[ 3.861173] pci 0000:02:08.0: bridge window [mem
0x60600000-0x606fffff]: assigned
[ 3.861197] pci 0000:02:08.0: bridge window [mem
0x2000400000-0x20004fffff 64bit pref]: assigned
[ 3.861221] pci 0000:02:00.0: bridge window [io 0x1000-0x1fff]: assigned
[ 3.861242] pci 0000:02:02.0: bridge window [io 0x2000-0x2fff]: assigned
[ 3.861264] pci 0000:02:03.0: bridge window [io 0x3000-0x3fff]: assigned
[ 3.861285] pci 0000:02:04.0: bridge window [io 0x4000-0x4fff]: assigned
[ 3.861306] pci 0000:02:08.0: bridge window [io 0x5000-0x5fff]: assigned
[ 3.861332] pci 0000:02:00.0: PCI bridge to [bus 03]
[ 3.861353] pci 0000:02:00.0: bridge window [io 0x1000-0x1fff]
[ 3.861378] pci 0000:02:00.0: bridge window [mem 0x60200000-0x602fffff]
[ 3.861401] pci 0000:02:00.0: bridge window [mem
0x2000000000-0x20000fffff 64bit pref]
[ 3.861431] pci 0000:04:00.0: BAR 0 [mem 0x60300000-0x60307fff
64bit]: assigned
[ 3.861469] pci 0000:02:02.0: PCI bridge to [bus 04]
[ 3.861489] pci 0000:02:02.0: bridge window [io 0x2000-0x2fff]
[ 3.861512] pci 0000:02:02.0: bridge window [mem 0x60300000-0x603fffff]
[ 3.861534] pci 0000:02:02.0: bridge window [mem
0x2000100000-0x20001fffff 64bit pref]
[ 3.861561] pci 0000:02:03.0: PCI bridge to [bus 05]
[ 3.861581] pci 0000:02:03.0: bridge window [io 0x3000-0x3fff]
[ 3.861603] pci 0000:02:03.0: bridge window [mem 0x60400000-0x604fffff]
[ 3.861625] pci 0000:02:03.0: bridge window [mem
0x2000200000-0x20002fffff 64bit pref]
[ 3.861657] pci 0000:06:00.0: BAR 0 [mem 0x60500000-0x60503fff
64bit]: assigned
[ 3.861692] pci 0000:06:00.0: BAR 4 [mem 0x60504000-0x605040ff
64bit]: assigned
[ 3.861727] pci 0000:02:04.0: PCI bridge to [bus 06]
[ 3.861747] pci 0000:02:04.0: bridge window [io 0x4000-0x4fff]
[ 3.861769] pci 0000:02:04.0: bridge window [mem 0x60500000-0x605fffff]
[ 3.861791] pci 0000:02:04.0: bridge window [mem
0x2000300000-0x20003fffff 64bit pref]
[ 3.861819] pci 0000:02:08.0: PCI bridge to [bus 07]
[ 3.861838] pci 0000:02:08.0: bridge window [io 0x5000-0x5fff]
[ 3.861861] pci 0000:02:08.0: bridge window [mem 0x60600000-0x606fffff]
[ 3.861883] pci 0000:02:08.0: bridge window [mem
0x2000400000-0x20004fffff 64bit pref]
[ 3.861910] pci 0000:01:00.0: PCI bridge to [bus 02-07]
[ 3.861929] pci 0000:01:00.0: bridge window [io 0x1000-0x5fff]
[ 3.861951] pci 0000:01:00.0: bridge window [mem 0x60200000-0x606fffff]
[ 3.861973] pci 0000:01:00.0: bridge window [mem
0x2000000000-0x20004fffff 64bit pref]
[ 3.862000] pci 0000:00:00.0: PCI bridge to [bus 01-07]
[ 3.862019] pci 0000:00:00.0: bridge window [io 0x1000-0x5fff]
[ 3.862040] pci 0000:00:00.0: bridge window [mem 0x60200000-0x606fffff]
[ 3.862061] pci 0000:00:00.0: bridge window [mem
0x2000000000-0x20004fffff 64bit pref]
[ 3.862087] pci_bus 0000:00: resource 4 [io 0x0000-0xffff]
[ 3.862107] pci_bus 0000:00: resource 5 [mem 0x60090000-0x7fffffff]
[ 3.862126] pci_bus 0000:00: resource 6 [mem
0x2000000000-0x3fffffffff pref]
[ 3.862147] pci_bus 0000:01: resource 0 [io 0x1000-0x5fff]
[ 3.862166] pci_bus 0000:01: resource 1 [mem 0x60200000-0x606fffff]
[ 3.862185] pci_bus 0000:01: resource 2 [mem
0x2000000000-0x20004fffff 64bit pref]
[ 3.862208] pci_bus 0000:02: resource 0 [io 0x1000-0x5fff]
[ 3.862227] pci_bus 0000:02: resource 1 [mem 0x60200000-0x606fffff]
[ 3.862246] pci_bus 0000:02: resource 2 [mem
0x2000000000-0x20004fffff 64bit pref]
[ 3.862269] pci_bus 0000:03: resource 0 [io 0x1000-0x1fff]
[ 3.862288] pci_bus 0000:03: resource 1 [mem 0x60200000-0x602fffff]
[ 3.862307] pci_bus 0000:03: resource 2 [mem
0x2000000000-0x20000fffff 64bit pref]
[ 3.862330] pci_bus 0000:04: resource 0 [io 0x2000-0x2fff]
[ 3.862349] pci_bus 0000:04: resource 1 [mem 0x60300000-0x603fffff]
[ 3.862368] pci_bus 0000:04: resource 2 [mem
0x2000100000-0x20001fffff 64bit pref]
[ 3.862391] pci_bus 0000:05: resource 0 [io 0x3000-0x3fff]
[ 3.862410] pci_bus 0000:05: resource 1 [mem 0x60400000-0x604fffff]
[ 3.862430] pci_bus 0000:05: resource 2 [mem
0x2000200000-0x20002fffff 64bit pref]
[ 3.862453] pci_bus 0000:06: resource 0 [io 0x4000-0x4fff]
[ 3.862472] pci_bus 0000:06: resource 1 [mem 0x60500000-0x605fffff]
[ 3.862492] pci_bus 0000:06: resource 2 [mem
0x2000300000-0x20003fffff 64bit pref]
[ 3.862514] pci_bus 0000:07: resource 0 [io 0x5000-0x5fff]
[ 3.862533] pci_bus 0000:07: resource 1 [mem 0x60600000-0x606fffff]
[ 3.862553] pci_bus 0000:07: resource 2 [mem
0x2000400000-0x20004fffff 64bit pref]
[ 3.863320] pcieport 0000:00:00.0: PME: Signaling with IRQ 36
[ 3.864092] pcieport 0000:00:00.0: AER: enabled with IRQ 36
[ 3.864563] pcieport 0000:01:00.0: enabling device (0000 -> 0003)
[ 3.864769] pcieport 0000:02:00.0: enabling device (0000 -> 0003)
[ 3.865381] pcieport 0000:02:02.0: enabling device (0000 -> 0003)
[ 3.866107] pcieport 0000:02:03.0: enabling device (0000 -> 0003)
[ 3.866669] pcieport 0000:02:04.0: enabling device (0000 -> 0003)
[ 3.867371] pcieport 0000:02:08.0: enabling device (0000 -> 0003)
[ 3.867885] pci 0000:04:00.0: enabling device (0000 -> 0002)
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-17 14:21 ` Ron Economos
@ 2025-10-17 15:17 ` Manivannan Sadhasivam
2025-10-28 22:38 ` Bjorn Helgaas
1 sibling, 0 replies; 15+ messages in thread
From: Manivannan Sadhasivam @ 2025-10-17 15:17 UTC (permalink / raw)
To: Ron Economos
Cc: Krishna Chaitanya Chundru, Bjorn Helgaas, Conor Dooley, bhelgaas,
linux-pci, linux-kernel, linux-riscv, Paul Walmsley, Greentime Hu,
Samuel Holland, regressions
On Fri, Oct 17, 2025 at 07:21:06AM -0700, Ron Economos wrote:
[...]
> > Hi Ron,
> >
> > Can you try with this series and let us know if it is helping you or
> > not.
> >
> > https://lore.kernel.org/all/20251017-ecam_fix-v1-0-f6faa3d0edf3@oss.qualcomm.com/
> >
> >
> > - Krishna Chaitanya.
>
> The patch works good. Here's the log of PCI messages.
>
> [ 3.221506] fu740-pcie e00000000.pcie: host bridge /soc/pcie@e00000000
> ranges:
> [ 3.221594] fu740-pcie e00000000.pcie: IO
> 0x0060080000..0x006008ffff -> 0x0060080000
> [ 3.221658] fu740-pcie e00000000.pcie: MEM
> 0x0060090000..0x007fffffff -> 0x0060090000
> [ 3.221696] fu740-pcie e00000000.pcie: MEM
> 0x2000000000..0x3fffffffff -> 0x2000000000
> [ 3.221783] fu740-pcie e00000000.pcie: ECAM at [mem
> 0xdf0000000-0xdffffffff] for [bus 00-ff]
As a nice side effect of the regression fix, your platform is now using ECAM
mode by default :) Thanks for testing.
I hope Bjorn will merge this series for 6.18-rcX.
- Mani
--
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: SiFive FU740 PCI driver fails on 6.18-rc1
2025-10-17 14:21 ` Ron Economos
2025-10-17 15:17 ` Manivannan Sadhasivam
@ 2025-10-28 22:38 ` Bjorn Helgaas
1 sibling, 0 replies; 15+ messages in thread
From: Bjorn Helgaas @ 2025-10-28 22:38 UTC (permalink / raw)
To: Ron Economos
Cc: Krishna Chaitanya Chundru, Manivannan Sadhasivam, Conor Dooley,
bhelgaas, linux-pci, linux-kernel, linux-riscv, Paul Walmsley,
Greentime Hu, Samuel Holland, regressions
On Fri, Oct 17, 2025 at 07:21:06AM -0700, Ron Economos wrote:
> On 10/17/25 04:43, Krishna Chaitanya Chundru wrote:
> > On 10/15/2025 7:33 PM, Manivannan Sadhasivam wrote:
> > > On Tue, Oct 14, 2025 at 03:41:39PM -0700, Ron Economos wrote:
> > > > On 10/14/25 09:25, Manivannan Sadhasivam wrote:
> > > > > On Mon, Oct 13, 2025 at 10:52:48PM -0700, Ron Economos wrote:
> > > > > > On 10/13/25 22:36, Krishna Chaitanya Chundru wrote:
> > > > > > >
> > > > > > > On 10/14/2025 10:56 AM, Ron Economos wrote:
> > > > > > > > On 10/13/25 22:20, Krishna Chaitanya Chundru wrote:
> > > > > > > > >
> > > > > > > > > On 10/14/2025 2:58 AM, Bjorn Helgaas wrote:
> > > > > > > > > > [+cc FU740 driver folks, Conor, regressions]
> > > > > > > > > >
> > > > > > > > > > On Mon, Oct 13, 2025 at 12:14:54AM -0700, 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
> > Can you try with this series and let us know if it is helping you or
> > not.
> >
> > https://lore.kernel.org/all/20251017-ecam_fix-v1-0-f6faa3d0edf3@oss.qualcomm.com/
>
> The patch works good. Here's the log of PCI messages.
#regzbot fix: a1978b692a39 ("PCI: dwc: Use custom pci_ops for root bus DBI vs ECAM config access")
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-10-28 22:39 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox