OpenEmbedded/Yocto Project hardware enablement layer for Qualcomm based platforms.
This layers provides additional recipes and machine configuration files for Qualcomm platforms.
This layer depends on:
URI: https://github.com/openembedded/openembedded-core.git
layers: meta
branch: master
revision: HEAD
URI: https://github.com/Linaro/meta-qcom.git
branch: master
revision: HEAD
- main: Primary development branch, with focus on upstream support and compatibility with the most recent Yocto Project release.
- kirkstone: Qualcomm Linux 1.x, aligned with Yocto Project 4.0 (LTS).
See conf/machine
for the complete list of supported devices.
Please refer to the Yocto Project Reference Manual to set up your Yocto Project build environment.
Please follow the instructions below for a KAS-based build. The KAS tool offers an easy way to setup bitbake based projects. For more details, visit the KAS documentation.
-
Install kas tool:
sudo pip3 install kas
-
Clone
meta-qcom-hwe
layer:git clone https://github.com/qualcomm-linux/meta-qcom-hwe.git -b main
-
Build using the KAS configuration for one of the supported boards
kas build meta-qcom-hwe/ci/qcs6490-rb3gen2-core-kit.yml
For a manual build without KAS, refer to the Yocto Project Quick Build.
QDL tool communicates with USB devices of PID:VID 05c6:9008
and uploads a
flash loader, which is then used for flashing images. Follow the steps below
to download and compile QDL for your platform:
-
Clone the QDL repository:
git clone https://github.com/linux-msm/qdl
-
Read the README and install build dependencies (
libxml2-dev
andlibusb-1.0-0-dev
). On Debian-based distribution run:sudo apt install libxml2-dev libusb-1.0-0-dev
-
Build the QDL tool using make:
cd qdl make
As QDL tool requires raw USB access, so to able to run it from 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_0
positions1
and2
toON
. This enables serial output to the debug port. - To put the device into EDL mode press and hold the
F_DL
button 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 indmesg
how 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 comminication 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.
-
Unpack the tarball stored in the deploy directory:
cd build/tmp/deploy/images/qcs6490-rb3gen2-core-kit/ tar zxvf core-image-base-qcs6490-rb3gen2-core-kit.rootfs.qcomflash.tar.gz
-
Use the QDL tool (built in the previous section) to flash the images:
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
--serial
param:qdl --serial=0AA94EFD --debug prog_firehose_ddr.elf rawprogram*.xml patch*.xml
Serial can be obtained using
lsusb -v -d 05c6:9008
command. -
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
Please submit any patches against the meta-qcom-hwe
layer (branch main)
by using the GitHub pull-request feature. Fork the repo, create a branch, do
the work, rebase from upstream, and create the pull request.
For some useful guidelines when submitting patches, please refer to: Preparing Changes for Submission
Pull requests will be discussed within the GitHub pull-request infrastructure.
Branch kirkstone is not open for direct contributions, please raise an issue with the suggested change instead.
- GitHub Issues: meta-qcom-hwe issues
- Pull Requests: meta-qcom-hwe pull requests
- Naveen Kumar [email protected]
- Sourabh Banerjee [email protected]
- Viswanath Kraleti [email protected]
- Ricardo Salveti [email protected]
- Nicolas Dechesne [email protected]
This layer is licensed under the MIT license. Check out COPYING.MIT for more detais.