Skip to main content

How To Load and Run Firmwares Into Alternative Cores (TI)

Introduction

This article's goal is to guide you in the process of loading and running firmwares compiled with MCU+ SDK (Software Development Kit) into alternative cores.

This article complies with the typographic conventions.

Typographic Conventions

Throughout the Toradex documentation, the following typographic conventions are used:

$ (dollar sign) Command in the host computer (e.g. your PC)

$ Command in your PC

$$ (double dollar sign) Command in a container in the host computer (e.g. your PC)

$$ Command inside a container in your PC

# (hashtag) Command in the target device/board (e.g. Linux terminal)

# Command in the target board, e.g. Colibri iMX6

## (double hashtag) Command inside a container in the target device (Torizon)

## Command inside a container in Torizon

> (greater-than sign) Command in the bootloader (e.g. U-Boot console)

> Command in the Bootloader

No symbol: Command output

$ Command waiting for output
Output

Prerequisites

  1. A module running Torizon OS or Linux BSP
  2. A terminal connected to the SoM
  3. The firmware to run on the alternative core (see How to Compile Firmwares for Alternative Cores (TI))

Loading and Running Firmwares

Toradex recommends enabling the MCU UART overlay to enable debugging through a serial connection. If you are using Torizon, you can enable device tree overlays either with TorizonCore Builder or manually. For BSP reference images, see Enable/Disable a Device Tree Overlay for instructions on how to manage overlays.

info

In this article, ${SDK_INSTALL_PATH} refers to the path where the SDK is installed. For example, in Linux, ${SDK_INSTALL_PATH} refers to ${HOME}/ti/mcu_plus_sdk_{soc}_{version}/

Copy the firmware binary to the module using the scp command below, replacing the placeholder with your hostname, as explained in SSH - Connect Through Network.

$ scp ${SDK_INSTALL_PATH}/examples/hello_world/am62x-sk/m4fss0-0_freertos/ti-arm-clang/hello_world.release.out root@<hostname>:/home/torizon/am62-mcu-m4f0_0-fw

Next, copy the firmware to /lib/firmware, which is the directory where the driver looks for firmware files. Note that /lib is a symbolic link to /usr/lib, and /usr is mounted as read-only by default. Therefore, you must first remount /usr with read/write permissions before copying the firmware:

# sudo mount -o remount,rw /usr
# sudo mv am62-mcu-m4f0_0-fw /lib/firmware

You can now either reboot or start the firmware with echo start:

# sudo reboot

Or

# echo start | sudo tee /sys/class/remoteproc/remoteproc0/state
Send Feedback!