SPRADD1A August   2023  – September 2024 AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM625SIP , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Introduction
  5. Installing the SDK
  6. Configuring the SDK for a Custom Board
  7. Starting U-Boot Board Port
    1. 4.1 Introduction to Devicetrees
    2. 4.2 Capabilities of the Minimal Configuration
    3. 4.3 Preparing Custom Board Files
    4. 4.4 Initial Devicetree Modifications
    5. 4.5 Building U-Boot Binaries
    6. 4.6 U-Boot Deployment Instructions
  8. Expanding the Custom Board Devicetree
    1. 5.1 Devicetree Configuration
    2. 5.2 Describing Peripherals in Nodes
    3. 5.3 Revising the Devicetree Configuration
  9. Booting the Linux Kernel
    1. 6.1 Kernel Boot Overview
    2. 6.2 Kernel Deployment Instructions
  10. Tools and Debugging
    1. 7.1 Kernel Debug Traces
    2. 7.2 OpenOCD Debugging
  11. Future Work
  12. Summary
  13. 10References
  14.   Revision History

Kernel Boot Overview

The process of booting the Linux kernel in the next section uses components that are provided in the SDK in order to streamline the bring-up process. The only component that needs to be rebuilt when testing a new configuration is the devicetree. The kernel image and filesystem are provided in the SDK and reused throughout the board bring-up process. This capability highlights the value of devicetree as a hardware description language as the same kernel and filesystem can be used by a different board with no code changes.

The U-Boot devicetree that was configured in the previous section is reused as the kernel devicetree. This is because a board's U-Boot and kernel devicetree should be developed in sync to simplify the debug process. Instructions in the next section detail reusing the devicetree.

The initramfs filesystem is used to boot the kernel during board bring-up. This is to reduce any hardware dependencies required to mount a physical root filesystem. After the board bring-up process is completed, a physical filesystem in non-volatile storage like eMMC or a developer friendly filesystem mounted via NFS can be used to enable full functionality.