SPRADD1B August   2023  – September 2026 AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM625SIP , AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1 Introduction
  5. 2 Installing the SDK
  6. 3 U-Boot Build-System Integration
  7. 4 Minimal Device Tree and Reaching the U-Boot Prompt
    1. 4.1 Introduction to Device Trees
    2. 4.2 Minimal Platform Support
    3. 4.3 Adding Custom Board Devicetrees
    4. 4.4 Initial Device Tree Modifications
    5. 4.5 Building U-Boot
    6. 4.6 Reaching the U-Boot Prompt
  8. 5 Expanding the Device Tree
    1. 5.1 Adding New Device Tree Nodes
    2. 5.2 Revising Device Tree Nodes
    3. 5.3 Device Tree Development Tips
  9. 6 Booting the Linux Kernel
    1. 6.1 Boot Method Overview
    2. 6.2 Reaching the Linux Command Prompt
  10. 7 Tools and Debugging
    1. 7.1 Debug Traces
    2. 7.2 OpenOCD
  11. 8 Future Work
  12. 9 Summary
  13. 10References
  14. 11Revision History

Introduction

TI provides a Software Development Kit (SDK) to accelerate development on products using AM62x SoC. This software package is tuned for Evaluation Modules (EVMs), like Starter Kits (SKs). The SDK and SKs are designed for quick evaluation of the SoC's many capabilities for a variety of use cases. Many features and capabilities, such as a variety of boot modes, are enabled by default. While this is great for an evaluation platform, it may introduce unneeded complexity for board-porting exercises on custom boards that target specific use cases. For example, on some boards like BeaglePlay™, only four boot modes are used in the end product, whilst AM62x SK supports about 14 different boot modes.

Removing complexity from the finished AM62x SK configurations is not always the best method for a board-porting process; This method is inefficient and can extend bring-up time from days to weeks since the developer is arbitrarily disabling features to determine how to configure a simpler use case. Instead, the recommended approach is to start with a minimal configuration as a strong foundation and iterate toward a complete and optimized custom configuration. Incrementally adding one feature at a time quickly identifies which integrations are functional and which ones are not. Non-functional features can then be isolated and debugged.

This application note details a step-by-step process for adding custom board support using the Linux SDK. The SDK contains source code repositories for the TI Linux kernel and TI U-Boot bootloader, which must be ported to the custom board. Generally, you should follow these steps:

  1. Download and install the Linux® SDK
  2. Integrate the custom board infrastructure into the U-Boot build system
  3. Create the custom board devicetree and Defconfig profiles in U-Boot
  4. Update the initial devicetree according to custom board hardware pin layout and SysConfig tool
  5. Enable a simple peripheral capable of loading the Linux kernel and rootfs
  6. Boot to the Linux kernel prompt
  7. Iteratively enable peripherals supported on the hardware until the hardware description is complete

The same board devicetree must be used for both U-boot and Linux to complete the porting process.

To navigate any errors that arise during the bring-up process, this document also includes some guidance on debugging.

It is recommended to go through the process detailed in this document using a TI EVM prior to the custom board. This makes for an efficient bring-up process and also validates the steps in this document on a board that is known to be functional.

All download links can also be found in Section 10.