Skip to main content

Introduction

This document describes how to work with the RISC and Qualcomm QLI 2.0 Board Support Package (BSP) release.

Yocto Version​

Yocto 6.0.1

Kernel Version​

Kernel 6.18.30

Host Machine Requirements

OS​

Ubuntu 22.04 or Ubuntu 24.04

CPU​

Intel Core-i7 Processor (>= 8 cores)

RAM​

16+ GB RAM

Disk​

350 GB free disk space (more is recommended and SSD is suggested for better performance)

Docker Install and BSP Download

Install Docker Engine on Your Platform​

Please refer to Docker Installation Guide for details

Pull Docker Images​

sudo docker pull advrisc/u22.04-qcslbv1:20260908

Run Docker Example​

mkdir -p /home/bsp/myLinux
sudo docker run --privileged -it --name qclinux -v /home/bsp/myLinux:/home/adv/BSP:rw advrisc/u22.04-qcslbv1:20260908 /bin/bash
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP

Download BSP​

cd BSP
repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/adv-arm-yocto-bsp/_git/adv-arm-yocto-bsp -b qcom-linux-wrynose -m ${OFFICIAL_MANIFEST}
repo sync -c -j${YOUR_CPU_CORE_NUM}
kas_ci="meta-advantech-qualcomm/ci"
kas_list="${kas_ci}/base.yml" # Base source
kas_list="${kas_list}:${kas_ci}/addons/capsule.yml" # Option: Capsule related meta layer
kas checkout ${kas_list}
PlatformMachineOFFICIAL_MANIFEST
QCS6490AOM-2721aom2721a1_yocto6.0.1-qli2.0_v0.0.1_kernel-6.18.30_qcs6490.xml
IQ9075AIR-055air055a1_yocto6.0.1-qli2.0_v0.0.1_kernel-6.18.30_iq9075.xml

If you want to get latest bsp

cd BSP
repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/adv-arm-yocto-bsp/_git/adv-arm-yocto-bsp -b qcom-linux-wrynose -m adv-6.18.30-qli.2.0.xml
repo sync -c -j${YOUR_CPU_CORE_NUM}
kas_ci="meta-advantech-qualcomm/ci"
kas_list="${kas_ci}/base.yml" # Base source
kas_list="${kas_list}:${kas_ci}/addons/capsule.yml" # Option: Capsule related meta layer
kas checkout ${kas_list}

Get and Unzip the Downloads Files​

Yocto downloads file:[ downloads.qualcomm.qli.2.0.tar ]

The size of the compressed file is 58.13 GB

The md5sum of the compressed file is 3601cdea7f0869eb8bacb0b42625d3d1

Build Instructions

Build Yocto Images in the Docker Container​

cd /home/adv/BSP
kas_ci="meta-advantech-qualcomm/ci"
kas_list="${kas_ci}/machines/${YOCTO_MACHINE_NAME}.yml"
kas_list="${kas_list}:${kas_ci}/feature/performance.yml" # Optional: Fast boot & minimal initramfs settings
kas_list="${kas_list}:${kas_ci}/distro/sota.yml" # Optional: OSTree OTA Updates
kas_list="${kas_list}:${kas_ci}/addons/capsule.yml" # Optional: NHLOS OTA Updates
kas build ${kas_list}
MachineYOCTO_MACHINE_NAME
AOM-2721aom2721a1
AIR-055air055a1

Output images: build/tmp/deploy/images/${YOCTO_MACHINE_NAME}/qcom-multimedia-proprietary-image-${YOCTO_MACHINE_NAME}.rootfs.qcomflash

UFS and eMMC Flash Images

The output image folder supports UFS flashing by default. You may need to prepare the flash folder manually depending on your target storage type (UFS or eMMC). The partition_ufs/ and partition_emmc/ directories contain partition layout files specific to each storage type. You can use the following method to prepare for UFS or eMMC flashing.

UFS Flash Images​

1. Remove all gpt*.bin and *.xml files from the image root folder.

cd <image_folder>
rm -f gpt*.bin *.xml

2. Copy the following files from partition_ufs/ to the image root folder.

for f in partition_ufs/gpt_backup{0..5}.bin; do [ -f "$f" ] && cp "$f" .; done
for f in partition_ufs/gpt_main{0..5}.bin; do [ -f "$f" ] && cp "$f" .; done
for f in partition_ufs/rawprogram{0..5}.xml; do [ -f "$f" ] && cp "$f" .; done
for f in partition_ufs/patch{0..5}.xml; do [ -f "$f" ] && cp "$f" .; done
cp partition_ufs/provision*.xml .

eMMC Flash Images​

1. Remove all gpt*.bin and *.xml files from the image root folder.

cd <image_folder>
rm -f gpt*.bin *.xml

2. Copy the following files from partition_emmc/ to the image root folder.

for f in partition_emmc/gpt_backup{0..1}.bin; do [ -f "$f" ] && cp "$f" .; done
for f in partition_emmc/gpt_main{0..1}.bin; do [ -f "$f" ] && cp "$f" .; done
for f in partition_emmc/rawprogram{0..1}.xml; do [ -f "$f" ] && cp "$f" .; done
for f in partition_emmc/patch{0..1}.xml; do [ -f "$f" ] && cp "$f" .; done

The folder is now ready for eMMC flashing.

Device Guides

QCS6490 Device Guides​

SW112
UFSONON
eMMCOFFON
SW212
USB EDL ModeON
Normal ModeOFF
ATON
ATXOFF

IQ9075 Device Guides​

SW1 1   
ON   AT 
OFF ATX
SW3           1   2   
USB EDL Mode ON   ON   
Normal  Mode OFF OFF 

Recovery & Rescue

Using BSP Launcher or QDL (Qualcomm Device Download) tool to flash software images to the device.

Prepare images​

Get the Official Images and Unzip​

EX:

sudo tar -zxvf aom2721a1_yocto6.0.1-qli2.0_v0.0.1_kernel-6.18.30_qcs6490_8g_ufs+emmc_2026-10-06.tgz

Build Folder Images​

cd ${workspace}/build/tmp/deploy/images/${YOCTO_MACHINE_NAME}/qcom-multimedia-proprietary-image-${YOCTO_MACHINE_NAME}.rootfs.qcomflash

Use BSP Launcher to Flash image on x86 Ubuntu Host​

Please use BSP Launcher

Use QDL Tool to Flash Image​

Windows x86 QDL User and Installation Guide

Overview

Qualcomm Device Loader (QDL ) is a software tool that communicates with Qualcomm USB devices to upload a flash loader and flash software images.

Installation Guide

  1. Download Qualcomm Device Loader from below link https://softwarecenter.qualcomm.com/catalog/item/Qualcomm_Device_Loader

  2. According your host mach to select OS type and which version you want qdl_downalod_page.png

  3. Unzip download file in any path

  4. Serach Edit the system environment variables (環境變數) to open Advanced system settings
    Also you can open Settings app → System → About → Advanced system settings → Advanced qdl_open_system_environment.png

  5. Select Environment Variables (環境變數) qdl_environment_variable.png

  6. Select Path then edit (編輯) qdl_edit_environment_path.png

  7. Select New (新增) and type the Qualcomm Device Loader path then select OK (確定) qdl_add_environment_path.png

  8. Search cmd to open Windows Terminal
    qdl_cmd.png

  9. Type qdl and you can see the QDL usage now!! qdl_terminal.png

You can see the QDL_User_Guide.pdf for more details qdl_user_guide.png

winUSB Installation Guide

  1. Let board enter EDL mode

Please check Device Guides for more details

  1. Connect the EDL USB port to PC

  2. Search device manager (裝置管理員)
    qdl_open_device_manager.png

  3. Uninstall other drivers for the device qdl_remove_usb.png

  4. Open install_driver.bat in QDL path to install winUSB driver qdl_install_usb_driver_bat.png

  5. Press any key to close window qdl_usb_driver_install_success.png

Linux x86 QDL User and Installation Guide

Overview

Qualcomm Device Loader (QDL ) is a software tool that communicates with Qualcomm USB devices to upload a flash loader and flash software images.

Installation Guide

  1. Add Qualcomm USB udev rules (one-time prerequisite)

    Add below line in /etc/udev/rules.d/51-qcom-usb.rules

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="05c6", ATTRS{idProduct}=="9008", MODE="0666", GROUP="plugdev"
  2. Restart udev service

    sudo systemctl restart udev
  3. Download Qualcomm Device Loader from below link https://softwarecenter.qualcomm.com/catalog/item/Qualcomm_Device_Loader

  4. According your host mach to select OS type and which version you want qdl_linux_download_page.png

  5. Unzip download file in any pah

    unzip QDL_2.7.1_Linux_x64.zip

    qdl_linux_unzip.png

  6. Change the qdl tools permission

    sudo chmod 755 QDL_2.7.1_Linux_x64/qdl*
  7. Install dependency packages

    sudo apt-get install libxml2 libzip-dev
  8. Type qdl and you can see the QDL usage now!! qdl_usage.png

    You can see the QDL_User_Guide.pdf for more details

  9. Move qdl tools to global path

    sudo mv QDL_2.7.1_Linux_x64/qdl* /usr/local/bin/

Let device in EDL mode and connect the EDL USB Port to HOST.

Please check Device Guides for more details

Open terminal and enter the image folder:

EX:

cd ${workspace}/build/tmp/deploy/images/aom2721a1/qcom-multimedia-proprietary-image-aom2721a1.rootfs.qcomflash

Choosing the platform to flashing image.

QCS6490​

QCS6490 Platform Flashing Guide

Flash UFS provision (Once only)

qdl prog_firehose_ddr.elf provision_ufs31.xml

qcs6490_flash_provision.png

Flash UFS All Images

qdl prog_firehose_ddr.elf rawprogram*.xml patch*.xml

qcs6490_flash_image.png

Flash EMMC All Images

qdl --storage emmc prog_firehose_ddr.elf rawprogram*.xml patch*.xml

IQ9075​

IQ9075 Platform Flashing Guide

Flash UFS provision (Once only)

qdl prog_firehose_ddr.elf provision_1_2.xml

iq9075_flash_provision.png

Flash Safety Island

  1. Enter sail_nor folder
cd sail_nor
  1. Flash sail_nor
qdl --storage spinor prog_firehose_ddr.elf rawprogram0.xml patch0.xml

iq9075_flash_sail.png

  1. Back to the root path
cd ..

Flash UFS All Images

qdl prog_firehose_ddr.elf rawprogram*.xml patch*.xml

iq9075_flash_image.png

Switch device to Normal Mode and power on device

Customization

Setting up SDK​

Not support now

Setting up cross compiling environment​

Not support now