Use the Qualcomm Device Loader (QDL) command-line tool to flash Qualcomm Linux onto the IQ-9075 EVK from Ubuntu, Windows, or macOS hosts.
Qualcomm Device Loader (QDL) is a cross-platform command-line flashing tool for Qualcomm devices. Use this method when you need full control over the flash process, are running in a headless environment, or want to script automated flashing.For a GUI-based alternative, see Flash Qualcomm Linux using Qualcomm Launcher.
Flashing erases all data on the device. Back up anything important before you begin.
What you need
IQ-9075 EVK with 12 V power supply
USB Type-C cable (USB0 port on the EVK → host computer)
We recommend extracting both the image and QDL into the same parent folder. This keeps all paths under one root and simplifies navigation between the provision, SAIL, and image folders.
Set up QDL driver
Ubuntu requires a udev rule so the kernel grants your user permission to communicate with the device when it enters EDL mode.
Check whether the rule already exists:
ls /etc/udev/rules.d/51-qcom-usb.rules
If the file is not present, create it in one command:
echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0664", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/51-qcom-usb.rules
If the file already exists, verify the rule is present:
cat /etc/udev/rules.d/51-qcom-usb.rules
Reload udev to apply the rule:
sudo systemctl restart udev
If the USB cable was already connected, disconnect and reconnect it.
Set up QDL path
Make QDL executable:
chmod +x <qdl_dir>/qdl
Verify QDL is working:
cd <qdl_dir>./qdl --help
You should see the QDL usage output. If you get an error, check the path.
Put the device in EDL mode
Put the device in EDL mode using the SW2 DIP switches: set switches 1, 2, and 4 to OFF and switch 3 to ON.
Connect the 12 V power supply to the EVK.
Connect the USB Type-C cable from USB0 on the EVK to your host.
Toggle the power switch to turn on the device.
Confirm the device is in EDL mode:
lsusb
Expected output:
Bus 002 Device 014: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
If the device doesn’t appear, recheck SW2-3 and the USB-C cable.
Provision UFS
UFS (Universal Flash Storage) provisioning divides the internal storage into separate logical unit numbers (LUNs), each dedicated to a specific type of data (boot, system, user data, etc.). This improves access efficiency and keeps the partition layout consistent across flashes.Run UFS provisioning if any of the following apply:
This is a brand-new board that has never been flashed.
You are upgrading to a new image version.
You are switching distributions (Qualcomm Linux ↔ Ubuntu).
Provision UFS from the unzipped provision directory:
cd provision<qdl_dir>/qdl --storage ufs prog_firehose_ddr.elf provision_1_2.xml
Expected output:
UFS provisioning succeeded
After UFS provisioning completes, the device disconnects from USB. Toggle the power switch off and on to reboot it back into EDL mode before continuing.
Flash SAIL firmware
The Safety Island (SAIL) is a separate, isolated processor on the IQ-9075 EVK that handles safety-critical functions independently from the main application processor. Its firmware lives on a dedicated spinor flash partition and must be flashed separately before the main OS image.
Navigate to the sail_nor subfolder inside the extracted image:
cd <path-to-image>/images/iq-9075-evk/qcom-multimedia-proprietary-image-iq-9075-evk/sail_nor
We recommend extracting both the image and QDL into the same parent folder (for example C:\Users\you\Downloads\qualcomm-flash\). This keeps all paths under one root and simplifies navigation between the provision, SAIL, and image folders.
Set up QDL driver
Uninstall any existing Qualcomm USB drivers (QUD), as they can conflict with the QDL driver. You can uninstall QUD using one of the following methods:a) Uninstall through Qualcomm Software Center(QSC)
If QUD was installed using Qualcomm Software Center (QSC), launch QSC and select the Uninstall option, as shown in the image below.
b) Uninstall manually through Device Manager
Open Device Manager
Locate your device and uninstall any existing Qualcomm USB drivers associated with it
After uninstallation, verify that the device no longer appears under COM Ports (Ports (COM & LPT))
Run install_driver.bat from the unzipped QDL folder to install the WinUSB driver.
Put the device in EDL mode
Put the device in EDL mode using the SW2 DIP switches: set switches 1, 2, and 4 to OFF and switch 3 to ON.
Connect the 12 V power supply to the EVK.
Connect the USB Type-C cable from USB0 on the EVK to your host.
Toggle the power switch to turn on the device.
Open Device Manager and confirm a Qualcomm USB device appears (not under COM Ports).
Provision UFS
UFS (Universal Flash Storage) provisioning divides the internal storage into separate logical unit numbers (LUNs), each dedicated to a specific type of data (boot, system, user data, etc.). This improves access efficiency and keeps the partition layout consistent across flashes.Run UFS provisioning if any of the following apply:
This is a brand-new board that has never been flashed.
You are upgrading to a new image version.
You are switching distributions (Qualcomm Linux ↔ Ubuntu).
After UFS provisioning completes, the device disconnects from USB. Toggle the power switch off and on to reboot it back into EDL mode before continuing.
Flash SAIL firmware
The Safety Island (SAIL) is a separate, isolated processor on the IQ-9075 EVK that handles safety-critical functions independently from the main application processor. Its firmware lives on a dedicated spinor flash partition and must be flashed separately before the main OS image.
Navigate to the sail_nor subfolder inside the image directory:
cd <path-to-image>\images\iq-9075-evk\qcom-multimedia-proprietary-image-iq-9075-evk\sail_nor
Flash the SAIL firmware (replace <qdl_dir> with your QDL folder path):Command Prompt:
Where <path-to-image> is the folder created when you extracted the image zip.
Download QDL
Download the QDL tool for macOS (Apple Silicon) and unzip it. The unzipped folder contains the qdl binary — referred to as <qdl_dir> below. For tool usage details, see the QDL_User_Guide in that folder.
We recommend extracting both the image and QDL into the same parent folder. This keeps all paths under one root and simplifies navigation between the provision, SAIL, and image folders.
Set up QDL path
Install required libraries via Homebrew (skip if already installed):
brew install libusb libxml2
brew install failed? Install Homebrew utility
Brew (officially called Homebrew) is software package manager that lets you install, update, and remove programs using text commands in the Mac Terminal. Follow the below procedure to install homebrew.1. Install xcode
sudo is needed because some bundled libraries are read-only. If macOS still blocks the tool after this step, allow it under System Settings → Privacy & Security.
Verify QDL is working:
<qdl_dir>/qdl --help
You should see the QDL usage output. If you get an error, check the path.
Put the device in EDL mode
Put the device in EDL mode using the SW2 DIP switches: set switches 1, 2, and 4 to OFF and switch 3 to ON.
Connect the 12 V power supply to the EVK.
Connect the USB Type-C cable from USB0 on the EVK to your host.
Product ID: 0x9008 confirms the device is in EDL mode. If it doesn’t appear, recheck SW2-3 and the USB-C cable.
Provision UFS
UFS (Universal Flash Storage) provisioning divides the internal storage into separate logical unit numbers (LUNs), each dedicated to a specific type of data (boot, system, user data, etc.). This improves access efficiency and keeps the partition layout consistent across flashes.Run UFS provisioning if any of the following apply:
This is a brand-new board that has never been flashed.
You are upgrading to a new image version.
You are switching distributions (Qualcomm Linux ↔ Ubuntu).
Move the provision files and the QDL binary into the same folder, then run from there:
On macOS, the qdl binary and its supporting libraries must be in the same directory as the provision files. Copy the provision files into <qdl_dir>, then run the command from there.
After UFS provisioning completes, the device disconnects from USB. Toggle the power switch off and on to reboot it back into EDL mode before continuing.
Flash SAIL firmware
The Safety Island (SAIL) is a separate, isolated processor on the IQ-9075 EVK that handles safety-critical functions independently from the main application processor. Its firmware lives on a dedicated spinor flash partition and must be flashed separately before the main OS image.
Navigate to the sail_nor subfolder inside the extracted image:
cd <path-to-image>/images/iq-9075-evk/qcom-multimedia-proprietary-image-iq-9075-evk/sail_nor