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
This layers has an optional dependency on meta-oe layer:
URI: https://github.com/openembedded/meta-openembedded.git
layers: meta-oe
branch: master
revision: HEAD
The dependency is optional, and not strictly required. When meta-oe is enabled in the build (e.g. it is used in BBLAYERS) then additional recipes from meta-qcom are added to the metadata. You can refer to meta-qcom/conf/layer.conf for the implementation details.
- master: Primary development branch, with focus on upstream support and compatibility with the most recent Yocto Project release.
 - all stable branch up until styhead: Legacy branches maintained by Linaro, prior to the migration to Qualcomm-linux.
 
See conf/machine for the complete list of supported devices.
All contemporary boards are supported by a single qcom-armv8a machine. It can be used instead of using the per-board configuration file. In order to enable support for the particular device extend the qcom-armv8a.conf file .
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 layer
git clone https://github.com/qualcomm-linux/meta-qcom.git -b master - 
Build using the KAS configuration for one of the supported boards
kas build meta-qcom/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-devandlibusb-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_0positions1and2toON. This enables serial output to the debug port. - To put the device into EDL mode press and hold the 
F_DLbutton 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 indmesghow 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.
 - 
Use the QDL tool (built in the previous section) to flash the images:
cd build/tmp/deploy/images/qcs6490-rb3gen2-core-kit/core-image-base-qcs6490-rb3gen2-core-kit.rootfs.qcomflash qdl --debug prog_firehose_ddr.elf rawprogram*.xml patch*.xmlIf you have multiple boards connected the host, provide the serial number of the board to flash through
--serialparam:qdl --serial=0AA94EFD --debug prog_firehose_ddr.elf rawprogram*.xml patch*.xmlSerial can be obtained using
lsusb -v -d 05c6:9008command. - 
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 layer (branch master)
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 issues
 - Pull Requests: meta-qcom 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.