Unbricking QRB5165 M: Flashing Fails with "Failed to initialize UFS Device"
-
Hi everyone,
I am trying to flash the latest flat build onto my Modal AI QRB5165 M hardware, but the process consistently fails.
The initial connection via the Sahara protocol seems to work correctly, and the firehose programmer is loaded onto the device. However, the process fails as soon as it attempts to program the UFS storage. I have already searched the forums and found this highly relevant topic: https://forum.modalai.com/topic/4348/unbricking-of-voxl2-is-failing-build-failure
Based on the suggestions in that thread, I have already tried the following:
- Running the qdl command manually with the --debug flag.
- Ensuring the libxml2 library is installed on my system.
- Using multiple different high-quality USB-C cables and different USB ports.
- Verifying that the flat build files were extracted correctly and are not in a nested sub-folder.
Unfortunately, even after performing all these steps, the result is the same error every time.
Given that the programmer loads but cannot access the storage, I am starting to suspect a hardware issue. Are there any other software-based troubleshooting steps I can try, or is this likely a case for an RMA?
Any help or guidance would be greatly appreciated.
Here is the key error output from the following command:
sudo qdl --debug --storage ufs --include . prog_firehose_ddr.elf rawprogram_unsparse0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml rawprogram5.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml patch5.xml
Error output:
modal hello [MODALAI] test log [MODALAI] Executing usb_open [MODALAI] Completed usb_open [MODALAI] Executing sahara_run HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0 READ64 image: 13 offset: 0x0 length: 0x40 READ64 image: 13 offset: 0x40 length: 0x310 READ64 image: 13 offset: 0x1000 length: 0x1000 READ64 image: 13 offset: 0x2000 length: 0xc48 READ64 image: 13 offset: 0x3000 length: 0x1000 READ64 image: 13 offset: 0x4000 length: 0x1000 READ64 image: 13 offset: 0x5000 length: 0x1000 READ64 image: 13 offset: 0x6000 length: 0x1000 READ64 image: 13 offset: 0x7000 length: 0x1000 READ64 image: 13 offset: 0x8000 length: 0x1000 READ64 image: 13 offset: 0x9000 length: 0x1000 READ64 image: 13 offset: 0xa000 length: 0x1000 READ64 image: 13 offset: 0xb000 length: 0x1000 READ64 image: 13 offset: 0xc000 length: 0x1000 READ64 image: 13 offset: 0xd000 length: 0x1000 READ64 image: 13 offset: 0xe000 length: 0x1000 READ64 image: 13 offset: 0xf000 length: 0x1000 READ64 image: 13 offset: 0x10000 length: 0x1000 READ64 image: 13 offset: 0x11000 length: 0x1000 READ64 image: 13 offset: 0x12000 length: 0x1000 READ64 image: 13 offset: 0x13000 length: 0x1000 READ64 image: 13 offset: 0x14000 length: 0x1000 READ64 image: 13 offset: 0x15000 length: 0x1000 READ64 image: 13 offset: 0x16000 length: 0x1000 READ64 image: 13 offset: 0x17000 length: 0x1000 READ64 image: 13 offset: 0x18000 length: 0x1000 READ64 image: 13 offset: 0x19000 length: 0x1000 READ64 image: 13 offset: 0x1a000 length: 0x1000 READ64 image: 13 offset: 0x1b000 length: 0x1000 READ64 image: 13 offset: 0x1c000 length: 0x1000 READ64 image: 13 offset: 0x1d000 length: 0x1000 READ64 image: 13 offset: 0x1e000 length: 0x1000 READ64 image: 13 offset: 0x1f000 length: 0x1000 READ64 image: 13 offset: 0x20000 length: 0x1000 READ64 image: 13 offset: 0x21000 length: 0x1000 READ64 image: 13 offset: 0x22000 length: 0x1000 READ64 image: 13 offset: 0x23000 length: 0x1000 READ64 image: 13 offset: 0x24000 length: 0x1000 READ64 image: 13 offset: 0x25000 length: 0x1000 READ64 image: 13 offset: 0x26000 length: 0x1000 READ64 image: 13 offset: 0x27000 length: 0x1000 READ64 image: 13 offset: 0x28000 length: 0x1000 READ64 image: 13 offset: 0x29000 length: 0x1000 READ64 image: 13 offset: 0x2a000 length: 0x1000 READ64 image: 13 offset: 0x2b000 length: 0x1000 READ64 image: 13 offset: 0x2c000 length: 0x1000 READ64 image: 13 offset: 0x2d000 length: 0x1000 READ64 image: 13 offset: 0x2e000 length: 0x1000 READ64 image: 13 offset: 0x2f000 length: 0x1000 READ64 image: 13 offset: 0x30000 length: 0x1000 READ64 image: 13 offset: 0x31000 length: 0x1000 READ64 image: 13 offset: 0x32000 length: 0x1000 READ64 image: 13 offset: 0x33000 length: 0x1000 READ64 image: 13 offset: 0x34000 length: 0x1000 READ64 image: 13 offset: 0x35000 length: 0x1000 READ64 image: 13 offset: 0x36000 length: 0x1000 READ64 image: 13 offset: 0x37000 length: 0x1000 READ64 image: 13 offset: 0x38000 length: 0x1000 READ64 image: 13 offset: 0x39000 length: 0x1000 READ64 image: 13 offset: 0x3a000 length: 0x1000 READ64 image: 13 offset: 0x3b000 length: 0x1000 READ64 image: 13 offset: 0x3c000 length: 0x1000 READ64 image: 13 offset: 0x3d000 length: 0x1000 READ64 image: 13 offset: 0x3e000 length: 0x1000 READ64 image: 13 offset: 0x3f000 length: 0x1000 READ64 image: 13 offset: 0x40000 length: 0x1000 READ64 image: 13 offset: 0x41000 length: 0x1000 READ64 image: 13 offset: 0x42000 length: 0x1000 READ64 image: 13 offset: 0x43000 length: 0x1000 READ64 image: 13 offset: 0x44000 length: 0x1000 READ64 image: 13 offset: 0x45000 length: 0x1000 READ64 image: 13 offset: 0x46000 length: 0x1000 READ64 image: 13 offset: 0x47000 length: 0x1000 READ64 image: 13 offset: 0x48000 length: 0x1000 READ64 image: 13 offset: 0x49000 length: 0x1000 READ64 image: 13 offset: 0x4a000 length: 0x1000 READ64 image: 13 offset: 0x4b000 length: 0x1000 READ64 image: 13 offset: 0x4c000 length: 0x1000 READ64 image: 13 offset: 0x4d000 length: 0x1000 READ64 image: 13 offset: 0x4e000 length: 0x1000 READ64 image: 13 offset: 0x4f000 length: 0x1000 READ64 image: 13 offset: 0x50000 length: 0x1000 READ64 image: 13 offset: 0x51000 length: 0x1000 READ64 image: 13 offset: 0x52000 length: 0x1000 READ64 image: 13 offset: 0x53000 length: 0x1000 READ64 image: 13 offset: 0x54000 length: 0x1000 READ64 image: 13 offset: 0x55000 length: 0x1000 READ64 image: 13 offset: 0x56000 length: 0x1000 READ64 image: 13 offset: 0x57000 length: 0x1000 READ64 image: 13 offset: 0x58000 length: 0x1000 READ64 image: 13 offset: 0x59000 length: 0x1000 READ64 image: 13 offset: 0x5a000 length: 0x1000 READ64 image: 13 offset: 0x5b000 length: 0x1000 READ64 image: 13 offset: 0x5c000 length: 0x1000 READ64 image: 13 offset: 0x5d000 length: 0x1000 READ64 image: 13 offset: 0x5e000 length: 0x1000 READ64 image: 13 offset: 0x5f000 length: 0x1000 READ64 image: 13 offset: 0x60000 length: 0x1000 READ64 image: 13 offset: 0x61000 length: 0x1000 READ64 image: 13 offset: 0x62000 length: 0x1000 READ64 image: 13 offset: 0x63000 length: 0x1000 READ64 image: 13 offset: 0x64000 length: 0x1000 READ64 image: 13 offset: 0x65000 length: 0x16c READ64 image: 13 offset: 0x65170 length: 0x1000 READ64 image: 13 offset: 0x66170 length: 0x1000 READ64 image: 13 offset: 0x67170 length: 0x1000 READ64 image: 13 offset: 0x68170 length: 0x1000 READ64 image: 13 offset: 0x69170 length: 0x1000 READ64 image: 13 offset: 0x6a170 length: 0x1000 READ64 image: 13 offset: 0x6b170 length: 0x1000 READ64 image: 13 offset: 0x6c170 length: 0x1000 READ64 image: 13 offset: 0x6d170 length: 0x1000 READ64 image: 13 offset: 0x6e170 length: 0x1000 READ64 image: 13 offset: 0x6f170 length: 0x1000 READ64 image: 13 offset: 0x70170 length: 0x1000 READ64 image: 13 offset: 0x71170 length: 0x6a0 READ64 image: 13 offset: 0x71810 length: 0x1000 READ64 image: 13 offset: 0x72810 length: 0x1000 READ64 image: 13 offset: 0x73810 length: 0x1000 READ64 image: 13 offset: 0x74810 length: 0x1000 READ64 image: 13 offset: 0x75810 length: 0x1000 READ64 image: 13 offset: 0x76810 length: 0x1000 READ64 image: 13 offset: 0x77810 length: 0x1000 READ64 image: 13 offset: 0x78810 length: 0x1000 READ64 image: 13 offset: 0x79810 length: 0x1000 READ64 image: 13 offset: 0x7a810 length: 0x1000 READ64 image: 13 offset: 0x7b810 length: 0x1000 READ64 image: 13 offset: 0x7c810 length: 0x1000 READ64 image: 13 offset: 0x7d810 length: 0x1000 READ64 image: 13 offset: 0x7e810 length: 0x1000 READ64 image: 13 offset: 0x7f810 length: 0x1000 READ64 image: 13 offset: 0x80810 length: 0x1000 READ64 image: 13 offset: 0x81810 length: 0xcc READ64 image: 13 offset: 0x818e0 length: 0x84 READ64 image: 13 offset: 0x81964 length: 0x1000 READ64 image: 13 offset: 0x82964 length: 0x1000 READ64 image: 13 offset: 0x83964 length: 0x1000 READ64 image: 13 offset: 0x84964 length: 0x1000 READ64 image: 13 offset: 0x85964 length: 0x1000 READ64 image: 13 offset: 0x86964 length: 0x1000 READ64 image: 13 offset: 0x87964 length: 0x1000 READ64 image: 13 offset: 0x88964 length: 0x134 READ64 image: 13 offset: 0x88a98 length: 0x1000 READ64 image: 13 offset: 0x89a98 length: 0x1000 READ64 image: 13 offset: 0x8aa98 length: 0x1000 READ64 image: 13 offset: 0x8ba98 length: 0x1000 READ64 image: 13 offset: 0x8ca98 length: 0x1000 READ64 image: 13 offset: 0x8da98 length: 0x1000 READ64 image: 13 offset: 0x8ea98 length: 0x3f0 READ64 image: 13 offset: 0x8ee88 length: 0x1000 READ64 image: 13 offset: 0x8fe88 length: 0x1000 READ64 image: 13 offset: 0x90e88 length: 0x1000 READ64 image: 13 offset: 0x91e88 length: 0x1000 READ64 image: 13 offset: 0x92e88 length: 0x1000 READ64 image: 13 offset: 0x93e88 length: 0x1000 READ64 image: 13 offset: 0x94e88 length: 0x3f0 READ64 image: 13 offset: 0x95278 length: 0x1000 READ64 image: 13 offset: 0x96278 length: 0x1000 READ64 image: 13 offset: 0x97278 length: 0x1000 READ64 image: 13 offset: 0x98278 length: 0x1000 READ64 image: 13 offset: 0x99278 length: 0x1000 READ64 image: 13 offset: 0x9a278 length: 0x1000 READ64 image: 13 offset: 0x9b278 length: 0x1000 READ64 image: 13 offset: 0x9c278 length: 0x1000 READ64 image: 13 offset: 0x9d278 length: 0x1000 READ64 image: 13 offset: 0x9e278 length: 0x1000 READ64 image: 13 offset: 0x9f278 length: 0x1000 READ64 image: 13 offset: 0xa0278 length: 0x1000 READ64 image: 13 offset: 0xa1278 length: 0x1000 READ64 image: 13 offset: 0xa2278 length: 0x1000 READ64 image: 13 offset: 0xa3278 length: 0x1000 READ64 image: 13 offset: 0xa4278 length: 0x1000 READ64 image: 13 offset: 0xa5278 length: 0x1000 READ64 image: 13 offset: 0xa6278 length: 0x1000 READ64 image: 13 offset: 0xa7278 length: 0x1000 READ64 image: 13 offset: 0xa8278 length: 0x1000 READ64 image: 13 offset: 0xa9278 length: 0x1000 READ64 image: 13 offset: 0xaa278 length: 0x1000 END OF IMAGE image: 13 status: 0 DONE status: 1 [MODALAI] Completed sahara_run [MODALAI] Executing firehose_run [MODALAI] Executing firehose_read FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Binary build date: Aug 17 2021 @ 23:37:37" /></data> LOG: INFO: Binary build date: Aug 17 2021 @ 23:37:37 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Binary build date: Aug 17 2021 @ 23:37:37 " /></data> LOG: INFO: Binary build date: Aug 17 2021 @ 23:37:37 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Chip serial num: 1947756615 (0x74186847)" /></data> LOG: INFO: Chip serial num: 1947756615 (0x74186847) FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Supported Functions (15):" /></data> LOG: INFO: Supported Functions (15): FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: program" /></data> LOG: INFO: program FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: read" /></data> LOG: INFO: read FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: nop" /></data> LOG: INFO: nop FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: patch" /></data> LOG: INFO: patch FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: configure" /></data> LOG: INFO: configure FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: setbootablestoragedrive" /></data> LOG: INFO: setbootablestoragedrive FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: erase" /></data> LOG: INFO: erase FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: power" /></data> LOG: INFO: power FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: firmwarewrite" /></data> LOG: INFO: firmwarewrite FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: getstorageinfo" /></data> LOG: INFO: getstorageinfo FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: benchmark" /></data> LOG: INFO: benchmark FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: emmc" /></data> LOG: INFO: emmc FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: ufs" /></data> LOG: INFO: ufs FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: fixgpt" /></data> LOG: INFO: fixgpt FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: getsha256digest" /></data> LOG: INFO: getsha256digest FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: End of supported functions 15" /></data> LOG: INFO: End of supported functions 15 qdl: firehose operation timed out [MODALAI] Completed firehose_read [MODALAI] Executing ufs_need_provisioning [MODALAI] ==== Executing firehose configure ==== FIREHOSE WRITE: <?xml version="1.0"?> <data><configure MemoryName="ufs" MaxPayloadSizeToTargetInBytes="1048576" Verbose="1" ZlpAwareHost="1" SkipStorageInit="0" AlwaysValidate="0" MaxDigestTableSizeInBytes="8192"/></data> FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Calling handler for configure" /></data> LOG: INFO: Calling handler for configure FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Storage type set to value UFS" /></data> LOG: INFO: Storage type set to value UFS FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="DEBUG: Calling usb_al_bulk_set_zlp_mode(TRUE), zlp is not set to 0" /></data> LOG: DEBUG: Calling usb_al_bulk_set_zlp_mode(TRUE), zlp is not set to 0 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <response value="ACK" MemoryName="UFS" MinVersionSupported="1" Version="1" MaxPayloadSizeToTargetInBytes="1048576" MaxPayloadSizeToTargetInBytesSupported="1048576" MaxXMLSizeInBytes="4096" DateTime="Aug 17 2021 - 23:37:37" /></data> [CONFIGURE] max payload size: 1048576 [MODALAI] ==== Completed firehose configure ==== [MODALAI] ==== Executing firehose erase ==== [MODALAI] ==== Completed firehose erase ==== [MODALAI] ==== Executing firehose program ==== FIREHOSE WRITE: <?xml version="1.0"?> <data><program SECTOR_SIZE_IN_BYTES="4096" num_partition_sectors="1294" physical_partition_number="0" start_sector="8712" filename="m0054-cal-fs_1.ext4"/></data> FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="INFO: Calling handler for program" /></data> LOG: INFO: Calling handler for program FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="DEBUG: Can't decode attribute slot with value " /></data> LOG: DEBUG: Can't decode attribute slot with value FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="ERROR: Failed to initialize (open whole lun) UFS Device slot 0 partition 0" /></data> LOG: ERROR: Failed to initialize (open whole lun) UFS Device slot 0 partition 0 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="ERROR: Failed to open the device:3 slot:0 partition:0 error:0" /></data> LOG: ERROR: Failed to open the device:3 slot:0 partition:0 error:0 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="ERROR: OPEN handle NULL and no error, weird 344489460" /></data> LOG: ERROR: OPEN handle NULL and no error, weird 344489460 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <log value="ERROR: Failed to open device, type:UFS, slot:0, lun:0 error:3" /></data> LOG: ERROR: Failed to open device, type:UFS, slot:0, lun:0 error:3 FIREHOSE READ: <?xml version="1.0" encoding="UTF-8" ?> <data> <response value="NAK" rawmode="false" /></data> [PROGRAM] failed to setup programming