Tuesday, July 6, 2021

Qualcomm USB flashing tool

Qualcomm USB flashing tool 

Qualcomm MSM based devices contain a special mode of operation, called Emergency Download Mode (EDL). In this mode, the device identifies itself as Qualcomm HS-USB 9008 through USB, and can communicate with a PC host. EDL is implemented by the SoC ROM code (also called PBL). The EDL mode itself implements the Qualcomm Sahara protocol, which accepts an OEM-digitally-signed programmer over USB. The programmer implements the Firehose protocol which allows the host PC to send commands to write into the onboard storage (eMMC, UFS).

As open source tool (for Linux) that implements the Qualcomm Sahara and Firehose protocols has been developed by Linaro, and can be used for program (or unbrick) MSM based devices, such as Dragonboard 410c or Dragonboard 820c.


Download the Linux flashing tool

DragonBoard 845c Board Recovery

 

DragonBoard 845c Board Recovery

This page outlines steps needed to recover your DragonBoard 845c board from a bricked software state. This instruction set is suggested to those who are experiencing boot issues due to a corruption in the file system and/or other software components.

There are a couple ways to recover your DragonBoard 845c from a “bricked” state.

SD card Recovery image

Unlike other Dragonboard (410c and 820c) the Dragonboard 845c cannot boot from SD card. It is a hardware limitation of the SOM used, and there is no plan to fix this limitation at this point.

Fastboot recovery

In many cases, simply re-flashing the bootloader, boot image, and root file system, using the fastboot method is enough.

Using USB flashing tools

Alternatively, the Dragonboard 845c can also be recovered/flashed over USB, using the Linaro QDL flashing tools. For more information about QDL, including installation instructions, please check this guide.

Connecting the board in USB flashing mode (aka EDL mode)

In order to force the DB845c to boot on USB (EDL mode), you need to press the on-board button 18 (Force USB BOOT) while powering on the board. This button is on the back of the board and is marked as “F_DL”.

Warning: putting the device into EDL mode while the device is powered or when USB is plugged can cause damage to the board.

  • Power off the board and make sure the USB type-C cable is not plugged into the board
  • Press button 18 (e.g. marked with F_DL), and
  • Power on the device using the proper power supply
  • Connect the USB3 Type C (5) between the Linux PC and the board

If the above instructions do not work, please try the following:

  • Set the switch “DIP_SW” to “0 1 1 0 0 0”
  • (Turn on SW2 on the dip switch to enable the USB2.0 debug port
  • Turn on SW3 on the Dip Switch to enable the auto power up on USB-C cable connection)
  • Power off the board and make sure the USB type-C cable is not plugged into the board
  • Press button 18 (e.g. marked with F_DL), and
  • Connect the USB3 Type C (5) between the Linux PC and the board

Warning: putting the device into EDL mode while the device is powered or when USB is plugged can cause damage to the board.

Flashing the device

Download and unzip the most recent bootloader release from the following link:

http://releases.linaro.org/96boards/dragonboard845c/linaro/rescue/latest/

Then run:

DragonBoard 820c Installation

 

Installation

This guide will help you choose and install an operating system on your DragonBoard 820c.

To appropriately follow this installation guide you will need to:

  • Choose an installation method
  • Download necessary files
  • Choose host machine
  • Follow flashing instructions

Methods of Installation

In most cases, you will be presented with two options when installing your new operating system onto your DragonBoard 820c:

  • Fastboot Method

Each method has it’s own benifits, and requires different levels of experience

Fastboot Method

Fastboot is supported by the board and can be used for installs. This is for advanced users who are most likely modifying/customizing source code and will need to download such updates to the board for test/execution.

This method requires the following hardware:

  • DragonBoard 820c with power supply
  • Host machine (Linux, Mac OS X, or Windows)
  • USB to microUSB cable
  • USB Mouse and/or keyboard (not required to perform flash)
  • HDMI Monitor with full size HDMI cable (not required to perform flash)

Go to the Downloads page to get your bootloader, boot image, and root file system image (rootfs).

Choose host machine

Linux



All credit to this post goes to 96Boards for providing this wonderful information on the
internet, most part of it was carried out on personal devices and is meant absolutely for
the purpose of studies only. Neither we nor 96Boards Team will be held responsible, should in
case any of this information is being maliciously used thanks.

Linux Host Installation for DragonBoard 820c

 

Linux Host

This section shows how to install an operating system to your DragonBoard™ 820c using the Fastboot method on a Linux host computer. Please refer to the Build Linux Host Computer for the initial setup.

Booting into fastboot

If the board is flashed properly, all the right bootloaders and partition table should have been set. And fastboot can be used to flash Linux root file system. The first thing to try is to get into fastboot, to confirm that the board was flashed properly.

  • Power off the board
  • Make sure that switch S1 to OFF,OFF,OFF,OFF. If you have a P1 or earlier board you may need to use OFF,ON,OFF,OFF.
  • Connect the debug UART / serial console to your Linux PC (optional)
  • Connect the micro USB cable (J4) to your Linux PC.
  • Open UART/serial console (optional)
  • Power on the device while holding Vol (-) button

You should see some debug traces on the console indicating that the board booted into fastboot mode, and at the end something like:

DragonBoard™ 820c Board Recovery

 

DragonBoard 820c Board Recovery

This page outlines steps needed to recover your DragonBoard 820c board from a bricked software state. This instruction set is suggested to those who are experiences boot issues due to a corrution in the file system and/or other software components.

There are a couple ways to recover your DragonBoard 820c from a “bricked” state.

SD card Recovery image

In most cases this will be your sure-fire way to recover your board from a software bricked state. A recovery image has been created and made ready to be flashed onto a micro SD card. Simply download the SD card recovery image, and follow the sd card installation instructions found on our Installation page.

Note: For those already familiar with the SD card flashing process, 96Boards build folder can be found here

 

Fastboot recovery

In many cases, simply re-flashing the bootloader, boot image, and root file system, using the fastboot method is enough. While the generic fastboot method might not always work due to certain complications, the sd card recovery image is always available (as seen above).

Using USB flashing tools

Alternatively, the Dragonboard 820c can also be recovered/flashed over USB, using the Linaro QDL flashing tools. For more information about QDL, including installation instructions, please check this guide.

Connecting the board in USB flashing mode (aka EDL mode)

In order to force the DB820c to boot on USB (EDL mode), you need to configure S1 switch properly. S1 is on the back of the board underneath the micro SD slot.

Warning: putting the device into EDL mode while the device is powered or when USB is plugged can cause damage to the board, the actual root cause is under investigation, and a hardware fix will be implemented in newer board revision.

  • Power off the board and make sure no USB cable is plugged into the board
  • Set switch S1 to ON,OFF,OFF,ON. If you have a P1 board (very unlikely) you need to set to ON,ON,OFF,ON.
  • Connect the micro USB cable (J4) between the Linux PC and the board
  • Power on the device

Flashing the device

Download and unzip the most recent bootloader package from the following link:

http://snapshots.linaro.org/96boards/dragonboard820c/linaro/rescue/latest/

Then run:

Build Linux Host Computer

 

Build Linux Host Computer

This section shows how to install Ubuntu Desktop on a Linux host computer to be able to use it to flash the bootloader and use fastboot to load boot and rootfs images onto the DragonBoard 820c.

Hardware

As a Windows user I prefer software that I can run on my Windows 10 laptop either on the host OS, WSL, Ubuntu VM or Debian VM. Flashing the bootloader and using fastboot require serial communication from linux. I did not find a sulution to be able to do this in WSL, Ubuntu VM or Debian VM (Hyper-V).


CTA How do we setup WSL, Ubuntu VM or Debian VM (Hyper-V) to be able to flash the bootloader and using fastboot.


 Most likely you are like me and have couple of old laptops and PCs laying around. I took an 11 years old HP laptop and installed Ubuntu Desktop on it. Follow the Installation Guide.

Packages

After logging into your Linux host do the usual dance moves and update/upgrade your system.

DragonBoard820c Downloads

 

Downloads

If you would like to change the Operating System for you board, update the existing software images on your board, or unbrick your board, this page provides links to the latest software downloads.


Linaro supported operating systems


Third Party Operating Systems

Other operating systems supported on DragonBoard 820c, offered by partners.

Not currently available




All credit to this post goes to 96Boards for providing this wonderful information on the
internet, most part of it was carried out on personal devices and is meant absolutely for
the purpose of studies only. Neither we nor 96Boards Team will be held responsible, should in
case any of this information is being maliciously used thanks.

DragonBoard 820c OpenEmbedded

 

OpenEmbedded

OpenEmbedded is a software framework used for creating Linux distributions aimed for, but not restricted to, embedded devices. Below are pre-built console and desktop images of Debian with their respective bootloader and boot image. If desired, these images can be recreated by following the build from source instructions found here (Note: this link will take you to the Linaro Github)

OpenEmbedded Releases Table


Fastboot files

Bootloader
Download
Release Notes

Choose one boot image, the root file system you choose will be based on the boot image you download here:

Latest OpenEmbedded snapshot images can be found HERE. Once you have downloaded your pre-built images, proceed to the installation page.

Continue to Installation page





All credit to this post goes to 96Boards for providing this wonderful information on the
internet, most part of it was carried out on personal devices and is meant absolutely for
the purpose of studies only. Neither we nor 96Boards Team will be held responsible, should in
case any of this information is being maliciously used thanks.