I am trying to use my new MT7921 m.2 card on the BPI-R64. I have it mounted on a mpcie to m.2 adapter. On my very old laptop, it works ok, the card is detected. I have not tried anything else on the old laptop. On the R64 the card is not detected. I’ve even tried prolonging the poll delay from 100ms to 5000ms in here:
/* 100ms timeout value should be enough for Gen1/2 training */
err = readl_poll_timeout(port->base + PCIE_LINK_STATUS_V2, val,
!!(val & PCIE_PORT_LINKUP_V2), 20,
100 * USEC_PER_MSEC);
But even waiting 5 seconds, the Port0 link does not come up.
[ 0.983923] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[ 0.990755] mtk-pcie 1a143000.pcie: Parsing ranges property...
[ 0.996680] mtk-pcie 1a143000.pcie: MEM 0x0020000000..0x0027ffffff -> 0x0020000000
[ 1.005242] mtk-pcie 1a143000.pcie: Port0 Executing startup!!! (added myself)
[ 6.122597] mtk-pcie 1a143000.pcie: Port0 link down
[ 6.127754] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[ 6.133990] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 6.139485] pci_bus 0000:00: root bus resource [mem 0x20000000-0x27ffffff]
[ 6.146368] pci_bus 0000:00: scanning bus
[ 6.151900] pci_bus 0000:00: fixups for bus
[ 6.156109] pci_bus 0000:00: bus scan returning with max=00
[ 6.162123] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[ 6.168702] mtk-pcie 1a145000.pcie: Parsing ranges property...
[ 6.174548] mtk-pcie 1a145000.pcie: MEM 0x0028000000..0x002fffffff -> 0x0028000000
[ 6.182927] mtk-pcie 1a145000.pcie: Port1 Executing startup!!!
[ 11.296227] mtk-pcie 1a145000.pcie: Port1 link down
[ 11.301360] mtk-pcie 1a145000.pcie: PCI host bridge to bus 0001:00
[ 11.307564] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 11.313058] pci_bus 0001:00: root bus resource [mem 0x28000000-0x2fffffff]
[ 11.319939] pci_bus 0001:00: scanning bus
[ 11.325461] pci_bus 0001:00: fixups for bus
[ 11.329665] pci_bus 0001:00: bus scan returning with max=00
The card is in the CN25 slot. I’ve even tried the wifi card from my old laptop in the R64, with exactly the same result, link down.
I have soldered a led (with shunt resistor ofcourse) on the 3.3V of the adapter, so I have checked that the 3.3V switches on, just before the (now visible) 5 second wait. (It also is switched on briefly when I connect power).
I have tried other images, because I suspected that not running u-boot could cause a difference in some register somewhere, but without succes. I tried the latest debian image from Frank, and tried the earliest v4.4.92 debian version I could find on the wiki page. All the same, Port0 link down.
I’ve looked in the schematics, the PERST signal is being used to switch on the 3.3V supply. I wonder if every card will like this? This should be the signal indicating to the card that supply and clock are stable right?
Anyone have any suggestions? Be a little patient, I don’t always have time to try something new immedeately.
Edit:
I’ve checked that neither the m.2 adapter, nor the old wifi card from laptop (AR9285), have any of the 5V pins connected. They are not connected to anything on both.
Also u-boot on Franks latest debian image finds nothing when I type pci enum