QCA Software Development Kit (QSDK)

The QCA Software Development Kit (QSDK) project allows users to build an OpenWrt based platform containing additional enhancements for Qualcomm Atheros chipsets that have not yet made it into the public OpenWrt repository. OpenWrt is an open source embedded Linux distribution optimized for small footprint Wi-Fi routers and similar devices. QCA’s long-term objective is to push generically useful enhancements from these QSDK patches directly to OpenWrt.

QSDK is based upon the OpenWrt build framework, configuration methods, package management, and other tools. Documentation, original sources and an overview of OpenWrt can be found on its web site.

A Gitweb interface is available to browse the Code Aurora source tree that contains QSDK patches that can be applied to OpenWrt for QCA hardware. 


QSDK releases are based upon the source released from OpenWrt. QSDK is based upon the OpenWrt AA 12.09 final (April 25, 2013 stable release: svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09). Newer patches from OpenWrt trunk may also have been merged into the QSDK release. Ideally, new functionality or fixes found only in the QSDK patches will be merged back to OpenWrt trunk so that they can be made available for subsequent QSDK releases, based on future OpenWrt stable releases.

Branch Releases

Releases are available for download using Repo and Git.

The general form is:

$ repo init -u git://codeaurora.org/quic/qsdk/releases/manifest/qstak -b release -m [manifest]

$ repo sync

Patch Releases

Fixes are sometimes available in patch format only.

CAF Download Steps:

The recommended way of checking out the QSDK source code is to identify a particular AU TAG from CAF: https://source.codeaurora.org/quic/qsdk/releases/manifest/qstak

$ repo init -u git://codeaurora.org/quic/qsdk/releases/manifest/qstak -b release -m caf_AU_LINUX_QSDK_<your version>.xml --repo-url=git://codeaurora.org/tools/repo.git --repo-branch=caf-stable

$ repo sync

*Mainline example version: caf_AU_LINUX_QSDK_COLLARD_TARGET_ALL.3.0.397.xml
*Release branch example version: caf_AU_LINUX_QSDK_RELEASE_DANDELION_ES_TARGET_ALL.3.0.308.01.018.xml

Build Steps:

The following example uses the open profile; select the profile you require

$ cp qca/configs/qsdk/ipq806x_open.config .config

$ make package/symlinks

$ make defconfig

$ make V=s


APSS Image Flashing Instructions for IPQ806X and IPQ40XX

For IPQ806X:

NOR Boot:
set lof 'tftpb 0x42000000 openwrt-ipq806x-squashfs-root.img && sf erase 0x6b0000 0x1950000 && sf write 0x42000000  0x6b0000 $filesize'

set lok 'tftpb openwrt-ipq806x-qcom-ipq8064-${board}-fit-uImage.itb && sf erase 0x002b0000 0x400000 && sf write 0x42000000 0x2b0000 $filesize'

set lqsdk 'sf probe && run lok && run lof'

set fdt_high  '0xffffffff'


run lqsdk


NAND Boot:

tftpboot 0x42000000 openwrt-ipq806x-qcom-ipq8064-${board}-ubi-root.img

nand erase $ROOTFS_START 0x4000000

nand write 0x42000000 $ROOTFS_START $filesize


// where ROOTFS_START is the hex value from the smem command output above; in the example above 0x1340000 


For IPQ40XX:

NOR Boot:

set lof 'tftpboot 0x88000000 openwrt-ipq806x-squashfs-root.img && sf erase 0x00590000 +$filesize && sf write 0x88000000 0x00590000 $filesize'

set lok 'tftpboot 0x88000000 openwrt-ipq806x-qcom-ipq40xx -${board}-fit-uImage.itb && sf erase 0x00190000 +0x300000 && sf write 0x88000000 0x00190000 0x300000'

set lqsdk 'sf probe && run lok && run lof'

set fdt_high '0xffffffff'


run lqsdk


NAND Boot:

tftpboot 0x88000000  openwrt-ipq806x-ipq40xx-ubi-root.img

nand erase $ROOTFS_START 0x4100000

nand write 0x88000000 $ROOTFS_START $filesize


// where ROOTFS_START is the hex value from the smem command output above; in the example above 0xb80000


What are the major changes between OpenWrt AA and QSDK?

The following directories include patches and enhancements from QCA:

  • arch/mips/ath79/* – updated QCA base platform device support – GPLv2
  • sound/soc/ath79/* – new ALSA-compliant QCA soundcard driver – ISC
  • drivers/net/ethernet/atheros/ag71xx/* – updated QCA Ethernet switch driver – GPLv2
  • net/core/* – performance enhancement updates to Linux sk_buff management – GPL v2
  • drivers/spi – added modes to QCA spi driver – GPLv2
  • drivers/mtd/nand/ – new QCA NAND flash controller driver – ISC


The source code available for download from Code Aurora may be covered by one or more different licenses. The files in Code Aurora may contain changes and additions on top of the code from the original source. These changes and additions are covered under the same license as the original source. In many cases, the license is explicitly listed at the beginning of the file. A list of licenses is included for reference purposes only.

Created by Rene Cunningham on 2013/08/20 03:50
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 7.4.3 - Documentation