AIM-Linux/BSP/Qualcomm/RISC QCS Yocto LE1.3 AOM2721
Contents
Introduction
This document describes how to work with the RISC and Qualcomm LE GA1.3 Board Support Package (BSP) release.
Yocto Version
Yocto 4.0.22
Kernel Version
Kernel 6.6.52
Meta Build ID
QCM6490.LE.1.0-00321-STD.PROD-1
Host machine requirements
OS
Ubuntu 20.04 or Ubuntu 22.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/u20.04-qcslbv2:latest
Run docker example
$ mkdir -p /home/bsp/myLinux $ sudo docker run --privileged -it --name qclinux -v /home/bsp/myLinux:/home/adv/BSP:rw advrisc/u20.04-qcslbv2 /bin/bash adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
Download BSP
You need to get the ADV_GIT_TOKEN by contacting the PM or AE of AOM-2721.
$ cd /home/adv/BSP $ git config --global credential.helper 'store --file ~/.my-credentials' $ echo "https://AIM-Linux:${ADV_GIT_TOKEN}@dev.azure.com" > ~/.my-credentials
Refer to Release image URL: OS Support List(LE1.3 based on Yocto4.0.22) , Official version "aom2721a1_yl01301_k0606052_q6490_08g.xml" is taken as an example :
$ repo init -u https://dev.azure.com/AIM-Linux/risc_qcs_linux_le_1.3/_git/manifest -b main -m aom2721a1_yl01301_k0606052_q6490_08g.xml $ repo sync -c -j${YOUR_CPU_CORE_NUM}
If you want to get latest bsp
$ repo init -u https://dev.azure.com/AIM-Linux/risc_qcs_linux_le_1.3/_git/manifest -b main -m adv-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1.xml $ repo sync -c -j${YOUR_CPU_CORE_NUM}
You can check the download BSP as the following.
Get and Unzip the Downloads Files (Must to do)
Yocto downloads file:[ downloads.qcs6490.le.1.3.tar.gz ]
The size of downloads.qcs6490.le.1.3.tar.gz is 42184177080 byte (41,195,486 KB)
The md5sum of downloads.qcs6490.le.1.3.tar.gz is a1d84a26bfd04eb06349994a0c3f66db
You need to get the PASSWORD by contacting the PM or AE of AOM-2721.
$ cd /home/adv/BSP $ openssl des3 -d -k ${PASSWORD} -salt -pbkdf2 -in downloads.qcs6490.le.1.3.tar.gz -out downloads.qcs6490.le.1.3.decrypt.tar.gz $ tar -zxvf downloads.qcs6490.le.1.3.decrypt.tar.gz
Build Instructions
Source env
For the "Build All images", "Build All Images individually" and "Build yocto images", you need to do the "Source env".
$ source scripts/env.sh
Build All Images
$ scripts/build_release.sh -all -qcs6490aom2721a1 -user
- Output ufs images: build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-image
- Output emmc images: build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-image-emmc
Build All Images individually
1. Build ADSP Image
After building the ADSP, you need to build the "6. Generate Firmware Prebuilds" to package new firmware prebuild files.
$ scripts/build_release.sh -adsp
2. Build AOP Image
After building the AOP, you need to build the "6. Generate Firmware Prebuilds" to package new firmware prebuild files.
$ scripts/build_release.sh -aop
3. Build CDSP Image
After building the CDSP, you need to build the "6. Generate Firmware Prebuilds" to package new firmware prebuild files.
$ scripts/build_release.sh -cdsp
4. Build BOOT(XBL) Image
After building the BOOT(XBL), you need to build the "6. Generate Firmware Prebuilds" to package new firmware prebuild files.
$ scripts/build_release.sh -boot
5. Build TZ Image
After building the TZ, you need to build the "6. Generate Firmware Prebuilds" to package new firmware prebuild files.
$ scripts/build_release.sh -tz
6. Generate Firmware Prebuilds
$ scripts/build_release.sh -common
Output firmware prebuild files:
amss/QCM6490.LE.1.0/common/build/ufs/bin/QCM6490_bootbinaries.zip
amss/QCM6490.LE.1.0/common/build/ufs/bin/QCM6490_dspso.zip
amss/QCM6490.LE.1.0/common/build/ufs/bin/QCM6490_fw.zip
7. Build YOCTO Image by build script
$ scripts/build_release.sh -yocto -qcs6490aom2721a1 -user
Build yocto images
$ cd /home/adv/BSP $ source scripts/env.sh $ unset DEBUG_BUILD $ MACHINE=qcs6490aom2721a1 DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment $ ../qirp-build qcom-robotics-full-image
Recovery & Rescue
Using windows PCAT or Qualcomm Download (QDL) tool to flash software images to the device.
Get the official images and unzip
Release image URL: OS Support List(LE1.3 based on Yocto4.0.22)
Unzip command example:
$ sudo tar -zxvf aom2721a1_yl01301_k0606052_q6490_08g_ufs4_2025-04-06.tgz
Enter EDL download mode
- Connect the Micro USB (EDL) to your host computer.
- Forced Recovery: The SW2 switch to 1-on.
- Flash EMMC: the SW1 switch to 1-off, 2-on
- Flash UFS: the SW1 switch to 1-on, 2-on
- Connect the adapter and power on the device
Use the windows PCAT to flash images
1. Download the Qualcomm Software Center
2. Open the Qualcomm Software Center
3. Search "PCAT" in the search bar
4. Click Qualcomm® Product Configuration Assistant Tool
5. Select Qualcomm® Product Configuration Assistant Tool version
Version: 2.33.2.119
6. Install Qualcomm® Product Configuration Assistant Tool 2.33.2.119
7. Search "QUTS" in the search bar
8. Click the Qualcomm® Unified Tools Services
9. Select Qualcomm® Unified Tools Services version
Version : 1.75.2.9
10. Install Qualcomm® Unified Tools Services 1.75.2.9
11. You will find the new application after installing the PCAT and QUTS in your Windows system .
12. Unzip the UFS File and eMMC File
For example :
aom2721a1_yl01301_k0606052_q6490_08g_ufs4_2025-04-06.tgz
aom2721a1_yl01301_k0606052_q6490_08g_emmc_2025-04-06.tgz
13. Connect your device via Micro USB.
USF Provision
2. Add the prog_firehose_ddr.elf and provision_ufs31.xml in UFS folder.
3. Then press "OK" , it will start to do USF Provision.
4. When the Provision finished , you can see the result in message window.
Flash UFS
1. Change the SW1 and SW2
Flash UFS: the SW1 switch to 1-on, 2-on
Forced Recovery : The SW2 switch to 1-on ,2 - on .
2. Turn on the power
3. Open " PCATApp" Tool
4. Click " Connect A Device"
5. Select "Qualcomm HS-USB QDLoader 9008 (COM6)
6. Click " Connect " device
7. When you connected successfully , it will show "green word" - Qualcomm HS-USB QDLoader 9008 (COM 6)
8. Select UFS Folder in PCAT Tool , the Tool will help load Files automatically and Select "MEMORY_TYPE_UFS"
9. Click " Download"
10. UFS Download Status
11. UFS Donwload compeleted
12. When the UFS installation finished . Close the PCAT tool ,
13. pleaes remove the mirco usb cable, turn off the power
14. UFS boot up :
The SW1 switch to 1-on, 2-on
The SW2 switch to 1-off, 2-on
15. Connect debug cable and open the terminal , turn on the power .
16. When the systme boot up , you need to type " qcs6490aom2721a1 login: root " , " Password: oelinux123"
17. After type the long in and password , and you also can chek the image information about date , kernel version etc..
Flash eMMC
1. Turn off the Power
2. Change the SW1 and SW2
Flash eMMC: The SW1 switch to 1-off, 2-on
Forced Recovery : The SW2 switch to 1-on, 2-on
3. Turn on the power
4. Make sure the device connection status.
5. If the device disconnect with PCAT Tool , please connect it again.
6. Select eMMC Folder.
7. Make sure the setting ,then press " Download " button.
8. eMMC downlaoad status
9. eMMC Donwload compeleted
10. When the eMMC installation finished . Close the PCAT tool ,
11. pleaes remove the mirco usb cable, turn off the power
12. eMMC boot up :
The SW1 switch to 1-off, 2-on
The SW2 switch to 1-off, 2-on
13. Connect debug cable and open the terminal , turn on the power .
14. When the systme boot up , you need to type " qcs6490aom2721a1 login: root " , " Password: oelinux123"
15. After type the long in and password , and you also can chek the image information about date , kernel version etc..
Customization
Setting up SDK
You can download the sdk from [ sdk.qcs6490.le.1.3.tar.gz ]
The size of sdk.qcs6490.le.1.1.r00041.0.tar.gz is 5303727696 byte (5,179,422 KB)
The md5sum of sdk.qcs6490.le.1.1.r00041.0.tar.gz is f200fabd69c4751c61c280b6583449e7
Or perform the following command in terminal console
$ cd build-qcom-robotics-ros2-humble/tmp-glibc/deploy/sdk $ sudo ./qcom-robotics-ros2-humble-x86_64-qcom-robotics-full-image-armv8-2a-qcs6490aom2721a1-toolchain-2.1.2.sh
Enter new installed directory or just press Enter
to use default directory. While Proceed[Y/n]?
shows up, please enter the correct one.
Waiting for the SDK installed (while the following messages show up completely)
Setting up cross compiling environment
SDK has been set up (ref.Setting up SDK) Perform the following command in terminal console
$ source ${TOOLCHAIN}/environment-setup-armv8-2a-qcom-linux