SPRADD1A August 2023 – September 2024 AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM625SIP , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1
This section serves as a step-by-step guide on replicating the TI U-Boot baseline for a custom board. While these steps are not absolutely necessary in order to begin development, it is good practice for every board to use its own board-specific files to prevent any conflicts or board specific configuration issues. Creating new board-specific files also preserves the files provided with the SDK for TI EVMs that can be used as references.
These instructions refer to the custom board's name as <boardname> and the name of the organization as <company>. The organization name is used for naming directories to help keep the files for one's boards together.
+ config TARGET_AM625_A53_<BOARDNAME>
+ bool "<COMPANY> K3 based AM625 <BOARDNAME> running on A53"
+ select ARM64
+ select BINMAN
+ select OF_SYSTEM_SETUP
+ config TARGET_AM625_R5_<BOARDNAME>
+ bool "<COMPANY> K3 based AM625 <BOARDNAME> running on R5"
+ select CPU_V7R
+ select SYS_THUMB_BUILD
+ select K3_LOAD_SYSFW
+ select RAM
+ select SPL_RAM
+ select K3_DDRSS
+ select BINMAN
+ imply SYS_K3_SPL_ATF
Add the following line to the bottom of the same Kconfig file.
+ source "board/<company>/<boardname>/am62x/Kconfig
$ mkdir -p TI_U_BOOT/board/<company>/<boardname>/
$ mkdir -p TI_U_BOOT/board/<company>/common/
$ cp TI_U_BOOT/board/ti/am62x/* TI_U_BOOT/board/<company>/<boardname>/
$ cp TI_U_BOOT/board/ti/common/* TI_U_BOOT/board/<company>/common/
if TARGET_AM625_A53_<BOARDNAME>
config SYS_BOARD
default "<boardname>"
config SYS_VENDOR
default "<company>"
config SYS_CONFIG_NAME
default "<boardname>_evm"
source "board/<company>/common/Kconfig"
endif
if TARGET_AM625_R5_<BOARDNAME>
config SYS_BOARD
default "<boardname>"
config SYS_VENDOR
default "<company>"
config SYS_CONFIG_NAME
default "<boardname>_evm"
config SPL_LDSCRIPT
default "arch/arm/mach-omap2/u-boot-spl.lds"
source "board/<company>/common/Kconfig"
endif
$ mv TI_U_BOOT/board/<company>/<boardname>/evm.c TI_U_BOOT/board/<company>/<boardname>/<boardname>.c
$ mv TI_U_BOOT/board/<company>/<boardname>/am62x.env TI_U_BOOT/board/<company>/<boardname>/<boardname>.env
- obj-y += evm.o
+ obj-y += <boardname>.o
$ cp TI_U_BOOT/include/configs/am62x_evm.h TI_U_BOOT/include/configs/am62x_<boardname>.h
Make the following modification inside the newly created header file.
- #ifndef __CONFIG_AM625_EVM_H
- #define __CONFIG_AM625_EVM_H
+ #ifndef __CONFIG_AM625_<BOARDNAME>_H
+ #define __CONFIG_AM625_<BOARDNAME>_H
am62x_<boardname>_r5.config
CONFIG_TARGET_AM625_R5_<BOARDNAME>=y
# CONFIG_TARGET_AM625_R5_EVM is not set
am62x_<boardname>_a53.configCONFIG_TARGET_AM625_A53_<BOARDNAME>=y
# CONFIG_TARGET_AM625_A53_EVM is not set
You have now replicated TI's U-Boot baseline for the custom board.