PCIe probe failure on AmLogic A311D after 6.18-rc1
Bjorn Helgaas
helgaas at kernel.org
Tue Oct 28 15:16:07 PDT 2025
On Tue, Oct 28, 2025 at 02:19:13AM +0800, Linnaea Lavia wrote:
> On 6.18-rc3 with the change the link does not come up without pcie_aspm=off.
Thanks for testing this!
I think there are two problems:
1) On v6.18-rc2, the meson-pcie probe failed with:
meson-pcie fc000000.pcie: error -EBUSY: can't request region for resource [mem 0xfc000000-0xfc3fffff]
so we didn't even try to bring up the link. I think this was
fixed in v6.18-rc3 by a1978b692a39 ("PCI: dwc: Use custom pci_ops
for root bus DBI vs ECAM config access").
2) On v6.18-rc3, we brought up the link and enumerated 01:00.0, but
as soon as we tried to enable ASPM L1, the link stopped working:
> [ 5.396341] [ T50] meson-pcie fc000000.pcie: host bridge /soc/pcie at fc000000 ranges:
> [ 5.474722] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.480590] [ T50] meson-pcie fc000000.pcie: PCIe Gen.2 x1 link up
> [ 5.484394] [ T50] meson-pcie fc000000.pcie: PCI host bridge to bus 0000:00
> [ 5.511625] [ T50] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400 PCIe Root Port
> [ 5.578507] [ T50] pci 0000:01:00.0: [8086:2725] type 00 class 0x028000 PCIe Endpoint
> [ 5.587460] [ T50] pci 0000:01:00.0: BAR 0 [mem 0x00000000-0x00003fff 64bit]
> [ 5.656009] [ T50] pci 0000:01:00.0: ASPM: default states L1
> [ 5.701063] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.724147] [ T50] pci 0000:01:00.0: BAR 0 [mem 0xfc700000-0xfc703fff 64bit]: assigned
> [ 5.779528] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.822074] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.864902] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.907448] [ T50] meson-pcie fc000000.pcie: error: wait linkup timeout
> [ 5.987517] [ T50] pci 0000:01:00.0: BAR 0: error updating (0xfc700004 != 0xffffffff)
> [ 6.081421] [ T50] pci 0000:01:00.0: BAR 0: error updating (high 0x00000000 != 0xffffffff)
Can you try the patch below on top of v6.18-rc3? It should prevent
enabling ASPM L1. Can you also collect the output of "sudo lspci -vv"
on some working kernel?
I'm a little concerned that [16c3:abcd] is too general because it
looks like that ID has really been abused by vendors:
https://patchwork.kernel.org/patch/10798497/
I wonder if there's a way for meson-pcie to write a corrected
Vendor/Device ID in the Root Port so we could make a quirk that's
specific to the Meson controller.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 214ed060ca1b..9cd12924b5cb 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2524,6 +2524,7 @@ static void quirk_disable_aspm_l0s_l1(struct pci_dev *dev)
* disable both L0s and L1 for now to be safe.
*/
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ASMEDIA, 0x1080, quirk_disable_aspm_l0s_l1);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SYNOPSYS, 0xabcd, quirk_disable_aspm_l0s_l1);
/*
* Some Pericom PCIe-to-PCI bridges in reverse mode need the PCIe Retrain
More information about the linux-amlogic
mailing list