[SOLVED : recent qdl bug] Board stuck in USB flashing mode after having used qdl

Hi all,

After playing around with the content of the db845c /dev/sdeNN partitions (looking for which one is used by Linux/Debian or not, as Windows ARM laptops have this kind of partitions too) I eventually had to reload their content using qdl (USB Flashing Mode AKA EDL). Indeed the XBL bootloader was still there, talking into the debug UART micro USB debug port, but not working enough to get to fastboot, may be because of an empty “abl_a” partition (this one seems not to be used by Linux but used by bootloader instead).

UART output looked like that:

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.XF.2.0-00371-SDM845LZB-1
S - IMAGE_VARIANT_STRING=SDM845LA
S - OEM_IMAGE_VERSION_STRING=TSBJ-FA-PC-02170
S - Boot Interface: UFS
S - Secure Boot: Off
S - Boot Config @ 0x00786070 = 0x000000c1
S - JTAG ID @ 0x00786130 = 0x2008e0e1
S - OEM ID @ 0x00786138 = 0x00000000
S - Serial Number @ 0x00784138 = 0x9fb4770f
S - OEM Config Row 0 @ 0x00784188 = 0x0000000400000000
S - OEM Config Row 1 @ 0x00784190 = 0x0000000000000000
S - Feature Config Row 0 @ 0x007841a0 = 0x0050200080000400
S - Feature Config Row 1 @ 0x007841a8 = 0xe000ffff00007fff
S - Core 0 Frequency, 1516 MHz
S - PBL Patch Ver: 1
S - PBL freq: 600 MHZ
B -        94 - PBL, Start
B -      5277 - bootable_media_detect_entry
B -     44037 - bootable_media_detect_success
B -     44412 - elf_loader_entry
B -     45031 - auth_hash_seg_entry
B -     45231 - auth_hash_seg_exit
B -     51188 - elf_segs_hash_verify_entry
B -     57924 - elf_segs_hash_verify_exit
B -     58552 - auth_xbl_sec_hash_seg_entry
B -     65926 - auth_xbl_sec_hash_seg_exit
B -     65928 - xbl_sec_segs_hash_verify_entry
B -     66684 - xbl_sec_segs_hash_verify_exit
B -     66707 - PBL, End
B -     81953 - SBL1, Start
B -    204655 - boot_flash_init, Start
D -         0 - boot_flash_init, Delta
B -    208650 - xblconfig_init, Start
D -       519 - Auth Metadata
D -    160155 - xblconfig_init, Delta
B -    373808 - sbl1_ddr_set_default_params, Start
D -      1525 - sbl1_ddr_set_default_params, Delta
B -    381799 - boot_config_data_table_init, Start
B -    386435 - CDT not programmed, using default
D -      4544 - boot_config_data_table_init, Delta - (54 Bytes)
B -    400953 - CDT Version:3,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0
B -    406656 - pm_device_init, Start
B -   1486265 - PM: PON REASON: PM0=0x8000028000000020:0x0 PM1=0x8000088000000020:0x0 PM2=0x8000088000000020:0x0 
B -   1546441 - PM: SET_VAL:Skip
D -   1140303 - pm_device_init, Delta
B -   1549430 - pm_driver_init, Start
D -      5337 - pm_driver_init, Delta
B -   1558275 - PM: Trigger FG IMA Reset
B -   1561844 - PM: Trigger FG IMA Reset.Completed
B -   1571055 - PM: EntryVbat: 4194; EntrySOC: -1
B -   1571085 - PM: ADSP result: 0
B -   1575630 - PM: Manually set ICL 500mA
B -   1578710 - PM: BATT TEMP: 25 DegC
B -   1582736 - vsense_init, Start
D -         0 - vsense_init, Delta
B -   1615280 - sbl1_ddr_set_params, Start
B -   1617018 - Pre_DDR_clock_init, Start
D -        91 - Pre_DDR_clock_init, Delta
D -      7686 - sbl1_ddr_set_params, Delta
B -   1626717 - sbl1_ddr_init, Start
D -     16104 - sbl1_ddr_init, Delta
B -   1646664 - DSF version = 253.10, DSF SHRM version = 173.3
B -   1650019 - Manufacturer ID = 6, Device Type = 7
B -   1655631 - Rank 0 size = 4096 MB, Rank 1 size = 0 MB
B -   1660572 - do_ddr_training, Start
B -   6991637 - Frequency = 1355 MHz
D -   5326367 - do_ddr_training, Delta
B -   6998896 - pImem Init Start
D -      9729 - pImem Init End, Delta
B -   7010303 - clock_init, Start
D -       213 - clock_init, Delta
B -   7015335 - Image Load, Start
D -      2898 - APDP Image Loaded, Delta - (0 Bytes)
B -   7021435 - usb: UFS Serial - b42a4c35
B -   7026071 - usb: chgr -  SDP_CHARGER
B -   7030219 - usb: qusb2_1: hstx , 0x5
B -   7033696 - usb: PLL1 locked , 0x5
B -   7037814 - PM: 0: PON=0x20:PON1: ON=0x80:PON_SEQ: POFF=0x2:PS_HOLD: OFF=0x80:POFF_SEQ
B -   7046415 - PM: 1: PON=0x20:PON1: ON=0x80:PON_SEQ: POFF=0x8:GP1: OFF=0x80:POFF_SEQ
B -   7054467 - PM: 2: PON=0x20:PON1: ON=0x80:PON_SEQ: POFF=0x8:GP1: OFF=0x80:POFF_SEQ
B -   7062153 - PM: SMEM Chgr Info Write Success
B -   7069290 - Image Load, Start
B -   7069534 - Error code 1000065 at boot_elf_loader.c Line 1501

So, no problem, I knew this could happen so I used EDL mode (following the instructions) to restore everything :+1: seemed to work fine:

lsusb

Bus 006 Device 002: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 013: ID 045e:0797 Microsoft Corp. Optical Mouse 200
Bus 005 Device 015: ID 04d9:1702 Holtek Semiconductor, Inc. Keyboard LKS02
Bus 005 Device 023: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
Bus 005 Device 022: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
Bus 005 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

/home/user/Desktop/qdl/qdl prog_firehose_ddr.elf rawprogram?.xml patch?.xml

HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0
READ64 image: 13 offset: 0x0 length: 0x40
READ64 image: 13 offset: 0x40 length: 0x428
READ64 image: 13 offset: 0x1000 length: 0x1000
READ64 image: 13 offset: 0x2000 length: 0xb88
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: 0xe4c
READ64 image: 13 offset: 0x51e50 length: 0x1000
READ64 image: 13 offset: 0x52e50 length: 0x1000
READ64 image: 13 offset: 0x53e50 length: 0x1000
READ64 image: 13 offset: 0x54e50 length: 0x1000
READ64 image: 13 offset: 0x55e50 length: 0x1000
READ64 image: 13 offset: 0x56e50 length: 0x1000
READ64 image: 13 offset: 0x57e50 length: 0x1000
READ64 image: 13 offset: 0x58e50 length: 0x1000
READ64 image: 13 offset: 0x59e50 length: 0x846
READ64 image: 13 offset: 0x5a6a0 length: 0x1000
READ64 image: 13 offset: 0x5b6a0 length: 0x1000
READ64 image: 13 offset: 0x5c6a0 length: 0xb1c
READ64 image: 13 offset: 0x5d1c0 length: 0x1b4
READ64 image: 13 offset: 0x5d380 length: 0x1000
READ64 image: 13 offset: 0x5e380 length: 0x1000
READ64 image: 13 offset: 0x5f380 length: 0x1000
READ64 image: 13 offset: 0x60380 length: 0x1000
READ64 image: 13 offset: 0x61380 length: 0x1000
READ64 image: 13 offset: 0x62380 length: 0x1000
READ64 image: 13 offset: 0x63380 length: 0x1000
READ64 image: 13 offset: 0x64380 length: 0x1000
READ64 image: 13 offset: 0x65380 length: 0x1000
READ64 image: 13 offset: 0x66380 length: 0x1000
READ64 image: 13 offset: 0x67380 length: 0x1000
READ64 image: 13 offset: 0x68380 length: 0x1000
READ64 image: 13 offset: 0x69380 length: 0x1000
READ64 image: 13 offset: 0x6a380 length: 0x1000
READ64 image: 13 offset: 0x6b380 length: 0x1000
READ64 image: 13 offset: 0x6c380 length: 0x1000
READ64 image: 13 offset: 0x6d380 length: 0x1000
READ64 image: 13 offset: 0x6e380 length: 0x1000
READ64 image: 13 offset: 0x6f380 length: 0x1000
READ64 image: 13 offset: 0x70380 length: 0x1000
READ64 image: 13 offset: 0x71380 length: 0x1000
READ64 image: 13 offset: 0x72380 length: 0x1000
READ64 image: 13 offset: 0x73380 length: 0x1000
READ64 image: 13 offset: 0x74380 length: 0x1000
READ64 image: 13 offset: 0x75380 length: 0x1000
READ64 image: 13 offset: 0x76380 length: 0x1000
READ64 image: 13 offset: 0x77380 length: 0x1000
READ64 image: 13 offset: 0x78380 length: 0x1000
READ64 image: 13 offset: 0x79380 length: 0x1000
READ64 image: 13 offset: 0x7a380 length: 0x1000
READ64 image: 13 offset: 0x7b380 length: 0x1000
READ64 image: 13 offset: 0x7c380 length: 0x1000
READ64 image: 13 offset: 0x7d380 length: 0x3b2
READ64 image: 13 offset: 0x7d740 length: 0xd4
READ64 image: 13 offset: 0x7d814 length: 0x1000
READ64 image: 13 offset: 0x7e814 length: 0x1000
READ64 image: 13 offset: 0x7f814 length: 0x1000
READ64 image: 13 offset: 0x80814 length: 0x1000
READ64 image: 13 offset: 0x81814 length: 0x1000
READ64 image: 13 offset: 0x82814 length: 0x1000
READ64 image: 13 offset: 0x83814 length: 0x1000
READ64 image: 13 offset: 0x84814 length: 0xe68
READ64 image: 13 offset: 0x8567c length: 0x1000
READ64 image: 13 offset: 0x8667c length: 0x1000
READ64 image: 13 offset: 0x8767c length: 0x1000
READ64 image: 13 offset: 0x8867c length: 0x404
READ64 image: 13 offset: 0x88a80 length: 0x1000
READ64 image: 13 offset: 0x89a80 length: 0x1000
READ64 image: 13 offset: 0x8aa80 length: 0x1000
READ64 image: 13 offset: 0x8ba80 length: 0x404
READ64 image: 13 offset: 0x8be84 length: 0x1000
READ64 image: 13 offset: 0x8ce84 length: 0x1000
READ64 image: 13 offset: 0x8de84 length: 0x1000
READ64 image: 13 offset: 0x8ee84 length: 0x404
READ64 image: 13 offset: 0x8f288 length: 0x1000
READ64 image: 13 offset: 0x90288 length: 0x1000
READ64 image: 13 offset: 0x91288 length: 0x1000
READ64 image: 13 offset: 0x92288 length: 0x404
READ64 image: 13 offset: 0x9268c length: 0x1000
READ64 image: 13 offset: 0x9368c length: 0x1000
READ64 image: 13 offset: 0x9468c length: 0x1000
READ64 image: 13 offset: 0x9568c length: 0x1000
READ64 image: 13 offset: 0x9668c length: 0x1000
READ64 image: 13 offset: 0x9768c length: 0x1000
READ64 image: 13 offset: 0x9868c length: 0x1000
READ64 image: 13 offset: 0x9968c length: 0x1000
READ64 image: 13 offset: 0x9a68c length: 0x1000
READ64 image: 13 offset: 0x9b68c length: 0x1000
READ64 image: 13 offset: 0x9c68c length: 0x1000
READ64 image: 13 offset: 0x9d68c length: 0x1000
READ64 image: 13 offset: 0x9e68c length: 0x1000
READ64 image: 13 offset: 0x9f68c length: 0x1000
READ64 image: 13 offset: 0xa068c length: 0x1000
READ64 image: 13 offset: 0xa168c length: 0x1000
READ64 image: 13 offset: 0xa268c length: 0x1000
READ64 image: 13 offset: 0xa368c length: 0x1000
READ64 image: 13 offset: 0xa468c length: 0x1000
READ64 image: 13 offset: 0xa568c length: 0xb25
END OF IMAGE image: 13 status: 0
DONE status: 1
LOG: INFO: Binary build date: May 28 2019 @ 11:22:21
LOG: INFO: Binary build date: May 28 2019 @ 11:22:21 
LOG: INFO: Chip serial num: 2679404303 (0x9fb4770f)
LOG: INFO: Supported Functions (14):
LOG: INFO: program
LOG: INFO: read
LOG: INFO: nop
LOG: INFO: patch
LOG: INFO: configure
LOG: INFO: setbootablestoragedrive
LOG: INFO: erase
LOG: INFO: power
LOG: INFO: firmwarewrite
LOG: INFO: getstorageinfo
LOG: INFO: benchmark
LOG: INFO: emmc
LOG: INFO: ufs
LOG: INFO: fixgpt
LOG: INFO: End of supported functions 14
qdl: firehose operation timed out
LOG: INFO: Calling handler for configure
LOG: INFO: Storage type set to value UFS
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "xbl_a" successfully at 3212kB/s
LOG: INFO: Calling handler for program
[PROGRAM] flashed "xbl_config_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "xbl_b" successfully at 3212kB/s
LOG: INFO: Calling handler for program
[PROGRAM] flashed "xbl_config_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "aop_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "tz_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "hyp_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "bluetooth_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "abl_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "dsp_a" successfully at 10922kB/s
LOG: INFO: Calling handler for program
[PROGRAM] flashed "keymaster_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "boot_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "cmnlib_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "cmnlib64_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "devcfg_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "qupfw_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "storsec_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "ImageFv_a" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "aop_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "tz_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "hyp_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "bluetooth_b" successfully at 652kB/s
LOG: INFO: Calling handler for program
[PROGRAM] flashed "abl_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "dsp_b" successfully at 16384kB/s
LOG: INFO: Calling handler for program
[PROGRAM] flashed "keymaster_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "boot_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "cmnlib_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "cmnlib64_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "devcfg_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "qupfw_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "storsec_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "ImageFv_b" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "sec" successfully
Unable to open logfs_ufs_8mb.bin...ignoring
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "PrimaryGPT" successfully
LOG: INFO: Calling handler for program
[PROGRAM] flashed "BackupGPT" successfully
Update last partition 1 'rootfs' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 1 'rootfs' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
Update last partition 3 'last_parti' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 3 'last_parti' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
Update last partition 3 'last_parti' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 3 'last_parti' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
Update last partition 4 'last_parti' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 4 'last_parti' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
Update last partition 49 'last_parti' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 49 'last_parti' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
Update last partition 10 'last_parti' with actual size in Primary Header.
LOG: INFO: Calling handler for patch
Update last partition 10 'last_parti' with actual size in Backup Header.
LOG: INFO: Calling handler for patch
Update Primary Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with LastUseableLBA.
LOG: INFO: Calling handler for patch
Update Primary Header with BackupGPT Header Location.
LOG: INFO: Calling handler for patch
Update Backup Header with CurrentLBA.
LOG: INFO: Calling handler for patch
Update Backup Header with Partition Array Location.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Partition Array.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Primary Header.
LOG: INFO: Calling handler for patch
Update Primary Header with CRC of Primary Header.
LOG: INFO: Calling handler for patch
Zero Out Header CRC in Backup Header.
LOG: INFO: Calling handler for patch
Update Backup Header with CRC of Backup Header.
LOG: INFO: Calling handler for patch
LOG: INFO: Calling handler for setbootablestoragedrive
LOG: INFO: Using scheme of value= 1
partition 1 is now bootable
LOG: INFO: Calling handler for power

Then I disconnected USB-C, then disconnected power supply, pressed “VOL-”, plugged and powered the board again. However, no blue power LED came, and no fastboot on the screen: when connecting USB-C it’s always stuck in USB flashing mode.

USB UART port only says “?” at each boot attempt.

lsusb shows: Bus 005 Device 069: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

Pressing indefinitely the “VOL-” key does nothing appart from rebooting the board after 16 seconds, making it appearing into USB flashing mode again after 8 more seconds… and so on (with a new question mark into UART at each boot attempt).

What did I try:

Being stuck in USB flashing mode, I’m in a kind of “all-you-can-flash” mode, so I tried a lot of different bootloaders:
-> dragonboard-845c-bootloader-ufs-linux-77
-> dragonboard-845c-bootloader-ufs-linux-73
-> dragonboard-845c-bootloader-ufs-linux-62

-> dragonboard-845c-bootloader-ufs-aosp-77
-> dragonboard-845c-bootloader-ufs-aosp-73
-> dragonboard-845c-bootloader-ufs-aosp-62

Flash goes fine all of the time, but the result is always the same at the end… Looks like the board is not willing to start it’s own UFS embeded bootloader, like it is unable to find it (corrupted / incompatible GPT? Is my UFS flash having exactly the same size as others?)

Remark:
Few days ago and Yesterday I used fastboot whith “flashall” scripts and I had no problem (using both dragonboard-845c-bootloader-ufs-linux-73 and dragonboard-845c-bootloader-ufs-aosp-77) so the partition contents are probably totally fine.

During qdl flash, UART is showing:

Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.XF.2.0-00371-SDM845LZB-1
S - IMAGE_VARIANT_STRING=SDM845LA
S - OEM_IMAGE_VERSION_STRING=TSBJ-FA-PC-02170
S - Boot Interface: Unknown
S - Secure Boot: Off
S - Boot Config @ 0x00786070 = 0x000000c1
S - JTAG ID @ 0x00786130 = 0x2008e0e1
S - OEM ID @ 0x00786138 = 0x00000000
S - Serial Number @ 0x00784138 = 0x9fb4770f
S - OEM Config Row 0 @ 0x00784188 = 0x0000000400000000
S - OEM Config Row 1 @ 0x00784190 = 0x0000000000000000
S - Feature Config Row 0 @ 0x007841a0 = 0x0050200080000400
S - Feature Config Row 1 @ 0x007841a8 = 0xe000ffff00007fff
S - Core 0 Frequency, 1516 MHz
S - PBL Patch Ver: 1
S - PBL freq: 600 MHZ
B -        94 - PBL, Start
B -      5269 - bootable_media_detect_entry
B -  13440133 - bootable_media_detect_success
B -  13440508 - elf_loader_entry
B -  13446928 - auth_hash_seg_entry
B -  13447132 - auth_hash_seg_exit
B -  13531450 - elf_segs_hash_verify_entry
B -  13539086 - elf_segs_hash_verify_exit
B -  13539949 - auth_xbl_sec_hash_seg_entry
B -  13547326 - auth_xbl_sec_hash_seg_exit
B -  13547327 - xbl_sec_segs_hash_verify_entry
B -  13548084 - xbl_sec_segs_hash_verify_exit
B -  13548111 - PBL, End
B -         0 - SBL1, Start
B -  13677267 - boot_flash_init, Start
D -         0 - boot_flash_init, Delta
B -  13681293 - xblconfig_init, Start
D -      1342 - xblconfig_init, Delta
B -  13688217 - sbl1_ddr_set_default_params, Start
D -      1525 - sbl1_ddr_set_default_params, Delta
B -  13696208 - boot_config_data_table_init, Start
D -         0 - boot_config_data_table_init, Delta - (0 Bytes)
B -  13705297 - CDT Version:3,Platform ID:8,Major ID:1,Minor ID:0,Subtype:0
B -  13716490 - pm_device_programmer_init, Start
D -      2897 - pm_device_programmer_init, Delta
B -  13722041 - sbl1_ddr_set_params, Start
B -  13727928 - Pre_DDR_clock_init, Start
D -        61 - Pre_DDR_clock_init, Delta
D -     12017 - sbl1_ddr_set_params, Delta
B -  13737810 - sbl1_ddr_init, Start
D -     13115 - sbl1_ddr_init, Delta
B -  13754798 - DSF version = 253.10, DSF SHRM version = 173.3
B -  13758123 - Manufacturer ID = 6, Device Type = 0
B -  13763735 - Rank 0 size = 4096 MB, Rank 1 size = 0 MB
B -  13769133 - usb: init start
B -  13773678 - usb: id , 0xd7
B -  13776514 - usb: HIGH , 0x900e
B -  13779351 - usb: ENUM success
B -  13782553 - usb: id_p , 0x400e2
B -  18564770 - usb: host sends ZLP

Looks like it shows nothing strange.

What could be the cause of this behavior? At reboot attempt, USB-C plugged or not, SW3 being OFF or ON, no matter if I manually press ON/OFF button and if I’m pressing VOL- (or even VOL+) key, no boot - USB Flash mode at each time.

Thank you in advance!

Here is a sorted extract of “dmesg” while the board was running Debian, about UFS partitions

[    4.453945] scsi 0:0:0:1: Direct-Access     SKhynix  H28S7Q302BMR     A002 PQ: 0 ANSI: 6
[    4.462257] scsi 0:0:0:2: Direct-Access     SKhynix  H28S7Q302BMR     A002 PQ: 0 ANSI: 6
[    4.476163] scsi 0:0:0:3: Direct-Access     SKhynix  H28S7Q302BMR     A002 PQ: 0 ANSI: 6
[    4.492807] scsi 0:0:0:4: Direct-Access     SKhynix  H28S7Q302BMR     A002 PQ: 0 ANSI: 6
[    4.495814] scsi 0:0:0:5: Direct-Access     SKhynix  H28S7Q302BMR     A002 PQ: 0 ANSI: 6

[    4.452772] sd 0:0:0:0: [sda] 14145536 4096-byte logical blocks: (57.9 GB/54.0 GiB)
[    4.467979] sd 0:0:0:0: [sda] Write Protect is off
[    4.480892] sd 0:0:0:0: [sda] Mode Sense: 00 32 00 10
[    4.496799] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.497329] sd 0:0:0:0: [sda] Optimal transfer size 786432 bytes
[    4.520646]  sda: sda1
[    4.522309] sd 0:0:0:0: [sda] Attached SCSI disk

[    4.455977] sd 0:0:0:1: [sdb] 1024 4096-byte logical blocks: (4.19 MB/4.00 MiB)
[    4.468040] sd 0:0:0:1: [sdb] Write Protect is off
[    4.468046] sd 0:0:0:1: [sdb] Mode Sense: 00 32 00 10
[    4.468182] sd 0:0:0:1: [sdb] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.468255] sd 0:0:0:1: [sdb] Optimal transfer size 786432 bytes
[    4.484747]  sdb: sdb1 sdb2
[    4.488205] sd 0:0:0:1: [sdb] Attached SCSI disk

[    4.477046] sd 0:0:0:2: [sdc] 1024 4096-byte logical blocks: (4.19 MB/4.00 MiB)
[    4.477126] sd 0:0:0:2: [sdc] Write Protect is off
[    4.477131] sd 0:0:0:2: [sdc] Mode Sense: 00 32 00 10
[    4.477283] sd 0:0:0:2: [sdc] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.477390] sd 0:0:0:2: [sdc] Optimal transfer size 786432 bytes
[    4.498139]  sdc: sdc1 sdc2
[    4.499853] sd 0:0:0:2: [sdc] Attached SCSI disk

[    4.493482] sd 0:0:0:3: [sdd] 32768 4096-byte logical blocks: (134 MB/128 MiB)
[    4.493871] sd 0:0:0:3: [sdd] Write Protect is off
[    4.493877] sd 0:0:0:3: [sdd] Mode Sense: 00 32 00 10
[    4.494355] sd 0:0:0:3: [sdd] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.494620] sd 0:0:0:3: [sdd] Optimal transfer size 786432 bytes
[    4.510779]  sdd: sdd1 sdd2 sdd3
[    4.514142] sd 0:0:0:3: [sdd] Attached SCSI disk

[    4.496368] sd 0:0:0:4: [sde] 1048576 4096-byte logical blocks: (4.29 GB/4.00 GiB)
[    4.496582] sd 0:0:0:4: [sde] Write Protect is off
[    4.508734] sd 0:0:0:4: [sde] Mode Sense: 00 32 00 10
[    4.509618] sd 0:0:0:4: [sde] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.521879] sd 0:0:0:4: [sde] Optimal transfer size 786432 bytes
[    4.760253]  sde: sde1 sde2 sde3 sde4 sde5 sde6 sde7 sde8 sde9 sde10 sde11 sde12 sde13 sde14 sde15 sde16 sde17 sde18 sde19 sde20 sde21 sde22 sde23 sde24 sde25 sde26 sde27 sde28 sde29 sde30 sde31 sde32 sde33 sde34 sde35 sde36 sde37 sde38 sde39 sde40 sde41 sde42 sde43 sde44 sde45 sde46 sde47 sde48
[    4.799703] sd 0:0:0:4: [sde] Attached SCSI disk

[    4.497685] sd 0:0:0:5: [sdf] 393216 4096-byte logical blocks: (1.61 GB/1.50 GiB)
[    4.497761] sd 0:0:0:5: [sdf] Write Protect is off
[    4.497765] sd 0:0:0:5: [sdf] Mode Sense: 00 32 00 10
[    4.497904] sd 0:0:0:5: [sdf] Write cache: enabled, read cache: enabled, supports DPO and FUA
[    4.497989] sd 0:0:0:5: [sdf] Optimal transfer size 786432 bytes
[    4.520379]  sdf: sdf1 sdf2 sdf3 sdf4 sdf5 sdf6 sdf7 sdf8 sdf9
[    4.526120] sd 0:0:0:5: [sdf] Attached SCSI disk

I may try to check if the rescue xml files content, used by qdl, is compatible with what I had when working… I already saw some differences with fastboot “flashall” script by the way, “b” partitions are left blank by flashall but not by qdl.

Ok I found a working solution: looking at https://git.linaro.org/landing-teams/working/qualcomm/qdl.git/log/ I saw there was recent modifications of the qdl code (between 10 and 14 days ago) while the previous modifications were almost 2 years old.

The recent modifications broke something!

So I used qdl-760b3dffb03d2b7dfb82c6eac652a092f51c572d.tar.gz and my board is back alive :grin: I hope this information may help someone.

thanks for the report and the second message. we will look into that…

1 Like

Thanks for reporting this Robin.

I was able to reproduce the problem on my RB3, turns out that the attribute that describes the “start sector” for each segment might be an expression, that should be passed verbatim to the programmer. I had recently changed this to represent it as an integer and would thereby flash some extra content to sector 0.

The bug has been corrected and the change pushed out to the git.

Regards,
Bjorn

1 Like

I just tested, the last version works perfect now :+1: thanks!