Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

MTP8926 Linux Android™ Software User Manual: Submit Technical Questions at

Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

MTP8926 Linux Android™ Software

User Manual
80-ND928-7 A
February 12, 2014

Submit technical questions at:


https://support.cdmatech.com/

Confidential and Proprietary – Qualcomm Technologies, Inc.


NO PUBLIC DISCLOSURE PERMITTED: Please report postings of this document on public servers or websites
to: DocCtrlAgent@qualcomm.com.

Restricted Distribution: Not to be distributed to anyone who is not an employee of either Qualcomm or its
subsidiaries without the express approval of Qualcomm’s Configuration Management.

Not to be used, copied, reproduced, or modified in whole or in part, nor its contents revealed in any manner to others
without the express written permission of Qualcomm Technologies, Inc.

Qualcomm reserves the right to make changes to the product(s) or information contained herein without notice. No
liability is assumed for any damages arising directly or indirectly by their use or application. The information
provided in this document is provided on an “as is” basis.

This document contains confidential and proprietary information and must be shredded when discarded.

Qualcomm is a trademark of QUALCOMM Incorporated, registered in the United States and other countries. All
QUALCOMM Incorporated trademarks are used with permission. Other product and brand names may be
trademarks or registered trademarks of their respective owners.

This technical data may be subject to U.S. and international export, re-export, or transfer (“export”) laws. Diversion
contrary to U.S. and international law is strictly prohibited.

Qualcomm Technologies, Inc.


5775 Morehouse Drive
San Diego, CA 92121
U.S.A.

©2014 Qualcomm Technologies, Inc.


All rights reserved.
Contents

1 Introduction...................................................................................................... 5
1.1 Purpose.......................................................................................................................... 5
1.2 Scope............................................................................................................................. 5
1.3 Conventions .................................................................................................................. 5
1.4 References..................................................................................................................... 5
1.5 Technical assistance ...................................................................................................... 6
1.6 Acronyms ...................................................................................................................... 6

2 Software Environment .................................................................................... 7


2.1 Equipment and software ............................................................................................... 7
2.2 Installation and setup .................................................................................................... 8
2.2.1 Python installation on Windows ........................................................................ 8
2.2.2 Ubuntu installation............................................................................................. 8
2.2.3 Samba configuration for Windows sharing (optional)....................................... 9
2.2.4 sun-java6.jdk installation ................................................................................. 10
2.2.5 Repo installation .............................................................................................. 11
2.2.6 Virtual machine installation and configurations .............................................. 12

3 Software Product Information ...................................................................... 14


3.1 Software product identification................................................................................... 14
3.2 Access to the software ................................................................................................ 17
3.2.1 Downloading QTI’s proprietary software (Windows build machine) ............. 18
3.2.2 Downloading open source HLOS software (Linux build machine) ................ 21
3.3 Compilation/build procedures..................................................................................... 22
3.3.1 Apps processor Android HLOS ....................................................................... 22
3.3.2 Move build to location for loading .................................................................. 23
3.3.3 Generating HLOS sparse images (Windows build machine) .......................... 24

4 Firmware Programming ................................................................................ 25


4.1 Equipment and software ............................................................................................. 25
4.2 Installation and setup .................................................................................................. 25
4.2.1 Installing Android ADB, Fastboot, and Host USB interface ........................... 25
4.3 Programming procedures ............................................................................................ 28
4.3.1 Programming using Fastboot ........................................................................... 28
4.4 Flashing applications to Android using ADB ............................................................. 29

80-ND928-7 A 2 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Contents

Figures
Figure 3-1 Decoding the software release build ID ................................................................................... 14
Figure 3-2 Combined software release packages ....................................................................................... 16

Tables
Table 1-1 Reference documents and standards ............................................................................................ 5
Table 2-1 Required hardware, software, and other equipment .................................................................... 7
Table 3-1 Component release build properties .......................................................................................... 17
Table 4-1 Equipment and software required for programming firmware images...................................... 25

80-ND928-7 A 3 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Revision history

Revision Date Description


A Feb 2014 Initial release

80-ND928-7 A 4 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
1 1 Introduction

2 1.1 Purpose
3 This document is designed to provide users with the necessary information to obtain, build, and
4 program software applicable to the MSM8926 Linux Android™ Product Line (PL) as-is into a
5 reference platform.

6 1.2 Scope
7 This document provides software users with instructions on how to set up a development
8 environment, obtain the software, and install it into the development environment. It also covers
9 software operation, such as instructions for rebuilding the software as-is and programming the
10 resultant build products (firmware) into a reference platform. The programming information
11 provides the information needed to program and reprogram the firmware devices of the system. It
12 describes the firmware devices and the equipment, software, and procedures needed to erase
13 firmware devices, load software into the firmware devices, and verify the load process.

14 1.3 Conventions
15 Function declarations, function names, type declarations, and code samples appear in a different
16 font, e.g., #include.
17 Commands to be entered appear in a different font, e.g., copy a:*.* b:.
18 Button and key names appear in bold font, e.g., click Save or press Enter.

19 1.4 References
20 Reference documents are listed in Table 1-1. Reference documents that are no longer applicable
21 are deleted from this table; therefore, reference numbers may not be sequential.

22 Table 1-1 Reference documents and standards

Ref. Document

Qualcomm Technologies
Q1 Application Note: Software Glossary for Customers CL93-V3077-1
Q2 USB Host Driver for Windows 2000/Windows XP User Guide 80-V4609-1
Q3 USB Host Driver Installation Instructions for Microsoft Windows 80-VP092-1
Q4 Presentation: Introduction to Qualcomm ChipCenter™ and Qualcomm 80-NC193-1
ChipCode™
Q5 Qualcomm ChipCode™ and Qualcomm ChipCenter™ User Guide 80-NC193-2

80-ND928-7 A 5 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Introduction

Ref. Document
Resources
R1 Android™ Open Source Project Page http://source.android.com/
R2 Android™ Developer Resources http://developer.android.com/index.html
R3 Android™ Source Download and System Setup http://source.android.com/source/
building.html
R4 Code Aurora Forum https://www.codeaurora.org/
R5 Using Repo and Git http://source.android.com/source/
developing.html
R6 LYA Releases (Qualcomm Docs and Downloads) https://downloads.cdmatech.com/qdc/
R7 Using Python on Windows http://docs.python.org/2/using/
windows.html

1 1.5 Technical assistance


2 For assistance or clarification on information in this document, submit a case to Qualcomm
3 Technologies, Inc. (QTI) at https://support.cdmatech.com/.
4 If you do not have access to the CDMATech Support Service website, register for access or send
5 email to support.cdmatech@qti.qualcomm.com.

6 1.6 Acronyms
7 For definitions of terms and abbreviations, see [Q1].

80-ND928-7 A 6 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
1 2 Software Environment

2 2.1 Equipment and software


3 Table 2-1 identifies the hardware, software, and other equipment needed for a user to install and
4 run the software.

5 Table 2-1 Required hardware, software, and other equipment


Item description Version Source/vendor Purpose
1. Linux development workstation — — Android build machine
exceeding minimum desktop system
requirements for running Ubuntu
64-bit OS
A powerful PC to speed up compile
times is recommended; Google
recommended the following in the
Android forum:
 16 GB RAM minimum
 Quad core CPU, e.g., Intel i7-2600
at 3.4 GHz, equivalent or better
 1 TB hard drive (SSD-accelerated
preferred)
2. Windows 7 or Windows XP Windows XP Microsoft Windows-based
workstation or Windows 7 programming tools
3. Ubuntu 12.04 LTS Linux distribution 12.04 LTS Ubuntu Android build host OS
for 64-bit architecture Community/
Canonical, Ltd.
4. Java SE JDK for Linux x64 6 Oracle Required for building
Android
5. repo — Android Open Android source
Source Project management tool
6. Python (on Windows) 2.6.2 Python.org Generating sparse
images
7. QTI USB Network Driver Combo 1.0.6.0 or QTI Windows host USB
later drivers for QTI
composite devices

80-ND928-7 A 7 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 2.2 Installation and setup

2 2.2.1 Python installation on Windows


3 A recent version of Python 2.x (2.6.2 or greater) is required to load an MSM8926 target from the
4 Windows build machine via QPST eMMC Software Download. Follow the Windows installation
5 instructions on Python.org ([R7]). You will need to manually execute the Python interpreter from
6 the Windows command line.

7 2.2.2 Ubuntu installation


8 The following instructions describe how to install, update, and configure an Ubuntu 12.04.0
9 (64-bit) system. You must be able to log in as root or use sudo to have root permissions during
10 the installation.
11 To install Ubuntu:
12 1. Create an installation CD, with cd image ubuntu-12.04.2-desktop-amd64.iso, and install
13 it onto the computer by following the instructions at http://old-releases.ubuntu.com/
14 releases/12.04.0/.
15 2. After installation, perform a software update using one of the following options:
16  In the GUI, select System→Administration→Update Manager.
17  From a shell command line:
18 i Edit the source config file directly:
19

20 sudo vi /etc/apt/sources.list
21

22 ii Edit the file to enable the universe and multiverse sources and disable the Ubuntu
23 installation CD source.
24 iii From the command line, perform the package list update and package upgrades.
25

26 sudo apt-get update


27 sudo apt-get upgrade
28

29 3. Use apt-get to install the additional required packages.


30

31 sudo apt-get install git-core gnupg flex bison gperf build-essential zip
32 curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev
33 ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libxml-
34 simple-perl libc6-dev libgl1-mesa-dev mingw32 tofrodos python-markdown
35 libxml2-utils xsltproc
36

80-ND928-7 A 8 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 4. IMPORTANT – Make Bash the default shell (Android build scripts contain Bash shell
2 dependencies that require the system default shell /bin/sh to invoke bash) using one of the
3 following options:
4  Reconfigure the package.
5 i Use the command:
6

7 sudo dpkg-reconfigure dash


8

9 ii Answer no.
10  Manually change the symlink /bin/sh→dash to /bin/sh→bash
11 i Use the command:
12

13 sudo rm /bin/sh
14

15 ii Use the command:


16

17 sudo ln -s /bin/bash /bin/sh

18 NOTE: See the Ubuntu Wiki page at https://wiki.ubuntu.com/DashAsBinSh for more information.

19 2.2.3 Samba configuration for Windows sharing (optional)


20 To configure Samba for Windows sharing:
21 1. Install the Samba server and configuration manager for Windows sharing.
22

23 sudo apt-get install samba system-config-samba


24

25 2. Configure the Samba server.


26

27 System->Administration->Samba
28 preferences->server settings:
29 vmgroup, security=user authentication
30 encrypt pw=yes, guest accnt=no guest accnt
31 add share directory=/, share name=root, description=root directory

80-ND928-7 A 9 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 2.2.4 sun-java6.jdk installation

2 2.2.4.1 Install jdk using Ubuntu partner repository


3 Install jdk using the Ubuntu partner repository:
4

5 sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”


6 sudo apt-get update
7 sudo apt-get install sun-java6-jdk

8 2.2.4.2 Install jdk directly from the Oracle website


9 To install jdk directly from Oracle:
10 1. Go to http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-
11 downloads-javase6-419409.html and select the jdk-6u45-linux-x64.bin file.
12 2. Select platform Linux x64. Accept the license agreement and download the JDK bin install
13 file.
14 3. Make the installation file executable.
15

16 chmod +x jdk-<xxx>.bin
17

18 4. Execute the installation script in the directory where you want the jdk package installed (this
19 creates a directory under the directory where you executed the installation script).
20

21 mkdir -p /opt/jdk6
22 cd /opt/jdk6
23 ./jdk-<xxx>.bin
24

25 5. Override the use of any other installed jdk by adding <jdk_installdir>/ bin to the front of your
26 path.
27

28 export PATH=/opt/jdk6/jdk<xxx>/bin:$PATH

29 NOTE: Include the above path setting in your .bash_profile so it is set automatically every time you
30 log in.

80-ND928-7 A 10 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 2.2.5 Repo installation


2 The repo tool is a source code configuration management tool used by the Android project (see
3 [R5]). It is a frontend to Git written in Python that uses a manifest file to aid downloading code
4 organized as a set of projects stored in different Git repositories.
5 To install repo:
6 1. Create a ~/bin directory in your home directory, or, if you have root or sudo access, install for
7 all system users under a common location, such as /usr/local/bin or somewhere under /opt.
8 2. Download the repo script.
9

10 curl http://android.git.kernel.org/repo >~/bin/repo


11

12 3. Set the repo script’s attributes to executable.


13

14 chmod a+x ~/bin/repo


15

16 4. Make sure that the installed directory location for repo is included in your PATH.
17

18 export PATH=~/bin:$PATH
19

20 5. Try running repo—help to verify installation; you should see a message similar to the
21 following:
22

23 $ repo—help
24 usage: repo COMMAND [ARGS]
25 repo is not yet installed. Use “repo init” to install it here.
26 The most commonly used repo commands are:
27 init Install repo in the current working directory
28 help Display detailed help on a command
29

30 6. For access to the full online help, install repo (repo init).

80-ND928-7 A 11 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 2.2.6 Virtual machine installation and configurations


2 For directions to install Ubuntu, see Section 2.2.2.
3 To install a virtual machine:
4 1. Navigate to https://www.virtualbox.org/wiki/Downloads and download VirtualBox 4.3.2 for
5 Windows that hosts x86 and AMD64.
6 2. After the virtual machine is installed, create a virtual machine named Ubuntu by clicking
7 New→Name you gave the Desktop Image that you just now downloaded. Confirm that 64 bit
8 is in the place of version.
9 3. Increase the memory size to at least half of the physical memory.
10 4. To create the virtual hard drive, click Create.
11 5. Select VDI Virtual Disk image and click Next.
12 6. Select Dynamically allocated and click Next.
13 7. Increase the file allocation and size to at least 80 GB and click Create.
14 The virtual machine is now created.
15 To load the disk image:
16 1. Select Settings→Go to storage→Go to place of empty and click Empty.
17 2. Click the small cd image that appears.
18 3. Click Choose a Virtual Optical Disk File.
19 4. In the window that opens, select the desktop image file.
20 5. Check the live cd/dvd box.
21 6. Click Ok.
22 7. Start the virtual machine; it will load with Ubuntu.
23 8. Click Install and follow all default steps; the installation takes some time.
24 9. Check software updates and install it.
25 10. Check software updates again to ensure it is up to date.
26 11. Insert the guest additions cd image.
27 12. Create a shared folder by selecting Settings→Shared folders.
28 a. Check the Auto Mount and Make Permanent boxes when creating the shared folder. This
29 allows the Windows machine and Linux virtual machine to share files.
30 13. Open the terminal and find the shared folder, which will be in the media directory.
31 14. Add your username to the vboxSF group:
32

33 sudo usermod -a -G vboxsf username


34

80-ND928-7 A 12 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Environment

1 15. Run prepubuntu.sh, i.e., ./prep-ubuntu.sh.

2 NOTE: Between it asks for jdk. Download jdk version 6 with .bin from http://www.oracle.com/
3 technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html;
4 the filename is jdk-6u45-linux-x64.bin.

5 16. Check the git version by running:


6

7 git –version
8

9 a. If necessary, obtain the new git version at http://git-scm.com/downloads and clone the git
10 clone at https://github.com/git/git.
11 17. Check out the latest version, Ver v1.8.5, by running:
12

13 git -checkout v1.8.5.


14

15 18. Install vim.


16

17 sudo apt-get install vim.

18 NOTE: The install file is located in the git directory and provides the installation instructions.

19 19. Install autoconf.


20

21 sudo apt-get install autoconf.


22 . $ make configure ;# as yourself
23 . $ ./configure—prefix=/user ;# as yourself
24 . $ make all doc ;# as yourself
25 . # make install install-doc install-html;# as root u follow git
26 initial set up
27 repo init -u git://codeaurora.org/platform/manifest.git -b release -m
28 LNX.LA.3.2-07950-8x74.0.xml—repo-url=git://codeaurora.org/tools/repo.git
29

30 20. Set up your name and email with git.


31

32 Git config your username


33 Git config your email.
34

35 21. Run repo init again.


36 22. After repo is initialized, run:
37

38 repo sync –j4

39 NOTE: j4 is how many CPUs are in use; this speeds up the process.

80-ND928-7 A 13 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
1 3 Software Product Information

2 3.1 Software product identification


3 The software for this PL is divided into separate release packages that must be downloaded
4 separately and combined according to the download instructions below to form a complete PL
5 software set:
6  From Qualcomm ChipCode™
7  Proprietary non-HLOS software releases – Contains proprietary source and firmware
8 images for all nonapps processors
9  Proprietary HLOS release – Contains proprietary source and firmware images for the
10 apps processor HLOS
11  From codeaurora.org
12  Open source HLOS release – Contains open source for apps processor HLOS
13 The proprietary non-HLOS package is an umbrella package built from a combined set of
14 individual component releases that have already been integrated. The proprietary and open source
15 HLOS packages must be obtained from separate sources, and then combined according to the
16 downloading instructions given in Section 3.2.2. Each package is identified by a unique build
17 identification (build ID) code followed by a release version number.
18 Figure 3-1 illustrates how to decode the software release build ID (numbers indicate character
19 position in the build ID).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15+
M
Ta

Pl
R

Fl con

R co

Ai nfig

Im
C

SW ore
SM

AM m

od
as
at

ri

ag
rg

co fig
fo

nt
h ig

e
et

re
ID

er

ba
/p

le
fa
ro

se

as
f

ce
du

e
ID
ct

20

21 Figure 3-1 Decoding the software release build ID

80-ND928-7 A 14 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 Character positions 11, 12 and 13, and 14 in the build ID can take the following values:
2  Character position 11 – Air interface
3  N
4  A – UMTS
5  B – Multimode
6  C – C2K only
7  Character positions 12 and 13 – Code base
8  AZ – L4
9  LY – Linux Android
10  Character position 14 – Image core ID
11  A – Apps (proprietary HLOS)
12  N – Non-HLOS umbrella package, integrated package containing each of the following:
13 – M – MPSS
14 – B – Boot images
15 – L – Low-Power Audio Subsystem (LPASS) and Sensors (ADSP)
16 – W – Wireless Connectivity Networking Subsystem (WCNSS)
17 – R – Resource Power Manager (RPM)

18 NOTE: For some recent builds, the Linux Android HLOS/APSS component ID format has changed from
19 that described above to the format LNX.LA.Branch-Version-Chipset, where Branch is the
20 Android branch expressed as a variable number of digits grouped by periods, Version is the
21 APSS build ID version expressed as a variable number of digits, and Chipset is “8x26” followed
22 by an optional period that, if present, is followed by a variable number of digits; e.g., the APSS
23 build ID M8926AAAAANLYD10130 might become LNX.LA.3.5-08110-8x26.0. The spin
24 number (preceded by a hyphen) may be appended to the APSS component ID specified in the
25 about.html file on ChipCode, e.g., LNX.LA.3.5-08110-8x26.0-1.

80-ND928-7 A 15 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 Figure 3-2 illustrates the combined software release packages.

MPSS (AZM)

ADSP (AZL)

WCNSS (AZW)

Product Metabuild (LYD) Boot loaders (AZB)

RPM (AZR)

SDI (AZI)

Proprietary HLOS (LYA)

Open Source HLOS


(CAF)

3 Figure 3-2 Combined software release packages

80-ND928-7 A 16 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 Table 3-1 provides the component release build properties. Make sure the build PC has the
2 correct versions for each tool.

3 Table 3-1 Component release build properties


Component build Source or binary Toolchain required for
Supported build hosts
release only building source
Android HLOS (LYA) Source Android GNU toolchain Linux only
MPSS (AZM) Binary — —
ADSP (AZL) Binary — —
Boot loaders (AZB) Binary — —
RPM (AZR) Binary — —
TZ (AZT) Binary — —
WCNSS (AZW) Binary — —
SDI (AZI) Binary — —

4 3.2 Access to the software


5 This section provides instructions for obtaining (downloading) software from the designated
6 authoritative distribution sources. Once the software download is complete, go directly to the
7 compilation/build procedures section for building the software.
8 If you do not have access to the necessary folders for the MTP8926 on the ChipCode website to
9 retrieve the latest software builds, you must open a case and request either access to MTP8926
10 software or a referral to your company’s approved software downloader.

11 NOTE: If the person opening the case does not already know who within their company has the ability to
12 download the software, the purpose of the Salesforce case is to be connected with their approved
13 downloader. Keep in mind that access is not granted to everyone that uses the MTP; your
14 company may limit the number of persons given permission to become approved downloaders.

15 To submit a case in Salesforce:


16 1. Log in to https://support.cdmatech.com/.
17 2. Select the Cases tab at the top.
18 3. Click New.
19 4. Select Tools as the Record type (if your question is about QCTest and Deployment Products)
20 and click Continue.
21 5. Fill in all required fields. Provide as much information as possible. This helps ensure a quick
22 and accurate response.
23 6. For Product Destination/Market, choose Unknown if you are not developing a phone product.
24 Otherwise, choose the destination market.
25 7. The assignment of your case is strictly based on the product information selections you make.
26 Make sure these are accurately selected.
27 8. If you have a question or issue about a non-QCTest product, then start over and select the
28 appropriate Record type.

80-ND928-7 A 17 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 Can I just email my questions to you?


2 If unable to use a browser, you can send your question to support.cdmatech@qti.qualcomm.com
3 (see Section 1.5). However, response times for manually submitted questions via email are
4 significantly slower than for cases submitted online via the new system.
5 Questions sent to the “qctest-” mail lists are no longer monitored or responded to by support
6 personnel. The email addresses will continue to exist solely for the purposes of sending an
7 automated response to support requests with these new instructions. Going forward, product
8 documentation and support references will be changed to include references to this new support
9 system.

10 3.2.1 Downloading QTI’s proprietary software (Windows build


11 machine)
12 The non-HLOS and proprietary HLOS software releases are distributed via Qualcomm
13 ChipCode. ChipCode is the new distribution system for QMC software and replaces the
14 CDMATech Support Documents and Downloads site for licensees. ChipCode uses Git to
15 distribute software releases.
16 Designated points of contact at customer sites are given access to download software for which
17 the customer has a current license.
18 Each customer will have access to a set of distributions for the chipsets for which they are
19 licensed. For each distribution, there is a Git project and the Git tree will include revisions for
20 previous builds, allowing OEMs to diff the changes between releases via Git.
21 For tutorials and in-depth help with ChipCode, see [Q4] and [Q5]. There is also up-to-date
22 documentation and a set of tutorial videos available at https://chipcode.qti.qualcomm.com/
23 projects/help/wiki. Note that the online documentation for ChipCode is extensive; before
24 attempting to access the proprietary software, it is strongly recommended that you read the
25 relevant sections of the ChipCode wiki.

26 NOTE: If you are installing Git on Windows for the first time, see the following two pages:
27  https://chipcode.qti.qualcomm.com/projects/help/wiki/Installing_Git_on_Windows
28  https://chipcode.qti.qualcomm.com/projects/help/wiki/Line_Endings
29 For MSM8926 LA builds, you may see the following distributions:
30  qualcomm_msm8926-la-1-0-1_amss_device – For releases prior to ES 5.0 (ES 4.0 and older)
31  qualcomm_msm8926-la-1-0-1_amss_device _fc – For ES 5.0, FC release, and future releases
32 To make the build process proceed as smoothly as possible, create an empty top-level directory
33 on the Windows build PC. Inside this directory, use Git to clone the desired release according to
34 the procedure described here:
35 https://chipcode.qti.qualcomm.com/projects/help/wiki/Cloning_Code_from_a_Repository

80-ND928-7 A 18 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 Without specifying the optional destination directory, the following command downloads the
2 release into a newly created subdirectory off the current working directory; here and in what
3 follows, this subdirectory is referred to as <target_root>. When the release has been cloned, it is
4 good policy to check that what has been downloaded inside <target_root> mirrors the top-level
5 directory structure displayed on the release’s ChipCode page.
6

7 time git clone <URL>


8

10 NOTE: It is very important to ensure that the contents.xml file and the various component directories are
11 located in <target_root> as indicated in the screenshot above.

80-ND928-7 A 19 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 If you have questions about ChipCode or run into issues cloning the release, select the question
2 mark (?) icon at the top right to access the help index.
3 If you need further support, see Section 1.5 to submit a case. When selecting the Case Record
4 Type, select “Admin Question.”

80-ND928-7 A 20 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 3.2.2 Downloading open source HLOS software (Linux build machine)


2 The Linux Board Support Package (BSP) release is obtained in two parts, a proprietary release
3 from the ChipCode site and an open source release from the Code Aurora Forum (CAF) site.
4 Section 3.2.1 describes using ChipCode to access the proprietary software. This section describes
5 downloading the open source software from CAF.
6 To download the open source software:
7 1. Use a Web browser to open the file about.html contained in the proprietary release directory
8 <target_root> cloned from ChipCode onto the Windows build machine. Note the APSS
9 component ID.
10 2. Go to https://www.codeaurora.org/xwiki/bin/QAEP/ and find the release branch containing
11 the matching APSS component ID in the branch releases table. The release area that lists
12 available builds is https://www.codeaurora.org/xwiki/bin/QAEP/release.

13 NOTE: The spin number potentially specified in the ChipCode version of the APSS component ID
14 may not be included in the matching APSS component ID listed on CAF.

15 3. In an empty workspace directory, referred to here and in what follows as <android_root>,


16 issue the repo init command with the correct branch and manifest as indicated in the branch
17 releases table.
18

19 repo init -u git://codeaurora.org/platform/manifest.git -b release -m


20 [manifest] –repo-url=git://codeaurora.org/tools/repo.git
21

22 4. Type the repo sync command.


23

24 repo sync
25

26 5. After repo sync finishes, recursively copy the directory <target_root>\LINUX\android\


27 vendor\qcom\proprietary from the proprietary ChipCode release cloned on the Windows
28 build machine into the open source HLOS source tree on the Linux build machine.
29

30 cp -r <target_root>\LINUX\android\vendor\qcom\proprietary \
31 <android_root>/vendor/qcom/
32 chmod -R 755 vendor/qcom/proprietary

33 NOTE: The copy command above is meant to be suggestive of the operation(s) required to copy the
34 specified directory from the Windows build machine to the specified location on the Linux
35 build machine. The actual operation(s) required will vary depending on your setup.

80-ND928-7 A 21 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 3.3 Compilation/build procedures

2 3.3.1 Apps processor Android HLOS


3 To build the Android HLOS:
4 1. In a BASH shell, navigate to the Android source tree base directory.
5

6 cd <android_root>
7

8 2. Enter the following command to configure the build environment shell settings.
9

10 source build/envsetup.sh

11 NOTE: You must use the source command so the environment settings are defined in the current
12 shell.

13 3. Enter the choosecombo command to select the build configuration, or enter with
14 noparameters to see an interactive menu for making selections.
15

16 choosecombo 1 msm8226 userdebug


17

18 4. Run make to start the build (shown below with –j4 option to run parallel builds for faster
19 build times on a multicore build machine).
20

21 make -j4

22 NOTE: If you need to restart the build process, follow steps 1 to 3 above and replace step 4 with:

23 make clobber

80-ND928-7 A 22 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 3.3.2 Move build to location for loading


2 After the Android software has been compiled for the loading process, place it in the location
3 mentioned in Section 3.2.1 so that you can load the build from your Windows machine.
4 1. From your Linux machine, copy the following files from the directory <android_root>/out/
5 target/product/msm8226 to the directory <target_root>\LINUX\android\out\target\product\
6 msm8226 on your Windows machine:
7  boot.img
8  cache.img
9  emmc_appsboot.mbn
10  persist.img
11  recovery.img
12  system.img
13  userdata.img

14 NOTE: The following steps are designed to minimize the amount of data transferred from the Linux build
15 machine to the Windows build machine.

16 2. Create, e.g., using Windows Explorer or the Windows command prompt, the following
17 relative paths rooted in the <target_root>\LINUX\android\out\target\product\msm8226
18 directory on your Windows machine:
19  obj\EMMC_BOOTLOADER_OBJ
20  obj\KERNEL_OBJ
21 3. Inside the <android_root>/out/target/product/msm8226/obj/ directory on your Linux
22 machine, there are two subdirectories, EMMC_BOOTLOADER_OBJ and KERNEL_OBJ.
23 Recursively copy, e.g., using Windows Explorer or the Windows command prompt, the
24 directory build-msm8226 (off EMMC_BOOTLOADER_OBJ) and the vmlinux file (off
25 KERNEL_OBJ) into the two relative paths above (on your Windows machine) as follows:
26  EMMC_BOOTLOADER_OBJ/build-msm8226 into obj\EMMC_BOOTLOADER_OBJ
27  KERNEL_OBJ/vmlinux into obj\KERNEL_OBJ
28 4. Confirm that the directory <android_root>\out\target\product\msm8226\ on your Windows
29 machine has the following relative paths rooted within it:
30  obj\EMMC_BOOTLOADER_OBJ\build-msm8226
31  obj\KERNEL_OBJ\vmlinux

80-ND928-7 A 23 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Software Product Information

1 3.3.3 Generating HLOS sparse images (Windows build machine)


2 1. Open the Windows command prompt and navigate to the following directory:
3

4 cd <target_root>\common\build
5

6 2. Enter the command:


7

8 python update_common_info.py—hlos
9

10 3. Copious amounts of text output will be produced in the command prompt window. After
11 approximately 1 min, a message similar to the following is printed out and control is handed
12 back to the command prompt.
13

14 SUCCESS: Created “rawprogram_unsparse.xml”


15 update_common_info.py:============ UPDATE COMMON INFO COMPLETE==========

16

80-ND928-7 A 24 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
1 4 Firmware Programming

2 4.1 Equipment and software


3 In addition to the items listed in Table 2-1 for software environment requirements, Table 4-1 lists
4 the additional equipment and software required for programming firmware images into a target
5 device.

6 Table 4-1 Equipment and software required for programming firmware images
Item description Version Source/vendor Purpose
1. Qualcomm QPST 2.7.394 or QTI Programming firmware
later images using QPST
2. Android SDK tools r10 or higher Android Open Windows host USB driver
(Host USB drivers, adb, Fastboot) ADB 1.0.29 or Source Project for ADB and Fastboot;
later ADB and Fastboot tools
for Windows
3. Qualcomm USB Network Driver 1.0.74 or later QTI Windows host USB drivers
Combo for QTI composite devices

7 4.2 Installation and setup


8 This section describes step-by-step procedures that the user must follow to perform the
9 installation and configuration of all equipment and software needed to create a working
10 environment able to program each firmware image and device.

11 4.2.1 Installing Android ADB, Fastboot, and Host USB interface

12 4.2.1.1 USB setup in Windows


13 Android CDP support requires the following USB device support:
14  Android USB Driver (android_winusb.inf)
15  Android ADB interface
16  Android Boot Loader interface (Fastboot)
17  Qualcomm Composite USB Modem/Serial Driver (qcmdm.inf, qcser.inf)
18  Qualcomm HS-USB Android Diag
19  Qualcomm HS-USB Android Modem
20  Qualcomm HS-USB Android GPS (NMEA)

80-ND928-7 A 25 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Firmware Programming

1  Qualcomm Composite USB Network Combo driver (qcnet.inf)


2  Qualcomm Wireless HS-USB Ethernet Adapter
3 Before installing the drivers, it is necessary to edit the qcmdm.inf and qcser.inf files to make sure
4 they contain support for the Android SURF VID/PID with appropriate entries in each section as
5 indicated in Section 4.2.1.2.
6 Also see [Q2] and [Q3] for additional details on Windows USB driver installation,
7 troubleshooting, and rebuilding the Windows USB host driver from source.

8 4.2.1.2 Installing Android SDK for ADB, Fastboot, and USB driver for Windows
9 To install the Android SDK platform and USB driver components on a Windows machine:
10 1. Go to http://developer.android.com/sdk/win-usb.html.
11 2. Follow the instructions for installing the SDK and USB driver.
12 3. Right-click My Computer and select Properties→Advanced→Environment Variables,
13 and set the path to include the c:\android-sdk-windows\tools directory.
14 4. The Android USB driver for ADB and Fastboot needs to have the QTI SURF VID/PID added
15 in order to support connection to the SURF. Edit the file android-sdk-windows\usb_driver\
16 android_winusb.inf to add the QTI VID/PID lines to each section.
17

18 android_winusb.inf
19 [Google.NTx86]
20 ;Qualcomm SURF/FFA
21 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
22 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
23 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
24 [Google.NTamd64]
25 ;Qualcomm SURF/FFA
26 %SingleAdbInterface% = USB_Install, USB\VID_05C6&PID_9025
27 %CompositeAdbInterface% = USB_Install, USB\VID_05C6&PID_9025&MI_01
28 %SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_D00D
29

30 In addition, make sure that there are matching entries under the [Strings] section.
31

32 [Strings]
33 SingleAdbInterface = “Android ADB Interface”
34 CompositeAdbInterface = “Android Composite ADB Interface”
35 SingleBootLoaderInterface = “Android Bootloader Interface”
36

37 5. The ADB client (adb.exe) supports a built-in list of recognized USB VID/PID devices. To
38 add the SURF or another device to the list of recognized devices not included in the built-in
39 support list, create a %USERPROFILE%\.android directory if it does not exist.
40 6. Navigate to the %USERPROFILE%\.android directory.

80-ND928-7 A 26 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Firmware Programming

1 7. In the %USERPROFILE%\.android directory, create/edit the adb_usb.ini file. If the file


2 already exists, it will contain a DO NOT EDIT message. Disregard this message and edit the
3 file anyway. To edit, add a line containing 0x05C6 to the end of the file.

4 NOTE: Do not run android update adb or it will reset the contents of this file and overwrite the line
5 just added.

6 After editing, the adb_usb.ini file should look like this:


7

8 # ANDROID 3RD PARTY USB VENDOR ID LIST—DO NOT EDIT.


9 # USE ‘android update adb’ TO GENERATE.
10 # 1 USB VENDOR ID PER LINE.
11 0x05C6
12

13 8. Obtain the latest version of the Qualcomm Composite USB driver from Documents and
14 Downloads (to also include network interface support, use the Qualcomm Composite USB
15 Network Combo driver).
16 Android debugging is enabled/disabled in user space with composition 9025/9026 respectively.
17

18 qcmdm.inf
19 [Models]
20 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
21 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
22

23 [Models.NTamd64]
24 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
25 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
26 [Models.NTia64]
27 %QUALCOMM90252% = Modem2, USB\VID_05C6&PID_9025&MI_02
28 %QUALCOMM90261% = Modem2, USB\VID_05C6&PID_9026&MI_01
29 [Strings]
30 QUALCOMM90252 = “Qualcomm Android Modem 9025”
31 QUALCOMM90261 = “Qualcomm HS-USB Android Modem 9026”
32

33 qcser.inf
34 [QcomSerialPort]
35 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
36 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
37 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
38 %QcomDevice90262% = QportInstall00, USB\VID_05C6&PID_9026&MI_02
39

40 [QcomSerialPort.NTia64]
41 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
42 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
43 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00

80-ND928-7 A 27 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Firmware Programming

1 %QcomDevice90262% = QportInstall00, USB\VID_05C6&PID_9026&MI_02


2 [QcomSerialPort.NTamd64]
3 %QcomDevice90250% = QportInstall00, USB\VID_05C6&PID_9025&MI_00
4 %QcomDevice90253% = QportInstall00, USB\VID_05C6&PID_9025&MI_03
5 %QcomDevice90260% = QportInstall00, USB\VID_05C6&PID_9026&MI_00
6 %QcomDevice90262% = QportInstall00, USB\VID_05C6&PID_9026&MI_02
7 [Strings]
8 QcomDevice90250 = “Qualcomm HS-USB Android DIAG 9025”
9 QcomDevice90253 = “Qualcomm HS-USB Android GPS (NMEA)9025”
10 QcomDevice90260 = “Qualcomm HS-USB Android DIAG 9026”
11 QcomDevice90262 = “Qualcomm HS-USB Android GPS (NMEA)9026”
12 qcnet.inf
13 [QCOM]
14 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
15 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
16

17 [QCOM.NTia64]
18 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
19 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
20 [QCOM.NTamd64]
21 qcwwan.DeviceDesc90254 = qcwwan.ndi, USB\VID_05C6&PID_9025&MI_04
22 qcwwan.DeviceDesc90263 = qcwwan.ndi, USB\VID_05C6&PID_9026&MI_03
23 [Strings]
24 qcwwan.DeviceDesc90254 = “Qualcomm Wireless HS-USB Ethernet Adapter
25 9025”
26 qcwwan.DeviceDesc90263 = “Qualcomm Wireless HS-USB Ethernet Adapter
27 9026”

28 4.3 Programming procedures

29 4.3.1 Programming using Fastboot


30 It is easy to use Fastboot. To do so.
31 1. Plug the USB cable into the target.
32 2. On the MTP, hold the Volume down key. It will go to Fastboot mode.
33 3. Confirm that Fastboot is active from the Windows command shell:
34

35 fastboot devices
36

37 4. Go to the build directory Pushd Build Directory (C:\Users\c_ssimmu\Downloads\


38 M8926AAAAANLYD10130\common\build) and execute fastboot_complete.py.
39 5. After loading every image, close the command shell.
40 6. Power cycle the device. The device should boot up into Android.

80-ND928-7 A 28 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION
Firmware Programming

1 4.4 Flashing applications to Android using ADB


2 To flash applications to Android using ADB:
3 1. Plug the USB cable into the target.
4 2. Navigate to the following directory:
5

6 cd <root>/LINUX/device/out/host/linux-x86/bin
7 3. Enter the following command:
8

9 sudo adb devices


10

11 A device should register.

12 4. Navigate to the following directory:


13

14 cd <root>/LINUX/device/out/target/product/surf/obj/
15 APPS/AppName_intermediates/
16

17 5. Copy the files.


18

19 cp package.apk AppName.apk
20

21 6. Push the files:


22

23 adb push AppName.apk /system/app/.


24

25 In general, the syntax is adb push <file_name> <location_on_the_target>.

80-ND928-7 A 29 Confidential and Proprietary – Qualcomm Technologies, Inc.


MAY CONTAIN U.S. AND INTERNATIONAL EXPORT CONTROLLED INFORMATION

You might also like