QDL tool communicates with USB devices of VID:PID 05c6:9008 and uploads a
flash loader, which is then used for flashing images. Download and build QDL
by following the upstream build instructions:
Build QDL.
As QDL tool requires raw USB access, to be able to run it as a non-root user
create an appropriate udev rule by following steps described in
Update udev rules
Location of all DIP switches, USB debug port and buttons (F_DL for instance)
can be found on RB3 Gen 2 Quick Start Guide.
- Set up
DIP_SW_0positions1and2toON. This enables serial output to the debug port. - To put the device into EDL mode press and hold the
F_DLbutton before connecting the power cable.
Make sure that ModemManager is not running, disable it if necessary.
-
Connect the micro USB debug cable to the host. Baud rate should be
115200. Check indmesghow UART shows up (e.g./dev/ttyUSB0):$ sudo dmesg | grep tty [217664.921039] usb 3-1.1.4: FTDI Serial Device converter attached to ttyUSB0
-
Use your favorite serial communication program to access the console, such as minicom, picocom, putty etc. Baud rate should be 115200:
picocom -b 115200 /dev/ttyUSB0
-
Plug in the USB-C cable from the host.
-
Use the QDL tool (built in the previous section) to flash the images:
cd build/tmp/deploy/images/rb3gen2-core-kit/core-image-base-rb3gen2-core-kit.rootfs.qcomflash qdl --debug prog_firehose_ddr.elf rawprogram*.xml patch*.xml
If you have multiple boards connected the host, provide the serial number of the board to flash through
--serialparam:qdl --serial=0AA94EFD --debug prog_firehose_ddr.elf rawprogram*.xml patch*.xml
Serial can be obtained using
lsusb -v -d 05c6:9008command. -
Ensure that the device is booted in Emergency Download (EDL) mode (please refer to Quick Start Guide for your board). The process of flashing should start automatically:
USB: using out-chunk-size of 1048576 HELLO version: 0x2 compatible: 0x1 max_len: 1024 mode: 0 READ64 image: 13 offset: 0x0 length: 0x40