summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorParesh Bhagat <p-bhagat@ti.com>2025-05-14 18:09:17 +0530
committerRyan Eatmon <reatmon@ti.com>2025-05-14 17:28:47 -0500
commitf286ef1e54b153397314b350e3bc38e739d95d5d (patch)
tree6892551330ea0ea69ea17524f25eb4e1b2b23d02
parent0484e280f9d2ec4ba21a47eff3b07194e7f091d4 (diff)
downloadmeta-ti-f286ef1e54b153397314b350e3bc38e739d95d5d.tar.gz
meta-ti-bsp : Add build support for am62dxx-evm
The AM62D SoC is a high-performance Digital Signal Processing (DSP) device with a quad-core Cortex-A53 cluster, dual Cortex-R5F cores, and a Cx7 DSP core with Matrix Multiplication Accelerator (MMA). It features a range of peripherals, including multichannel audio serial ports, Ethernet, UARTs, SPI, I2C, USB, and more. This SoC is part of K3-AM62x family, which includes the AM62A and AM62P variants. While the AM62A and AM62D are largely similar, the AM62D is specifically targeted for general-purpose DSP applications, whereas the AM62A focuses on edge AI workloads. A key distinction is that the AM62D does not include multimedia components such as the video encoder/decoder, MJPEG encoder, Vision Processing Accelerator (VPAC) for image signal processing, or the display subsystem. Additionally, the AM62D has a different pin configuration compared to the AM62A, which impacts embedded software development. The EVM board is a low-cost, expandable platform designed for the AM62D2 SoC, having 4GB LPDDR4 RAM, Gigabit Ethernet expansion connectors, audio jacks, USB ports, and more. Signed-off-by: Paresh Bhagat <p-bhagat@ti.com> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
-rw-r--r--meta-ti-bsp/conf/machine/am62dxx-evm-k3r5.conf11
-rw-r--r--meta-ti-bsp/conf/machine/am62dxx-evm.conf15
-rw-r--r--meta-ti-bsp/conf/machine/include/am62dxx.inc15
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb3
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb14
-rw-r--r--meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc2
-rw-r--r--meta-ti-bsp/recipes-security/optee/optee-os-ti-overrides.inc1
7 files changed, 61 insertions, 0 deletions
diff --git a/meta-ti-bsp/conf/machine/am62dxx-evm-k3r5.conf b/meta-ti-bsp/conf/machine/am62dxx-evm-k3r5.conf
new file mode 100644
index 00000000..00906420
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am62dxx-evm-k3r5.conf
@@ -0,0 +1,11 @@
1#@TYPE: Machine
2#@NAME: AM62D HS-FS EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI AM62D EVM (R5F core)
4
5require conf/machine/include/k3r5.inc
6
7SYSFW_SOC = "am62dx"
8SYSFW_CONFIG = "evm"
9SYSFW_SUFFIX = "hs-fs"
10
11UBOOT_MACHINE = "am62dx_evm_r5_defconfig"
diff --git a/meta-ti-bsp/conf/machine/am62dxx-evm.conf b/meta-ti-bsp/conf/machine/am62dxx-evm.conf
new file mode 100644
index 00000000..f2da559c
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am62dxx-evm.conf
@@ -0,0 +1,15 @@
1#@TYPE: Machine
2#@NAME: AM62DXX EVM
3#@DESCRIPTION: Machine configuration for the TI AM62DXX EVM
4
5require conf/machine/include/am62dxx.inc
6
7KERNEL_DEVICETREE_PREFIX = " \
8 ti/k3-am62d2 \
9"
10
11KERNEL_DEVICETREE = ""
12
13FIT_CONF_DEFAULT_DTB = "ti/k3-am62d2-evm.dtb"
14
15UBOOT_MACHINE = "am62dx_evm_a53_defconfig"
diff --git a/meta-ti-bsp/conf/machine/include/am62dxx.inc b/meta-ti-bsp/conf/machine/include/am62dxx.inc
new file mode 100644
index 00000000..ac4e8e17
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/am62dxx.inc
@@ -0,0 +1,15 @@
1require conf/machine/include/k3.inc
2require conf/machine/include/mc_k3r5.inc
3
4SOC_FAMILY:append = ":am62dxx"
5
6TFA_K3_SYSTEM_SUSPEND = "1"
7
8# Default tiboot3.bin on AM62D is for HS-FS
9IMAGE_BOOT_FILES += "tiboot3-am62dx-hs-fs-evm.bin"
10
11# Since default tiboot3.bin on AM62D is for HS-FS, add a version for HS-SE
12IMAGE_BOOT_FILES += "tiboot3-am62dx-hs-evm.bin"
13
14TFA_BOARD = "lite"
15OPTEEMACHINE = "k3-am62x"
diff --git a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb
index 7ce09383..03016993 100644
--- a/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb
+++ b/meta-ti-bsp/recipes-bsp/ti-dm-fw/ti-dm-fw.bb
@@ -29,6 +29,7 @@ PLAT_SFX:am65xx = "am65xx"
29PLAT_SFX:am64xx = "am64xx" 29PLAT_SFX:am64xx = "am64xx"
30PLAT_SFX:am62xx = "am62xx" 30PLAT_SFX:am62xx = "am62xx"
31PLAT_SFX:am62axx = "am62axx" 31PLAT_SFX:am62axx = "am62axx"
32PLAT_SFX:am62dxx = "am62axx"
32PLAT_SFX:am62lxx = "am62lxx" 33PLAT_SFX:am62lxx = "am62lxx"
33PLAT_SFX:am62pxx = "am62pxx" 34PLAT_SFX:am62pxx = "am62pxx"
34 35
@@ -51,6 +52,7 @@ DM_FW_LIST:am65xx = ""
51DM_FW_LIST:am64xx = "" 52DM_FW_LIST:am64xx = ""
52DM_FW_LIST:am62xx = "${DM_FIRMWARE}" 53DM_FW_LIST:am62xx = "${DM_FIRMWARE}"
53DM_FW_LIST:am62axx = "${DM_FIRMWARE}" 54DM_FW_LIST:am62axx = "${DM_FIRMWARE}"
55DM_FW_LIST:am62dxx = "${DM_FIRMWARE}"
54DM_FW_LIST:am62lxx = "" 56DM_FW_LIST:am62lxx = ""
55DM_FW_LIST:am62pxx = "${DM_FIRMWARE}" 57DM_FW_LIST:am62pxx = "${DM_FIRMWARE}"
56 58
@@ -85,6 +87,7 @@ do_deploy() {
85ALTERNATIVE:${PN}:am62xx = "am62-main-r5f0_0-fw" 87ALTERNATIVE:${PN}:am62xx = "am62-main-r5f0_0-fw"
86ALTERNATIVE:${PN}:am62pxx = "am62p-main-r5f0_0-fw" 88ALTERNATIVE:${PN}:am62pxx = "am62p-main-r5f0_0-fw"
87ALTERNATIVE:${PN}:am62axx = "am62a-main-r5f0_0-fw" 89ALTERNATIVE:${PN}:am62axx = "am62a-main-r5f0_0-fw"
90ALTERNATIVE:${PN}:am62dxx = "am62a-main-r5f0_0-fw"
88ALTERNATIVE:${PN}:j721e = "j7-mcu-r5f0_0-fw" 91ALTERNATIVE:${PN}:j721e = "j7-mcu-r5f0_0-fw"
89ALTERNATIVE:${PN}:j7200 = "j7200-mcu-r5f0_0-fw" 92ALTERNATIVE:${PN}:j7200 = "j7200-mcu-r5f0_0-fw"
90ALTERNATIVE:${PN}:j721s2 = "j721s2-mcu-r5f0_0-fw" 93ALTERNATIVE:${PN}:j721s2 = "j721s2-mcu-r5f0_0-fw"
diff --git a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
index 13587603..1fe67be8 100644
--- a/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
+++ b/meta-ti-bsp/recipes-bsp/ti-rtos-fw/ti-rtos-echo-test-fw.bb
@@ -20,6 +20,7 @@ PLAT_SFX:am65xx = "am65xx"
20PLAT_SFX:am64xx = "am64xx" 20PLAT_SFX:am64xx = "am64xx"
21PLAT_SFX:am62xx = "am62xx" 21PLAT_SFX:am62xx = "am62xx"
22PLAT_SFX:am62axx = "am62axx" 22PLAT_SFX:am62axx = "am62axx"
23PLAT_SFX:am62dxx = "am62axx"
23PLAT_SFX:am62pxx = "am62pxx" 24PLAT_SFX:am62pxx = "am62pxx"
24 25
25FILESEXTRAPATHS:prepend := "${METATIBASE}/recipes-bsp/ti-sci-fw/files/:" 26FILESEXTRAPATHS:prepend := "${METATIBASE}/recipes-bsp/ti-sci-fw/files/:"
@@ -57,6 +58,7 @@ IPC_FW_LIST:am64xx = "${MCU_1_0_FW} ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} $
57IPC_FW_LIST:am62xx = " ${MCU_2_0_FW}" 58IPC_FW_LIST:am62xx = " ${MCU_2_0_FW}"
58IPC_FW_LIST:am62pxx = " ${MCU_2_0_FW}" 59IPC_FW_LIST:am62pxx = " ${MCU_2_0_FW}"
59IPC_FW_LIST:am62axx = " ${MCU_2_0_FW} ${C7X_1_FW}" 60IPC_FW_LIST:am62axx = " ${MCU_2_0_FW} ${C7X_1_FW}"
61IPC_FW_LIST:am62dxx = " ${MCU_2_0_FW} ${C7X_1_FW}"
60IPC_FW_LIST:j721e = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW} ${C66_1_FW} ${C66_2_FW} ${C7X_1_FW}" 62IPC_FW_LIST:j721e = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW} ${C66_1_FW} ${C66_2_FW} ${C7X_1_FW}"
61IPC_FW_LIST:j7200 = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW}" 63IPC_FW_LIST:j7200 = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW}"
62IPC_FW_LIST:j721s2 = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW} ${C7X_1_FW} ${C7X_2_FW}" 64IPC_FW_LIST:j721s2 = " ${MCU_1_1_FW} ${MCU_2_0_FW} ${MCU_2_1_FW} ${MCU_3_0_FW} ${MCU_3_1_FW} ${C7X_1_FW} ${C7X_2_FW}"
@@ -96,6 +98,13 @@ do_install:prepend:am62axx() {
96 ) 98 )
97} 99}
98 100
101# Update the am62dxx ipc binaries to be consistent with other platforms
102do_install:prepend:am62dxx() {
103 ( cd ${S}/${IPC_FW_DIR}; \
104 ln -sf am62a-mcu-r5f0_0-fw ${MCU_2_0_FW}; \
105 )
106}
107
99do_install() { 108do_install() {
100 # IPC Firmware 109 # IPC Firmware
101 for FW_NAME in ${IPC_FW_LIST} 110 for FW_NAME in ${IPC_FW_LIST}
@@ -139,6 +148,11 @@ ALTERNATIVE:${PN}:am62axx = "\
139 am62a-c71_0-fw am62a-c71_0-fw-sec \ 148 am62a-c71_0-fw am62a-c71_0-fw-sec \
140 " 149 "
141 150
151ALTERNATIVE:${PN}:am62dxx = "\
152 am62a-mcu-r5f0_0-fw am62a-mcu-r5f0_0-fw-sec \
153 am62a-c71_0-fw am62a-c71_0-fw-sec \
154 "
155
142ALTERNATIVE:${PN}:j721e = "\ 156ALTERNATIVE:${PN}:j721e = "\
143 j7-mcu-r5f0_1-fw j7-mcu-r5f0_1-fw-sec \ 157 j7-mcu-r5f0_1-fw j7-mcu-r5f0_1-fw-sec \
144 j7-main-r5f0_0-fw j7-main-r5f0_0-fw-sec \ 158 j7-main-r5f0_0-fw j7-main-r5f0_0-fw-sec \
diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc
index 2b75de70..c348c99b 100644
--- a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc
+++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc
@@ -61,6 +61,7 @@ PLAT_SFX:am65xx = "am65xx"
61PLAT_SFX:am64xx = "am64xx" 61PLAT_SFX:am64xx = "am64xx"
62PLAT_SFX:am62xx = "am62xx" 62PLAT_SFX:am62xx = "am62xx"
63PLAT_SFX:am62axx = "am62axx" 63PLAT_SFX:am62axx = "am62axx"
64PLAT_SFX:am62dxx = "am62axx"
64PLAT_SFX:am62lxx = "am62lxx" 65PLAT_SFX:am62lxx = "am62lxx"
65PLAT_SFX:am62pxx = "am62pxx" 66PLAT_SFX:am62pxx = "am62pxx"
66 67
@@ -78,6 +79,7 @@ PACKAGECONFIG:append:j722s = " dm"
78PACKAGECONFIG:append:j742s2 = " dm" 79PACKAGECONFIG:append:j742s2 = " dm"
79PACKAGECONFIG:append:am62xx = " dm" 80PACKAGECONFIG:append:am62xx = " dm"
80PACKAGECONFIG:append:am62axx = " dm" 81PACKAGECONFIG:append:am62axx = " dm"
82PACKAGECONFIG:append:am62dxx = " dm"
81PACKAGECONFIG:append:am62lxx = " ap-trusted-rom" 83PACKAGECONFIG:append:am62lxx = " ap-trusted-rom"
82PACKAGECONFIG:append:am62pxx = " dm" 84PACKAGECONFIG:append:am62pxx = " dm"
83 85
diff --git a/meta-ti-bsp/recipes-security/optee/optee-os-ti-overrides.inc b/meta-ti-bsp/recipes-security/optee/optee-os-ti-overrides.inc
index ae6cca74..c37cf768 100644
--- a/meta-ti-bsp/recipes-security/optee/optee-os-ti-overrides.inc
+++ b/meta-ti-bsp/recipes-security/optee/optee-os-ti-overrides.inc
@@ -9,6 +9,7 @@ EXTRA_OEMAKE:append:am62xx = " CFG_TEE_CORE_LOG_LEVEL=1"
9EXTRA_OEMAKE:append:am62lxx = " CFG_TEE_CORE_LOG_LEVEL=1" 9EXTRA_OEMAKE:append:am62lxx = " CFG_TEE_CORE_LOG_LEVEL=1"
10EXTRA_OEMAKE:append:am62pxx = " CFG_TEE_CORE_LOG_LEVEL=1" 10EXTRA_OEMAKE:append:am62pxx = " CFG_TEE_CORE_LOG_LEVEL=1"
11EXTRA_OEMAKE:append:am62axx = " CFG_TEE_CORE_LOG_LEVEL=1" 11EXTRA_OEMAKE:append:am62axx = " CFG_TEE_CORE_LOG_LEVEL=1"
12EXTRA_OEMAKE:append:am62dxx = " CFG_TEE_CORE_LOG_LEVEL=1"
12EXTRA_OEMAKE:append:j722s = " CFG_TEE_CORE_LOG_LEVEL=1" 13EXTRA_OEMAKE:append:j722s = " CFG_TEE_CORE_LOG_LEVEL=1"
13 14
14do_compile:append:k3() { 15do_compile:append:k3() {