AM275 FreeRTOS SDK  11.00.00
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
SBL UART

Introduction

This bootloader does SOC initializations and attempts to boot a multicore elf image (mcelf) received over UART via XMODEM. The image file is sent using a python script (See UART Bootloader Python Script). The SBL first recieves the elf image meta data from host, once meta is received, the SBL parses it and requests the program segments applicable for each core by specifying the required segment offset and length to host. It then receives the segments and loads to respective load addresses. Each core is then initialized, entry points are set and the core is released from reset.

Since the image is received segment wise with proper handshaking between target and host and also loaded directly to load addresses it eliminates the usage of large intermediate scratch buffer to hold the complete image. For more on bootflow/bootloaders, please refer Understanding the bootflow and bootloaders

Supported Combinations

Parameter Value
CPU + OS wkup-r5fss0-0_freertos
Toolchain ti-arm-clang
Board am275x-evm
Example folder examples/drivers/boot/sbl_uart

Steps to Run the Example

Build the example

Since this is a bootloader and is used as a SOC initialization binary, the example will be run every time you boot an application using this example. It is generally run from a boot media (OSPI Flash, SD Card or over UART) unlike other examples which are usually loaded with CCS. Nevertheless, you can build this example like you do for the others using makefile or build it via CCS by importing as a project.

  • When using CCS projects to build, import the CCS project for the required combination and build it using the CCS project menu (see Using SDK with CCS Projects).
  • When using makefiles to build, note the required combination and build using make command (see Using SDK with Makefiles).

See Also

BOOTLOADER

Sample Output

Since this SBL receives the appimage over UART using XMODEM protocol, it doesn't print anything to the console so as not to corrupt the XMODEM transport.