AIM-Linux/BSP/Qualcomm/RISC QCS Linux 00011.1

From ESS-WIKI
Jump to: navigation, search

Introduction

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

Ubuntu Version

Ubuntu 20.04

Kernel Version

Kernel 5.4.233

Host Machine

  • Linux Distro: Ubuntu 22.04 LTS

If yor host machine is Ubuntu 20.04 LTS, you need to install the qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb.

$ wget http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu/qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb
$ sudo dpkg -i qemu-user-static_6.2+dfsg-2ubuntu6_amd64.deb

Otherwise, you may get the following yocto build fail:

ERROR: ubuntu-base-20.04-r0 do_ubuntu_basic_configure: Execution of '/home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.1061187' failed with exit code 126
ERROR: Logfile of failure stored in: /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/log.do_ubuntu_basic_configure.1061187
Log data follows:
| DEBUG: Executing shell function do_ubuntu_basic_configure
| NOTE: copy fakeroot and fakechroot lib to ubuntu-base
| /usr/sbin/chroot: failed to run command ‘/bin/bash’: Exec format error
| WARNING: /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.1061187:1 exit 126 from 'fakechroot fakeroot chroot /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/ubuntu_base_tmp /bin/bash -c "cd /var; rm run; ln -s ../run run"'
| ERROR: Execution of '/home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.1061187' failed with exit code 126
ERROR: Task (/home/adv/adv-release-bsp/poky/meta-qti-ubuntu/recipes-core/ubuntu-base/ubuntu-base_20.04.bb:do_ubuntu_basic_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4987 tasks of which 4583 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 6 seconds

Summary: 1 task failed:
  /home/adv/adv-release-bsp/poky/meta-qti-ubuntu/recipes-core/ubuntu-base/ubuntu-base_20.04.bb:do_ubuntu_basic_configure
Summary: There were 235 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

or

ERROR: ubuntu-base-20.04-r0 do_ubuntu_basic_configure: Execution of '/home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.880287' failed with exit code 1
ERROR: Logfile of failure stored in: /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/log.do_ubuntu_basic_configure.880287
Log data follows:
| DEBUG: Executing shell function do_ubuntu_basic_configure
| NOTE: copy fakeroot and fakechroot lib to ubuntu-base
| semop(1): encountered an error: Function not implemented
| WARNING: /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.880287:1 exit 1 from 'fakechroot fakeroot chroot /home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/ubuntu_base_tmp /bin/bash -c "cd /var; rm run; ln -s ../run run"'
| ERROR: Execution of '/home/adv/adv-release-bsp/build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/aarch64-oe-linux/ubuntu-base/20.04-r0/temp/run.do_ubuntu_basic_configure.880287' failed with exit code 1
ERROR: Task (/home/adv/adv-release-bsp/poky/meta-qti-ubuntu/recipes-core/ubuntu-base/ubuntu-base_20.04.bb:do_ubuntu_basic_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3452 tasks of which 3253 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 12 seconds
 
Summary: 1 task failed:
  /home/adv/adv-release-bsp/poky/meta-qti-ubuntu/recipes-core/ubuntu-base/ubuntu-base_20.04.bb:do_ubuntu_basic_configure
Summary: There were 234 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Docker Install and BSP Download

Pull docker images

$ sudo docker pull advrisc/u20.04-qcslbv1:latest

Run docker example

$ mkdir -p ~/qualcomm-bsp
$ sudo docker run -it --name adv-qcs6490-ubun-1-0 -v ~/qualcomm-bsp:/home/adv/adv-release-bsp:rw --privileged advrisc/u20.04-qcslbv1:latest /bin/bash

Download BSP

You need to get the ADV_GIT_TOKEN by contacting the PM or AE of ROM-2860.

$ cd adv-release-bsp
$ git config --global credential.helper 'store --file ~/.my-credentials'
$ echo "https://AIM-Linux:${ADV_GIT_TOKEN}@dev.azure.com" > ~/.my-credentials
$ repo init -u https://dev.azure.com/AIM-Linux/risc_qcs_linux_00011.1/_git/manifests -b main -m adv_3.5.1.r1-06500-QCS6490.0.xml --repo-url=https://git.codelinaro.org/clo/tools/repo.git --repo-branch=qc-stable
$ repo sync -c -j12

Get and Unzip the Download Files

UIV1 yocto downloads file:[ downloads.qcs6490.ubun.1.0.r00011.1.tar.gz ]

$ cd adv-release-bsp
$ tar -zxvf downloads.qcs6490.ubun.1.0.r00011.1.tar.gz 

Copy HLOS of Chipcode

$ cp -r amss/apps_proc/* .

Build Instructions

Source env

$ source scripts/env.sh

Build All Images

$ scripts/build_release.sh -all

Output images: out/emmc and out/ufs

 

Build All Images individually

1. Build ADSP Image

$ scripts/build_release.sh -adsp

2. Build CDSP Image

$ scripts/build_release.sh -cdsp

3. Build BOOT(XBL) Image

$ scripts/build_release.sh -boot

4. Build CDT Image

$ scripts/build_release.sh -cdt

5. Build TZ Image

$ scripts/build_release.sh -tz

6. Build YOCTO Image

$ scripts/build_release.sh -yocto

7. Build META Image

$ scripts/build_release.sh -meta

8. Build OTA Image

$ scripts/build_release.sh -ota

Build yocto images

$ cd poky
$ export MACHINE=qcs6490-odk DISTRO=qti-distro-ubuntu-fullstack-debug
$ export PREBUILT_SRC_DIR="/home/adv/adv-release-bsp/prebuilt_HY11"
$ source qti-conf/set_bb_env.sh
$ bitbake qti-ubuntu-robotics-image

Build boot and dtb images

$ cd poky
$ export MACHINE=qcs6490-odk DISTRO=qti-distro-ubuntu-fullstack-debug
$ export PREBUILT_SRC_DIR="/home/adv/adv-release-bsp/prebuilt_HY11"
$ source qti-conf/set_bb_env.sh
$ bitbake -fc cleanall linux-msm && bitbake linux-msm && bitbake qti-ubuntu-robotics-image -fc do_make_bootimg && bitbake qti-ubuntu-robotics-image -fc do_makedtbo

Recovery & Rescue

QFIL

Install the QPST_QFIL and Qualcomm_USB_Driver

Download and install the following files on the Windows OS (Windows 10 Test OK):

  • QPST_QFIL: qpst.win.2.7_installer_00496.2.zip
  • Qualcomm_USB_Driver: QUD.WIN.1.1 Installer_10065.1.zip

Note: If you can't get these files, please contact PM or AE to get these files.

Get the official images and unzip

Release image URL: OS Support List (based on Ubuntu 20.04 - LU 1.0)

Unzip command example:

$ sudo tar -zxvf 2860A1AIM37UIV10059_emmc_2024-03-14.tgz

Enter 9008 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 QFIL to flash image

EMMC

  • Open QFIL tool and click the "Select Port"

Qfil flash image 1 1713161681873.png

 

  • Select the "Qualcomm HS-USB QDloader 9008"

Qfil flash image 2 1713161718506.png

 

  • 1.Click the "Configuration"
  • 2.Click the "FireHose Configuration"

Qfil flash image 3 1713161738991.png

 

  • 1.Select the "Device Type" to "emmc"
  • 2.Select the "Reset After Download"
  • 3.Select the "Erase All Before Download"

Qfil flash image 4 1713161932766.png

 

  • 1.Select the "Availible Meta Build Storage Types" to "emmc"
  • 2.Select the "Select Build Type" to "Meta Build"
  • 3.Click the "Load Content" and Select the contents.xml file of emmc
  • 4.Click the "Download Content"

Qfil flash image 5 1713161947957.png

 

  • Finish Download
  • You can power off the device and power on it again

Qfil flash image 7 1713161996595.png

 

UFS

Need to do the Provision when using it for the first time

  • Open QFIL tool and click the "Select Port"

Qfil flash image 1 1713161681873.png

 

  • Select the "Qualcomm HS-USB QDloader 9008"

Qfil flash image 2 1713161718506.png

 

  • 1.Click the "Configuration"
  • 2.Click the "FireHose Configuration"

Qfil flash image 3 1713161738991.png

 

  • 1.Select the "Device Type" to "ufs"
  • 2.Select the "Provision"

Qfil flash image 8 1713163252331.png

 

  • 1.Select the "provision_ufs31.xml" file
  • 2.Select the "prog_firehose_ddr.elf" programmer file
  • 3.Click the "Provision"

Qfil flash image 9 1713163470993.png

 

  • Finish Provision
  • You can power off the device and power on it again

Qfil flash image 10 1713163492158.png

 

  • 1.Click the "Configuration"
  • 2.Click the "FireHose Configuration"

Qfil flash image 3 1713161738991.png

 

  • 1.Deselected the "Provision"
  • 2.Select the "Reset After Download"
  • 3.Select the "Erase All Before Download"

Qfil flash image 11 1713163505186.png

 

  • 1.Select the "Availible Meta Build Storage Types" to "ufs"
  • 2.Select the "Select Build Type" to "Meta Build"
  • 3.Click the "Load Content" and Select the contents.xml file of ufs
  • 4.Click the "Download Content"

Qfil flash image 12 1713163517837.png

 

  • Finish Download
  • You can power off the device and power on it again

Qfil flash image 13 1713164712430.png

 

 

Fastboot

  • Micro USB: ROM-ED92 USB0

Connect the ROM-ED92 USB0 to host computer and set the Micro USB to peripheral mode.

# echo "peripheral" > /sys/devices/platform/soc/a600000.ssusb/mode

Enter the fastboot mode

adv@adv-desktop:~$ adb devices
List of devices attached
2e8c656e        device

adv@adv-desktop:~$ adb root
restarting adbd as root

adv@adv-desktop:~$ adb reboot bootloader

adv@adv-desktop:~$ fastboot devices
2e8c656e        fastboot

Use the fastboot to flash the kernel boot image

adv@adv-desktop:~$ fastboot flash boot_a qti-ubuntu-robotics-image-qcs6490-odk-boot.img
target reported max download size of 805306368 bytes
sending 'boot_a' (24420 KB)...
OKAY [  0.790s]
writing 'boot_a'...
OKAY [  0.144s]
finished. total time: 0.935s

adv@adv-desktop:~$ fastboot flash boot_b qti-ubuntu-robotics-image-qcs6490-odk-boot.img
target reported max download size of 805306368 bytes
sending 'boot_b' (24420 KB)...
OKAY [  0.827s]
writing 'boot_b'...
OKAY [  0.133s]
finished. total time: 0.960s

Use the fastboot to flash the kernel dtbo image

adv@adv-desktop4:~$ fastboot flash dtbo_a dtbo.img
target reported max download size of 805306368 bytes
sending 'dtbo_a' (12330 KB)...
OKAY [  0.427s]
writing 'dtbo_a'...
OKAY [  0.070s]
finished. total time: 0.497s

adv@adv-desktop4:~$ fastboot flash dtbo_b dtbo.img
target reported max download size of 805306368 bytes
sending 'dtbo_b' (12330 KB)...
OKAY [  0.422s]
writing 'dtbo_b'...
OKAY [  0.061s]
finished. total time: 0.483s