5G-REDCAP-EVB (RG255C-GL) RF Not Working After Firmware Flash (CFUN=1 Failure)

I am using the RG255C-GL module on a Quectel 5G RedCap EVB board.

Initially, the module was working correctly:

  • Network registration successful
  • NET_MODE LED blinking
  • AT+CSQ and AT+QENG commands working
  • SIM detected and operational
AT

OK
AT+CVERSION

VERSION: RG255CGLABR01A04M4G
Jun 24 2024 15:04:10
Authors: Quectel

OK
AT+CSUB

SubEdition: V02

OK
AT+QGMR

RG255CGLABR01A04M4G_01.002.01.002

OK
AT+COPS=?
AT

+COPS: (1,"IND-JIO","JIO","405864",7),(1,"IND airtel","airtel","40490",12),(1,"IND-JIO","JIO","405864",12),(1,"Vi India","Vi India","40422",7),(1,"CellOne","CellOne","40466",7),(1,"IND airtel","airtel","40490",7),,(0-4),(0-2)

OK

However, during firmware upgrade using qfirehose due to vpn connection issue - it failed and when we try re-flash it stuck in the below section

rohit.jagtap:~/Desktop/Data/Quectel_Project/Tools/QFirehose_Linux_Android_V1.7/out$ sudo ./QFirehose -f ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/
[000.000]: Version: QFirehose_Linux_Android_V1.7.1
[000.000]: Builded: Apr  9 2026 19:16:16
[000.001]: Find md5 check file <../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/md5.txt>
[000.001]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/contents.xml pass
[000.225]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/NON-HLOS.ubi pass
[000.227]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/abl.elf pass
[000.228]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/aop.mbn pass
[000.228]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/aop_devcfg.mbn pass
[000.228]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/apdp.mbn pass
[000.270]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/boot.img pass
[000.272]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/cmnlib.mbn pass
[000.273]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/cpucp.elf pass
[000.273]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/devcfg.mbn pass
[000.273]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/firehose/partition_complete_p2K_b128K.mbn pass
[000.273]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/firehose/patch_p2K_b128K.xml pass
[000.281]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/firehose/prog_firehose_sdx35.elf pass
[000.281]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/firehose/rawprogram_nand_p2K_b128K_update.xml pass
[000.281]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/fw_ipa_gsi_5.2_le.elf pass
[000.282]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/km41_32.mbn pass
[000.282]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/multi_qti.mbn pass
[000.282]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/partition.mbn pass
[000.282]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/partition_nand.xml pass
[000.305]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/qdsp6m.qdb pass
[000.305]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/qupv3fw.elf pass
[000.389]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/recoveryfs.ubi pass
[000.389]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/shrm.elf pass
[000.748]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/sysfs.ubi pass
[000.754]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/tz.mbn pass
[000.769]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/uefi.elf pass
[000.770]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/usrdata.ubi pass
[000.771]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/xbl_config.elf pass
[000.774]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/xbl_ramdump.elf pass
[000.779]: md5 checking: ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/xbl_s_nand.melf pass
[000.779]: Totals checking 30 files md5 value, 0 file fail!
[000.779]: find 'prog_firehose_sdx35.elf'
[000.779]: find_firehose_mbn prog_firehose_sdx35.elf
[000.779]: main prog_firehose_sdx35.elf
[000.779]: [1] /sys/bus/usb/devices/1-2 5c6/9008/0
[000.779]: qusb_read_speed_atime speed: 480, st_atime: 20260409_19:32:18
[000.779]: P: /dev/bus/usb/001/023 idVendor=05c6 idProduct=9008
[000.779]: C: /dev/bus/usb/001/023 bNumInterfaces: 1
[000.779]: I: If#= 0 Alt= 0 #EPs= 2 Cls=ff Sub=ff Prot=11
[000.779]: E: Ad=81 Atr=02 MxPS= 512 Ivl=0ms
[000.779]: E: Ad=01 Atr=02 MxPS= 512 Ivl=0ms
[000.779]: tmp=/sys/bus/usb/devices/usb1/../driver, driver=../../../bus/pci/drivers/xhci_hcd
[000.779]: sahara_main full_path:../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/update/firehose/prog_firehose_sdx35.elf
[000.779]: <=== Q_SAHARA_ONE
[000.780]: Q_SAHARA_TWO ===>
[000.787]: <=== Q_SAHARA_EIGHTEEN
[000.787]: 0x0000000d 0x00000000 0x00000040
[000.787]: <=== Q_SAHARA_EIGHTEEN
[000.787]: 0x0000000d 0x00000034 0x00000040
[000.787]: <=== Q_SAHARA_EIGHTEEN
[000.787]: 0x0000000d 0x00000074 0x00001000
[000.818]: <=== Q_SAHARA_EIGHTEEN
[000.818]: 0x0000000d 0x00001074 0x0000028c
[000.824]: <=== Q_SAHARA_EIGHTEEN
[000.824]: 0x0000000d 0x00001300 0x00000040
[000.825]: <=== Q_SAHARA_EIGHTEEN
[000.825]: 0x0000000d 0x00001334 0x00000180
[000.825]: <=== Q_SAHARA_EIGHTEEN
[000.825]: 0x0000000d 0x0002d300 0x00002eb0
[000.835]: <=== Q_SAHARA_EIGHTEEN
[000.835]: 0x0000000d 0x00002000 0x00011000
[000.841]: <=== Q_SAHARA_EIGHTEEN
[000.841]: 0x0000000d 0x00013000 0x00011000
[000.846]: <=== Q_SAHARA_EIGHTEEN
[000.846]: 0x0000000d 0x00024000 0x0000085c
[000.846]: <=== Q_SAHARA_EIGHTEEN
[000.847]: 0x0000000d 0x0002485c 0x00004794
[000.848]: <=== Q_SAHARA_EIGHTEEN
[000.848]: 0x0000000d 0x00028ff0 0x00001064
[000.849]: <=== Q_SAHARA_EIGHTEEN
[000.849]: 0x0000000d 0x0002a054 0x00002400
[000.855]: <=== Q_SAHARA_EIGHTEEN
[000.855]: 0x0000000d 0x000301b0 0x00000040
[000.856]: <=== Q_SAHARA_EIGHTEEN
[000.856]: 0x0000000d 0x000301e4 0x00000120
[000.856]: <=== Q_SAHARA_EIGHTEEN
[000.856]: 0x0000000d 0x000e11b0 0x00002e20
[000.866]: <=== Q_SAHARA_EIGHTEEN
[000.866]: 0x0000000d 0x000311b0 0x00011000
[000.869]: <=== Q_SAHARA_EIGHTEEN
[000.869]: 0x0000000d 0x000421b0 0x00011000
[000.872]: <=== Q_SAHARA_EIGHTEEN
[000.872]: 0x0000000d 0x000531b0 0x00011000
[000.874]: <=== Q_SAHARA_EIGHTEEN
[000.874]: 0x0000000d 0x000641b0 0x00011000
[000.877]: <=== Q_SAHARA_EIGHTEEN
[000.877]: 0x0000000d 0x000751b0 0x00011000
[000.880]: <=== Q_SAHARA_EIGHTEEN
[000.880]: 0x0000000d 0x000861b0 0x00011000
[000.882]: <=== Q_SAHARA_EIGHTEEN
[000.882]: 0x0000000d 0x000971b0 0x0000f000
[000.885]: <=== Q_SAHARA_EIGHTEEN
[000.885]: 0x0000000d 0x000a61b0 0x00010000
[000.887]: <=== Q_SAHARA_EIGHTEEN
[000.887]: 0x0000000d 0x000b61b0 0x00011000
[000.890]: <=== Q_SAHARA_EIGHTEEN
[000.890]: 0x0000000d 0x000c71b0 0x00002000
[000.891]: <=== Q_SAHARA_EIGHTEEN
[000.891]: 0x0000000d 0x000c91b0 0x00011000
[000.893]: <=== Q_SAHARA_EIGHTEEN
[000.893]: 0x0000000d 0x000da1b0 0x00007000
[000.900]: <=== Q_SAHARA_EIGHTEEN
[000.900]: 0x0000000d 0x000e3fd0 0x00000040
[000.901]: <=== Q_SAHARA_EIGHTEEN
[000.901]: 0x0000000d 0x000e4004 0x000000e0
[000.901]: <=== Q_SAHARA_EIGHTEEN
[000.901]: 0x0000000d 0x00122fd0 0x00001238
[000.904]: <=== Q_SAHARA_EIGHTEEN
[000.904]: 0x0000000d 0x000e4fd0 0x00011000
[000.907]: <=== Q_SAHARA_EIGHTEEN
[000.907]: 0x0000000d 0x000f5fd0 0x00011000
[000.909]: <=== Q_SAHARA_EIGHTEEN
[000.909]: 0x0000000d 0x00106fd0 0x00008000
[000.910]: <=== Q_SAHARA_EIGHTEEN
[000.910]: 0x0000000d 0x0010efd0 0x00008000
[000.912]: <=== Q_SAHARA_EIGHTEEN
[000.912]: 0x0000000d 0x00116fd0 0x0000c000
[000.918]: <=== Q_SAHARA_EIGHTEEN
[000.918]: 0x0000000d 0x00124208 0x00000040
[000.918]: <=== Q_SAHARA_EIGHTEEN
[000.918]: 0x0000000d 0x0012423c 0x00000120
[000.918]: <=== Q_SAHARA_EIGHTEEN
[000.918]: 0x0000000d 0x00151208 0x000012dc
[000.921]: <=== Q_SAHARA_EIGHTEEN
[000.922]: 0x0000000d 0x0012435c 0x0000015c
[000.922]: <=== Q_SAHARA_EIGHTEEN
[000.922]: 0x0000000d 0x001244b8 0x00008804
[000.923]: <=== Q_SAHARA_EIGHTEEN
[000.923]: 0x0000000d 0x0012ccbc 0x00008804
[000.925]: <=== Q_SAHARA_EIGHTEEN
[000.925]: 0x0000000d 0x001354c0 0x00008804
[000.926]: <=== Q_SAHARA_EIGHTEEN
[000.926]: 0x0000000d 0x0013dcc4 0x00008804
[000.927]: <=== Q_SAHARA_EIGHTEEN
[000.927]: 0x0000000d 0x001464c8 0x00003904
[000.928]: <=== Q_SAHARA_EIGHTEEN
[000.928]: 0x0000000d 0x00149dcc 0x00006fbc
[000.934]: <=== Q_SAHARA_FOUR
[000.934]: q_image_id = 13, q_status = 0
[000.934]: Q_SAHARA_FIVE ===>
[000.934]: <=== Q_SAHARA_SIX
[000.934]: q_image_tx_status = 1
[000.934]: Successfully flash all images
[000.934]: Sahara protocol completed
[000.935]: find 'rawprogram_nand_p2K_b128K_update.xml'
[000.935]: retrieve rawprogram namd file failed.
[000.935]: find 'patch_p2K_b128K.xml'
[001.184]: <log value="INFO: Binary build date: Sep 25 2024 @ 17:32:02" />
[001.184]: <log value="INFO: Binary build date: Sep 25 2024 @ 17:32:02." />
[001.184]: <log value="INFO: Chip serial num (0xf9bf1af9) Chip ID (0x44c)" />
[001.184]: <log value="INFO: Supported Functions (15):" />
[001.184]: <log value="INFO: program" />
[001.184]: <log value="INFO: read" />
[001.185]: <log value="INFO: nop" />
[001.185]: <log value="INFO: patch" />
[001.185]: <log value="INFO: configure" />
[001.185]: <log value="INFO: setbootablestoragedrive" />
[001.185]: <log value="INFO: erase" />
[001.185]: <log value="INFO: power" />
[001.185]: <log value="INFO: firmwarewrite" />
[001.185]: <log value="INFO: getstorageinfo" />
[001.186]: <log value="INFO: benchmark" />
[001.186]: <log value="INFO: emmc" />
[001.186]: <log value="INFO: ufs" />
[001.186]: <log value="INFO: fixgpt" />
[001.186]: <log value="INFO: getsha256digest" />
[001.186]: <log value="INFO: End of supported functions 15" />
[004.940]: <configure MemoryName="nand" Verbose="0" AlwaysValidate="0" MaxDigestTableSizeInBytes="2048" MaxPayloadSizeToTargetInBytes="8192"  ZlpAwareHost="1" SkipStorageInit="0" />
[004.941]: <log value="INFO: Calling handler for configure" />
[004.941]: <log value="INFO: Storage type set to value nand" />
[004.941]: <response value="ACK" MemoryName="nand" MinVersionSupported="1" Version="1" MaxPayloadSizeToTargetInBytes="8192" MaxPayloadSizeToTargetInBytesSupported="16384" MaxXMLSizeInBytes="4096" DateTime="Sep 25 2024 - 17:32:02" />
[004.941]: <erase PAGES_PER_BLOCK="64" SECTOR_SIZE_IN_BYTES="2048" num_partition_sectors="1920" physical_partition_number="0" start_sector="0"/>
[004.941]: <log value="INFO: Calling handler for erase" />
[008.950]: <log value="INFO: [285] Bad Block Check 0% complete." />
[008.961]: <log value="INFO: [285] Bad Block Check 2% complete." />
[008.973]: <log value="INFO: [285] Bad Block Check 4% complete." />
[008.984]: <log value="INFO: [285] Bad Block Check 7% complete." />
[008.996]: <log value="INFO: [285] Bad Block Check 9% complete." />
[009.007]: <log value="INFO: [285] Bad Block Check 12% complete." />
[009.019]: <log value="INFO: [285] Bad Block Check 14% complete." />
[009.030]: <log value="INFO: [285] Bad Block Check 17% complete." />
[009.042]: <log value="INFO: [285] Bad Block Check 19% complete." />
[009.054]: <log value="INFO: [285] Bad Block Check 21% complete." />
[009.065]: <log value="INFO: [285] Bad Block Check 24% complete." />
[009.077]: <log value="INFO: [285] Bad Block Check 26% complete." />
[009.088]: <log value="INFO: [285] Bad Block Check 29% complete." />
[009.100]: <log value="INFO: [285] Bad Block Check 31% complete." />
[009.111]: <log value="INFO: [285] Bad Block Check 34% complete." />
[009.123]: <log value="INFO: [285] Bad Block Check 36% complete." />
[009.134]: <log value="INFO: [285] Bad Block Check 39% complete." />
[009.146]: <log value="INFO: [285] Bad Block Check 41% complete." />
[009.157]: <log value="INFO: [285] Bad Block Check 43% complete." />
[009.169]: <log value="INFO: [285] Bad Block Check 46% complete." />
[009.180]: <log value="INFO: [285] Bad Block Check 48% complete." />
[009.192]: <log value="INFO: [285] Bad Block Check 51% complete." />
[009.204]: <log value="INFO: [285] Bad Block Check 53% complete." />
[009.215]: <log value="INFO: [285] Bad Block Check 56% complete." />
[009.227]: <log value="INFO: [285] Bad Block Check 58% complete." />
[009.238]: <log value="INFO: [285] Bad Block Check 61% complete." />
[009.250]: <log value="INFO: [285] Bad Block Check 63% complete." />
[009.262]: <log value="INFO: [285] Bad Block Check 65% complete." />
[009.273]: <log value="INFO: [285] Bad Block Check 68% complete." />
[009.284]: <log value="INFO: [285] Bad Block Check 70% complete." />
[009.296]: <log value="INFO: [285] Bad Block Check 73% complete." />
[009.307]: <log value="INFO: [285] Bad Block Check 75% complete." />
[009.319]: <log value="INFO: [285] Bad Block Check 78% complete." />
[009.331]: <log value="INFO: [285] Bad Block Check 80% complete." />
[009.342]: <log value="INFO: [285] Bad Block Check 83% complete." />
[009.354]: <log value="INFO: [285] Bad Block Check 85% complete." />
[009.365]: <log value="INFO: [285] Bad Block Check 87% complete." />
[009.377]: <log value="INFO: [285] Bad Block Check 90% complete." />
[009.388]: <log value="INFO: [285] Bad Block Check 92% complete." />
[009.400]: <log value="INFO: [285] Bad Block Check 95% complete." />
[009.411]: <log value="INFO: [285] Bad Block Check 97% complete." />
[009.423]: <log value="INFO: [check_projectname_exist] Invalid e_project_version" />
[009.423]: <log value="INFO: Erasing start sector 0, num sectors 0" />
[009.425]: <log value="INFO: NAND Erase 0% complete." />
[009.466]: <response value="ACK" rawmode="false" />
[009.466]: <erase a_rawdata_start_sector="15488" b_rawdata_num_sector="448" c_project_name="RG255CGL_VC" d_project_type="STD" e_project_version="RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01" vendor="quectel"/>
[009.466]: <log value="INFO: Calling handler for erase" />
[009.466]: <log value="INFO: NAND was previously open, returning existing handle 0." />
[009.473]: <log value="INFO: [check_projectname_exist] magic1=0x57464C51, magic2=0x2D524556." />
[009.473]: <log value="INFO: [check_projectname_exist] rawdata_version=V2.01." />
[009.473]: <log value="INFO: [check_projectname_exist] project_name module=RG255CGL_VA." />
[009.473]: <log value="INFO: [check_projectname_exist] project_version module=38,RG255CGLAAR01A01M4G_OCPU_BETA20230505A." />
[009.473]: <log value="INFO: [check_projectname_exist] project_version firmware=46,RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01." />
[009.473]: <log value="INFO: [check_projectname_exist] project_type module=OL." />
[009.473]: <log value="INFO: [ql_ati_version_compare] The position of RxxAxx [10:10]" />
[009.474]: <log value="ERROR: [check_projectname_exist] project version = RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01 error!" />
[009.474]: <response value="NAK" rawmode="false" />
[009.474]: firehose_protocol.c firehose_main 1372 fail
[009.474]: inf[0] ep_in -1/1024, errno = 108 (Cannot send after transport endpoint shutdown)
[009.474]: qusb_noblock_read read=-1, errno: 108 (Cannot send after transport endpoint shutdown)
[009.474]: qusb_noblock_read cur=0, min_size=1
[009.474]: Upgrade module failed.
rohit.jagtap:~/Desktop/Data/Quectel_Project/Tools/QFirehose_Linux_Android_V1.7/out$

To come out of this - I have performed a full erase using the “-e” option.

rohit.jagtap:~/Desktop/Data/Quectel_Project/Tools/QFirehose_Linux_Android_V1.7/out$ sudo ./QFirehose -f ../../../Firmware/RG255CGLABR01A04M4G_OCPU_BETA240929A_01.001.01.001/ -e

After this:

Current issues:

  • AT+CFUN=1 fails with CME ERROR: 0
  • AT+CSQ returns 99,99
  • AT+QENG=“servingcell” returns empty
  • AT+QNWINFO returns ERROR
  • NET_MODE LED not blinking
  • Device stuck in CFUN=5 (RF disabled)

SIM is detected correctly:

  • AT+CPIN: READY
  • AT+QUSIM: 1

I re-flashed the module with non-OCPU firmware - RG255CGLABR01A05M4G_A0.300.A0.300 (without -e), but the issue persists.

ATI
Quectel
RG255C-GL
Revision: RG255CGLABR01A05M4G

OK
AT+QGMR
RG255CGLABR01A05M4G_A0.300.A0.300

OK
AT+CGSN
869710030002905

OK
AT+CFUN?
+CFUN: 5

OK
AT+CFUN=1
+CME ERROR: 0
AT+CSQ
+CSQ: 99,99

OK
AT+QENG="servingcell"
OK
AT+QNWINFO
ERROR
AT+CPIN?
+CPIN: READY

OK
AT+COPS=?
ERROR

It appears that RF calibration / NV data may have been erased.

Request:
@silvia Could you please provide the procedure to recover from above issue or restore procedure of RF functionality?

Thank you.

Dear @Rohit_Jagtap
If use -e to upgrade, the RF parameter had been erased.
Do you backup your QCN? If yes, you can restore.

No I have not backup of QCN, thats why before starting the development I have asked about the backup how we can take it - On which got response not have any way to take it on this ticket.

Now any way to recover from this?

Regards,
Rohit Jagtap.

Dear @Rohit_Jagtap
Please share IMEI, then I will share QCN to you.

In other topic, we discussed about firmware , not QCN, so there is a misunderstanding on it.

Hello @silvia,

Yes, actually discussion was around firmware on the other topic, my intention in mentioning firmware backup and restore was to explain the state of device. I missed to mention it and misunderstanding happened.

As requested - I have shared the modules IMEI (module shielding cover snippet) via Message.

Also please provide the necessary recovery tools and the procedure to restore QCN, so we came out of CFUN5 state.

Regards,
Rohit Jagtap.

Dear @Rohit_Jagtap
I have sent to you via Message, please check.