So next step of my whole mobile router work is working to get this Quectel RM520N-GLAP card functional. The AP model specifically is PCI only with no USB operation but it often appears about as cheap as the FM350-GL cards which I've already had some rocky experience with.
Now I have successfully gotten this card working on my old spare Intel Haswell x86 box. As noted in some other threads here, it uses the generic MHI packages available in the latest OWRT builds. However it is not 100% working in this state and requires a small patch for tools like MBIM, QMI, and ModemManager to see it and use it. That patch has been documented over here and the OP looks like they're working to get it submitted to mainline: https://forum.gl-inet.com/t/how-to-installing-vanilla-openwrt-on-gl-x3000/45404/15?u=cr08
Now just as a note that all the devices I'm attempting to use these with have mPCIe slots (The x86 board I'm using the onboard mPCIe Wifi slot and both slots on the BPI-R64 have PCI lanes passed to them) and the FM350 and RM520 cards are both M.2. I'm using mPCIe>M.2 adapters which have PCI passed through.
That all out of the way, the card works perfectly on the x86 box.
[ 5.186421] mhi-pci-generic 0000:03:00.0: MHI PCI device found: quectel-rm5xx
[ 5.186962] mhi-pci-generic 0000:03:00.0: BAR 0: assigned [mem 0xf7c01000-0xf7c01fff 64bit]
[ 5.187569] mhi-pci-generic 0000:03:00.0: using shared MSI
[ 5.188306] mhi mhi0: Requested to power ON
[ 5.189132] mhi mhi0: Power on setup success
[ 5.212763] urngd: v1.0.2 started.
[ 5.315610] NET: Registered PF_QIPCRTR protocol family
[ 5.318519] usbcore: registered new interface driver asix
[ 6.080503] ax88179_178a 3-6:1.0 eth1: register 'ax88179_178a' at usb-0000:00:14.0-6, ASIX AX88179 USB 3.0 Gigabit Ethernet, 00:0e:c6:77:76:7e
[ 6.081740] usbcore: registered new interface driver ax88179_178a
[ 6.082729] usbcore: registered new interface driver cdc_ether
[ 6.083589] usbcore: registered new interface driver cdc_ncm
[ 6.084299] wwan wwan0: port wwan0qcdm0 attached
[ 6.085074] wwan wwan0: port wwan0mbim0 attached
[ 6.085909] wwan wwan0: port wwan0at0 attached
root@OpenWrt:~# lspci
03:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc Device 0308
mhi 69632 5 mhi_wwan_mbim,mhi_wwan_ctrl,qrtr_mhi,mhi_pci_generic,mhi_net
mhi_net 12288 0
mhi_pci_generic 20480 0
mhi_wwan_ctrl 12288 0
mhi_wwan_mbim 12288 0
qrtr 20480 3 qrtr_mhi
qrtr_mhi 12288 0
wwan 16384 6 mhi_wwan_mbim,mhi_wwan_ctrl
However on the BPI-R64 nothing shows up. Even under U-Boot doing a pci enum
and pci
it shows both links as down. Inside OpenWRT:
root@OpenWrt:~# lspci -v
root@OpenWrt:~# dmesg | grep pci
[ 1.607066] mtk-pcie 1a143000.pcie: host bridge /pcie@1a143000 ranges:
[ 1.613691] mtk-pcie 1a143000.pcie: Parsing ranges property...
[ 1.619540] mtk-pcie 1a143000.pcie: MEM 0x0020000000..0x0027ffffff -> 0x0020000000
[ 1.962976] mtk-pcie 1a143000.pcie: Port0 link down
[ 1.968288] mtk-pcie 1a143000.pcie: PCI host bridge to bus 0000:00
[ 1.974504] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 1.979995] pci_bus 0000:00: root bus resource [mem 0x20000000-0x27ffffff]
[ 1.986873] pci_bus 0000:00: scanning bus
[ 1.992606] pci_bus 0000:00: fixups for bus
[ 1.996795] pci_bus 0000:00: bus scan returning with max=00
[ 2.003168] mtk-pcie 1a145000.pcie: host bridge /pcie@1a145000 ranges:
[ 2.009725] mtk-pcie 1a145000.pcie: Parsing ranges property...
[ 2.015571] mtk-pcie 1a145000.pcie: MEM 0x0028000000..0x002fffffff -> 0x0028000000
[ 2.362954] mtk-pcie 1a145000.pcie: Port1 link down
[ 2.368066] mtk-pcie 1a145000.pcie: PCI host bridge to bus 0001:00
[ 2.374273] pci_bus 0001:00: root bus resource [bus 00-ff]
[ 2.379764] pci_bus 0001:00: root bus resource [mem 0x28000000-0x2fffffff]
[ 2.386642] pci_bus 0001:00: scanning bus
[ 2.392396] pci_bus 0001:00: fixups for bus
[ 2.396590] pci_bus 0001:00: bus scan returning with max=00
[ 2.446142] FIT: flat_dt sub-image 0x00591000..0x0059111a "fdt-mt7622-bananapi-bpi-r64-pcie1" (ARM64 OpenWrt bananapi_bpi-r64 device tree overlay mt7622-bananapi-bpi-r64-pcie1)
During this testing I also found the few Quectel EC25-AF's I have do the same and don't come up. This is with native mPCIe versions as well as the M.2 versions. The FM350 fares better and works as well as it can within its own reliability concerns.
Power supply issues should be good. This is a revision 1.2 board which is reported to have some of the lingering power issues fixed and should be able to supply at least 3A of 3.3V power to either slot. I'm also supplying the board itself from a 12V Meanwell power supply rated for 30A.
I do know there's also some other issues related to various pins on the mPCIe slots on this board that I haven't been able to make 100% sense of yet and adding in the M.2 adapter muddies things and I haven't been able to source a good doc detailing how the pins map between the interfaces. There is a light on the adapter board that lights up seemingly when the card is properly powered up. Rough timing is it seems to light when the PCI scan passes in the dmesg log and this is the same both on the x86 board and the BPI-R64.
Just curious if anyone else has had any experience with these or has any thoughts where to start troubleshooting? The BPI-R64 on paper seems like it is perfect for my needs with two PCI fed card slots alongside the onboard Wifi but I'm trying my best to move to the RM520N-GL if possible due to reliability issues with the FM350-GL.