Snapdragon 820a ADP Board



First of all sorry for creating topic regarding to 820a in 820c group but I didn’t find the corresponding place…

My board now is a brick: fastboot is not working(fastboot devices gives empty string), so booting from sd card also failed.

I used that guide for “unbricking” but no success(

My steps:

  1. Switching dip to forced USB boot

  2. Connecting debug port to the host machine

  3. lsusb shows me qualcomm 05c6:9008 Modem

  4. Running qdl tool like:
    sudo …/…/820c/toolchain/qdl/qdl -d prog_ufs_firehose_8996_ddr.elf rawprogram.xml patch.xml – this is was taken from linaro, which I mentioned above

  5. stdout from qdl program closing with:
    qdl: failed to read: Cannot send after transport endpoint shutdown

  6. From target I see:
    Format: Log Type - Time(microsec) - Message - Optional Info
    Log Type: B - Since Boot(Power On Reset), D - Delta, S - Statistic
    S - OEM_IMAGE_VERSION_STRING=crm-ubuntu68
    S - Boot Interface: Unknown
    S - Secure Boot: Off
    S - Boot Config @ 0x00076044 = 0x000001c0
    S - JTAG ID @ 0x000760f4 = 0x1006f0e1
    S - OEM ID @ 0x000760f8 = 0x00000000
    S - Serial Number @ 0x00074138 = 0x9d7bffd7
    S - OEM Config Row 0 @ 0x00074188 = 0x0000000000000000
    S - OEM Config Row 1 @ 0x00074190 = 0x0000000000000000
    S - Feature Config Row 0 @ 0x000741a0 = 0x0050000010000100
    S - Feature Config Row 1 @ 0x000741a8 = 0x0000000000000000
    S - Core 0 Frequency, 19 MHz
    B - 0 - PBL, Start
    B - 10407 - bootable_media_detect_entry, Start
    B - 301972 - bootable_media_detect_success, Start
    B - 301976 - elf_loader_entry, Start
    B - 144008583 - auth_hash_seg_entry, Start
    B - 144008686 - auth_hash_seg_exit, Start
    B - 1440731

After the digging the qdl source code I found that sahara protocol is working well and firehose crushing when trying to retrieve some date using the function qdl_read().

I’ll be really appreciate if someone gives me any advice what should I try else because my ideas have already over.



Did you stop ModemManager before connecting the microUSB cable and powering up the board?
# systemctl stop ModemManager
It will try to grab the usb device for itself if you do not.


Yap, I made this also, stopping ModemManager before starting any action with a board.


And one more moment, if you look inside the sahara.c you will see that the last sahara function call is a sahara_eoi - send magic number 5 which is stands for work is done with sahara protocol I suppose. After that target switching off the power. Ofc this is only my assumptions.


There is no 820a topic because there is no 96Boards product with an 820a in it. You should probably contact your board vendor for information on how to perform a debrick on the board.

If you want to continue trying to use the 96Boards tooling you are welcome but they are not designed for and the instructions do not apply to your board (especially if it has eMMC storage rather than UFS).


Thanks for advice seems like I will work in that way.