SPRADD1B August 2023 – September 2026 AM620-Q1 , AM623 , AM625 , AM625-Q1 , AM625SIP , AM62A1-Q1 , AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1
This subsection provides a step-by-step guide to integrating custom board infrastructure into the U-Boot build system. While these steps are not strictly required to begin early prototyping, it is best practice to establish dedicated board directories, Kconfig targets, and Makefiles. Note that this section only configures the software build framework; device tree files are covered separately in the next section. Establishing these dedicated build files allows the user to:
These instructions refer to the custom board's name as <boardname> and the name of the company as <company>. The company's name is used when naming directories to help keep a company's boards grouped together.
+ source "board/<company>/<boardname>/Kconfig"$ mkdir -p $TI_U_BOOT/board/<company>/<boardname>/$ cp -r $TI_U_BOOT/board/ti/am62x/* $TI_U_BOOT/board/<company>/<boardname>/+ choice
+ prompt "<company> AM62X based <boardname>"
+ optional
+ config TARGET_<BOARDNAME>_A53
+ bool "<COMPANY> <BOARDNAME> running on A53"
+ select ARM64
+ select BINMAN
+ select OF_SYSTEM_SETUP
+ imply TI_COMMON_CMD_OPTIONS
+ config TARGET_<BOARDNAME>_R5
+ bool "<COMPANY> <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
+ endchoice
+ if TARGET_<BOARDNAME>_A53
+ config SYS_BOARD
+ default "<boardname>"
+ config SYS_VENDOR
+ default "<company>"
+ config SYS_CONFIG_NAME
+ default "<boardname>"
source "board/ti/common/Kconfig"
endif
+ if TARGET_<BOARDNAME>_R5
+ config SYS_BOARD
+ default "<boardname>"
+ config SYS_VENDOR
+ default "<company>"
+ config SYS_CONFIG_NAME
+ default "<boardname>"
+ config SPL_LDSCRIPT
+ default "arch/arm/mach-omap2/u-boot-spl.lds"
+ source "board/ti/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/<boardname>.hMake the following modification inside the newly created header file.
- #ifndef __CONFIG_AM625_EVM_H
- #define __CONFIG_AM625_EVM_H
+ #ifndef __CONFIG_<BOARDNAME>_H
+ #define __CONFIG_<BOARDNAME>_H$ cp $TI_U_BOOT/configs/am62x_minimal_r5_defconfig $TI_U_BOOT/configs/<boardname>_r5_defconfig
$ cp $TI_U_BOOT/configs/am62x_minimal_a53_defconfig $TI_U_BOOT/configs/<boardname>_a53_defconfigAdd the CONFIG_TARGETs as seen below.
<boardname>_r5_defconfig
+ CONFIG_TARGET_<BOARDNAME>_R5=y
+ # CONFIG_TARGET_AM625_R5_EVM is not set<boardname>_a53_defconfig+ CONFIG_TARGET_<BOARDNAME>_a53=y
+ # CONFIG_TARGET_AM625_A53_EVM is not setThe user has now integrated the custom board's infrastructure in the U-Boot build system.