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] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.2511280256260.36486@angie.orcam.me.uk>
Date: Fri, 28 Nov 2025 03:17:02 +0000 (GMT)
From: "Maciej W. Rozycki" <macro@...am.me.uk>
To: Manivannan Sadhasivam <mani@...nel.org>
cc: Jingoo Han <jingoohan1@...il.com>, 
    Lorenzo Pieralisi <lpieralisi@...nel.org>, 
    Krzysztof WilczyƄski <kwilczynski@...nel.org>, 
    Rob Herring <robh@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com>, 
    Krzysztof Kozlowski <krzk@...nel.org>, 
    Alim Akhtar <alim.akhtar@...sung.com>, 
    Jonathan Chocron <jonnyc@...zon.com>, linux-pci@...r.kernel.org, 
    linux-arm-kernel@...ts.infradead.org, linux-samsung-soc@...r.kernel.org, 
    linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org, 
    Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
Subject: Re: [PATCH v9 4/4] PCI: dwc: Support ECAM mechanism by enabling iATU
 'CFG Shift Feature'

On Tue, 9 Sep 2025, Manivannan Sadhasivam wrote:

> From: Krishna Chaitanya Chundru <krishna.chundru@....qualcomm.com>
> 
> Designware databook r5.20a, sec 3.10.10.3 documents the 'CFG Shift Feature'
> of the internal Address Translation Unit (iATU). When this feature is
> enabled, it shifts/maps the BDF contained in the bits [27:12] of the target
> address in MEM TLP to become BDF of the CFG TLP. This essentially
> implements the Enhanced Configuration Address Mapping (ECAM) mechanism as
> defined in PCIe r6.0, sec 7.2.2.

 So this broke a parallel port on my HiFive Unmatched machine (a SiFive 
FU740-C000 based system), the driver no longer registers the device, no 
/dev/parport0 anymore.

 I've had to bisect it with commit a1978b692a39 ("PCI: dwc: Use custom 
pci_ops for root bus DBI vs ECAM config access") and commit fc2bc2623e3a 
("Revert "PCI: qcom: Prepare for the DWC ECAM enablement"") applied on top 
and it's affirmative it's this change, i.e. upstream commit 0da48c5b2fa7 
("PCI: dwc: Support ECAM mechanism by enabling iATU 'CFG Shift Feature'").

 Here's the relevant part of a diff between bootstrap logs:

--- dmesg-good.log	2025-11-28 03:41:18.943097032 +0100
+++ dmesg-bad.log	2025-11-28 03:47:29.582049781 +0100
@@ -1,5 +1,5 @@
-Booting Linux on hartid 3
-Linux version 6.17.0-rc1-00008-g4660e50cf818-dirty (macro@...ie) (riscv64-linux-gnu-gcc (GCC) 13.0.0 20220602 (experimental), GNU ld (GNU Binutils) 2.38.50.20220503) #19 SMP Fri Nov 28 02:37:51 GMT 2025
+Booting Linux on hartid 1
+Linux version 6.17.0-rc1-00009-g0da48c5b2fa7-dirty (macro@...ie) (riscv64-linux-gnu-gcc (GCC) 13.0.0 20220602 (experimental), GNU ld (GNU Binutils) 2.38.50.20220503) #20 SMP Fri Nov 28 02:43:00 GMT 2025
 Machine model: SiFive HiFive Unmatched A00
 SBI specification v0.3 detected
 SBI implementation ID=0x1 Version=0x9
@@ -61,7 +61,7 @@
 EFI services will not be available.
 smp: Bringing up secondary CPUs ...
 smp: Brought up 1 node, 4 CPUs
-Memory: 16383064K/16777216K available (10746K kernel code, 2200K rwdata, 4972K rodata, 537K init, 371K bss, 389448K reserved, 0K cma-reserved)
+Memory: 16383064K/16777216K available (10746K kernel code, 2200K rwdata, 4972K rodata, 536K init, 371K bss, 389448K reserved, 0K cma-reserved)
 devtmpfs: initialized
 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
 posixtimers hash table entries: 2048 (order: 3, 32768 bytes, linear)
@@ -161,6 +161,7 @@
 fu740-pcie e00000000.pcie:       IO 0x0060080000..0x006008ffff -> 0x0060080000
 fu740-pcie e00000000.pcie:      MEM 0x0060090000..0x007fffffff -> 0x0060090000
 fu740-pcie e00000000.pcie:      MEM 0x2000000000..0x3fffffffff -> 0x2000000000
+fu740-pcie e00000000.pcie: ECAM at [mem 0xdf0000000-0xdffffffff] for [bus 00-ff]
 fu740-pcie e00000000.pcie: Using 256 MSI vectors
 fu740-pcie e00000000.pcie: iATU: unroll T, 8 ob, 8 ib, align 4K, limit 4096G
 fu740-pcie e00000000.pcie: cap_exp at 70
@@ -655,7 +656,7 @@
 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.17
 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
 usb usb1: Product: xHCI Host Controller
-usb usb1: Manufacturer: Linux 6.17.0-rc1-00008-g4660e50cf818-dirty xhci-hcd
+usb usb1: Manufacturer: Linux 6.17.0-rc1-00009-g0da48c5b2fa7-dirty xhci-hcd
 usb usb1: SerialNumber: 0000:04:00.0
 hub 1-0:1.0: USB hub found
 hub 1-0:1.0: 2 ports detected
@@ -663,7 +664,7 @@
 usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.17
 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
 usb usb2: Product: xHCI Host Controller
-usb usb2: Manufacturer: Linux 6.17.0-rc1-00008-g4660e50cf818-dirty xhci-hcd
+usb usb2: Manufacturer: Linux 6.17.0-rc1-00009-g0da48c5b2fa7-dirty xhci-hcd
 usb usb2: SerialNumber: 0000:04:00.0
 hub 2-0:1.0: USB hub found
 hub 2-0:1.0: 2 ports detected
@@ -735,8 +736,6 @@
 pcieport 0000:06:01.0: enabling bus mastering
 parport_pc 0000:07:00.0: enabling device (0000 -> 0001)
 PCI parallel port detected: 1415:c118, I/O at 0x1000(0x1008), IRQ 35
-parport0: PC-style at 0x1000 (0x1008), irq 35, using FIFO [PCSPP,TRISTATE,EPP,ECP]
-lp0: using parport0 (interrupt-driven).
 parport_pc 0000:07:00.0: vgaarb: pci_notify
 serial 0000:07:00.3: vgaarb: pci_notify
 serial 0000:07:00.3: assign IRQ: got 40

and then it goes on with insignificant changes only owing to differences 
in the order of messages produced, the kernel version ID or date stamps.  
As you can see the PCIe parallel port device continues being accessible, 
it's only the driver that doesn't pick up the device anymore.

 I'm stumped as to where it might be coming from.  Any ideas?

  Maciej

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ