lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bc7f397c-1739-465e-b195-e1a41c34504d@oss.qualcomm.com>
Date: Mon, 13 Oct 2025 13:49:39 +0530
From: Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
To: Ron Economos <re@...z.net>, bhelgaas@...gle.comk,
        rishna.chundru@....qualcomm.com, mani@...nel.org
Cc: helgass@...nel.org, linux-pci@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        linux-riscv <linux-riscv@...ts.infradead.org>
Subject: Re: SiFive FU740 PCI driver fails on 6.18-rc1



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@...000000 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@...000000 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.
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ