RM520N-GL only ttyUSB0 and ttyUSB1 enumerate

RM520N-GL only ttyUSB0 and ttyUSB1 enumerate on a linux device running linux kernel 5.4.223. This kernel seem to have the needed patches for the 520 to be supported. However as you can see in the dmesg output below, it seems like the VID and PID are for the generic EC25 0x0125 instead of for the rm520, which would be 0x0801.

dmesg:
[ 12.114487] usb 2-1.4: new SuperSpeed Gen 1 USB device number 4 using xhci-hcd
[ 12.145943] usb 2-1.4: LPM exit latency is zeroed, disabling LPM.
[ 12.157302] usb 2-1.4: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 5.04
[ 12.169792] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 12.169793] usb 2-1.4: Product: RM520N-GL
[ 12.169794] usb 2-1.4: Manufacturer: Quectel
[ 12.169795] usb 2-1.4: SerialNumber: 52ddb378
[ 12.333418] usb_bam_dt_to_data: bam type is missing in device tree
[ 12.339800] usb_bam: probe of a704000.qcom,usbbam failed with error -22
[ 12.339802] usb 2-1.4: New USB device found, VID=2c7c, PID=0125
[ 12.349669] msm-usb-ssphy-qmp 88e8000.ssphy: USB DP QMP PHY: Update TYPEC CTRL(2)
[ 12.369566] usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB0
[ 12.401604] usb 2-1.4: GSM modem (1-port) converter now attached to ttyUSB1

ttyUSB1 does seem to be AT, but there should be many more ports enumerating. With the cdc_wdm and qmi_wwan drivers loaded, quectel-CM also does not work properly

Check the output of cat /sys/kernel/debug/usb/devices

After looking at it more, I can now see that ttyUSB1 is the AT port, with ttyUSB0 probably being USBDM. So now the question is why is the NMEA port not showing up? I nmea port should be outputing over usb, after checking +QGPSCFG: “outport”,usbnmea.
While not actually a problem anymore, does anyone have any idea why the VID and PID aren’t in line with what a RM520 should be?

Below is my /sys/kernel/debug/usb/devices:

sh-5.0# cat /sys/kernel/debug/usb/devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 5.04
S: Manufacturer=Linux 5.4.233 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=xhci-hcd.2.auto
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.10 Cls=09(hub ) Sub=00 Prot=02 MxPS=64 #Cfgs= 1
P: Vendor=05e3 ProdID=0610 Rev=94.04
S: Manufacturer=GenesysLogic
S: Product=USB2.1 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=01 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub ) Sub=00 Prot=02 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 5.04
S: Manufacturer=Linux 5.4.233 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=xhci-hcd.2.auto
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=10000 MxCh= 4
D: Ver= 3.20 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=05e3 ProdID=0625 Rev=94.04
S: Manufacturer=GenesysLogic
S: Product=USB3.2 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=83(I) Atr=13(Int.) MxPS= 2 Ivl=16ms

T: Bus=02 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=5000 MxCh= 0
D: Ver= 3.00 Cls=ff(vend.) Sub=ff Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=0b95 ProdID=1790 Rev= 1.00
S: Manufacturer=ASIX Elec. Corp.
S: Product=AX88179
S: SerialNumber=00000000000001
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=496mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=00 Driver=ax_usb_nic
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms

T: Bus=02 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 4 Spd=5000 MxCh= 0
D: Ver= 3.20 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
P: Vendor=2c7c ProdID=0125 Rev= 5.04
S: Manufacturer=Quectel
S: Product=RM520N-GL
S: SerialNumber=52ddb378
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=896mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=(none)
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=82(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E: Ad=88(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
E: Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
E: Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
E: Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms

This is probably your NMEA interface. The driver is not loaded because of the weird Pid.
I would try to fix this using AT+QCFG="usbcfg"

I did see something about usbcfg elsewhere. Makes sense. Also not a necessity, but do you know where I can find info on the other fields of the usbcfg AT command? The RM520N AT Command doc doesn’t have anything on that one.

You need to change what you need to change and keep other values intact.
If you google for it you should eventually hit this page:

1 Like

I set the PID to 0x0801 as it should be and that worked! Thanks! Not sure why the PID was wrong, maybe Quectel wanted to support older kernel’s before they patched it in mainline.