Skip to contentSkip to conversation

PCIe on Armada 388 broken since 5.9

BUG Russell King - ARM Linux admin 2 participants 3 messages Oct 22, 2020 PCI

lore
Share & tools
lore
#0 lore raw

Hi,

It appears that PCIe on Armada 388 has been broken in 5.9. Here are the boot messages:

mvebu-pcie soc:pcie: host bridge /soc/pcie ranges:

mvebu-pcie soc:pcie:      MEM 0x00f1080000..0x00f1081fff -> 0x0000080000
mvebu-pcie soc:pcie:      MEM 0x00f1040000..0x00f1041fff -> 0x0000040000
mvebu-pcie soc:pcie:      MEM 0x00f1044000..0x00f1045fff -> 0x0000044000
mvebu-pcie soc:pcie:      MEM 0x00f1048000..0x00f1049fff -> 0x0000048000
mvebu-pcie soc:pcie:      MEM 0xffffffffffffffff..0x00fffffffe -> 0x0100000000

mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: resource collision: [mem 0xf1080000-0xf1081fff] conflicts with pcie [mem 0xf1080000-0xf1081fff]
mvebu-pcie: probe of soc:pcie failed with error -16

This results in PCIe being entirely non-functional. At a guess, I'd say it's due to:

commit c322fa0b3fa948010a278794e60c45ec860e4a1e

Author: Rob Herring <[email protected]>
Date:   Fri May 22 17:48:19 2020 -0600

PCI: mvebu: Use struct pci_host_bridge.windows list directly

There's no need to create a temporary resource list and then splice it to struct pci_host_bridge.windows list. Just use pci_host_bridge.windows directly. The necessary clean-up is already handled by the PCI core.

Any suggestions?

Signature · 2 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
#1 lore raw
Quoted 34 lines · Russell King - ARM Linux admin

Hi,

It appears that PCIe on Armada 388 has been broken in 5.9. Here are the boot messages:

mvebu-pcie soc:pcie: host bridge /soc/pcie ranges:

mvebu-pcie soc:pcie:      MEM 0x00f1080000..0x00f1081fff -> 0x0000080000
mvebu-pcie soc:pcie:      MEM 0x00f1040000..0x00f1041fff -> 0x0000040000
mvebu-pcie soc:pcie:      MEM 0x00f1044000..0x00f1045fff -> 0x0000044000
mvebu-pcie soc:pcie:      MEM 0x00f1048000..0x00f1049fff -> 0x0000048000
mvebu-pcie soc:pcie:      MEM 0xffffffffffffffff..0x00fffffffe -> 0x0100000000

mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: resource collision: [mem 0xf1080000-0xf1081fff] conflicts with pcie [mem 0xf1080000-0xf1081fff]
mvebu-pcie: probe of soc:pcie failed with error -16

This results in PCIe being entirely non-functional. At a guess, I'd say it's due to:

commit c322fa0b3fa948010a278794e60c45ec860e4a1e

Author: Rob Herring <[email protected]>
Date:   Fri May 22 17:48:19 2020 -0600

PCI: mvebu: Use struct pci_host_bridge.windows list directly

There's no need to create a temporary resource list and then splice it to struct pci_host_bridge.windows list. Just use pci_host_bridge.windows directly. The necessary clean-up is already handled by the PCI core.

Quoted 5 lines

Confirmed. Reverting this commit results in functioning PCIe.

Signature · 2 lines
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
#2 lore raw
Quoted 36 lines · Russell King - ARM Linux admin
Quoted 34 lines · Russell King - ARM Linux admin

Hi,

It appears that PCIe on Armada 388 has been broken in 5.9. Here are the boot messages:

mvebu-pcie soc:pcie: host bridge /soc/pcie ranges:

mvebu-pcie soc:pcie:      MEM 0x00f1080000..0x00f1081fff -> 0x0000080000
mvebu-pcie soc:pcie:      MEM 0x00f1040000..0x00f1041fff -> 0x0000040000
mvebu-pcie soc:pcie:      MEM 0x00f1044000..0x00f1045fff -> 0x0000044000
mvebu-pcie soc:pcie:      MEM 0x00f1048000..0x00f1049fff -> 0x0000048000
mvebu-pcie soc:pcie:      MEM 0xffffffffffffffff..0x00fffffffe -> 0x0100000000

mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0100000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0200000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0300000000
mvebu-pcie soc:pcie: MEM 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: IO 0xffffffffffffffff..0x00fffffffe -> 0x0400000000
mvebu-pcie soc:pcie: resource collision: [mem 0xf1080000-0xf1081fff] conflicts with pcie [mem 0xf1080000-0xf1081fff]
mvebu-pcie: probe of soc:pcie failed with error -16

This results in PCIe being entirely non-functional. At a guess, I'd say it's due to:

commit c322fa0b3fa948010a278794e60c45ec860e4a1e

Author: Rob Herring <[email protected]>
Date:   Fri May 22 17:48:19 2020 -0600

PCI: mvebu: Use struct pci_host_bridge.windows list directly

There's no need to create a temporary resource list and then splice it to struct pci_host_bridge.windows list. Just use pci_host_bridge.windows directly. The necessary clean-up is already handled by the PCI core.

Quoted 7 lines
Quoted 5 lines

Confirmed. Reverting this commit results in functioning PCIe.

Yes, but really it's broken by 2 commits. The other is 669cbc708122 ("PCI: Move DT resource setup into devm_pci_alloc_host_bridge()").

I just sent out a fix, please test.

Rob