aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-bsp/common-csl-ip/csl-rti-dwwdtest-fw_git.bb
blob: a7936594306881b5f78d43b3db3ccc44afbc21f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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"