[PATCH v9 4/4] PCI: dwc: Support ECAM mechanism by enabling iATU 'CFG Shift Feature'
Maciej W. Rozycki
macro at orcam.me.uk
Tue Dec 2 05:39:14 PST 2025
On Tue, 2 Dec 2025, Manivannan Sadhasivam wrote:
> > No change in behaviour, sorry. I suppose it's this range of host address
> > decoding:
> >
> > fu740-pcie e00000000.pcie: IO 0x0060080000..0x006008ffff -> 0x0060080000
> >
> > aka:
> >
> > pci_bus 0000:00: root bus resource [io 0x0000-0xffff] (bus address [0x60080000-0x6008ffff])
> >
> > that you're after. Are you sure your code discovers it correctly? As I
> > say I can only see IORESOURCE_MEM references and no IORESOURCE_IO ones as
> > would be appropriate for the root bus resource quoted.
>
> The I/O resource is discovered by the driver correctly as seen from the logs:
>
> pci_bus 0000:00: root bus resource [io 0x0000-0xffff] (bus address [0x60080000-0x6008ffff])
> pci_bus 0000:00: root bus resource [mem 0x60090000-0x7fffffff]
> pci_bus 0000:00: root bus resource [mem 0x2000000000-0x3fffffffff pref]
>
> But we believe that the iATU is not programmed for the I/O port, resulting in
> the I/O access not going out to the device.
>
> Krishna found an issue in the previous patch that got shared. So I've attached a
> new one. Could you please try and let us know? If it didn't help, please share
> the dmesg log that will have some more info.
This does work correctly, thank you; see the log diff below (I checked
the defxx driver separately too). Please make a proper submission and
I'll give it a Tested-by: tag after final verification against 6.18.
--- dmesg-bad.log 2025-11-28 03:47:29.582049781 +0100
+++ dmesg-fixed.log 2025-12-02 13:58:56.627947450 +0100
@@ -1,5 +1,5 @@
-Booting Linux on hartid 1
-Linux version 6.17.0-rc1-00009-g0da48c5b2fa7-dirty (macro at angie) (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
+Booting Linux on hartid 4
+Linux version 6.17.0-rc1-00009-g0da48c5b2fa7-dirty (macro at angie) (riscv64-linux-gnu-gcc (GCC) 13.0.0 20220602 (experimental), GNU ld (GNU Binutils) 2.38.50.20220503) #32 SMP Tue Dec 2 12:46:23 GMT 2025
Machine model: SiFive HiFive Unmatched A00
SBI specification v0.3 detected
SBI implementation ID=0x1 Version=0x9
@@ -164,6 +164,9 @@
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: dw_pcie_iatu_setup: 921 MEM index: 2
+fu740-pcie e00000000.pcie: dw_pcie_iatu_setup: 941 I/O index: 3
+fu740-pcie e00000000.pcie: dw_pcie_iatu_setup: 949 Final index: 4
fu740-pcie e00000000.pcie: cap_exp at 70
fu740-pcie e00000000.pcie: PCIe Gen.1 x8 link up
fu740-pcie e00000000.pcie: changing speed back to original
@@ -736,6 +739,8 @@
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
Maciej
More information about the linux-arm-kernel
mailing list