Sitara Linux Software Developer’s Guide
- 1 Welcome to the Sitara Linux Software Developer's Guide
- 2 Supported Platforms & Version Information
- 3 Linux Software Stack
- 4 EVM Hardware Overview
- 5 Start your Linux Development
- 6 SDK Directory Structure Overview
- 7 Example Applications User's Guides
- 8 Bootloaders - How to Build & Install
- 9 Kernel - How to Configure, Build & Install
- 10 Host Side Development Tools
- 11 Linux Training
- 12 Other How Tos
- 13 Reference Documentation
- 14 GPLv3 Disclaimer
- 15 Software Updates
- 16 Technical Support
- 17 Want to Contribute?
For the SDG specific to your SDK release, please refer to Archived SDGs under Reference Documentation
Welcome to the Sitara Linux Software Developer's Guide
Thank you for choosing to evaluate one of our Sitara ARM microprocessors. Please bookmark this page and refer back to it as needed. It is designed to quickly provide the information you need most while evaluating the AMx microprocessor. We are always striving to improve this product. Please let us know if you have ideas or suggestions.
Supported Platforms & Version Information
The following Sitara ARM microprocessors are supported with this SDK version.
||04.06.00.11||3.2||2013.01||Linaro GCC 4.7||July 2013|
||04.06.00.11||3.2||2013.01||Linaro GCC 4.7||July 2013|
|AM335x StarterKit (SK)|| 6.0
||04.06.00.11||3.2||2013.01||Linaro GCC 4.7|| July 2013|
|3.3.7||2012.04.01||Linaro GCC 4.7||July 2013|
||04.02.00.07||2.6.37||2012.04.01||Linaro GCC 4.7||July 2013|
||04.02.00.07||2.6.37||2011.09||Linaro GCC 4.7||July 2013|
Linux Software Stack
The following software stack illustrates at a high level the various components provided with the Sitara Linux SDK.
NOTE - Availability of certain applications are platform dependent and clarified in the associated User Guides below.
EVM Hardware Overview
Details for various hardware platforms supported by this Sitara Linux SDK are provided before.
|AM335xEVM||Hardware User's Guide||www.ti.com|
|AM335x StarterKit (SK)||Hardware User's Guide||www.ti.com|
|BeagleBone||Hardware User's Guide (Rev A3)||Beagleboard.org|
|Beagleboard-xM||Hardware User's Guide||Beagleboard.org|
|AM37xEVM||Hardware User's Guide||Mistral|
|AM35xEVM||Hardware User's Guide||Logic|
|AM180xEVM||Hardware User's Guide||Logic|
Start your Linux Development
Before using the Sitara Linux SDK you must have a Linux development environment. Linux development environments vary, so we recommend the following for ease of use and consistency when working together. The next few steps will assist you in the setup & configuration of your Linux host based on the physical setup shown below.
1. Configure a Linux Host - If you already have a Linux host machine, go to Step 2. If you do not have a Linux host machine, you can configure a Linux host machine on your Windows PC using a virtual machine.
| For standard EVMs:
2. Configure your development environment
| For Beaglebone:
2. Configure your development environment
|3. Install the SDK - Within your Linux host machine, Install the Sitara SDK||
3. Run the START_HERE Script - When Beaglebone boots, a START_HERE directory will display on your Linux host desktop. To start your evalaution and development using the BeagleBone, Run the START_HERE.sh script
NOTE: The START_HERE.sh script will run the setup.sh script. For Beaglebone boards before rev A5 the setup.sh script will attempt to install a udev rule to load the ftdi_sio module with the proper parameters to recognize the Beaglebone. If you experience difficulty with the Beaglebone being recognized you can load the module manually by doing:
| 4. Run the Setup Script - Once the SDK has been installed, Run the Setup.sh Script to guide you through the remaining development environment configuration.
|| NOTE: If using a VMWare image you will likely need to import the beaglebone into the VMWare image as a mass storage device using the instructions here|
Configuring a Serial Connection
If you chose not to use the setup.sh script (or START_HERE.sh) to configure you connection you can always perform the following steps to configure a serial connection with the board.
- The following steps will help you validate that you have a valid serial connection with your target board
- Connect the USB cable between your Linux host and your target board
- Open a terminal and run the following command to find the USB serial adapters available on the system. The FTDI chip used on the board presents two serial interfaces to the Linux host. The first interface is the JTAG interface and the second one is the serial console interface.
- ls /dev/ttyUSB*
- You should see output like:
- As mentioned above since the board's serial interface is the second interface you will want to open a serial console to the second device node. In this case that is /dev/ttyUSB1. This can be done by doing:
- minicom -w -s
- Select Serial port setup and press ENTER
- Press A to modify the Serial Device and change the device to /dev/ttyUSB1. Press ENTER
- Press ENTER to exit the serial setup
- Select Exit and press ENTER
- You should now see a minicom window.
- Power on the board, you should see "ccccc" being printed in the window, if so the serial connection is working as expected. Go ahead and leave this console RUNNING in the background.
SDK Directory Structure Overview
The Sitara Linux SDK contains the following top-level directories and files
These directories contain the code and tools used to develop for Sitara devices.
- bin - Contains the helper scripts for configuring the host system and target device. Most of these scripts are used by the setup.sh script.
- board-support - Contains the SDK components that need to be modified when porting to a custom platform. This includes the kernel and boot loaders as well as any out of tree drivers.
- docs - Contains various SDK documentation such as the software manifest and additional user's guide. This is also the location where you can find the training directory with the device training materials.
- example-applications - Contains the sources for the TI provided example applications seen during the out-of-box demonstration.
- filesystem - Contains the reference file systems. These include the smaller base file system as well as the full-featured SDK file system.
- host-tools - Contains the host side tools such as pinmux and flash tool.
- linux-devkit - Contains the cross-compile toolchain and libraries to speed development for the target device.
- Graphics_SDK_setuplinux_<version>.bin - This is the installer for the graphics SDK. The graphics SDK components are used by the Sitara Linux SDK to provide additional demos as well as integrated with the pre-built Qt libraries to accelerate various Qt functions.
- Makefile - Provides build targets for many of the SDK components from the top-level of the SDK.
- Rules.make - Sets default values used by the top-level Makefile as well as sub-component Makefiles
- setup.sh - Configures the users host system as well as the target system for development
Example Applications User's Guides
There are a number of Example Applications provided within the Sitara Linux SDK. Below are the applications available on each platform and the User's Guides associated with each component.
NOTE: The example applications below assume that you are using the default pinmux/profile configuration that the board ships with, unless otherwise noted in the individual application's User's Guide
Applications available by development platform
|Applications||AM335x||BeagleBone||AM335x SK||AM180x||AM35x||AM37x||Beagleboard-xM||Users Guide||Description|
|Matrix GUI||X||X||X||X||X||X||X||Matrix User's Guide||Provides an overview and details of the graphical user interface (GUI) implementation of the application launcher provided in the Sitara Linux SDK|
|Power & Clocks||X||X||X||X||X||Sitara Power Management User Guide||Provides details of power management features for all supported platforms.|
||X||X||X||X||Multimedia User's Guide||Provides details on implementing ARM/Neon based multimedia using GStreamer pipelines and FFMPEG open source codecs.|
||X||Camera User's Guide||Provides details on how to support smart sensor camera sensor using the Media Controller Framework|
|Oprofile||X||X||X||X||X||X||X||Oprofile User's Guide||Provides applications which show how Oprofile can be used for debugging and understanding system performance.|
|Cryptography||X||X||X||X||X||X||X||Cryptography User's Guide||Provide details on how to implement cryptography through use of OpenSSL and various example applications.|
|WLAN and Bluetooth||X||
||X||WL127x WLAN and Bluetooth Demos||Provides details on how to enable the WL1271 daughtercard which is connected to the EVM|
Bootloaders - How to Build & Install
The following provides instructions on how to build and install uboot and MLO. Additional reference documentation is also provided.
Kernel - How to Configure, Build & Install
The following provides instructions on how to configure, build and install the Linux kernel. Additional reference documentation is also provided.
Host Side Development Tools
There are number of host side development tools provided in the Sitara Linux SDK to ease your development. See the appropriate User's Guide below for more information.
Host Tools for Target Development
These are tools that will assist in cross-compiling code for the target device or making images to run on the target device
The Sitara Linux SDK contains a top-level Makefile in the root of the SDK tree that can be used to rebuild many of the example applications and board support packages. See the Sitara Linux SDK Top-Level Makefile page for more information on using this Makefile.
GCC Cross-Compile Toolchain
Starting with version 05.xx of the Sitara Linux SDK there is now a GCC cross-compile toolchain available within the SDK in the linux-devkit directory. For details on using this toolchain please see the Sitara Linux SDK GCC Toolchain page.
Starting with version 05.04 of the Sitara Linux SDK there is now a shell script available called create-sdcard.sh which can be used to create an SD card image for booting the various Sitara EVMs. For details on using this script please see the Sitara Linux SDK create SD card script page.
Code Composer Studio v5 User's Guide
Code Composer Studio v5 - a full featured, Eclipse based IDE that includes the Remote System Explorer plugin. CCSv5 can be used for both application development & debug using gdbserver and kernel debug using an XDSv100 JTAG emulator.
GEL files for Sitara Processors can be found at the following link
For detailed instructions based on the Beagebone on how to do Linux debugging with CCSv5 see:
Host tools for Target Configuration
These tools are intended to be run on the host and assist in configuring the target device
Pin Mux Utility User's Guides
Pin Mux Utility - a graphical utility designed to ease the pin mux configuration effort by highlighting pinmux conflicts, configuring the IO and outputting the required source code.
Flash Tool User's Guides
- AM335x Flash Tool User's Guide USB RNDIS and Ethernet flash programming from Linux host.
- AM335x U-Boot User's Guide Detailed description of all AM335x U-Boot/SPL functionality.
- AM35x/AM37x Flash Tool User's Guide Flash v22.214.171.124 GUI Based Flash Tool for AM35x/AM37x for USB and UART flash programming
- AM180x Flash Tool User's Guide Serial Flash Tool for AM180x
In Sitara we recognize the need for solid, real world embedded Linux training. As we continue to enhance the features of our Sitara Linux SDK we have also focused on developing training material based on the same SDK. That way, anything provided in the training can be easily reproduced on your side once you have installed the Sitara Linux SDK.
We have a number of modules that are complete and others we are actively working on. All of our Linux training is provided on this wiki.
If you have comment on the training or a request for Linux training that is not be captured here, please let us know using the email@example.com mailing list
|Linux Host Configuration||Sitara Linux Training: Linux Host Configuration||This page details how the Linux Host is configured for Sitara Linux Training. These are the same methods to prepare laptops used in live TI training.|
|Introduction to Linux||-||Introduces the community-based Linux ecosystem on TI platforms. What will be covered are the components that make up the ecosystem such as the boot loader, Linux kernel, device drivers, user application layer and the relationship between them.|
|Linux Boot Process||-||Looks at all aspects of the boot process from power up to running user a application beginning with ROM boot loader progressing through secondary program loader, u-boot, kernel and finishing with user-level initialization.|
|Sitara Linux Training: Hands-on with the SDK||Sitara Linux Training: Hands on with the SDK||Learn about the various components that make up the ARM MPU Linux software development kit including the out-of-box application launcher, the CCS IDE, example applications. In addition, host tools such as the pin-mux utility and the flash tool will be introduced. All these components are packaged into a single easy to use installer from TI.com|
|Code Composer Studio v5||Code Composer Studio v5||Covers what the Eclipse-based Code Composer Studio is, how to use it for embedded Linux application development, debugging and additional plug-ins that are provided|
|Sitara Linux Training: Power Management||Sitara Linux Training: Power Management||Discusses how to improve product power performance by minimizing power consumption and guaranteeing system performance. In addition, power management techniques enabled via the Linux SDK will be discussed|
|Sitara Linux Training: Cryptography||Sitara Linux Training: Cryptography||Covers cryptography basics and explore cryptographic functions enabled via open source projects. In addition, cryptographic hardware acceleration access and Linux SDK example applications will be discussed.|
|Sitara Linux Training: Linux Board Port||Sitara Linux Training: Linux Board Port||Discusses the fundamentals necessary to port a TI Linux-based EVM platform to a custom target platform. Introduces the necessary steps needed to port the following components: Linux kernel.|
|Sitara Linux Training: U-Boot Board Port||Sitara Linux Training: U-Boot Board Port||Discusses the fundamentals necessary to port a TI Linux-based EVM platform to a custom target platform. Introduces the necessary steps needed to port the following components: secondary program loader, u-boot.|
|Sitara Linux Training: U-Boot/Kernel Debug with CCSv5||Sitara Linux Training: U-Boot Linux Debug with CCSv5||Learn about how U-Boot and Kernel Debug can be done using CCSv5 using JTAG. This presentation and accompanying lab will discuss what debug information is necessary to be built into U-Boot and the Kernel to allow source code level debug with a JTAG interface.|
|ARM Multimedia||ARM Multimedia||Introduces open-source based multimedia codecs for the ARM Cortex-A8. In addition, look at the capability of the NEON coprocessor to accelerate multimedia. Plus, introduces GStreamer, an open-source pipeline-based framework that enables access for multimedia through FFMPEG/libav support on the ARM. GStreamer will be illustrated with Linux SDK examples.|
|Sitara Linux Training: Hands on with QT||Sitara Linux Training: Hands on with QT||Learn how to develop a GUI quickly with the Linux SDK. Learn background information on QT. Learn how to use the SDK to get started developing a GUI. Learn about QT Creator and all the QT toolset.|
|Oprofile||Oprofile||Introduces the Opensource tool Oprofile. When is it useful during the development cycle. Introduce some of the more popular features. Cover both modes of operation, internal HW counters or timer interrupts. Cover internal operation details. Also point out use cases where Oprofile may not be useful.|
|Init Scripts||Sitara Linux Training: Init Scripts||Learn how the Linux init scripts work with the sysvinit system as well as how the profile scripts can be used to affect the login process.|
|Optimizing Linux Boot Time||Sitara Linux Training: Optimizing Linux Boot Time||Learn how to identify the portions of the Linux boot taking the most time and remove or defer those operations until later. The goal of this lab is to have a system booting to a display on the LCD and reading a touchscreen event in less than 3 seconds.|
|Getting Started with Openembedded||Sitara Linux Training: Getting Started with Openembedded|
Other How Tos
This section provides how-to articles on additional setups and configurations you may find useful in your development.
Host How Tos
- Creating a HelloWorld CCS Project
- How to Develop with 3D Graphics
- How to Connect to an EVM via Telnet
- How to Setup a Samba Server
- Understanding the Boot Sequence
- How to Move Files From Host to Target
- AM37x NAND flashing from U-boot
- Preventing BeagleBone board reset on JTAG Connect
- Customizing the SDK Splash Screen
Target How Tos
- How to utilize Error Correction (ECC)
- How to Recalibrate the Touchscreen
- AMSDK File System Optimization/Customization
- How to add Oracle Hotspot JVM to your target Linux Filesystem
- How to use a Mouse instead of the Touchscreen with Matrix
- How to enable DVI display
- Update U-Boot Environment Variables stored in SPI Flash from Linux
- Graphics SDK Getting Started Guide
- Graphics SDK Release Notes
- SGX Debugging Tips and FAQ
- Qt Tips
Linux PSP Documentation
PSP Release Notes
- AM335x PSP 04.06.00.11 Release Notes
- AM335x PSP 04.06.00.10 Release Notes
- AM335x PSP 04.06.00.09 Release Notes
- AM335x PSP 04.06.00.08 Release Notes
- AM335x PSP 04.06.00.07 Release Notes
PSP Features and Performance Guides
- AM335x PSP 04.06.00.11 Features and Performance Guide
- AM335x PSP 04.06.00.10 Features and Performance Guide
- AM335x PSP 04.06.00.08 Features and Performance Guide
- AM335x PSP 04.06.00.08 Features and Performance Guide
- AM335x PSP 04.06.00.07 Features and Performance Guide
PSP User's Guides
Archived - Software Developer's Guide
- Sitara SDK 5.07.00.00 - Software Developer's Guide (archived)
- Sitara SDK 5.06.00.00 - Software Developer's Guide (archived)
- Sitara SDK 5.05.00.00 - Software Developer's Guide (archived)
- Sitara SDK 5.04.01.00 - Software Developer's Guide (archived)
- Sitara SDK 5.04.00.00 - Software Developer's Guide (archived)
- Sitara SDK 5.03.03.00 - Software Developer's Guide (archived)
- Sitara SDK 5.03.02.00 - Software Developer's Guide (archived)
- Sitara SDK 5.03.01.00 - Software Developer's Guide (archived)
- Sitara SDK 5.03.00.00 - Software Developer's Guide (archived)
- Sitara SDK 5.02.00.00 - Software Developer's Guide (archived)
- Sitara SDK 4.01 - Software Developer's Guide (archived)
- Sitara SDK 4.00 - Software Developer's Guide (archived)
There are GPLv3 licensed software components contained within the Sitara Linux SDK on both the target and the host. The software manifest (software_manifest.htm) for the Siatara Linux SDK is located in the docs/ directory of the installed SDK. All GPLv3 components for both target and host are contained in the SDK directory.
These GPLv3 components are provided for development purposes only and may be removed for production solutions.
How to Identify the GPLv3 components
To idenitfy the GPLv3 components installed on the target file system, run the gplv3-notice script located on the target file system located here: /etc/init.d/gplv3-notice
The gplv3-notice script will list all Sitara Linux SDK built shipped installed packages. If you installed addtional GPLv3 components this script may not identify them until the next target reboot.
How to Remove Target side GPLv3 Components
The gplv3-notice script also outputs how to remove the packages. To remove individual packages from the target development file system, use the opkg remove command which is: opkg remove <package>
We are continually improving the quality and content of the software we provide in the EVM. Updates to the SDK may be obtained at Software Updates as they become available.
- E2E Support Forums - an active community of TIers and other customer like you already using the AM37x EVM. You may find your question has already been answer with a quick Search of the Forums. If not, a quick post will likely provide you the answers you need. Support@ti.com - a support email list you may submit your question to.
Want to Contribute?
We are always striving to improve this Sitara Linux SDK. Please let us know if you have ideas or suggestions. The sections below will give you ideas on how to best contribute to the SDK and PSP Linux kernel.
All Sitara Linux SDK contributions can be sent to the firstname.lastname@example.org mailing list. This covers submitting bug fixes, new features, or any other feedback to components provided with the Sitara Linux SDK including, but not limited to:
- target file system
- Host Tools
- Example Applications
Some general guidelines to help us with your feedback are:
- Provide the URL of the document being discussed
- Describe the section in question
- If you have suggestions on the change requested please include them
- Source Code/Scripts/Makefiles
- Provide the location of the source code being discussed within the SDK
- If possible provide a patch as this is easier to determine the changes being proposed and helps us to make sure you get credit for your work
- Provide the version of the tool
- If possible give screen captures or step-by-step instructions for reproducing any issues
Following the above guidelines will help to streamline the communication, but we would like to get your feedback no matter what.
PSP Linux Kernel Contributions
For information on how to contribute to the PSP Linux kernel please see the Contributing to the Linux PSP page.