summaryrefslogtreecommitdiffstats
path: root/bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb')
-rw-r--r--bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb77
1 files changed, 77 insertions, 0 deletions
diff --git a/bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb b/bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb
new file mode 100644
index 00000000..55e583b4
--- /dev/null
+++ b/bsp/meta-ti/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb
@@ -0,0 +1,77 @@
+SUMMARY = "MCU Watchdog test firmware"
+DESCRIPTION = "Firmware for the R5F core to test the detection of watchdog timeout events to trigger SOC reset though DMSC."
+
+require recipes-bsp/common-csl-ip/common-csl-ip.inc
+require recipes-ti/includes/ti-paths.inc
+
+LIC_FILES_CHKSUM = "file://../../../COPYING.txt;md5=5857833e20836213677fac33f9aded21"
+
+S = "${WORKDIR}/${CSL_GIT_DESTSUFFIX}/example/rti/rti_dwwdtest_app"
+
+COMPATIBLE_MACHINE = "am65xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEPENDS = "ti-cgt-arm-native \
+ ti-pdk-build-rtos \
+ uart-lld-rtos \
+ board-rtos \
+ sciclient-rtos \
+ udma-lld-rtos"
+
+export PDK_INSTALL_PATH = "${PDK_INSTALL_DIR}/packages"
+export TOOLCHAIN_PATH_R5 = "${M4_TOOLCHAIN_INSTALL_DIR}"
+
+EXTRA_OEMAKE = "WDT_RESET=enable DEST_ROOT=${S}"
+
+do_compile() {
+ for soc in ${TI_PDK_LIMIT_SOCS}
+ do
+ for board in ${TI_PDK_LIMIT_BOARDS}
+ do
+ oe_runmake SOC=$soc BOARD=$board
+ done
+ done
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/rti_dwwdtest
+
+ for board in ${TI_PDK_LIMIT_BOARDS}
+ do
+ install -d ${D}${base_libdir}/firmware/rti_dwwdtest/$board
+ install -m 0644 csl_rti_dwwd_test_app/bin/$board/csl_rti_dwwd_test_app_mcu1_0_release.xer5f \
+ ${D}${base_libdir}/firmware/rti_dwwdtest/$board
+ done
+}
+
+# Create separate package for each firmware so we can utilize
+# update-alternatives.
+PACKAGES =+ "${PN}-evm ${PN}-idk"
+RDEPENDS_${PN} = "${PN}-evm ${PN}-idk"
+ALLOW_EMPTY_${PN} = "1"
+
+FILES_${PN}-evm = "${base_libdir}/firmware/rti_dwwdtest/am65xx_evm"
+FILES_${PN}-idk = "${base_libdir}/firmware/rti_dwwdtest/am65xx_idk"
+
+# We are packaging R5 firmware
+INSANE_SKIP_${PN}-evm = "arch"
+INSANE_SKIP_${PN}-idk = "arch"
+
+# Configure update-alternatives as there may be other firmwares provided in an
+# image.
+inherit update-alternatives
+
+# It might be nice to dynamically declare the following based on
+# TI_PDK_LIMIT_BOARDS, but that is probably overkill.
+ALTERNATIVE_${PN}-evm = "am65x-mcu-r5f0_0-fw"
+ALTERNATIVE_${PN}-idk = "am65x-mcu-r5f0_0-fw"
+
+ALTERNATIVE_LINK_NAME[am65x-mcu-r5f0_0-fw] = "${base_libdir}/firmware/am65x-mcu-r5f0_0-fw"
+
+ALTERNATIVE_TARGET_${PN}-evm = "${base_libdir}/firmware/rti_dwwdtest/am65xx_evm/csl_rti_dwwd_test_app_mcu1_0_release.xer5f"
+ALTERNATIVE_TARGET_${PN}-idk = "${base_libdir}/firmware/rti_dwwdtest/am65xx_idk/csl_rti_dwwd_test_app_mcu1_0_release.xer5f"
+
+# Use a lesser priority than ipc example fw
+# See meta-ti/recipes-ti/ipc/ti-ipc-rtos_git.bb
+ALTERNATIVE_PRIORITY_${PN}-evm = "4"
+ALTERNATIVE_PRIORITY_${PN}-idk = "3"