Skip to main content

Linux BSP User Guide for AM335X Series Yocto2.1

1. Introduction


This page provides the steps to build the Processor SDK and individual components from source. The Processor SDK build is based on the Arago Project which provides a set of layers for OpenEmbedded and the Yocto Project targeting TI platforms.

2. Linux BSP Version


  • OS: Yocto 2.1
  • Kernel: 4.1.xxx

3. Build Environment on Host


Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u14.04-am57lbv1 Docker image for developing TI AM335X projects.

3.1 Docker Installation Commands

$ sudo apt-get update
$ sudo apt-get install -y qemu-user-static
$ sudo apt-get install -y live-build
$ sudo docker pull advrisc/u14.04-am57lbv1

3.2 Run Docker Example

  • Step 1: Run Docker Container
    Assume your working directory is home/bsp/myLinux and the Docker container name is am335x_yocto_bsp.
    Replace home/bsp/myLinux and am335x_yocto_bsp with the actual ones based on your environment.
$ export WORKSPACE="home/bsp/myLinux"
$ export CONTAINER_NAME="am335x_yocto_bsp"
$ sudo docker run -it --name ${CONTAINER_NAME} -v ${WORKSPACE}:/home/adv/BSP:rw --privileged advrisc/u14.04-am57lbv1 /bin/bash
  • Step 2: Change User in Container
adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP
  • Step 3: Install build dependencies in Container

    • Install live build

      adv@7cc0fa834366:~$ cd ~
      adv@7cc0fa834366:~$ git clone https://salsa.debian.org/live-team/live-build.git --depth 1 -b debian/1%20230131
      adv@7cc0fa834366:~$ cd live-build
      adv@7cc0fa834366:~$ rm -rf manpages/po/
      adv@7cc0fa834366:~$ sudo make install -j8
      adv@7cc0fa834366:~$ cd ~
      adv@7cc0fa834366:~$ rm -rf live-build
    • Install qemu and binfmts

      adv@7cc0fa834366:~$ sudo apt-get update
      adv@7cc0fa834366:~$ sudo apt-get install binfmt-support qemu-user-static --reinstall
      adv@7cc0fa834366:~$ sudo update-binfmts --enable qemu-aarch64
    • Install gettext

      adv@7cc0fa834366:~$ sudo apt-get update
      adv@7cc0fa834366:~$ sudo apt-get install gettext -y

4. Getting Linux Source Code


The Advantech Yocto BSP source code is available on GitHub. Use the repo tool to download it.

For this example, a directory called yocto_bsp is created for the project.

$ sudo chown adv:adv -R yocto_bsp
$ cd yocto_bsp/
$ mkdir tisdk
$ cd tisdk/
$ repo init -u https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b processor-sdk-03.01.00.06 -m amxxLBV1090.xml
$ repo sync

If you want to get latest bsp:

$ repo init -u git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b processor-sdk-03.01.00.06
$ repo sync

5. Building


Build Instructions

The following commands show the build process after the source code is obtained.

Build Options

The following table provides a list of build targets supported:

$ MACHINE=<machine> bitbake <target>
TargetBuild OutputDescription
arago-core-tisdk-imageimages/<machine>/processor-sdk-linux-image-<machine>.tar.xzFull SDK
tisdk-rootfs-imageimages/<machine>/tisdk-rootfs-image-<machine>.tar.xzTarget Filesystem
u-boot-ti-stagingimages/<machine>/u-boot-<machine>.img / MLO-<machine>u-boot
linux-processor-sdkimages/<machine>/zImage-<machine>.bin / .dtbkernel

Supported Platforms

MACHINESupported Product
am57xxrom7510a1ROM-7510A1
am57xxrom7510a2ROM-7510A2
am335xrsb4220a1RSB-4220A1
am335xrsb4221a1RSB-4221A1
am335xrom3310a1ROM-3310A1

Build command

$ MACHINE=<machine> bitbake <target>

Take uboot as an example:

$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging

The MLO and u-boot.img will be located in the directory, ./arago-tmp-external-linaro-toolchain/deploy/images/am57xxrom7510a2.

When the target is arago-core-tisdk-image, MLO, u-boot.img, zImage, devicetree file, filesystem and full SDK will compiled.

To modify source code and rebuild u-boot

$ MACHINE=<machine> bitbake <target> --force -c compile
$ MACHINE=<machine> bitbake <target>

Take uboot as an example:

$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging --force -c compile
$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging

Cleaning Built Recipe

$ MACHINE=<machine> bitbake <target> -c cleansstate

Recipes

One or more recipes can be specified for the <target> for greater granularity of recipe development and debug.

$ MACHINE=am57xxrom7510a2 bitbake opencl

Installing Package

$ opkg install [package_ipk].ipk

Common Variations

Rebuilding without SGX: Add to conf/local.conf:

MACHINE_FEATURES_remove="sgx"

Rebuilding without Wayland: Add to conf/local.conf:

DISTRO_FEATURES_remove = "wayland"

6. Update Images


Update Images

Our motherboard generally supports from SD card and onboard flash. This section will take ROM-7510 as an example to introduce how to make a system boot media.

Create a Linux System SD Card

Copy full SDK to your desktop:

$ mkdir ti-sdk-XXX
$ tar -xJf Desktop/processor-sdk-linux-image-<machine>.tar.xz -C ti-sdk-XXX
$ cd ti-sdk-XXX/bin
$ ./create-sdcard.sh

Select SD card, number of partitions, and pre-built system image.

If you need to transfer whole system to on-board flash, press y followed by Enter.

While "[Operation Finished]" shows up means the transferring is finished.

Then insert the Linux system SD card to ROM-7510, it will boot up with Linux environment.

Boot from Onboard Flash

Please insert the Linux system SD card to ROM-7510, and then power up. It boot from the SD card.

$ cd /mk_inand
$ ./mk-eMMC-boot.sh

Select eMMC, partitions, and confirm burning.

While "[Operation Finished]" shows up means the burning is finished.

Then you can boot from onboard flash without SD card.

Debug console information

If you want to see debug message from device, you need to prepare for hardware device and software tool.

  • Debug Port Information
  • Debug console tool: "minicom" or "putty"
  • Baud rate: 115200

Local development

All instructions in this guide are based on Ubuntu 14.04 LTS developing environment. Please install the Ubuntu 14.04 LTS at your PC/NB in advance. Set up Build Environment Perform the following command in terminal console

$ cd ti-sdk-XXX/
$ ./sdk-install.sh

Rebuild sources Using the top-level makefile in the SDK root directory. For example:

Rebuilds all components in the SDK:

$ make all

Configures and builds the kernel:

$ make linux

If you want to copy the compiled module to the specified directory:

Please specifying the installation directory in the Rules.make file firstly

$ DESTDIR=<install_directory>

Then executing the following instructions:

$ make linux_install

Builds u-boot, u-boot-spl and MLO:

$ make u-boot

Customization

Package addition To add vsftpd & crontab Navigate to the directory wherefs-image.bbappendfs-image.bbappend located,Add following line to tisdk-rootfs-image.bbappend

$ cd ${BSP_HOME}/sources/meta-advantech/meta-ti-adv/recipes-core/images/
IMAGE_INSTALL += " cronie vsftpd "

Then, follow the Build Steps above to generate the image.

7. Summary


7.1 Supported Hardware Platforms

  • ROM-7510A1: Computer-on-Module with AM57xx processor
  • ROM-7510A2: Computer-on-Module with AM57xx processor
  • RSB-4220: Single Board Computer with AM335x processor
  • RSB-4221: Single Board Computer with AM335x processor
  • ROM-3310: Computer-on-Module with AM335x processor

7.2 System Requirements

  • Docker environment with advrisc/u14.04-am57lbv1 image
  • Ubuntu 14.04 base system
  • BSP tarball from PM
  • Build tools and dependencies
  • Sufficient disk space for source code and build artifacts
  • Internet connection for package installation
  • Target processors (ROM-7510, RSB-4220, RSB-4221, ROM-3310)

7.3 Build Workflow Summary

  1. Environment Setup → Docker + Ubuntu 14.04
  2. Source Acquisition → BSP tarball from PM
  3. Project Selection → Choose target processors platform
  4. Component Build → U-boot → Kernel
  5. Image Generation → Firmware packaging → (Update image)*
  6. Deployment → AndroidTool, SD/USB storage, or SDDiskTool

Components marked with asterisk () are not supported in BSP tarball mode.

7.4 Development Modes

7.4.1 BSP Tarball Mode (Limited)

  • Use Case: Quick U-boot and kernel development
  • Advantages: Fast setup, smaller download size
  • Limitations: Cannot build recovery, debian, or update images
Important Notes about BSP Tarball

The BSP tarball is designed for fast development of uboot and kernel components. However, it has some limitations.

  • Supported: U-boot building
  • Supported: Kernel building
  • NOT Supported: Recovery building
  • NOT Supported: Debian building
  • NOT Supported: Update image building

For full BSP functionality including recovery, debian, and update image building, please contact your PM for the complete SDK.

7.4.2 Full SDK Mode (Complete)

  • Use Case: Complete system development and customization
  • Advantages: Full build capability, all components supported
  • Requirements: Contact PM for access