aboutsummaryrefslogtreecommitdiffstats
path: root/meta-ti-bsp
diff options
context:
space:
mode:
Diffstat (limited to 'meta-ti-bsp')
-rw-r--r--meta-ti-bsp/COPYING.MIT17
-rw-r--r--meta-ti-bsp/README33
-rw-r--r--meta-ti-bsp/conf/layer.conf26
-rw-r--r--meta-ti-bsp/conf/machine/am335x-evm.conf35
-rw-r--r--meta-ti-bsp/conf/machine/am335x-hs-evm.conf18
-rw-r--r--meta-ti-bsp/conf/machine/am437x-evm.conf33
-rw-r--r--meta-ti-bsp/conf/machine/am437x-hs-evm.conf20
-rw-r--r--meta-ti-bsp/conf/machine/am57xx-evm.conf53
-rw-r--r--meta-ti-bsp/conf/machine/am57xx-hs-evm.conf21
-rw-r--r--meta-ti-bsp/conf/machine/am64xx-evm-k3r5.conf11
-rw-r--r--meta-ti-bsp/conf/machine/am64xx-evm.conf7
-rw-r--r--meta-ti-bsp/conf/machine/am64xx-hs-evm-k3r5.conf14
-rw-r--r--meta-ti-bsp/conf/machine/am64xx-hs-evm.conf22
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-evm-k3r5-sr2.conf11
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-evm-k3r5.conf12
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-evm.conf7
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5-sr2.conf11
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5.conf14
-rw-r--r--meta-ti-bsp/conf/machine/am65xx-hs-evm.conf22
-rw-r--r--meta-ti-bsp/conf/machine/beagle-x15.conf13
-rw-r--r--meta-ti-bsp/conf/machine/beaglebone.conf16
-rw-r--r--meta-ti-bsp/conf/machine/dra7xx-evm.conf48
-rw-r--r--meta-ti-bsp/conf/machine/dra7xx-hs-evm.conf21
-rw-r--r--meta-ti-bsp/conf/machine/include/am64xx.inc24
-rw-r--r--meta-ti-bsp/conf/machine/include/am65xx.inc32
-rw-r--r--meta-ti-bsp/conf/machine/include/dra7xx.inc4
-rw-r--r--meta-ti-bsp/conf/machine/include/j7.inc7
-rw-r--r--meta-ti-bsp/conf/machine/include/k3.inc55
-rw-r--r--meta-ti-bsp/conf/machine/include/k3r5.inc24
-rw-r--r--meta-ti-bsp/conf/machine/include/omap-a15.inc55
-rw-r--r--meta-ti-bsp/conf/machine/include/omapl1.inc2
-rw-r--r--meta-ti-bsp/conf/machine/include/omapl138.inc2
-rw-r--r--meta-ti-bsp/conf/machine/include/ti-soc.inc5
-rw-r--r--meta-ti-bsp/conf/machine/include/ti33x.inc70
-rw-r--r--meta-ti-bsp/conf/machine/include/ti43x.inc67
-rw-r--r--meta-ti-bsp/conf/machine/j7-evm-k3r5.conf11
-rw-r--r--meta-ti-bsp/conf/machine/j7-evm.conf18
-rw-r--r--meta-ti-bsp/conf/machine/j7-hs-evm-k3r5-sr1-1.conf11
-rw-r--r--meta-ti-bsp/conf/machine/j7-hs-evm-k3r5.conf13
-rw-r--r--meta-ti-bsp/conf/machine/j7-hs-evm.conf30
-rw-r--r--meta-ti-bsp/conf/machine/j7200-evm-k3r5.conf11
-rw-r--r--meta-ti-bsp/conf/machine/j7200-evm.conf20
-rw-r--r--meta-ti-bsp/conf/machine/j7200-hs-evm-k3r5.conf13
-rw-r--r--meta-ti-bsp/conf/machine/j7200-hs-evm.conf22
-rw-r--r--meta-ti-bsp/conf/machine/omapl138-lcdk.conf19
-rw-r--r--meta-ti-bsp/conf/multiconfig/k3r5-sr1-1.conf3
-rw-r--r--meta-ti-bsp/conf/multiconfig/k3r5-sr2.conf3
-rw-r--r--meta-ti-bsp/conf/multiconfig/k3r5.conf5
-rw-r--r--meta-ti-bsp/licenses/Hewlett-Packard13
-rw-r--r--meta-ti-bsp/licenses/Patrick-Powell4
-rw-r--r--meta-ti-bsp/licenses/TI-IMG63
-rw-r--r--meta-ti-bsp/licenses/TI-TFL62
-rw-r--r--meta-ti-bsp/licenses/TI-TSPA206
-rw-r--r--meta-ti-bsp/licenses/Thai-Open-Source-Software-Center31
-rw-r--r--meta-ti-bsp/recipes-bsp/bt-fw/bt-fw_git.bb24
-rw-r--r--meta-ti-bsp/recipes-bsp/cadence-mhdp-fw/cadence-mhdp-fw_git.bb25
-rw-r--r--meta-ti-bsp/recipes-bsp/cm3-pm-firmware/amx3-cm3_git.bb29
-rw-r--r--meta-ti-bsp/recipes-bsp/cmem/cmem-mod_git.bb18
-rw-r--r--meta-ti-bsp/recipes-bsp/cmem/cmem.inc16
-rw-r--r--meta-ti-bsp/recipes-bsp/cmem/cmem_git.bb13
-rwxr-xr-xmeta-ti-bsp/recipes-bsp/cpsw9g-eth-fw/cpsw9g-eth-fw_git.bb43
-rw-r--r--meta-ti-bsp/recipes-bsp/cuia/cuia_1.0.0.13.bb30
-rw-r--r--meta-ti-bsp/recipes-bsp/dspdce-fw/dspdce-fw_git.bb65
-rw-r--r--meta-ti-bsp/recipes-bsp/dsptop/debugss-module-drv_git.bb22
-rw-r--r--meta-ti-bsp/recipes-bsp/dsptop/dsptop.inc8
-rw-r--r--meta-ti-bsp/recipes-bsp/dsptop/dsptop_git.bb27
-rw-r--r--meta-ti-bsp/recipes-bsp/dsptop/libulm_git.bb45
-rw-r--r--meta-ti-bsp/recipes-bsp/gc320-drivers/ti-gc320-driver_5.0.11.p7.bb30
-rw-r--r--meta-ti-bsp/recipes-bsp/goodix-fw/goodix-fw_git.bb26
-rw-r--r--meta-ti-bsp/recipes-bsp/ipumm-fw/ipumm-fw_git.bb67
-rw-r--r--meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch29
-rw-r--r--meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb40
-rw-r--r--meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb46
-rw-r--r--meta-ti-bsp/recipes-bsp/pru/pru-icss_git.bb363
-rw-r--r--meta-ti-bsp/recipes-bsp/pru/ti-pru-sw-edma-driver_1.00.00.bb31
-rw-r--r--meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x-sr2_git.bb34
-rw-r--r--meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x_git.bb32
-rw-r--r--meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw_5.6.15.bb31
-rw-r--r--meta-ti-bsp/recipes-bsp/pruhsr-fw/pruhsr-fw_2.17.25.bb31
-rw-r--r--meta-ti-bsp/recipes-bsp/pruprp-fw/pruprp-fw_2.17.25.bb32
-rw-r--r--meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw-am65x-sr2_git.bb34
-rw-r--r--meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw_3.2.9.bb31
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb20
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb20
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb24
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc35
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-sci-fw/files/0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch64
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw-source_git.bb45
-rw-r--r--meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb160
-rw-r--r--meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend41
-rw-r--r--meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-mainline_git.bb18
-rw-r--r--meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2020.01.bb7
-rw-r--r--meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2021.01.bb9
-rw-r--r--meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc290
-rw-r--r--meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv-test_git.bb35
-rw-r--r--meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv.inc19
-rw-r--r--meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv/0001-uio-module-drv-Replace-ioremap_nocache-with-ioremap.patch35
-rw-r--r--meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv_git.bb22
-rw-r--r--meta-ti-bsp/recipes-bsp/vis-fw/vis_01.50.07.15.bb36
-rw-r--r--meta-ti-bsp/recipes-bsp/vpdma-fw/vpdma-fw_03-2012.bb25
-rw-r--r--meta-ti-bsp/recipes-bsp/vpe-tests/vpe-tests_git.bb30
-rw-r--r--meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch29
-rw-r--r--meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb25
-rw-r--r--meta-ti-bsp/recipes-connectivity/uim/uim-sysfs_8.5.bb20
-rw-r--r--meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch35
-rw-r--r--meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb26
-rw-r--r--meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch23
-rw-r--r--meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.7.3.bb26
-rw-r--r--meta-ti-bsp/recipes-connectivity/wlconf/wlconf_8.7.3.bb39
-rw-r--r--meta-ti-bsp/recipes-core/udev/eudev/firmware.rules3
-rw-r--r--meta-ti-bsp/recipes-core/udev/eudev/omap-tty.rules17
-rw-r--r--meta-ti-bsp/recipes-core/udev/eudev_%.bbappend13
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x.inc9
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch28
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/init48
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x_git.bb49
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb49
-rw-r--r--meta-ti-bsp/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb31
-rw-r--r--meta-ti-bsp/recipes-devtools/ion/libion_git.bb14
-rw-r--r--meta-ti-bsp/recipes-devtools/k3conf/k3conf_git.bb24
-rw-r--r--meta-ti-bsp/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb46
-rw-r--r--meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb69
-rw-r--r--meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb70
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/bundle-devicetree.inc26
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/cmem.inc96
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/cmem.dtsi38
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/configs/empty0
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi272
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am57xx-pru-uio.dtsi252
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am571x.dtsi29
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am5729-beagleboneai.dtsi40
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am572idk.dtsi40
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am574x.dtsi40
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra71x.dtsi29
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra72x.dtsi29
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra76x.dtsi29
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem.dtsi40
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/ti33x/am335x-pru-uio.dtsi192
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/files/ti43x/am437x-pru-uio.dtsi292
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/kernel-rdepends.inc27
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/omapl138/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb75
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/omapl138/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/omapl138/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.10.bb10
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.4.bb10
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/omapl138/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/dra7xx/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/k3/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/omapl138/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti33x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti43x/defconfig1
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.10.bb5
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.4.bb5
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.10.bb51
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.4.bb43
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc92
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc9
-rw-r--r--meta-ti-bsp/recipes-kernel/linux/ti-uio.inc71
-rw-r--r--meta-ti-bsp/recipes-multimedia/libdce/libdce_3.00.14.00.bb18
-rw-r--r--meta-ti-bsp/recipes-security/optee/optee-%.bbappend1
-rw-r--r--meta-ti-bsp/recipes-security/optee/optee-os_%.bbappend91
-rw-r--r--meta-ti-bsp/recipes-ti/README1
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes.bb26
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh14
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.service11
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.sh22
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/beaglebone-getting-started.bb21
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init.bb60
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules1
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh46
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh10
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh4
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/network-gadget-init.service11
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service11
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.conf5
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.rules2
-rw-r--r--meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.service12
-rwxr-xr-xmeta-ti-bsp/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh37
-rw-r--r--meta-ti-bsp/recipes-ti/bios/ti-sysbios.inc28
-rw-r--r--meta-ti-bsp/recipes-ti/bios/ti-sysbios_6.76.03.01.bb16
-rw-r--r--meta-ti-bsp/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb29
-rw-r--r--meta-ti-bsp/recipes-ti/ctoolslib/libaet_git.bb38
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb29
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cg-xml_2.61.00.bb40
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb44
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt-pru_2.3.2.bb49
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt470.inc24
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt470_4.6.6.bb8
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb46
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt6x_8.3.2.bb107
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-cgt7x_1.2.0.bb49
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-xdctools-common.inc70
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-xdctools-core.inc5
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-xdctools.inc10
-rw-r--r--meta-ti-bsp/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb10
-rw-r--r--meta-ti-bsp/recipes-ti/dsplib/dsplib-c64xp_git.bb6
-rw-r--r--meta-ti-bsp/recipes-ti/dsplib/dsplib-c66x_git.bb8
-rw-r--r--meta-ti-bsp/recipes-ti/dsplib/dsplib-c674x_git.bb8
-rw-r--r--meta-ti-bsp/recipes-ti/dsplib/dsplib.inc78
-rw-r--r--meta-ti-bsp/recipes-ti/framework-components/ti-framework-components.inc21
-rw-r--r--meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb9
-rw-r--r--meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb9
-rw-r--r--meta-ti-bsp/recipes-ti/imglib/imglib-c66x.inc34
-rw-r--r--meta-ti-bsp/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb9
-rw-r--r--meta-ti-bsp/recipes-ti/includes/ti-eula-unpack.inc15
-rw-r--r--meta-ti-bsp/recipes-ti/includes/ti-paths.inc109
-rw-r--r--meta-ti-bsp/recipes-ti/includes/ti-staging.inc6
-rw-r--r--meta-ti-bsp/recipes-ti/includes/ti-unpack.inc83
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-common.inc12
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch40
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux_git.bb49
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples.inc31
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples_git.bb44
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos.inc73
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos_git.bb101
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc.inc20
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc/0001-Add-kernel-build-dir.patch112
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc/omap_remoteproc.conf1
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.service9
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.sh25
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-ipc_git.bb63
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples/0001-examples-Remove-use-of-includedir-and-libdir.patch38
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples_git.bb13
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char.inc18
-rw-r--r--meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char_git.bb7
-rw-r--r--meta-ti-bsp/recipes-ti/mathlib/mathlib-c66x_git.bb5
-rw-r--r--meta-ti-bsp/recipes-ti/mathlib/mathlib-c674x_git.bb5
-rw-r--r--meta-ti-bsp/recipes-ti/mathlib/mathlib.inc77
-rw-r--r--meta-ti-bsp/recipes-ti/openmp-rtos/openmp-rtos_git.bb62
-rw-r--r--meta-ti-bsp/recipes-ti/osal/ti-osal.inc24
-rw-r--r--meta-ti-bsp/recipes-ti/osal/ti-osal_1.24.00.09.bb9
-rw-r--r--meta-ti-bsp/recipes-ti/swtools/swtools_git.bb52
-rw-r--r--meta-ti-bsp/recipes-ti/ti-rtos-bin/files/empty1
-rw-r--r--meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb276
-rw-r--r--meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-metadata.bb47
-rw-r--r--meta-ti-bsp/recipes-ti/uio-test-pruss/uio-test-pruss_git.bb38
-rw-r--r--meta-ti-bsp/recipes-ti/vlib/vlib-c66x.inc32
-rw-r--r--meta-ti-bsp/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb9
-rw-r--r--meta-ti-bsp/recipes-ti/xdais/ti-xdais.inc25
-rw-r--r--meta-ti-bsp/recipes-ti/xdais/ti-xdais_6.26.01.03.bb11
-rw-r--r--meta-ti-bsp/recipes-ti/xdais/ti-xdais_7.24.00.04.bb9
-rw-r--r--meta-ti-bsp/wic/sdimage-2part-efi.wks7
-rw-r--r--meta-ti-bsp/wic/sdimage-2part.wks6
275 files changed, 8874 insertions, 0 deletions
diff --git a/meta-ti-bsp/COPYING.MIT b/meta-ti-bsp/COPYING.MIT
new file mode 100644
index 00000000..fb950dc6
--- /dev/null
+++ b/meta-ti-bsp/COPYING.MIT
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/meta-ti-bsp/README b/meta-ti-bsp/README
new file mode 100644
index 00000000..d832609a
--- /dev/null
+++ b/meta-ti-bsp/README
@@ -0,0 +1,33 @@
+The official OpenEmbedded/Yocto BSP layer for Texas Instruments platforms.
+
+It is hosted on http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/ with the
+source repository at git://git.yoctoproject.org/meta-ti
+
+
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+layers: meta
+branch: master
+
+URI: git://git.yoctoproject.org/meta-arm
+layers: meta-arm
+branch: master
+
+
+The base BSP part of meta-ti should work with different OpenEmbedded/Yocto
+distributions and layer stacks, such as:
+distro-less (only with OE-Core), with Yocto/Poky, with Angstrom or Arago.
+
+Please follow the recommended setup procedures of your OE distribution.
+
+
+Send pull requests, patches, comments or questions to:
+meta-ti@lists.yoctoproject.org
+
+Please note - meta-ti mailing list requires subscription for posting:
+https://lists.yoctoproject.org/g/meta-ti
+
+Maintainers:
+Praneeth Bajjuri <praneeth@ti.com>
+Denys Dmytriyenko <denys@konsulko.com>
diff --git a/meta-ti-bsp/conf/layer.conf b/meta-ti-bsp/conf/layer.conf
new file mode 100644
index 00000000..309e3d2b
--- /dev/null
+++ b/meta-ti-bsp/conf/layer.conf
@@ -0,0 +1,26 @@
+# We have a conf and classes directory, append to BBPATH
+BBPATH .= ":${LAYERDIR}"
+METATIBASE := '${@os.path.normpath("${LAYERDIR}/")}'
+
+# We have a recipes directory, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "meta-ti-bsp"
+BBFILE_PATTERN_meta-ti-bsp := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-ti-bsp = "6"
+
+LAYERSERIES_COMPAT_meta-ti-bsp = "honister"
+
+LICENSE_PATH += "${LAYERDIR}/licenses"
+
+LAYERDEPENDS_meta-ti-bsp = " \
+ core \
+ meta-arm \
+"
+
+SIGGEN_EXCLUDERECIPES_ABISAFE += " \
+ ti-sgx-ddk-km \
+ ti-sgx-ddk-um \
+"
+
+HOSTTOOLS_NONFATAL += "truncate xxd comm"
diff --git a/meta-ti-bsp/conf/machine/am335x-evm.conf b/meta-ti-bsp/conf/machine/am335x-evm.conf
new file mode 100644
index 00000000..469c4d37
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am335x-evm.conf
@@ -0,0 +1,35 @@
+#@TYPE: Machine
+#@NAME: AM335x EVM
+#@DESCRIPTION: Machine configuration for the TI AM335x EVM
+
+require conf/machine/include/ti33x.inc
+
+MACHINE_GUI_CLASS = "smallscreen"
+MACHINE_FEATURES += "touchscreen"
+
+IMAGE_FSTYPES += "ubifs ubi"
+
+# Normally AM335 boards use ttyS0, but ICE uses ttyS3, so try both
+SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS3"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+# UBI information. Note that this is board and kernel specific. Changes
+# in your kernel port may require changes in these variables. For more
+# details about this board please see
+# http://processors.wiki.ti.com/index.php/UBIFS_Support
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# From dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: logical eraseblock size: 126976 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 1988 LEBs
+MKUBIFS_ARGS ?= "-F -m 2048 -e 126976 -c 9900"
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# from dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: physical eraseblock size: 131072 bytes (128 KiB)
+# UBI: sub-page size: 512
+# UBI: VID header offset: 2048 (aligned 2048)
+UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 512 -O 2048"
diff --git a/meta-ti-bsp/conf/machine/am335x-hs-evm.conf b/meta-ti-bsp/conf/machine/am335x-hs-evm.conf
new file mode 100644
index 00000000..7caa5bfd
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am335x-hs-evm.conf
@@ -0,0 +1,18 @@
+#@TYPE: Machine
+#@NAME: AM335x HS EVM
+#@DESCRIPTION: Machine configuration for the TI AM335x HS EVM
+
+require conf/machine/am335x-evm.conf
+
+UBOOT_MACHINE = ""
+# Last config in the list is default
+UBOOT_CONFIG ??= "uart mmc"
+UBOOT_CONFIG[uart] = "am335x_hs_evm_uart_config"
+UBOOT_CONFIG[mmc] = "am335x_hs_evm_config"
+
+UBOOT_ENTRYPOINT = "0x82000000"
+UBOOT_LOADADDRESS = "0x82000000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_CAT}/am3x"
diff --git a/meta-ti-bsp/conf/machine/am437x-evm.conf b/meta-ti-bsp/conf/machine/am437x-evm.conf
new file mode 100644
index 00000000..4e3681d5
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am437x-evm.conf
@@ -0,0 +1,33 @@
+#@TYPE: Machine
+#@NAME: AM437x EVM
+#@DESCRIPTION: Machine configuration for the TI AM437x EVM
+
+require conf/machine/include/ti43x.inc
+
+MACHINE_GUI_CLASS = "smallscreen"
+MACHINE_FEATURES += "touchscreen"
+
+IMAGE_FSTYPES += "ubifs ubi"
+
+SERIAL_CONSOLES = "115200;ttyS0"
+
+# UBI information. Note that this is board and kernel specific. Changes
+# in your kernel port may require changes in these variables. For more
+# details about this board please see
+# http://processors.wiki.ti.com/index.php/UBIFS_Support
+
+# do ubiattach /dev/ubi_ctrl -m 11 -O 4096
+# From dmesg:
+# UBI: smallest flash I/O unit: 4096
+# UBI: logical eraseblock size: 253952 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 994 LEBs
+MKUBIFS_ARGS = "-F -m 4096 -e 253952 -c 4800"
+
+# do ubiattach /dev/ubi_ctrl -m 11 -O 4096
+# from dmesg:
+# UBI: smallest flash I/O unit: 4096
+# UBI: physical eraseblock size: 262144 bytes (256 KiB)
+# UBI: sub-page size: 4096
+# UBI: VID header offset: 4096 (aligned 4096)
+UBINIZE_ARGS = "-m 4096 -p 256KiB -s 4096 -O 4096"
diff --git a/meta-ti-bsp/conf/machine/am437x-hs-evm.conf b/meta-ti-bsp/conf/machine/am437x-hs-evm.conf
new file mode 100644
index 00000000..68b808d2
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am437x-hs-evm.conf
@@ -0,0 +1,20 @@
+#@TYPE: Machine
+#@NAME: AM437x HS EVM
+#@DESCRIPTION: Machine configuration for the TI AM437x HS EVM
+
+require conf/machine/am437x-evm.conf
+
+UBOOT_MACHINE = "am43xx_hs_evm_config"
+
+UBOOT_ENTRYPOINT = "0x82000000"
+UBOOT_LOADADDRESS = "0x82000000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_CAT}/am4x"
+
+OPTEEMACHINE = "ti-am43xx"
+OPTEEFLAVOR = "am43xx"
+OPTEEOUTPUTMACHINE = "ti"
+
+EXTRA_IMAGEDEPENDS += "optee-os"
diff --git a/meta-ti-bsp/conf/machine/am57xx-evm.conf b/meta-ti-bsp/conf/machine/am57xx-evm.conf
new file mode 100644
index 00000000..eb0082ee
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am57xx-evm.conf
@@ -0,0 +1,53 @@
+#@TYPE: Machine
+#@NAME: AM57xx EVM
+#@DESCRIPTION: Machine configuration for the TI AM57xx EVM
+
+require conf/machine/include/dra7xx.inc
+
+MACHINE_FEATURES += "touchscreen"
+
+SERIAL_CONSOLES = "115200;ttyS2"
+
+KERNEL_DEVICETREE = " \
+ am57xx-beagle-x15.dtb \
+ am57xx-beagle-x15-revb1.dtb \
+ am57xx-beagle-x15-revc.dtb \
+ am5729-beagleboneai.dtb \
+ am57xx-evm.dtb \
+ ti/am57xx-evm-common.dtbo \
+ am57xx-evm-reva3.dtb \
+ ti/am57xx-evm-reva3.dtbo \
+ am571x-idk.dtb \
+ ti/am571x-idk-touchscreen.dtbo \
+ am572x-idk.dtb \
+ am574x-idk.dtb \
+ ti/am57xx-idk-osd-lcd-common.dtbo \
+ ti/am572x-idk-touchscreen.dtbo \
+ ti/lcd-osd101t2587.dtbo \
+ ti/lcd-osd101t2045.dtbo \
+"
+
+KERNEL_DEVICETREE += "${@oe.utils.conditional('ENABLE_TI_UIO_DEVICES', '1', 'am574x-idk-pru-excl-uio.dtb am572x-idk-pru-excl-uio.dtb am571x-idk-pru-excl-uio.dtb', '', d)}"
+
+UBOOT_MACHINE = "am57xx_evm_config"
+
+# UBI information. Note that this is board and kernel specific. Changes
+# in your kernel port may require changes in these variables. For more
+# details about this board please see
+# http://processors.wiki.ti.com/index.php/UBIFS_Support
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# From dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: logical eraseblock size: 126976 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 1988 LEBs
+MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 8192"
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# from dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: physical eraseblock size: 131072 bytes (128 KiB)
+# UBI: sub-page size: 512
+# UBI: VID header offset: 2048 (aligned 2048)
+UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512 -O 2048"
diff --git a/meta-ti-bsp/conf/machine/am57xx-hs-evm.conf b/meta-ti-bsp/conf/machine/am57xx-hs-evm.conf
new file mode 100644
index 00000000..5232cbd9
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am57xx-hs-evm.conf
@@ -0,0 +1,21 @@
+#@TYPE: Machine
+#@NAME: AM57xx HS EVM
+#@DESCRIPTION: Machine configuration for the TI AM57xx HS EVM
+
+require conf/machine/am57xx-evm.conf
+
+UBOOT_MACHINE = "am57xx_hs_evm_config"
+
+UBOOT_ENTRYPOINT = "0x82000000"
+UBOOT_LOADADDRESS = "0x82000000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_AUTO}/am5x"
+
+OPTEEMACHINE = "ti-am57xx"
+OPTEEFLAVOR = "am57xx"
+OPTEEOUTPUTMACHINE = "ti"
+OPTEEPAGER = "y"
+
+EXTRA_IMAGEDEPENDS += "optee-os"
diff --git a/meta-ti-bsp/conf/machine/am64xx-evm-k3r5.conf b/meta-ti-bsp/conf/machine/am64xx-evm-k3r5.conf
new file mode 100644
index 00000000..afd36b72
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am64xx-evm-k3r5.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: AM64xx EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM64xx EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "am64x"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "gp"
+
+UBOOT_MACHINE = "am64x_evm_r5_defconfig"
diff --git a/meta-ti-bsp/conf/machine/am64xx-evm.conf b/meta-ti-bsp/conf/machine/am64xx-evm.conf
new file mode 100644
index 00000000..c6ba2a87
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am64xx-evm.conf
@@ -0,0 +1,7 @@
+#@TYPE: Machine
+#@NAME: AM64xx EVM
+#@DESCRIPTION: Machine configuration for the TI AM64xx EVM
+
+require conf/machine/include/am64xx.inc
+
+UBOOT_MACHINE = "am64x_evm_a53_defconfig"
diff --git a/meta-ti-bsp/conf/machine/am64xx-hs-evm-k3r5.conf b/meta-ti-bsp/conf/machine/am64xx-hs-evm-k3r5.conf
new file mode 100644
index 00000000..d12c030f
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am64xx-hs-evm-k3r5.conf
@@ -0,0 +1,14 @@
+#@TYPE: Machine
+#@NAME: AM64xx HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM64xx HS EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "am64x"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "hs"
+SYSFW_SYMLINK = ""
+
+UBOOT_MACHINE = "am64x_hs_evm_r5_defconfig"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/am64xx-hs-evm.conf b/meta-ti-bsp/conf/machine/am64xx-hs-evm.conf
new file mode 100644
index 00000000..44e81463
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am64xx-hs-evm.conf
@@ -0,0 +1,22 @@
+#@TYPE: Machine
+#@NAME: AM64xx HS EVM
+#@DESCRIPTION: Machine configuration for the TI AM64xx HS EVM
+
+require conf/machine/include/am64xx.inc
+
+UBOOT_MACHINE = "am64x_hs_evm_a53_defconfig"
+
+UBOOT_ENTRYPOINT = "0x80080000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+UBOOT_DTB_LOADADDRESS = "0x83000000"
+UBOOT_DTBO_LOADADDRESS = "0x83080000"
+UBOOT_DTBO_OFFSET = "0x00010000"
+
+SPL_BINARY = "tispl.bin_HS"
+SPL_BINARYNAME = "tispl.bin"
+UBOOT_BINARY = "u-boot.img_HS"
+IMAGE_BOOT_FILES = "${UBOOT_BINARY}"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/am65xx-evm-k3r5-sr2.conf b/meta-ti-bsp/conf/machine/am65xx-evm-k3r5-sr2.conf
new file mode 100644
index 00000000..e74dd3ab
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-evm-k3r5-sr2.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: AM65xx SR2.0 EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM65xx SR2.0 EVM (R5F core)
+
+# Booting SR2 requires different SYSFW, the rest is handled at runtime
+
+require conf/machine/am65xx-evm-k3r5.conf
+SOC_FAMILY:append = ":k3r5-sr2"
+
+SYSFW_SOC = "am65x_sr2"
+SYSFW_SYMLINK = "sysfw.itb"
diff --git a/meta-ti-bsp/conf/machine/am65xx-evm-k3r5.conf b/meta-ti-bsp/conf/machine/am65xx-evm-k3r5.conf
new file mode 100644
index 00000000..bd17474e
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-evm-k3r5.conf
@@ -0,0 +1,12 @@
+#@TYPE: Machine
+#@NAME: AM65xx EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM65xx EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "am65x"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "gp"
+SYSFW_SYMLINK = ""
+
+UBOOT_MACHINE = "am65x_evm_r5_defconfig"
diff --git a/meta-ti-bsp/conf/machine/am65xx-evm.conf b/meta-ti-bsp/conf/machine/am65xx-evm.conf
new file mode 100644
index 00000000..8b6ef546
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-evm.conf
@@ -0,0 +1,7 @@
+#@TYPE: Machine
+#@NAME: AM65xx EVM
+#@DESCRIPTION: Machine configuration for the TI AM65xx EVM
+
+require conf/machine/include/am65xx.inc
+
+UBOOT_MACHINE = "am65x_evm_a53_defconfig"
diff --git a/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5-sr2.conf b/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5-sr2.conf
new file mode 100644
index 00000000..ff1645e4
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5-sr2.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: AM65xx SR2.0 HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM65xx SR2.0 HS EVM (R5F core)
+
+# Booting SR2 requires different SYSFW, the rest is handled at runtime
+
+require conf/machine/am65xx-hs-evm-k3r5.conf
+SOC_FAMILY:append = ":k3r5-sr2"
+
+SYSFW_SOC = "am65x_sr2"
+SYSFW_SYMLINK = "sysfw.itb"
diff --git a/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5.conf b/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5.conf
new file mode 100644
index 00000000..d6d4b1e3
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-hs-evm-k3r5.conf
@@ -0,0 +1,14 @@
+#@TYPE: Machine
+#@NAME: AM65xx HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM65xx HS EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "am65x"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "hs"
+SYSFW_SYMLINK = ""
+
+UBOOT_MACHINE = "am65x_hs_evm_r5_defconfig"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/am65xx-hs-evm.conf b/meta-ti-bsp/conf/machine/am65xx-hs-evm.conf
new file mode 100644
index 00000000..e4eebb6a
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/am65xx-hs-evm.conf
@@ -0,0 +1,22 @@
+#@TYPE: Machine
+#@NAME: AM65xx HS EVM
+#@DESCRIPTION: Machine configuration for the TI AM65xx HS EVM
+
+require conf/machine/include/am65xx.inc
+
+UBOOT_MACHINE = "am65x_hs_evm_a53_defconfig"
+
+UBOOT_ENTRYPOINT = "0x80080000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+UBOOT_DTB_LOADADDRESS = "0x83000000"
+UBOOT_DTBO_LOADADDRESS = "0x83080000"
+UBOOT_DTBO_OFFSET = "0x00010000"
+
+SPL_BINARY = "tispl.bin_HS"
+SPL_BINARYNAME = "tispl.bin"
+UBOOT_BINARY = "u-boot.img_HS"
+IMAGE_BOOT_FILES = "${UBOOT_BINARY}"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/beagle-x15.conf b/meta-ti-bsp/conf/machine/beagle-x15.conf
new file mode 100644
index 00000000..c7503266
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/beagle-x15.conf
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: BeagleBoard X15
+#@DESCRIPTION: Machine configuration for the BeagleBoard X15
+
+require conf/machine/include/dra7xx.inc
+
+KERNEL_DEVICETREE = "am57xx-beagle-x15.dtb am57xx-beagle-x15-revb1.dtb am57xx-beagle-x15-revc.dtb"
+
+MACHINE_GUI_CLASS = "bigscreen"
+
+SERIAL_CONSOLES = "115200;ttyS2"
+
+UBOOT_MACHINE = "am57xx_evm_config"
diff --git a/meta-ti-bsp/conf/machine/beaglebone.conf b/meta-ti-bsp/conf/machine/beaglebone.conf
new file mode 100644
index 00000000..cce8fd09
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/beaglebone.conf
@@ -0,0 +1,16 @@
+#@TYPE: Machine
+#@NAME: BeagleBone machine
+#@DESCRIPTION: Machine configuration for the http://beagleboard.org/bone board
+
+require conf/machine/include/ti33x.inc
+
+KERNEL_DEVICETREE = "am335x-bone.dtb am335x-boneblue.dtb \
+ am335x-boneblack.dtb am335x-boneblack-wireless.dtb \
+ am335x-bonegreen.dtb am335x-bonegreen-wireless.dtb"
+
+# Only has DVI connector for external screen
+MACHINE_GUI_CLASS = "bigscreen"
+
+SERIAL_CONSOLES = "115200;ttyS0"
+
+IMAGE_INSTALL:append = " kernel-devicetree kernel-image-zimage"
diff --git a/meta-ti-bsp/conf/machine/dra7xx-evm.conf b/meta-ti-bsp/conf/machine/dra7xx-evm.conf
new file mode 100644
index 00000000..5fa1dfa5
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/dra7xx-evm.conf
@@ -0,0 +1,48 @@
+#@TYPE: Machine
+#@NAME: DRA7xx EVM
+#@DESCRIPTION: Machine configuration for the TI DRA7xx EVM
+
+require conf/machine/include/dra7xx.inc
+
+MACHINE_FEATURES += "touchscreen"
+
+SERIAL_CONSOLES = "115200;ttyS0"
+
+KERNEL_DEVICETREE = " \
+ dra7-evm.dtb \
+ ti/dra7x-evm-osd-lcd-common.dtbo \
+ dra71-evm.dtb \
+ dra71-evm-nand.dtb \
+ ti/dra71-evm-lcd-auo-g101evn01.0.dtbo \
+ dra72-evm.dtb \
+ dra72-evm-revc.dtb \
+ ti/dra72-evm-touchscreen.dtbo \
+ ti/dra74-evm-touchscreen.dtbo \
+ dra76-evm.dtb \
+ ti/dra76-evm-tfp410.dtbo \
+ ti/lcd-osd101t2045.dtbo \
+ ti/lcd-osd101t2587.dtbo \
+"
+
+UBOOT_MACHINE = "dra7xx_evm_config"
+
+# UBI information. Note that this is board and kernel specific. Changes
+# in your kernel port may require changes in these variables. For more
+# details about this board please see
+# http://processors.wiki.ti.com/index.php/UBIFS_Support
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# From dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: logical eraseblock size: 126976 bytes
+# from ubiattach stdout:
+# UBI device number 0, total 1988 LEBs
+MKUBIFS_ARGS = "-F -m 2048 -e 126976 -c 8192"
+
+# do ubiattach /dev/ubi_ctrl -m 7 -O 2048
+# from dmesg:
+# UBI: smallest flash I/O unit: 2048
+# UBI: physical eraseblock size: 131072 bytes (128 KiB)
+# UBI: sub-page size: 512
+# UBI: VID header offset: 2048 (aligned 2048)
+UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512 -O 2048"
diff --git a/meta-ti-bsp/conf/machine/dra7xx-hs-evm.conf b/meta-ti-bsp/conf/machine/dra7xx-hs-evm.conf
new file mode 100644
index 00000000..49630081
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/dra7xx-hs-evm.conf
@@ -0,0 +1,21 @@
+#@TYPE: Machine
+#@NAME: DRA7xx HS EVM
+#@DESCRIPTION: Machine configuration for the TI DRA7xx HS EVM
+
+require conf/machine/dra7xx-evm.conf
+
+UBOOT_MACHINE = "dra7xx_hs_evm_config"
+
+UBOOT_ENTRYPOINT = "0x82000000"
+UBOOT_LOADADDRESS = "0x82000000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_AUTO}/dra7"
+
+OPTEEMACHINE = "ti-dra7xx"
+OPTEEFLAVOR = "dra7xx"
+OPTEEOUTPUTMACHINE = "ti"
+OPTEEPAGER = "y"
+
+EXTRA_IMAGEDEPENDS += "optee-os"
diff --git a/meta-ti-bsp/conf/machine/include/am64xx.inc b/meta-ti-bsp/conf/machine/include/am64xx.inc
new file mode 100644
index 00000000..afb96a22
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/am64xx.inc
@@ -0,0 +1,24 @@
+require conf/machine/include/k3.inc
+SOC_FAMILY:append = ":am64xx"
+
+MACHINE_FEATURES += "screen touchscreen"
+
+SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS1"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+KERNEL_DEVICETREE = " \
+ ti/k3-am642-evm.dtb \
+ ti/k3-am642-sk.dtb \
+ ti/k3-am642-evm-icssg1-dualemac.dtbo \
+ ti/k3-am642-evm-nand.dtbo \
+"
+
+# AM64 supports multi-certificate images, use the same
+IMAGE_BOOT_FILES = "${IMAGE_BOOT_FILES_MULTI_CERT}"
+
+do_image_wic[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
+
+TFA_BOARD = "lite"
+OPTEEMACHINE = "k3-am65x"
+OPTEEOUTPUTMACHINE = "k3"
diff --git a/meta-ti-bsp/conf/machine/include/am65xx.inc b/meta-ti-bsp/conf/machine/include/am65xx.inc
new file mode 100644
index 00000000..111ef96f
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/am65xx.inc
@@ -0,0 +1,32 @@
+require conf/machine/include/k3.inc
+SOC_FAMILY:append = ":am65xx"
+
+MACHINE_FEATURES += "screen touchscreen gpu"
+
+SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS1"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+KERNEL_DEVICETREE = " \
+ ti/k3-am654-base-board.dtb \
+ ti/k3-am654-base-board-sr1.dtbo \
+ ti/k3-am654-gp.dtbo \
+ ti/k3-am654-idk.dtbo \
+ ti/k3-am654-idk-sr1.dtbo \
+ ti/k3-am654-sr1.dtbo \
+ ti/k3-am654-pcie-usb2.dtbo \
+ ti/k3-am654-pcie-usb3.dtbo \
+ ti/k3-am654-evm-tc358876.dtbo \
+ ti/k3-am654-evm-oldi-lcd1evm.dtbo \
+ ti/k3-am654-evm-ov5640.dtbo \
+"
+
+BBMULTICONFIG += "k3r5-sr2"
+
+# Use default IMAGE_BOOT_FILES_LEGACY files
+# Since default sysfw.itb on AM65x is for SR2.0, add a version for SR1.0
+IMAGE_BOOT_FILES += "sysfw-am65x-evm.itb"
+do_image_wic[mcdepends] += "mc::k3r5-sr2:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] += "mc::k3r5-sr2:ti-sci-fw:do_deploy"
+
+OPTEEMACHINE = "k3-am65x"
+OPTEEOUTPUTMACHINE = "k3"
diff --git a/meta-ti-bsp/conf/machine/include/dra7xx.inc b/meta-ti-bsp/conf/machine/include/dra7xx.inc
new file mode 100644
index 00000000..a02421d9
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/dra7xx.inc
@@ -0,0 +1,4 @@
+require conf/machine/include/omap-a15.inc
+SOC_FAMILY:append = ":dra7xx"
+
+MACHINE_FEATURES += "pci"
diff --git a/meta-ti-bsp/conf/machine/include/j7.inc b/meta-ti-bsp/conf/machine/include/j7.inc
new file mode 100644
index 00000000..4ea3a5d8
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/j7.inc
@@ -0,0 +1,7 @@
+require conf/machine/include/k3.inc
+SOC_FAMILY:append = ":j7"
+
+OPTEEMACHINE = "k3-j721e"
+OPTEEOUTPUTMACHINE = "k3"
+
+# Use default IMAGE_BOOT_FILES_LEGACY files
diff --git a/meta-ti-bsp/conf/machine/include/k3.inc b/meta-ti-bsp/conf/machine/include/k3.inc
new file mode 100644
index 00000000..a39ddd2a
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/k3.inc
@@ -0,0 +1,55 @@
+# TI K3 Aarch64 profile for Cortex-A53/A72 cores
+
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":k3"
+
+require conf/machine/include/arm/arch-arm64.inc
+
+BBMULTICONFIG += "k3r5"
+
+# Increase this everytime you change something in the kernel
+MACHINE_KERNEL_PR = "r0"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
+PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+
+KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPES = "Image vmlinux.gz"
+
+UBOOT_ARCH = "arm"
+UBOOT_ENTRYPOINT = "0x80008000"
+UBOOT_LOADADDRESS = "0x80008000"
+
+SPL_BINARY = "tispl.bin"
+UBOOT_SUFFIX = "img"
+
+EXTRA_IMAGEDEPENDS += "virtual/bootloader"
+
+TFA_PLATFORM = "k3"
+TFA_BOARD = "generic"
+
+MACHINE_GUI_CLASS = "smallscreen"
+
+# Use the expected value of the ubifs filesystem's volume name in the kernel
+# and u-boot.
+UBI_VOLNAME = "rootfs"
+
+# List common SoC features, may need to add touchscreen for specific machines
+MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 alsa ethernet pci"
+
+IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
+
+IMAGE_BOOT_FILES_LEGACY = "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} tiboot3.bin sysfw.itb"
+IMAGE_BOOT_FILES_MULTI_CERT = "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} tiboot3.bin"
+
+IMAGE_BOOT_FILES ?= "${IMAGE_BOOT_FILES_LEGACY}"
+IMAGE_EFI_BOOT_FILES ?= "${IMAGE_BOOT_FILES}"
+
+EFI_PROVIDER ?= "grub-efi"
+MACHINE_FEATURES += "efi"
+
+WKS_FILE ?= "sdimage-2part-efi.wks"
+do_image_wic[depends] += "virtual/bootloader:do_deploy"
+do_image_wic[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy mc::k3r5:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy mc::k3r5:ti-sci-fw:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/include/k3r5.inc b/meta-ti-bsp/conf/machine/include/k3r5.inc
new file mode 100644
index 00000000..3cc79061
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/k3r5.inc
@@ -0,0 +1,24 @@
+# TI K3 Armv7 profile for Cortex-R5F cores
+
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":k3r5"
+
+# The closest of existing tunes for Cortex-R5F
+DEFAULTTUNE = "armv7athf"
+require conf/machine/include/arm/armv7a/tune-cortexa8.inc
+
+# R5 runs early bootloader and loads SYSFW
+# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am65x/README
+# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/j721e/README
+PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
+PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+
+SPL_BINARY = ""
+UBOOT_SUFFIX = "bin"
+UBOOT_BINARY = "tiboot3.${UBOOT_SUFFIX}"
+UBOOT_IMAGE = "tiboot3-${MAINMACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
+UBOOT_SYMLINK = "tiboot3-${MAINMACHINE}.${UBOOT_SUFFIX}"
+
+PACKAGECONFIG:pn-u-boot-ti-staging = ""
+PACKAGECONFIG:pn-u-boot-ti-mainline = ""
diff --git a/meta-ti-bsp/conf/machine/include/omap-a15.inc b/meta-ti-bsp/conf/machine/include/omap-a15.inc
new file mode 100644
index 00000000..9a2e0044
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/omap-a15.inc
@@ -0,0 +1,55 @@
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":omap-a15"
+
+DEFAULTTUNE ?= "armv7athf-neon"
+require conf/machine/include/arm/armv7a/tune-cortexa15.inc
+
+# Increase this everytime you change something in the kernel
+MACHINE_KERNEL_PR = "r7"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
+PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+
+KERNEL_IMAGETYPE = "zImage"
+KERNEL_IMAGETYPES = "zImage uImage"
+KERNEL_CLASSES += "kernel-uimage"
+
+UBOOT_ARCH = "arm"
+UBOOT_ENTRYPOINT = "0x80008000"
+UBOOT_LOADADDRESS = "0x80008000"
+
+DEVICETREE_FILE = "${@d.getVar('KERNEL_DEVICETREE').replace("ti/","")}"
+
+# Generate an extlinux.conf file
+UBOOT_EXTLINUX = "1"
+UBOOT_EXTLINUX_ROOT = "root=PARTUUID=${uuid}"
+UBOOT_EXTLINUX_BOOT_FILES = " \
+ extlinux.conf;extlinux/extlinux.conf \
+ ${KERNEL_IMAGETYPE} \
+ ${DEVICETREE_FILE} \
+"
+
+SPL_BINARY = "MLO"
+UBOOT_SUFFIX = "img"
+
+EXTRA_IMAGEDEPENDS += "virtual/bootloader"
+
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+XSERVER = "xserver-xorg \
+ xf86-input-evdev \
+ xf86-video-fbdev"
+
+MACHINE_GUI_CLASS = "smallscreen"
+
+# Use the expected value of the ubifs filesystem's volume name in the kernel
+# and u-boot.
+UBI_VOLNAME = "rootfs"
+
+# List common SoC features, may need to add touchscreen for specific machines
+MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa ethernet gpu mmip dsp gc320"
+
+IMAGE_FSTYPES += "tar.xz wic.xz"
+WKS_FILE ?= "sdimage-2part.wks"
+IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
+do_image_wic[depends] += "u-boot:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/include/omapl1.inc b/meta-ti-bsp/conf/machine/include/omapl1.inc
new file mode 100644
index 00000000..d0262c3f
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/omapl1.inc
@@ -0,0 +1,2 @@
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":omapl1"
diff --git a/meta-ti-bsp/conf/machine/include/omapl138.inc b/meta-ti-bsp/conf/machine/include/omapl138.inc
new file mode 100644
index 00000000..c6eb0cd9
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/omapl138.inc
@@ -0,0 +1,2 @@
+require conf/machine/include/omapl1.inc
+SOC_FAMILY:append = ":omapl138"
diff --git a/meta-ti-bsp/conf/machine/include/ti-soc.inc b/meta-ti-bsp/conf/machine/include/ti-soc.inc
new file mode 100644
index 00000000..2792d2a0
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/ti-soc.inc
@@ -0,0 +1,5 @@
+# This is a generic TI SOC family. It is a superset of all other SOCs
+# and platforms defined in meta-ti to allow BSP-level overrides.
+SOC_FAMILY = "ti-soc"
+KERNEL_DTB_OVERLAY_SUPPORT ?= "1"
+require conf/machine/include/soc-family.inc
diff --git a/meta-ti-bsp/conf/machine/include/ti33x.inc b/meta-ti-bsp/conf/machine/include/ti33x.inc
new file mode 100644
index 00000000..afb80fd6
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/ti33x.inc
@@ -0,0 +1,70 @@
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":ti33x"
+
+DEFAULTTUNE ?= "armv7athf-neon"
+require conf/machine/include/arm/armv7a/tune-cortexa8.inc
+
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+
+# For built-in LCD, add xf86-input-tslib
+XSERVER = "xserver-xorg \
+ xf86-input-evdev \
+ xf86-input-mouse \
+ xf86-video-fbdev \
+ xf86-input-keyboard"
+
+# Default to external video, change to smallscreen for built-in LCD
+MACHINE_GUI_CLASS = "bigscreen"
+
+# Increase this everytime you change something in the kernel
+MACHINE_KERNEL_PR = "r22"
+
+# Default providers, may need to override for specific machines
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
+PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+
+KERNEL_IMAGETYPE = "zImage"
+
+KERNEL_DEVICETREE = " \
+ am335x-evm.dtb am335x-evmsk.dtb \
+ am335x-icev2.dtb \
+ am335x-pocketbeagle.dtb am335x-bone.dtb am335x-boneblue.dtb \
+ am335x-bonegreen.dtb am335x-bonegreen-wireless.dtb \
+ am335x-boneblack.dtb am335x-boneblack-wireless.dtb \
+ am335x-sancloud-bbe.dtb \
+"
+
+KERNEL_DEVICETREE += "${@oe.utils.conditional('ENABLE_TI_UIO_DEVICES', '1', 'am335x-icev2-pru-excl-uio.dtb', '', d)}"
+
+UBOOT_ARCH = "arm"
+UBOOT_MACHINE = "am335x_evm_config"
+
+UBOOT_ENTRYPOINT = "0x80008000"
+UBOOT_LOADADDRESS = "0x80008000"
+
+# Generate an extlinux.conf file
+UBOOT_EXTLINUX = "1"
+UBOOT_EXTLINUX_ROOT = "root=PARTUUID=${uuid}"
+UBOOT_EXTLINUX_BOOT_FILES = " \
+ extlinux.conf;extlinux/extlinux.conf \
+ ${KERNEL_IMAGETYPE} \
+ ${KERNEL_DEVICETREE} \
+"
+
+SPL_BINARY = "MLO"
+UBOOT_SUFFIX = "img"
+
+# Use the expected value of the ubifs filesystem's volume name in the kernel
+# and u-boot.
+UBI_VOLNAME = "rootfs"
+
+EXTRA_IMAGEDEPENDS += "virtual/bootloader"
+
+# List common SoC features, may need to add touchscreen for specific machines
+MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa ethernet gpu"
+
+IMAGE_FSTYPES += "tar.xz wic.xz"
+WKS_FILE ?= "sdimage-2part.wks"
+IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
+do_image_wic[depends] += "virtual/bootloader:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/include/ti43x.inc b/meta-ti-bsp/conf/machine/include/ti43x.inc
new file mode 100644
index 00000000..2c3a3770
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/include/ti43x.inc
@@ -0,0 +1,67 @@
+require conf/machine/include/ti-soc.inc
+SOC_FAMILY:append = ":ti43x"
+
+DEFAULTTUNE ?= "armv7athf-neon"
+require conf/machine/include/arm/armv7a/tune-cortexa9.inc
+
+PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
+
+# For built-in LCD, add xf86-input-tslib
+XSERVER = "xserver-xorg \
+ xf86-input-evdev \
+ xf86-input-mouse \
+ xf86-video-fbdev \
+ xf86-input-keyboard"
+
+# Default to external video, change to smallscreen for built-in LCD
+MACHINE_GUI_CLASS = "bigscreen"
+
+# Increase this everytime you change something in the kernel
+MACHINE_KERNEL_PR = "r3"
+
+# Default providers, may need to override for specific machines
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
+PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
+
+KERNEL_IMAGETYPE = "zImage"
+
+KERNEL_DEVICETREE = " \
+ am437x-gp-evm.dtb am437x-gp-evm-hdmi.dtb \
+ am437x-sk-evm.dtb am437x-idk-evm.dtb \
+ am43x-epos-evm.dtb am43x-epos-evm-hdmi.dtb \
+"
+
+KERNEL_DEVICETREE += "${@oe.utils.conditional('ENABLE_TI_UIO_DEVICES', '1', 'am437x-idk-pru-excl-uio.dtb', '', d)}"
+
+UBOOT_ARCH = "arm"
+UBOOT_MACHINE = "am43xx_evm_config"
+
+UBOOT_ENTRYPOINT = "0x80008000"
+UBOOT_LOADADDRESS = "0x80008000"
+
+# Generate an extlinux.conf file
+UBOOT_EXTLINUX = "1"
+UBOOT_EXTLINUX_ROOT = "root=PARTUUID=${uuid}"
+UBOOT_EXTLINUX_BOOT_FILES = " \
+ extlinux.conf;extlinux/extlinux.conf \
+ ${KERNEL_IMAGETYPE} \
+ ${KERNEL_DEVICETREE} \
+"
+
+SPL_BINARY = "MLO"
+UBOOT_SUFFIX = "img"
+
+# Use the expected value of the ubifs filesystem's volume name in the kernel
+# and u-boot.
+UBI_VOLNAME = "rootfs"
+
+EXTRA_IMAGEDEPENDS += "u-boot"
+
+# List common SoC features, may need to add touchscreen for specific machines
+MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa ethernet gpu"
+
+IMAGE_FSTYPES += "tar.xz wic.xz"
+WKS_FILE ?= "sdimage-2part.wks"
+IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
+do_image_wic[depends] += "u-boot:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/j7-evm-k3r5.conf b/meta-ti-bsp/conf/machine/j7-evm-k3r5.conf
new file mode 100644
index 00000000..b9e8cc01
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7-evm-k3r5.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: J7 EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI J7 EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "j721e"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "gp"
+
+UBOOT_MACHINE = "j721e_evm_r5_defconfig"
diff --git a/meta-ti-bsp/conf/machine/j7-evm.conf b/meta-ti-bsp/conf/machine/j7-evm.conf
new file mode 100644
index 00000000..267a5e14
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7-evm.conf
@@ -0,0 +1,18 @@
+#@TYPE: Machine
+#@NAME: J7 EVM
+#@DESCRIPTION: Machine configuration for the TI J7 EVM
+
+require conf/machine/include/j7.inc
+
+MACHINE_FEATURES += "gpu"
+
+SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS3"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+KERNEL_DEVICETREE = " \
+ ti/k3-j721e-common-proc-board.dtb \
+ ti/k3-j721e-common-proc-board-infotainment.dtbo \
+ ti/k3-j721e-sk.dtb \
+"
+
+UBOOT_MACHINE = "j721e_evm_a72_config"
diff --git a/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5-sr1-1.conf b/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5-sr1-1.conf
new file mode 100644
index 00000000..73f5afd6
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5-sr1-1.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: J7 SR1.1 HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI J7 SR1.1 HS EVM (R5F core)
+
+# Booting SR1.1 requires different SYSFW, the rest is handled at runtime
+
+require conf/machine/j7-hs-evm-k3r5.conf
+SOC_FAMILY:append = ":k3r5-sr1-1"
+
+SYSFW_SOC = "j721e_sr1_1"
+SYSFW_SYMLINK = "sysfw.itb"
diff --git a/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5.conf b/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5.conf
new file mode 100644
index 00000000..53a7016f
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7-hs-evm-k3r5.conf
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: J7 HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI J7 HS EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "j721e"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "hs"
+
+UBOOT_MACHINE = "j721e_hs_evm_r5_defconfig"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/j7-hs-evm.conf b/meta-ti-bsp/conf/machine/j7-hs-evm.conf
new file mode 100644
index 00000000..f2e3ccf5
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7-hs-evm.conf
@@ -0,0 +1,30 @@
+#@TYPE: Machine
+#@NAME: J7 HS EVM
+#@DESCRIPTION: Machine configuration for the TI J7 HS EVM
+
+require conf/machine/j7-evm.conf
+
+UBOOT_MACHINE = "j721e_hs_evm_a72_defconfig"
+
+UBOOT_ENTRYPOINT = "0x80080000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+UBOOT_DTB_LOADADDRESS = "0x83000000"
+UBOOT_DTBO_LOADADDRESS = "0x83080000"
+UBOOT_DTBO_OFFSET = "0x00010000"
+
+SPL_BINARY = "tispl.bin_HS"
+SPL_BINARYNAME = "tispl.bin"
+UBOOT_BINARY = "u-boot.img_HS"
+IMAGE_BOOT_FILES = "${UBOOT_BINARY}"
+
+BBMULTICONFIG += "k3r5-sr1-1"
+
+# Use default IMAGE_BOOT_FILES_LEGACY files
+# Since default sysfw.itb on J7 is for SR1.1, add a version for SR1.0
+IMAGE_BOOT_FILES += "sysfw-j721e-evm.itb"
+do_image_wic[mcdepends] += "mc::k3r5-sr1-1:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] += "mc::k3r5-sr1-1:ti-sci-fw:do_deploy"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/j7200-evm-k3r5.conf b/meta-ti-bsp/conf/machine/j7200-evm-k3r5.conf
new file mode 100644
index 00000000..68061883
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7200-evm-k3r5.conf
@@ -0,0 +1,11 @@
+#@TYPE: Machine
+#@NAME: J7200 EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI J7200 EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "j7200"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "gp"
+
+UBOOT_MACHINE = "j7200_evm_r5_defconfig"
diff --git a/meta-ti-bsp/conf/machine/j7200-evm.conf b/meta-ti-bsp/conf/machine/j7200-evm.conf
new file mode 100644
index 00000000..2565c90c
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7200-evm.conf
@@ -0,0 +1,20 @@
+#@TYPE: Machine
+#@NAME: J7200 EVM
+#@DESCRIPTION: Machine configuration for the TI J7200 EVM
+
+require conf/machine/include/j7.inc
+
+SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS3"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+KERNEL_DEVICETREE = " \
+ ti/k3-j7200-common-proc-board.dtb \
+"
+
+UBOOT_MACHINE = "j7200_evm_a72_config"
+
+# J7200 supports multi-certificate images, use the same
+IMAGE_BOOT_FILES = "${IMAGE_BOOT_FILES_MULTI_CERT}"
+
+do_image_wic[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
diff --git a/meta-ti-bsp/conf/machine/j7200-hs-evm-k3r5.conf b/meta-ti-bsp/conf/machine/j7200-hs-evm-k3r5.conf
new file mode 100644
index 00000000..488f19ec
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7200-hs-evm-k3r5.conf
@@ -0,0 +1,13 @@
+#@TYPE: Machine
+#@NAME: J7200 HS EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI J7200 HS EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "j7200"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "hs"
+
+UBOOT_MACHINE = "j7200_hs_evm_r5_defconfig"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/j7200-hs-evm.conf b/meta-ti-bsp/conf/machine/j7200-hs-evm.conf
new file mode 100644
index 00000000..a5bd637e
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/j7200-hs-evm.conf
@@ -0,0 +1,22 @@
+#@TYPE: Machine
+#@NAME: J7200 HS EVM
+#@DESCRIPTION: Machine configuration for the TI J7200 HS EVM
+
+require conf/machine/j7200-evm.conf
+
+UBOOT_MACHINE = "j7200_hs_evm_a72_defconfig"
+
+UBOOT_ENTRYPOINT = "0x80080000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_RD_LOADADDRESS = "0x84000000"
+UBOOT_RD_ENTRYPOINT = "0x84000000"
+UBOOT_DTB_LOADADDRESS = "0x83000000"
+UBOOT_DTBO_LOADADDRESS = "0x83080000"
+UBOOT_DTBO_OFFSET = "0x00010000"
+
+SPL_BINARY = "tispl.bin_HS"
+SPL_BINARYNAME = "tispl.bin"
+UBOOT_BINARY = "u-boot.img_HS"
+IMAGE_BOOT_FILES = "${UBOOT_BINARY}"
+
+TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/meta-ti-bsp/conf/machine/omapl138-lcdk.conf b/meta-ti-bsp/conf/machine/omapl138-lcdk.conf
new file mode 100644
index 00000000..ba4d5645
--- /dev/null
+++ b/meta-ti-bsp/conf/machine/omapl138-lcdk.conf
@@ -0,0 +1,19 @@
+#@TYPE: Machine
+#@NAME: OMAP-L138 LCDK
+#@DESCRIPTION: Machine configuration for the TI OMAP-L138 LCDK board
+
+require conf/machine/include/davinci.inc
+require conf/machine/include/omapl138.inc
+
+UBOOT_MACHINE = "omapl138_lcdk_config"
+UBOOT_SUFFIX = "ais"
+SPL_BINARY = ""
+
+UBOOT_ENTRYPOINT = "0xc0008000"
+UBOOT_LOADADDRESS = "0xc0008000"
+
+IMAGE_FSTYPES += "tar.xz"
+
+SERIAL_CONSOLES = "115200;ttyS2"
+
+KERNEL_DEVICETREE = "da850-evm.dtb da850-lcdk.dtb"
diff --git a/meta-ti-bsp/conf/multiconfig/k3r5-sr1-1.conf b/meta-ti-bsp/conf/multiconfig/k3r5-sr1-1.conf
new file mode 100644
index 00000000..428f2212
--- /dev/null
+++ b/meta-ti-bsp/conf/multiconfig/k3r5-sr1-1.conf
@@ -0,0 +1,3 @@
+require k3r5.conf
+
+MACHINE:append = "-sr1-1"
diff --git a/meta-ti-bsp/conf/multiconfig/k3r5-sr2.conf b/meta-ti-bsp/conf/multiconfig/k3r5-sr2.conf
new file mode 100644
index 00000000..e933b9cc
--- /dev/null
+++ b/meta-ti-bsp/conf/multiconfig/k3r5-sr2.conf
@@ -0,0 +1,3 @@
+require k3r5.conf
+
+MACHINE:append = "-sr2"
diff --git a/meta-ti-bsp/conf/multiconfig/k3r5.conf b/meta-ti-bsp/conf/multiconfig/k3r5.conf
new file mode 100644
index 00000000..deb07210
--- /dev/null
+++ b/meta-ti-bsp/conf/multiconfig/k3r5.conf
@@ -0,0 +1,5 @@
+MAINMACHINE := "${MACHINE}"
+
+DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
+
+MACHINE:append = "-k3r5"
diff --git a/meta-ti-bsp/licenses/Hewlett-Packard b/meta-ti-bsp/licenses/Hewlett-Packard
new file mode 100644
index 00000000..569d009c
--- /dev/null
+++ b/meta-ti-bsp/licenses/Hewlett-Packard
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ */
diff --git a/meta-ti-bsp/licenses/Patrick-Powell b/meta-ti-bsp/licenses/Patrick-Powell
new file mode 100644
index 00000000..9c6eac42
--- /dev/null
+++ b/meta-ti-bsp/licenses/Patrick-Powell
@@ -0,0 +1,4 @@
+Copyright Patrick Powell 1995
+This code is based on code written by Patrick Powell (papowell@astart.com)
+It may be used for any purpose as long as this notice remains intact
+on all source code distributions
diff --git a/meta-ti-bsp/licenses/TI-IMG b/meta-ti-bsp/licenses/TI-IMG
new file mode 100644
index 00000000..d4135576
--- /dev/null
+++ b/meta-ti-bsp/licenses/TI-IMG
@@ -0,0 +1,63 @@
+This license applies to the Imagination D5520 firmware image, pvdec_full_bin.fw.
+
+Copyright (C) 2019 Texas Instruments Incorporated
+
+All rights reserved not granted herein.
+
+Limited License.
+
+Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
+license under copyrights and patents it now or hereafter owns or controls to
+make, have made, use, import, offer to sell and sell ("Utilize") this software
+subject to the terms herein. With respect to the foregoing patent license, such
+license is granted solely to the extent that any such patent is necessary to
+Utilize the software alone. The patent license shall not apply to any
+combinations which include this software, other than combinations with devices
+manufactured by or for TI (“TI Devices”). No hardware patent is licensed
+hereunder.
+
+Redistributions must preserve existing copyright notices and reproduce this
+license (including the above copyright notice and the disclaimer and
+(if applicable) source code license limitations below) in the documentation
+and/or other materials provided with the distribution
+
+Redistribution and use in binary form, without modification, are permitted
+provided that the following conditions are met:
+
+ * No reverse engineering, decompilation, or disassembly of this
+ software is permitted with respect to any software provided in binary
+ form.
+
+ * any redistribution and use are licensed by TI for use only with TI
+ Devices.
+
+ * Nothing shall obligate TI to provide you with source code for the
+ software licensed and provided to you in object code.
+
+If software source code is provided to you, modification and redistribution of
+the source code are permitted provided that the following conditions are met:
+
+ * any redistribution and use of the source code, including any
+ resulting derivative works, are licensed by TI for use only with TI
+ Devices.
+
+ * any redistribution and use of any object code compiled from the
+ source code and any resulting derivative works, are licensed by TI
+ for use only with TI Devices.
+
+Neither the name of Texas Instruments Incorporated nor the names of its
+suppliers may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+DISCLAIMER.
+
+THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL TI AND TI’S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-ti-bsp/licenses/TI-TFL b/meta-ti-bsp/licenses/TI-TFL
new file mode 100644
index 00000000..264692b7
--- /dev/null
+++ b/meta-ti-bsp/licenses/TI-TFL
@@ -0,0 +1,62 @@
+TEXAS INSTRUMENTS TEXT FILE LICENSE
+
+Copyright (c) [earliest year] - [latest year] Texas Instruments Incorporated
+
+All rights reserved not granted herein.
+
+Limited License.
+
+Texas Instruments Incorporated grants a world-wide, royalty-free,
+non-exclusive license under copyrights and patents it now or hereafter owns
+or controls to make, have made, use, import, offer to sell and sell
+("Utilize") this software subject to the terms herein. With respect to the
+foregoing patent license, such license is granted solely to the extent that
+any such patent is necessary to Utilize the software alone. The patent
+license shall not apply to any combinations which include this software,
+other than combinations with devices manufactured by or for TI ("TI
+Devices"). No hardware patent is licensed hereunder.
+
+Redistributions must preserve existing copyright notices and reproduce this
+license (including the above copyright notice and the disclaimer and (if
+applicable) source code license limitations below) in the documentation
+and/or other materials provided with the distribution
+
+Redistribution and use in binary form, without modification, are permitted
+provided that the following conditions are met:
+
+* No reverse engineering, decompilation, or disassembly of this software is
+permitted with respect to any software provided in binary form.
+
+* any redistribution and use are licensed by TI for use only with TI
+Devices.
+
+* Nothing shall obligate TI to provide you with source code for the software
+licensed and provided to you in object code.
+
+If software source code is provided to you, modification and redistribution
+of the source code are permitted provided that the following conditions are
+met:
+
+* any redistribution and use of the source code, including any resulting
+derivative works, are licensed by TI for use only with TI Devices.
+
+* any redistribution and use of any object code compiled from the source
+code and any resulting derivative works, are licensed by TI for use only
+with TI Devices.
+
+Neither the name of Texas Instruments Incorporated nor the names of its
+suppliers may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+DISCLAIMER.
+
+THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-ti-bsp/licenses/TI-TSPA b/meta-ti-bsp/licenses/TI-TSPA
new file mode 100644
index 00000000..fd87c2ac
--- /dev/null
+++ b/meta-ti-bsp/licenses/TI-TSPA
@@ -0,0 +1,206 @@
+Texas Instruments Incorporated
+Technology and Software Publicly Available
+Software License Agreement
+
+
+Important - Please read the following license agreement carefully. This is
+a legally binding agreement. Do not click "i have read and agree" or use
+(as applicable) the Licensed Materials unless: (1) you are authorized to
+accept and agree to the terms of this license agreement on behalf of
+yourself or your company (as applicable) and (2) you intend to be bound by
+the terms of this license agreement on behalf of yourself or your company
+(as applicable).
+
+This Software License Agreement ("Agreement") is a legal agreement between
+you (either an individual or entity) and Texas Instruments Incorporated
+("TI"), 12500 TI Boulevard, Dallas, Texas 75243. The "Licensed Materials"
+subject to this Agreement include the software programs (in whole or in
+part), that accompany this Agreement and set forth in the applicable
+software manifest and which you access "on-line" and/or electronic
+documentation (in whole or in part) associated and provided with these
+software programs. By installing, copying or otherwise using the Licensed
+Materials you agree to abide by the terms of this Agreement. If you choose
+not to accept or agree with these terms, do not download or install the
+Licensed Materials.
+
+Note Regarding Possible Access to Open Source Software: The Licensed
+Materials may be bundled with Open Source Software. "Open Source Software"
+means any software licensed under terms requiring that (A) other software
+("Proprietary Software") incorporated, combined or distributed with such
+software or developed using such software: (i) be disclosed or distributed
+in source code form; or (ii) otherwise be licensed on terms inconsistent
+with the terms of this Agreement, including but not limited to permitting
+use of the Proprietary Software on or with devices other than TI Devices, or
+(B) require the owner of Proprietary Software to license any of its patents
+to users of the Open Source Software and/or Proprietary Software
+incorporated, combined or distributed with such Open Source Software or
+developed using such Open Source Software.
+
+You may gain access to Open Source Software, in which case such Open Source
+Software will be listed in the applicable software manifest (in whole or in
+part, the "Open Source Materials"). Your use of the Open Source Materials
+is subject to the separate licensing terms applicable to such Open Source
+Materials as specified in the applicable software manifest. For
+clarification, this Agreement does not limit your rights under, or grant you
+rights that supersede, the license terms of any applicable Open Source
+Materials license agreement. If any of the Open Source Materials have been
+provided to you in object code only, TI will provide to you or show you
+where can access the source code versions of such Open Source Materials if
+you contact TI at Texas Instruments Incorporated, 12500 TI Boulevard, Mail
+Station 8638, Dallas, Texas 75243, Attention: Contracts Manager. You may
+terminate this Agreement in the event you choose not to accept or agree with
+the terms in any applicable Open Source Materials license agreement,
+provided that such termination occurs within five (5) calendar days of
+acceptance of this Agreement and you abide by all applicable license terms
+in this Agreement until such termination.
+
+1. License.
+
+a. Source Code License. For the Licensed Materials provided in source code
+format, TI hereby grants to you a limited, non-exclusive license to
+reproduce, use, and create modified or derivative works of the Licensed
+Materials provided to you in source code format and to distribute an
+unlimited number of copies of such source code Licensed Materials, or any
+derivatives thereof, in any format.
+
+b. Object Code License. For the Licensed Materials provided in object code
+format, TI hereby grants to you a limited, non-exclusive license to
+reproduce and use the Licensed Materials provided to you in object code
+format and to distribute an unlimited number of object or executable copies
+of such object code Licensed Materials.
+
+2. Termination. This Agreement is effective until terminated. Without
+prejudice to any other rights, TI may terminate your right to use the
+Licensed Materials under this Agreement if you fail to comply with the terms
+of this Agreement. In such event, you shall destroy all copies of the
+Licensed Materials, including all portions and derivatives thereof.
+
+3. Intellectual Property Rights.
+
+a. The Licensed Materials being provided to you hereunder are being made
+publicly available by TI, even though they contain copyrighted material of
+TI and its licensors, if applicable. In no event may you alter, remove or
+destroy any copyright notice included in the Licensed Materials. To the
+extent that any of the Licensed Materials are provided in binary or object
+code only, you may not unlock, decompile, reverse engineer, disassemble or
+otherwise translate such binary or object code to human-perceivable form.
+The source code of such reverse engineered code may contain TI trade secret
+and other proprietary information. TI reserves all rights not specifically
+granted under this Agreement.
+
+b. Certain Licensed Materials may (i) require patent licenses from third
+parties claiming patent rights covering implementation of the Licensed
+Materials or (ii) be based on industry recognized standards or software
+programs published by industry recognized standards bodies and certain third
+parties may claim to own patents or copyrights that cover implementation of
+those standards. You acknowledge and agree that this Agreement does not
+convey a license to any such third party patents and copyrights.
+
+c. YOU ACKNOWLEDGE AND AGREE THAT TI SHALL NOT BE LIABLE FOR AND SHALL NOT
+DEFEND OR INDEMNIFY YOU AGAINST ANY THIRD PARTY INFRINGEMENT CLAIM THAT
+RELATES TO OR IS BASED ON YOUR MANUFACTURE, USE, OR DISTRIBUTION OF THE
+LICENSED MATERIALS OR YOUR MANUFACTURE, USE, OFFER FOR SALE, SALE,
+IMPORTATION OR DISTRIBUTION OF YOUR PRODUCTS THAT INCLUDE OR INCORPORATE THE
+LICENSED MATERIALS.
+
+d. You acknowledge and agree that you are responsible for any fees or
+royalties that may be payable to any third party based on such third party's
+interests in the Licensed Materials described in Section 3(b) above (the
+"Third Party Payment Obligations"). You agree to indemnify TI against any
+Third Party Payment Obligations and will defend any claim, suit or
+proceeding brought against TI insofar as such claim, suit or proceeding is
+based on your failure to pay any Third Party Payment Obligations.
+
+4. Warranties and Limitations. THE LICENSED MATERIALS ARE PROVIDED "AS IS".
+TI AND ITS LICENSORS MAKE NO WARRANTY OR REPRESENTATION, EXPRESS, IMPLIED OR
+STATUTORY, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTIBILITY, FITNESS FOR
+A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR COMPLETENESS OF
+RESPONSES, RESULTS AND LACK OF NEGLIGENCE. TI DISCLAIMS ANY WARRANTY OF
+TITLE, QUIET ENJOYMENT, QUIET POSESSION, AND NON-INFRINGEMENT OF ANY THIRD
+PARTY INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE LICENSED MATERIALS OR
+USE OF THOSE MATERIALS.
+
+YOU ACKNOWLEDGE AND AGREE THAT THE LICENSED MATERIALS MAY NOT BE INTENDED
+FOR PRODUCTION APPLICATIONS AND MAY CONTAIN IRREGULARITIES AND DEFECTS NOT
+FOUND IN PRODUCTION SOFTWARE. FURTHERMORE, YOU ACKNOWLEDGE AND AGREE THAT
+THE LICENSED MATERIALS HAVE NOT BEEN TESTED OR CERTIFIED BY ANY GOVERNMENT
+AGENCY OR INDUSTRY REGULATORY ORGANIZATION OR ANY OTHER THIRD PARTY
+ORGANIZATION. YOU AGREE THAT PRIOR TO USING, INCORPORATING OR DISTRIBUTING
+THE LICENSED MATERIALS IN OR WITH ANY COMMERCIAL PRODUCT THAT YOU WILL
+THOROUGHLY TEST THE PRODUCT AND THE FUNCTIONALITY OF THE LICENSED MATERIALS
+IN OR WITH THAT PRODUCT AND BE SOLELY RESPONSIBLE FOR ANY PROBLEMS OR
+FAILURES.
+
+IN NO EVENT SHALL TI OR ITS LICENSORS BE LIABLE FOR ANY SPECIAL, INDIRECT,
+INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED ON ANY THEORY
+OF LIABILITY, ARISING IN ANY WAY OUT OF THIS AGREEMENT, OR YOUR USE OF THE
+LICENSED MATERIALS, WHETHER OR NOT TI HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES. EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF
+REMOVAL OR REINSTALLATION, OUTSIDE COMPUTER TIME, LABOR COSTS, LOSS OR
+CORRUPTION OF DATA, LOSS OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR
+LOSS OF USE OR INTERRUPTION OF BUSINESS OR ANY OTHER ECONOMIC LOSS. IN NO
+EVENT WILL TI'S AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF
+YOUR USE OF THE LICENSED MATERIALS EXCEED FIVE HUNDRED U.S. DOLLARS
+(US$500).
+
+Because some jurisdictions do not allow the exclusion or limitation of
+incidental or consequential damages or limitation on how long an implied
+warranty lasts, the above limitations or exclusions may not apply to you.
+
+5. Export Control. The Licensed Materials may be subject to the export or
+import regulations of certain countries. You agree to comply with all such
+regulations and acknowledge that you have the responsibility to obtain any
+licenses or other authorizations that may be required to export, re-export
+or import the Licensed Materials.
+
+6. Governing Law, Jurisdiction and Severability. This Agreement will be
+governed by and interpreted in accordance with the laws of the State of
+Texas, without reference to conflict of laws principles. If for any reason
+a court of competent jurisdiction finds any provision of the Agreement to be
+unenforceable, that provision will be enforced to the maximum extent
+possible to effectuate the intent of the parties and the remainder of the
+Agreement shall continue in full force and effect. This Agreement shall not
+be governed by the United Nations Convention on Contracts for the
+International Sale of Goods, or by the Uniform Computer Information
+Transactions Act (UCITA). The parties agree that non-exclusive jurisdiction
+for any dispute arising out of or relating to this Agreement lies within the
+courts located in the State of Texas. Notwithstanding the foregoing, any
+judgment may be enforced in any United States or foreign court, and either
+party may seek injunctive relief in any United States or foreign court.
+Failure by TI to enforce any provision of this Agreement shall not be deemed
+a waiver of future enforcement of that or any other provision in this
+Agreement or any other agreement that may be in place between the parties.
+
+7. PRC Provisions. If you are located in the People's Republic of China
+("PRC") or if the Licensed Materials will be sent to the PRC, the following
+provisions shall apply:
+
+a. Registration Requirements. You shall be solely responsible for
+performing all acts and obtaining all approvals that may be required in
+connection with this Agreement by the government of the PRC, including but
+not limited to registering pursuant to, and otherwise complying with, the
+PRC Measures on the Administration of Software Products, Management
+Regulations on Technology Import-Export, and Technology Import and Export
+Contract Registration Management Rules. Upon receipt of such approvals from
+the government authorities, you shall forward evidence of all such approvals
+to TI for its records. In the event that you fail to obtain any such
+approval or registration, you shall be solely responsible for any and all
+losses, damages or costs resulting therefrom, and shall indemnify TI for all
+such losses, damages or costs.
+
+b. Governing Language. This Agreement is written and executed in the
+English language. If a translation of this Agreement is required for any
+purpose, including but not limited to registration of the Agreement pursuant
+to any governmental laws, regulations or rules, you shall be solely
+responsible for creating such translation. Any translation of this
+Agreement into a language other than English is intended solely in order to
+comply with such laws or for reference purposes, and the English language
+version shall be authoritative and controlling.
+
+8. Entire Agreement. This is the entire agreement between you and TI and
+supersedes any prior agreement between the parties related to the subject
+matter of this Agreement. No amendment or modification of this Agreement
+will be effective unless in writing and signed by a duly authorized
+representative of TI. You hereby warrant and represent that you have
+obtained all authorizations and other applicable consents required
+empowering you to enter into this Agreement.
diff --git a/meta-ti-bsp/licenses/Thai-Open-Source-Software-Center b/meta-ti-bsp/licenses/Thai-Open-Source-Software-Center
new file mode 100644
index 00000000..3a3972dd
--- /dev/null
+++ b/meta-ti-bsp/licenses/Thai-Open-Source-Software-Center
@@ -0,0 +1,31 @@
+Copyright (c) 2002, 2003, 2008 Thai Open Source Software Center Ltd
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ Neither the name of the Thai Open Source Software Center Ltd nor
+ the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/meta-ti-bsp/recipes-bsp/bt-fw/bt-fw_git.bb b/meta-ti-bsp/recipes-bsp/bt-fw/bt-fw_git.bb
new file mode 100644
index 00000000..ea42c168
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/bt-fw/bt-fw_git.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Firmware files for Bluetooth"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f39eac9f4573be5b012e8313831e72a9"
+
+PV = "8.7.1+git${SRCPV}"
+
+CLEANBROKEN = "1"
+
+SRCREV = "0ee619b598d023fffc77679f099bc2a4815510e4"
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/ti-bt/service-packs.git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-connectivity
+ oe_runmake "DEST_DIR=${D}" "BASE_LIB_DIR=${base_libdir}" install
+}
+
+FILES:${PN} += "${base_libdir}/firmware/ti-connectivity/*"
diff --git a/meta-ti-bsp/recipes-bsp/cadence-mhdp-fw/cadence-mhdp-fw_git.bb b/meta-ti-bsp/recipes-bsp/cadence-mhdp-fw/cadence-mhdp-fw_git.bb
new file mode 100644
index 00000000..c975e8a4
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cadence-mhdp-fw/cadence-mhdp-fw_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Cadence MHDP DP bridge firmware"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+LICENSE = "BSD-3-Clause | Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENCE.cadence;md5=009f46816f6956cfb75ede13d3e1cee0"
+
+PV = "${CADENCE_MHDP_FW_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "j7"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+TARGET = "mhdp8546.bin"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/cadence
+ install -m 0644 ${S}/cadence/${TARGET} ${D}${base_libdir}/firmware/cadence/${TARGET}
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
diff --git a/meta-ti-bsp/recipes-bsp/cm3-pm-firmware/amx3-cm3_git.bb b/meta-ti-bsp/recipes-bsp/cm3-pm-firmware/amx3-cm3_git.bb
new file mode 100644
index 00000000..bd5c3693
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cm3-pm-firmware/amx3-cm3_git.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Cortex-M3 binary blob for suspend-resume"
+
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://License.txt;md5=7bdc54a749ab7a7dea999d25d99a41b8"
+
+PV = "1.9.2"
+PR = "r0"
+
+SRCREV = "fb484c5e54f2e31cf0a338d2927a06a2870bcc2c"
+BRANCH ?= "ti-v4.1.y"
+
+SRC_URI = "git://git.ti.com/processor-firmware/ti-amx3-cm3-pm-firmware.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ make CROSS_COMPILE="${TARGET_PREFIX}" CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${SECURITY_NOPIE_CFLAGS}"
+}
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -m 0644 bin/am335x-pm-firmware.elf ${D}${base_libdir}/firmware/
+ install -m 0644 bin/*-scale-data.bin ${D}${base_libdir}/firmware/
+}
+
+FILES:${PN} += "${base_libdir}/firmware"
+
+COMPATIBLE_MACHINE = "(ti-soc)"
+TOOLCHAIN = "gcc"
diff --git a/meta-ti-bsp/recipes-bsp/cmem/cmem-mod_git.bb b/meta-ti-bsp/recipes-bsp/cmem/cmem-mod_git.bb
new file mode 100644
index 00000000..f7965593
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cmem/cmem-mod_git.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Kernel module for contiguous memory allocation from userspace"
+
+include cmem.inc
+
+# This package builds a kernel module, use kernel PR as base and append a local
+MACHINE_KERNEL_PR:append = "a"
+PR = "${MACHINE_KERNEL_PR}"
+
+inherit module
+
+EXTRA_OEMAKE += '-f lu.mak KERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" TOOLCHAIN_PREFIX="${TOOLCHAIN_PREFIX}" EXEC_DIR="${D}/lib/modules/${KERNEL_VERSION}/extra"'
+MAKE_TARGETS = "module"
+
+KERNEL_MODULE_AUTOLOAD += "cmemk"
+
+do_install:prepend() {
+ cp ${B}/src/cmem/module/Module.symvers ${B}/ || true
+}
diff --git a/meta-ti-bsp/recipes-bsp/cmem/cmem.inc b/meta-ti-bsp/recipes-bsp/cmem/cmem.inc
new file mode 100644
index 00000000..aaed8f06
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cmem/cmem.inc
@@ -0,0 +1,16 @@
+HOMEPAGE = "http://processors.wiki.ti.com/index.php/Category:CMEM"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://include/ti/cmem.h;beginline=1;endline=30;md5=26be509e4bb413905bda8309e338e2b1"
+
+BRANCH = "master"
+# This corresponds to version 4.20.00.01
+SRCREV = "86269258a48e0a9008dd9d5ebfae9da7ce843393"
+
+PV = "4.20.00.01+git${SRCPV}"
+
+SRC_URI = "git://git.ti.com/ipc/ludev.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-bsp/cmem/cmem_git.bb b/meta-ti-bsp/recipes-bsp/cmem/cmem_git.bb
new file mode 100644
index 00000000..f69c22fb
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cmem/cmem_git.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "The cmem component supports contiguous memory allocation from userspace"
+
+include cmem.inc
+
+RDEPENDS:${PN} = "cmem-mod"
+
+PR = "r0"
+
+PACKAGES =+ "${PN}-test"
+
+FILES:${PN}-test = "${bindir}/*"
+
+inherit autotools
diff --git a/meta-ti-bsp/recipes-bsp/cpsw9g-eth-fw/cpsw9g-eth-fw_git.bb b/meta-ti-bsp/recipes-bsp/cpsw9g-eth-fw/cpsw9g-eth-fw_git.bb
new file mode 100755
index 00000000..ed36951f
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cpsw9g-eth-fw/cpsw9g-eth-fw_git.bb
@@ -0,0 +1,43 @@
+SUMMARY = "R5 PSDK CPSW9G Ethernet Switch Firmware"
+
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://LICENSE.ti;md5=04ad0a015d4bb63c2b9e7b112debf3db"
+
+PV = "6.2+git${SRCPV}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit deploy
+inherit update-alternatives
+
+PROTOCOL = "git"
+BRANCH = "master"
+SRCREV = "91f1628507bf7f8716f0bc7cafe88ad7f14c94f5"
+
+SRC_URI = "git://git.ti.com/glsdk/ti-eth-fw.git;protocol=${PROTOCOL};branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+CPSW9G_FW_DIR = "${S}/ethfw"
+CPSW9G_FW_FILENAME = "app_remoteswitchcfg_server_pdk_mem_map_strip.xer5f"
+
+# make sure that lib/firmware, and all its contents are part of the package
+FILES:${PN} += "${base_libdir}/firmware"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+# Ethernet firmware to be loaded on Main R5 core(needs read permission)
+ install -m 0644 ${CPSW9G_FW_DIR}/${CPSW9G_FW_FILENAME} ${D}${base_libdir}/firmware
+}
+
+TARGET_MAIN_R5FSS0_0 = "j7-main-r5f0_0-fw"
+ALTERNATIVE:${PN} = "j7-main-r5f0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
+ALTERNATIVE_TARGET[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/${CPSW9G_FW_FILENAME}"
+ALTERNATIVE_PRIORITY = "17"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP:${PN} += "arch"
+
+do_compile[noexec] = "1"
+do_configure[noexec] = "1"
diff --git a/meta-ti-bsp/recipes-bsp/cuia/cuia_1.0.0.13.bb b/meta-ti-bsp/recipes-bsp/cuia/cuia_1.0.0.13.bb
new file mode 100644
index 00000000..1cda366d
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/cuia/cuia_1.0.0.13.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "TI Unified Instrumentation Architecture in C (cUIA)"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://cuia_${CUIA_PV}_manifest.html;md5=0eea94e3bb94de4ddee77653eba1c7c5"
+
+CUIA_PV = "1_00_00_13"
+CUIA_PVExtra = ""
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_ccstudio/UIA/SCMCSDK/cuia_${CUIA_PV}${CUIA_PVExtra}.tar.gz;name=cuia"
+SRC_URI[cuia.md5sum] = "ef53989ac70c191841cd656cdc8770be"
+SRC_URI[cuia.sha256sum] = "f16d138a9146fdc7d52cba77bd30596da65835f6ffe4092baf2b33d1c1a4fb0d"
+
+S = "${WORKDIR}/cuia_${CUIA_PV}${CUIA_PVExtra}"
+
+CLEANBROKEN = "1"
+
+do_compile () {
+ cd ${S}
+ oe_runmake clean
+ oe_runmake all
+}
+
+do_install() {
+ cd ${S}
+ oe_runmake DESTDIR=${D} libdir=${libdir} includedir=${includedir} install
+}
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+
+INSANE_SKIP:${PN} += "textrel installed-vs-shipped"
diff --git a/meta-ti-bsp/recipes-bsp/dspdce-fw/dspdce-fw_git.bb b/meta-ti-bsp/recipes-bsp/dspdce-fw/dspdce-fw_git.bb
new file mode 100644
index 00000000..4e863099
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/dspdce-fw/dspdce-fw_git.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Firmware for DSP for an example application called copycodectest"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://src/ti/framework/dce/dce.c;startline=1;endline=31;md5=2c6e9aba6ed75f22b1a2b7544b1c809d"
+
+COMPATIBLE_MACHINE = "dra7xx"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "dsp"
+
+SRC_URI = "git://git.ti.com/glsdk/dspdce.git;protocol=git"
+
+SRCREV = "de6e599f067b25c46cc0c8f74a22cc3b8aafbae8"
+
+PV = "1.00.00.07"
+
+S = "${WORKDIR}/git"
+
+require recipes-ti/includes/ti-paths.inc
+
+PR = "r4"
+inherit update-alternatives
+
+DEPENDS = "ti-xdctools-native ti-sysbios ti-codec-engine ti-framework-components ti-xdais ti-ipc-rtos ti-osal ti-cgt6x-native"
+
+export HWVERSION = "ES10"
+export BIOSTOOLSROOT = "${STAGING_DIR_TARGET}/usr/share/ti"
+
+export XDCVERSION = "ti-xdctools-tree"
+export BIOSVERSION = "ti-sysbios-tree"
+export IPCVERSION = "ti-ipc-tree"
+export CEVERSION = "ti-codec-engine-tree"
+export FCVERSION = "ti-framework-components-tree"
+export XDAISVERSION = "ti-xdais-tree"
+export OSALVERSION = "ti-osal-tree"
+
+export IPCSRC = "${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
+export C66XCGTOOLSPATH = "${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x"
+
+do_configure() {
+ cd ${S}
+ make unconfig
+ make vayu_config
+}
+
+do_compile() {
+ cd ${S}
+ make dspbin
+}
+
+TARGET = "dra7-dsp1-fw.xe66"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -m 0644 ${S}/dra7xx-c66x-dsp.xe66 ${D}${base_libdir}/firmware/${TARGET}.${BPN}
+}
+
+ALTERNATIVE:${PN} = "dra7-dsp1-fw.xe66"
+ALTERNATIVE_LINK_NAME[dra7-dsp1-fw.xe66] = "${base_libdir}/firmware/${TARGET}"
+ALTERNATIVE_TARGET[dra7-dsp1-fw.xe66] = "${base_libdir}/firmware/${TARGET}.${BPN}"
+ALTERNATIVE_PRIORITY = "10"
+
+INSANE_SKIP:${PN} = "arch"
+
+FILES:${PN} += "${base_libdir}/firmware/*"
diff --git a/meta-ti-bsp/recipes-bsp/dsptop/debugss-module-drv_git.bb b/meta-ti-bsp/recipes-bsp/dsptop/debugss-module-drv_git.bb
new file mode 100644
index 00000000..a250b825
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/dsptop/debugss-module-drv_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Debug Sub-System (DebugSS) driver for Keystone and DRA7xx devices"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=9d4316fe434ba450dca4da25348ca5a3"
+
+# This package builds a kernel module, use kernel PR as base and append a local
+MACHINE_KERNEL_PR:append = "d"
+PR = "${MACHINE_KERNEL_PR}"
+PV:append = "+git${SRCPV}"
+
+S = "${WORKDIR}/git/debugss_module/debugss-mod"
+
+inherit module
+
+PLATFORM = ""
+PLATFORM:dra7xx = "DRA7xx_PLATFORM"
+
+EXTRA_OEMAKE = "'PLATFORM=${PLATFORM}' KVERSION=${KERNEL_VERSION} KERNEL_SRC=${STAGING_KERNEL_DIR}"
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+include dsptop.inc
diff --git a/meta-ti-bsp/recipes-bsp/dsptop/dsptop.inc b/meta-ti-bsp/recipes-bsp/dsptop/dsptop.inc
new file mode 100644
index 00000000..31f775e2
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/dsptop/dsptop.inc
@@ -0,0 +1,8 @@
+# This corresponds to version 1.4.0
+SRCREV = "816485e68430bbec643eac9498bfa5303eb2c2e1"
+PV = "1.4.0"
+INC_PR = "r2"
+
+SRC_URI = "git://git.ti.com/sdo-emu/dsptop.git;protocol=git;branch=${BRANCH}"
+
+BRANCH = "master"
diff --git a/meta-ti-bsp/recipes-bsp/dsptop/dsptop_git.bb b/meta-ti-bsp/recipes-bsp/dsptop/dsptop_git.bb
new file mode 100644
index 00000000..20818443
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/dsptop/dsptop_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "TI dsptop utility."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=309825aa8f5edfcf2c44912ac094b979"
+
+DEPENDS = "libulm ncurses"
+
+PR = "${INC_PR}.2"
+
+S = "${WORKDIR}/git/dsptop"
+
+DEVICE = ""
+DEVICE:dra7xx = "DRA7xx"
+
+EXTRA_OEMAKE = "release DEVICE=${DEVICE} CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}""
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RDEPENDS:${PN} = "debugss-module-drv bash"
+
+include dsptop.inc
+
+PARALLEL_MAKE = ""
diff --git a/meta-ti-bsp/recipes-bsp/dsptop/libulm_git.bb b/meta-ti-bsp/recipes-bsp/dsptop/libulm_git.bb
new file mode 100644
index 00000000..f3e7ec3c
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/dsptop/libulm_git.bb
@@ -0,0 +1,45 @@
+SUMMARY = "TI Usage & Load Monitor Implementation"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://../debian/copyright;md5=309825aa8f5edfcf2c44912ac094b979"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "dsp"
+
+DEPENDS = "ti-cgt6x-native"
+PR = "${INC_PR}.0"
+
+S = "${WORKDIR}/git/dsptop/ulm"
+
+DEVICE=""
+DEVICE:dra7xx = "DRA7xx"
+
+EXTRA_OEMAKE = "release DEVICE=${DEVICE} CROSS_COMPILE=${TARGET_PREFIX}"
+
+do_compile() {
+ oe_runmake arm XPORT_ONLY CC="${CC}"
+ oe_runmake dsp C6X_C_DIR=${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x/include
+}
+
+do_install() {
+ install -d ${D}${includedir}
+ install -d ${D}${libdir}
+ install -d ${D}${datadir}/ti/ulm
+ cp -f tiulm.h ${D}${includedir}
+ cp -f release/libtiulm.a ${D}${libdir}
+ cp -f tiulm.h ${D}${datadir}/ti/ulm
+ cp -f release/libtiulm.ae66 ${D}${datadir}/ti/ulm
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+FILES:${PN}-dev += "\
+ ${datadir}/ti/ulm \
+"
+
+include dsptop.inc
+
+ALLOW_EMPTY:${PN} = "1"
+
+PARALLEL_MAKE= ""
diff --git a/meta-ti-bsp/recipes-bsp/gc320-drivers/ti-gc320-driver_5.0.11.p7.bb b/meta-ti-bsp/recipes-bsp/gc320-drivers/ti-gc320-driver_5.0.11.p7.bb
new file mode 100644
index 00000000..e815ae29
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/gc320-drivers/ti-gc320-driver_5.0.11.p7.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "Kernel drivers for the Vivante GC320 chipset found in TI SoCs"
+HOMEPAGE = "https://git.ti.com/graphics/ti-gc320-driver"
+LICENSE = "MIT | GPLv2"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=78d9818a51b9a8e9bb89dea418bac297"
+
+inherit module features_check
+
+REQUIRED_MACHINE_FEATURES = "gc320"
+
+MACHINE_KERNEL_PR:append = "i"
+PR = "${MACHINE_KERNEL_PR}"
+
+# Need to branch out with ${PV} var
+BRANCH = "ti-${PV}-k5.10"
+
+SRCREV = "e2a10f31e255a65ec30a6e10b890e77d7e9cb107"
+
+SRC_URI = "git://git.ti.com/graphics/ti-gc320-driver.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git/src"
+
+EXTRA_OEMAKE += "-f Kbuild AQROOT=${S} KERNEL_DIR=${STAGING_KERNEL_DIR} TOOLCHAIN_PATH=${TOOLCHAIN_PATH} CROSS_COMPILE=${TARGET_PREFIX} ARCH_TYPE=${TARGET_ARCH}"
+
+do_install() {
+ install -d ${D}/${base_libdir}/modules/${KERNEL_VERSION}/extra
+ install -m 644 ${S}/galcore.ko ${D}/${base_libdir}/modules/${KERNEL_VERSION}/extra
+}
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-bsp/goodix-fw/goodix-fw_git.bb b/meta-ti-bsp/recipes-bsp/goodix-fw/goodix-fw_git.bb
new file mode 100644
index 00000000..1f1c2b81
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/goodix-fw/goodix-fw_git.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Goodix GT9271 config firmware"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENCE.Spectrum-GT9271;md5=2a6de6be7af1fe46370c684daf27c852"
+
+PV = "${GOODIX_FW_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "dra7xx"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+ORIGIN = "DRA71x-RevA-GT9271_SpecDig_Config.bin"
+TARGET = "goodix_9271_cfg.bin"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -m 0644 ${S}/ti-evm/${ORIGIN} ${D}${base_libdir}/firmware/${TARGET}
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
diff --git a/meta-ti-bsp/recipes-bsp/ipumm-fw/ipumm-fw_git.bb b/meta-ti-bsp/recipes-bsp/ipumm-fw/ipumm-fw_git.bb
new file mode 100644
index 00000000..14d28258
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ipumm-fw/ipumm-fw_git.bb
@@ -0,0 +1,67 @@
+SUMMARY = "Firmware for IPU to suppor Accelerated MM decode and encode"
+LICENSE = "TI-TSPA"
+
+LIC_FILES_CHKSUM = "file://Texas_Instruments_ipumm_Manifest.pdf;md5=5cc572579f07af266ab57fc17d762c7f"
+
+COMPATIBLE_MACHINE = "dra7xx"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "mmip"
+
+RDEPENDS:${PN} = "libdce"
+
+SRC_URI = "git://git.ti.com/ivimm/ipumm.git;protocol=git"
+
+SRCREV = "df4c50aecc9aad7ab3eb1ca9ebacfe473fcad7c5"
+
+S = "${WORKDIR}/git"
+
+PV = "3.00.15.00"
+PR = "r7"
+
+require recipes-ti/includes/ti-paths.inc
+
+inherit update-alternatives
+
+DEPENDS = "ti-xdctools-native ti-sysbios ti-codec-engine ti-framework-components ti-xdais ti-cgt-arm-native ti-ipc-rtos"
+
+export HWVERSION="ES10"
+export BIOSTOOLSROOT="${STAGING_DIR_TARGET}/usr/share/ti"
+
+export XDCVERSION="ti-xdctools-tree"
+export BIOSVERSION="ti-sysbios-tree"
+export IPCVERSION="ti-ipc-tree"
+export CEVERSION="ti-codec-engine-tree"
+export FCVERSION="ti-framework-components-tree"
+export XDAISVERSION="ti-xdais-tree"
+
+export TMS470CGTOOLPATH="${M4_TOOLCHAIN_INSTALL_DIR}"
+export IPCSRC="${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
+
+EXTRA_OEMAKE += "XDCDIST_TREE=${STAGING_DIR_NATIVE}/usr/share/ti/${XDCVERSION}"
+
+do_configure() {
+ oe_runmake unconfig
+ oe_runmake vayu_smp_config
+}
+
+do_compile() {
+ oe_runmake
+}
+
+TARGET = "dra7-ipu2-fw.xem4"
+TARGET_MAP = "platform/ti/dce/baseimage/package/cfg/out/ipu/release/ipu.xem4.map"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -m 0644 ${S}/${TARGET} ${D}${base_libdir}/firmware/${TARGET}.${BPN}
+ install -m 0644 ${S}/${TARGET_MAP} ${D}${base_libdir}/firmware/${TARGET}.map
+}
+
+ALTERNATIVE:${PN} = "dra7-ipu2-fw.xem4"
+ALTERNATIVE_LINK_NAME[dra7-ipu2-fw.xem4] = "${base_libdir}/firmware/${TARGET}"
+ALTERNATIVE_TARGET[dra7-ipu2-fw.xem4] = "${base_libdir}/firmware/${TARGET}.${BPN}"
+ALTERNATIVE_PRIORITY = "20"
+
+FILES:${PN} += "${base_libdir}/firmware/*"
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
new file mode 100644
index 00000000..f021cc39
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver/0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch
@@ -0,0 +1,29 @@
+From 80d32fee3d768abbd77cce77ea9a7574651460a9 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denis@denix.org>
+Date: Wed, 7 Jul 2021 13:11:56 -0400
+Subject: [PATCH] compiler: support OpenEmbedded "nodistro" internal aarch64
+ toolchain
+
+Upstream-Status: Pending
+
+Signed-off-by: Denys Dmytriyenko <denis@denix.org>
+---
+ build/linux/config/compiler.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/linux/config/compiler.mk b/build/linux/config/compiler.mk
+index 53a0bef..d788579 100644
+--- a/build/linux/config/compiler.mk
++++ b/build/linux/config/compiler.mk
+@@ -65,7 +65,7 @@ define calculate-compiler-preferred-target
+ ifneq ($$(filter i386-% i486-% i586-% i686-%,$$($(1)_compiler_preferred_target)),)
+ $(1)_compiler_preferred_target := i386-linux-gnu
+ endif
+- ifneq ($$(filter aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
++ ifneq ($$(filter aarch64-oe-linux aarch64-poky-linux,$$($(1)_compiler_preferred_target)),)
+ $(1)_compiler_preferred_target := aarch64-linux-gnu
+ endif
+ ifneq ($$(filter armv7a-cros-linux-gnueabi armv7l-tizen-linux-gnueabi,$$($(1)_compiler_preferred_target)),)
+--
+2.7.4
+
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
new file mode 100644
index 00000000..09f6f03a
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "Kernel drivers for the PowerVR Rogue GPU found in the TI SoCs"
+HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-driver"
+LICENSE = "MIT | GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=14;endline=19;md5=0403c7dea01a2b8232261e805325fac2"
+
+inherit module features_check
+
+REQUIRED_MACHINE_FEATURES = "gpu"
+
+MACHINE_KERNEL_PR:append = "b"
+PR = "${MACHINE_KERNEL_PR}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "j7"
+
+DEPENDS = "virtual/kernel"
+
+PROVIDES = "virtual/gpudriver"
+
+BRANCH = "1.13-5776728/linux-k5.10"
+
+SRC_URI = " \
+ git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
+ file://0001-compiler-support-OpenEmbedded-nodistro-internal-aarc.patch \
+"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
+
+PVR_SOC = "j721e_linux"
+PVR_BVNC = "22.104.208.318"
+PVR_BUILD = "release"
+PVR_WS = "wayland"
+
+EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
+
+do_install() {
+ make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
+}
diff --git a/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
new file mode 100644
index 00000000..5fe6c201
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/powervr-drivers/ti-sgx-ddk-km_1.17.4948957.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Kernel drivers for the PowerVR SGX chipset found in the TI SoCs"
+HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-linux"
+LICENSE = "MIT | GPLv2"
+LIC_FILES_CHKSUM = "file://eurasia_km/README;beginline=13;endline=22;md5=74506d9b8e5edbce66c2747c50fcef12"
+
+inherit module features_check
+
+REQUIRED_MACHINE_FEATURES = "gpu"
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
+
+MACHINE_KERNEL_PR:append = "x"
+PR = "${MACHINE_KERNEL_PR}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEPENDS = "virtual/kernel"
+
+PROVIDES = "virtual/gpudriver"
+
+BRANCH = "ti-img-sgx/${PV}/k5.10"
+
+SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-linux.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "eda7780bfd5277e16913c9bc0b0e6892b4e79063"
+
+TARGET_PRODUCT:omap-a15 = "jacinto6evm"
+TARGET_PRODUCT:ti33x = "ti335x"
+TARGET_PRODUCT:ti43x = "ti437x"
+TARGET_PRODUCT:k3 = "ti654x"
+
+EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" TARGET_PRODUCT=${TARGET_PRODUCT} WINDOW_SYSTEM=nulldrmws'
+
+do_compile:prepend() {
+ cd ${S}/eurasia_km/eurasiacon/build/linux2/omap_linux
+}
+
+do_install() {
+ make -C ${STAGING_KERNEL_DIR} M=${B}/eurasia_km/eurasiacon/binary_omap_linux_nulldrmws_release/target_armhf/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
+}
+
+do_install:k3() {
+ make -C ${STAGING_KERNEL_DIR} M=${B}/eurasia_km/eurasiacon/binary_omap_linux_nulldrmws_release/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
+}
diff --git a/meta-ti-bsp/recipes-bsp/pru/pru-icss_git.bb b/meta-ti-bsp/recipes-bsp/pru/pru-icss_git.bb
new file mode 100644
index 00000000..779f96fd
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/pru/pru-icss_git.bb
@@ -0,0 +1,363 @@
+DESCRIPTION = "Programmable Real-time Unit Software Package"
+HOMEPAGE = "http://processors.wiki.ti.com/index.php/PRU-ICSS"
+LICENSE = "BSD-3-Clause & PD"
+
+LIC_FILES_CHKSUM = "file://PRU-Package-v6.1-Manifest.html;md5=1e37797ebe9254922f4278bb6047211c"
+
+inherit update-alternatives
+
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/pru-software-support-package/pru-software-support-package.git;protocol=git;branch=${BRANCH}"
+SRCREV = "8eee431384b6a1a9c96ae91a8e99485176b4d2b3"
+
+PV = "6.0.1"
+PR = "r0"
+
+require recipes-ti/includes/ti-paths.inc
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PACKAGES:prepend = " \
+ ${PN}-halt \
+ ${PN}-rpmsg-echo \
+"
+
+RDEPENDS:${PN}:append = " \
+ ${PN}-halt \
+ ${PN}-rpmsg-echo \
+"
+
+DEPENDS = "ti-cgt-pru-native"
+
+S = "${WORKDIR}/git"
+
+export PRU_CGT = "${TI_CGT_PRU_INSTALL_DIR}"
+export PRU_SSP = "${S}"
+
+SUBDIRS = "examples pru_cape/pru_fw lib/src labs"
+
+PLATFORM:ti33x = "am335x"
+PLATFORM:ti43x = "am437x"
+PLATFORM:omap-a15 = "am572x"
+PLATFORM:am64xx = "am64x"
+PLATFORM:am65xx = "am65x"
+PLATFORM:j7 = "j721e"
+
+do_compile() {
+ for dir in ${SUBDIRS}
+ do
+ make -C ${S}/$dir
+ done
+}
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${base_libdir}/firmware/pru
+ install -d ${D}${includedir}
+ cp ${CP_ARGS} ${S}/include/* ${D}${includedir}
+ install -d ${D}${libdir}
+ install -m 0644 ${S}/lib/rpmsg_lib.lib ${D}${libdir}
+}
+
+FILES:${PN}-staticdev = "${libdir}"
+FILES:${PN}-dev = "${includedir}"
+
+do_install:append:ti33x() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${base_libdir}/firmware/pru
+ for i in 0 1
+ do
+ install -m 0644 ${S}/examples/am335x/PRU_RPMsg_Echo_Interrupt${i}/gen/PRU_RPMsg_Echo_Interrupt${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+}
+
+do_install:append:ti43x() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${base_libdir}/firmware/pru
+ for i in 0 1
+ do
+ for j in 0 1
+ do
+ install -m 0644 ${S}/examples/am437x/PRU_RPMsg_Echo_Interrupt${i}_${j}/gen/PRU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ done
+}
+
+do_install:append:omap-a15() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${base_libdir}/firmware/pru
+ for i in 1 2
+ do
+ for j in 0 1
+ do
+ install -m 0644 ${S}/examples/am572x/PRU_RPMsg_Echo_Interrupt${i}_${j}/gen/PRU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ done
+}
+
+do_install:append:am64xx(){
+ for i in 0 1
+ do
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU${i}/PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ for i in 0 1
+ do
+ for j in 0 1
+ do
+ install -m 0644 ${S}/examples/${PLATFORM}/PRU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/PRU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 0644 ${S}/examples/${PLATFORM}/RTU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/RTU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ done
+}
+
+do_install:append:am65xx() {
+ for i in 0 1
+ do
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU${i}/PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ for i in 0 1 2
+ do
+ for j in 0 1
+ do
+ install -m 0644 ${S}/examples/am65x/PRU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/PRU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 0644 ${S}/examples/am65x/RTU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/RTU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+
+ done
+ done
+}
+
+do_install:append:j7() {
+ for i in 0 1
+ do
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU${i}/PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${base_libdir}/firmware/pru
+ done
+ for i in 0 1
+ do
+ for j in 0 1
+ do
+ install -m 0644 ${S}/examples/j721e/PRU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/PRU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+ install -m 0644 ${S}/examples/j721e/RTU_RPMsg_Echo_Interrupt${j}/gen/icssg${i}/RTU_RPMsg_Echo_Interrupt${i}_${j}.out \
+ ${D}${base_libdir}/firmware/pru
+
+ done
+ done
+}
+
+
+FILES:${PN}-halt = "${base_libdir}/firmware/pru/PRU_Halt* ${base_libdir}/firmware/pru/RTU_Halt* ${base_libdir}/firmware/pru/TX_PRU_Halt*"
+FILES:${PN}-rpmsg-echo = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt* ${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt*"
+
+# Set up names for the firmwares
+PRU_ICSS_ALTERNATIVES:ti33x = "am335x-pru0-fw am335x-pru1-fw"
+PRU_ICSS_ALTERNATIVES:ti43x = "am437x-pru0_0-fw am437x-pru0_1-fw am437x-pru1_0-fw am437x-pru1_1-fw"
+PRU_ICSS_ALTERNATIVES:omap-a15 = "am57xx-pru1_0-fw am57xx-pru1_1-fw am57xx-pru2_0-fw am57xx-pru2_1-fw"
+PRU_ICSS_ALTERNATIVES:am64xx = "am64x-pru0_0-fw am64x-pru0_1-fw am64x-pru1_0-fw am64x-pru1_1-fw am64x-rtu0_0-fw am64x-rtu0_1-fw am64x-rtu1_0-fw am64x-rtu1_1-fw"
+PRU_ICSS_ALTERNATIVES:am65xx = "am65x-pru0_0-fw am65x-pru0_1-fw am65x-pru1_0-fw am65x-pru1_1-fw am65x-pru2_0-fw am65x-pru2_1-fw am65x-rtu0_0-fw am65x-rtu0_1-fw am65x-rtu1_0-fw am65x-rtu1_1-fw am65x-rtu2_0-fw am65x-rtu2_1-fw"
+PRU_ICSS_ALTERNATIVES:j7 = "j7-pru0_0-fw j7-pru0_1-fw j7-pru1_0-fw j7-pru1_1-fw j7-rtu0_0-fw j7-rtu0_1-fw j7-rtu1_0-fw j7-rtu1_1-fw"
+
+# Set up link names for the firmwares
+ALTERNATIVE_LINK_NAME[am335x-pru0-fw] = "${base_libdir}/firmware/am335x-pru0-fw"
+ALTERNATIVE_LINK_NAME[am335x-pru1-fw] = "${base_libdir}/firmware/am335x-pru1-fw"
+
+ALTERNATIVE_LINK_NAME[am437x-pru0_0-fw] = "${base_libdir}/firmware/am437x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru0_1-fw] = "${base_libdir}/firmware/am437x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru1_0-fw] = "${base_libdir}/firmware/am437x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru1_1-fw] = "${base_libdir}/firmware/am437x-pru1_1-fw"
+
+ALTERNATIVE_LINK_NAME[am57xx-pru1_0-fw] = "${base_libdir}/firmware/am57xx-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru1_1-fw] = "${base_libdir}/firmware/am57xx-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru2_0-fw] = "${base_libdir}/firmware/am57xx-pru2_0-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru2_1-fw] = "${base_libdir}/firmware/am57xx-pru2_1-fw"
+
+ALTERNATIVE_LINK_NAME[am64x-pru0_0-fw] = "${base_libdir}/firmware/am64x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru0_1-fw] = "${base_libdir}/firmware/am64x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru1_0-fw] = "${base_libdir}/firmware/am64x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru1_1-fw] = "${base_libdir}/firmware/am64x-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu0_0-fw] = "${base_libdir}/firmware/am64x-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu0_1-fw] = "${base_libdir}/firmware/am64x-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu1_0-fw] = "${base_libdir}/firmware/am64x-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu1_1-fw] = "${base_libdir}/firmware/am64x-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru0_0-fw] = "${base_libdir}/firmware/am64x-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru0_1-fw] = "${base_libdir}/firmware/am64x-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru1_0-fw] = "${base_libdir}/firmware/am64x-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru1_1-fw] = "${base_libdir}/firmware/am64x-txpru1_1-fw"
+
+ALTERNATIVE_LINK_NAME[am65x-pru0_0-fw] = "${base_libdir}/firmware/am65x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru0_1-fw] = "${base_libdir}/firmware/am65x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru1_0-fw] = "${base_libdir}/firmware/am65x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru1_1-fw] = "${base_libdir}/firmware/am65x-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru2_0-fw] = "${base_libdir}/firmware/am65x-pru2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru2_1-fw] = "${base_libdir}/firmware/am65x-pru2_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu0_0-fw] = "${base_libdir}/firmware/am65x-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu0_1-fw] = "${base_libdir}/firmware/am65x-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu1_0-fw] = "${base_libdir}/firmware/am65x-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu1_1-fw] = "${base_libdir}/firmware/am65x-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu2_0-fw] = "${base_libdir}/firmware/am65x-rtu2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu2_1-fw] = "${base_libdir}/firmware/am65x-rtu2_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru0_0-fw] = "${base_libdir}/firmware/am65x-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru0_1-fw] = "${base_libdir}/firmware/am65x-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru1_0-fw] = "${base_libdir}/firmware/am65x-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru1_1-fw] = "${base_libdir}/firmware/am65x-txpru1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru2_0-fw] = "${base_libdir}/firmware/am65x-txpru2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru2_1-fw] = "${base_libdir}/firmware/am65x-txpru2_1-fw"
+
+ALTERNATIVE_LINK_NAME[j7-pru0_0-fw] = "${base_libdir}/firmware/j7-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-pru0_1-fw] = "${base_libdir}/firmware/j7-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-pru1_0-fw] = "${base_libdir}/firmware/j7-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-pru1_1-fw] = "${base_libdir}/firmware/j7-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu0_0-fw] = "${base_libdir}/firmware/j7-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu0_1-fw] = "${base_libdir}/firmware/j7-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu1_0-fw] = "${base_libdir}/firmware/j7-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu1_1-fw] = "${base_libdir}/firmware/j7-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru0_0-fw] = "${base_libdir}/firmware/j7-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru0_1-fw] = "${base_libdir}/firmware/j7-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru1_0-fw] = "${base_libdir}/firmware/j7-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru1_1-fw] = "${base_libdir}/firmware/j7-txpru1_1-fw"
+
+# Create the pru-icss-halt firmware alternatives
+ALTERNATIVE:pru-icss-halt = "${PRU_ICSS_ALTERNATIVES}"
+
+# Only Halt firmware images are supported for the Tx_PRU cores
+ALTERNATIVE:pru-icss-halt:append:am64xx = " am64x-txpru0_0-fw am64x-txpru0_1-fw am64x-txpru1_0-fw am64x-txpru1_1-fw"
+ALTERNATIVE:pru-icss-halt:append:am65xx = " am65x-txpru0_0-fw am65x-txpru0_1-fw am65x-txpru1_0-fw am65x-txpru1_1-fw am65x-txpru2_0-fw am65x-txpru2_1-fw"
+ALTERNATIVE:pru-icss-halt:append:j7 = " j7-txpru0_0-fw j7-txpru0_1-fw j7-txpru1_0-fw j7-txpru1_1-fw"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am335x-pru0-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am335x-pru1-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru2_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru2_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru0_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru0_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru1_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru1_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru2_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru2_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu2_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu2_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru0_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru0_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru1_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru1_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru2_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru2_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru0_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru0_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru1_0-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru1_1-fw] = "${base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+
+
+ALTERNATIVE_PRIORITY_pru-icss-halt = "50"
+
+# Create the pru-icss-rpmsg-echo firmware alternatives
+ALTERNATIVE:pru-icss-rpmsg-echo = "${PRU_ICSS_ALTERNATIVES}"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am335x-pru0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am335x-pru1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru2_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru2_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru2_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru2_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu2_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu2_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt2_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru0_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru0_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru1_0-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru1_1-fw] = "${base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu0_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu0_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu1_0-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu1_1-fw] = "${base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out"
+
+ALTERNATIVE_PRIORITY_pru-icss-rpmsg-echo = "100"
+
+ALLOW_EMPTY:${PN} = "1"
+
+# This installs PRU firmware, so skip "arch" QA check
+INSANE_SKIP:${PN}-halt = "arch"
+INSANE_SKIP:${PN}-rpmsg-echo = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/pru/ti-pru-sw-edma-driver_1.00.00.bb b/meta-ti-bsp/recipes-bsp/pru/ti-pru-sw-edma-driver_1.00.00.bb
new file mode 100644
index 00000000..98ab387c
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/pru/ti-pru-sw-edma-driver_1.00.00.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Builds eDMA module used by eDMA libraries for PRU sw example applications"
+HOMEPAGE = "https://gforge.ti.com/gf/project/pru_sw/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://edmautils.c;beginline=1;endline=23;md5=312e9cb8a37a044c617c98a9e980ad1b"
+
+COMPATIBLE_MACHINE = "omapl138"
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+MACHINE_KERNEL_PR:append = "b"
+PR = "${MACHINE_KERNEL_PR}"
+PV:append = "+svn${SRCPV}"
+
+SRC_URI = "svn://gforge.ti.com/svn/pru_sw/;module=trunk;protocol=https;user=anonymous;pswd=''"
+
+SRCREV = "33"
+
+S = "${WORKDIR}/trunk/peripheral_lib/edma_driver/module"
+
+inherit module
+
+EXTRA_OEMAKE += "KERNEL_DIR='${STAGING_KERNEL_DIR}'"
+
+do_compile:prepend () {
+ export CCTOOL_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}"
+}
+
+do_install () {
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/pru
+ install -m 0755 ${S}/edmautils.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/pru/
+}
diff --git a/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x-sr2_git.bb b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x-sr2_git.bb
new file mode 100644
index 00000000..e398cc80
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x-sr2_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "PRU Ethernet firmware for AM65xx SR2.0"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${PRUETH_FW_AM65X_SR2_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "am65xx-evm|am64xx-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = " \
+ am65x-sr2-pru0-prueth-fw.elf \
+ am65x-sr2-pru1-prueth-fw.elf \
+ am65x-sr2-rtu0-prueth-fw.elf \
+ am65x-sr2-rtu1-prueth-fw.elf \
+ am65x-sr2-txpru0-prueth-fw.elf \
+ am65x-sr2-txpru1-prueth-fw.elf \
+"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x_git.bb b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x_git.bb
new file mode 100644
index 00000000..804a563f
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw-am65x_git.bb
@@ -0,0 +1,32 @@
+SUMMARY = "PRU Ethernet firmware for AM65x SR1.0"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${PRUETH_FW_AM65X_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "am65xx"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = " \
+ am65x-pru0-prueth-fw.elf \
+ am65x-pru1-prueth-fw.elf \
+ am65x-rtu0-prueth-fw.elf \
+ am65x-rtu1-prueth-fw.elf \
+"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw_5.6.15.bb b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw_5.6.15.bb
new file mode 100644
index 00000000..4ca06be0
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/prueth-fw/prueth-fw_5.6.15.bb
@@ -0,0 +1,31 @@
+SUMMARY = "PRU Ethernet firmware for AM57xx, AM437x and AM335x"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|am57xx-evm|am57xx-hs-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = ""
+TARGET:ti33x = "am335x-pru0-prueth-fw.elf am335x-pru1-prueth-fw.elf"
+TARGET:ti43x = "am437x-pru0-prueth-fw.elf am437x-pru1-prueth-fw.elf"
+TARGET:am57xx-evm = "am57xx-pru0-prueth-fw.elf am57xx-pru1-prueth-fw.elf"
+TARGET:am57xx-hs-evm = "am57xx-pru0-prueth-fw.elf am57xx-pru1-prueth-fw.elf"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/pruhsr-fw/pruhsr-fw_2.17.25.bb b/meta-ti-bsp/recipes-bsp/pruhsr-fw/pruhsr-fw_2.17.25.bb
new file mode 100644
index 00000000..618b1ad6
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/pruhsr-fw/pruhsr-fw_2.17.25.bb
@@ -0,0 +1,31 @@
+SUMMARY = "PRU HSR firmware for AM335x/AM437x/AM57xx"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PE = "1"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|am57xx-evm|am57xx-hs-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = ""
+TARGET:ti33x = "am335x-pru0-pruhsr-fw.elf am335x-pru1-pruhsr-fw.elf"
+TARGET:ti43x = "am437x-pru0-pruhsr-fw.elf am437x-pru1-pruhsr-fw.elf"
+TARGET:am57xx-evm = "am57xx-pru0-pruhsr-fw.elf am57xx-pru1-pruhsr-fw.elf"
+TARGET:am57xx-hs-evm = "am57xx-pru0-pruhsr-fw.elf am57xx-pru1-pruhsr-fw.elf"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/pruprp-fw/pruprp-fw_2.17.25.bb b/meta-ti-bsp/recipes-bsp/pruprp-fw/pruprp-fw_2.17.25.bb
new file mode 100644
index 00000000..707640b4
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/pruprp-fw/pruprp-fw_2.17.25.bb
@@ -0,0 +1,32 @@
+SUMMARY = "PRU PRP firmware for AM335x/AM437x/AM57xx"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PE = "1"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|am57xx-evm|am57xx-hs-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = ""
+TARGET:ti33x = "am335x-pru0-pruprp-fw.elf am335x-pru1-pruprp-fw.elf"
+TARGET:ti43x = "am437x-pru0-pruprp-fw.elf am437x-pru1-pruprp-fw.elf"
+TARGET:am57xx-evm = "am57xx-pru0-pruprp-fw.elf am57xx-pru1-pruprp-fw.elf"
+TARGET:am57xx-hs-evm = "am57xx-pru0-pruprp-fw.elf am57xx-pru1-pruprp-fw.elf"
+
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw-am65x-sr2_git.bb b/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw-am65x-sr2_git.bb
new file mode 100644
index 00000000..2d0d3f9e
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw-am65x-sr2_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "PRU Ethernet Switch firmware for AM65xx SR2.0"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${PRUETH_FW_AM65X_SR2_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "am65xx-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = " \
+ am65x-sr2-pru0-prusw-fw.elf \
+ am65x-sr2-pru1-prusw-fw.elf \
+ am65x-sr2-rtu0-prusw-fw.elf \
+ am65x-sr2-rtu1-prusw-fw.elf \
+ am65x-sr2-txpru0-prusw-fw.elf \
+ am65x-sr2-txpru1-prusw-fw.elf \
+"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw_3.2.9.bb b/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw_3.2.9.bb
new file mode 100644
index 00000000..3ded0dc4
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/prusw-fw/prusw-fw_3.2.9.bb
@@ -0,0 +1,31 @@
+SUMMARY = "PRU Switch firmware for AM57xx, AM437x and AM335x"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|am57xx-evm|am57xx-hs-evm"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+
+TARGET = ""
+TARGET:ti33x = "am335x-pru0-prusw-fw.elf am335x-pru1-prusw-fw.elf"
+TARGET:ti43x = "am437x-pru0-prusw-fw.elf am437x-pru1-prusw-fw.elf"
+TARGET:am57xx-evm = "am57xx-pru0-prusw-fw.elf am57xx-pru1-prusw-fw.elf"
+TARGET:am57xx-hs-evm = "am57xx-pru0-prusw-fw.elf am57xx-pru1-prusw-fw.elf"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware/ti-pruss
+ for f in ${TARGET}; do
+ install -m 0644 ${S}/ti-pruss/$f ${D}${base_libdir}/firmware/ti-pruss/$f
+ done
+}
+
+
+FILES:${PN} = "${base_libdir}/firmware"
+
+INSANE_SKIP:${PN} = "arch"
diff --git a/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb
new file mode 100644
index 00000000..9fb473b7
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/viddec-test-app_1.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Test applications for TI DEC (v4l2 decoder for IMG D5520)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://main.c;beginline=1;endline=14;md5=f17e17d664f72942124e4fcf06c178ee"
+
+DEPENDS = "libdrm ffmpeg"
+
+inherit autotools pkgconfig
+
+COMPATIBLE_MACHINE = "j7"
+
+PR = "r1"
+SRCREV = "94a80c8c090dbfdc7fafd4e5bb78c2091e715af2"
+
+EXTRA_OEMAKE = "CC="${CC}""
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/jacinto7_multimedia/viddec-test-app.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
diff --git a/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb
new file mode 100644
index 00000000..3a128b92
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/videnc-test-app_1.0.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Test applications for TI ENC (v4l2 encoder for IMG VXE384)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://main.c;beginline=1;endline=14;md5=3545dd5bdf513840937d38c10b866605"
+
+DEPENDS = "libdrm"
+
+inherit autotools pkgconfig
+
+COMPATIBLE_MACHINE = "j7"
+
+PR = "r0"
+SRCREV = "a5e7d820bea1be24f25a8369d4d4521c784f869a"
+
+EXTRA_OEMAKE = "CC="${CC}""
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/jacinto7_multimedia/videnc-test-app.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
diff --git a/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb
new file mode 100644
index 00000000..3563cc7e
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-img-encode-decode/vxd-dec-fw_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Video Decoding Firmware"
+LICENSE = "TI-IMG"
+LIC_FILES_CHKSUM = "file://LICENSE.ti-img;md5=84ca7278930db001870686ad997d6bb1"
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+PV = "${IMG_DEC_FW_VERSION}"
+PR = "${INC_PR}.0"
+
+CLEANBROKEN = "1"
+
+COMPATIBLE_MACHINE = "j7"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+TARGET = "pvdec_full_bin.fw"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -m 0644 ${S}/ti-img/${TARGET} ${D}${base_libdir}/firmware/${TARGET}
+}
+
+FILES:${PN} = "${base_libdir}/firmware"
diff --git a/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
new file mode 100644
index 00000000..f1607686
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-linux-fw/ti-linux-fw.inc
@@ -0,0 +1,35 @@
+SUMMARY = "TI SCI firmware (SYSFW)"
+
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://LICENSE.ti;md5=b5aebf0668bdf95621259288c4a46d76"
+
+PV = "2021.09a"
+INC_PR = "r1"
+
+# Firmware versions
+CORESDK_RTOS_VERSION = "08.01.00.02"
+SERDES_FW_VERSION = "3.3.0.2c"
+NETCP_SA_FW_VERSION = "1.0.0"
+NETCP_PA_FW_VERSION = "3.0.2.3"
+QMSS_PDSP_FW_VERSION = "1.0.0.9"
+PRUETH_FW_AM65X_VERSION = "08.00.00.20"
+PRUETH_FW_AM65X_SR2_VERSION = "02.02.09.07"
+GOODIX_FW_VERSION = "1.0.0.0"
+CADENCE_MHDP_FW_VERSION = "1.2.17"
+IMG_DEC_FW_VERSION = "1.0"
+
+TI_LINUX_FW_SRCREV ?= "c96a734a059889e571dcf30c0638157c690a6e6e"
+SRCREV = "${TI_LINUX_FW_SRCREV}"
+
+BRANCH ?= "ti-linux-firmware"
+
+K3_IMAGE_GEN_SRCREV ?= "489c767a153ff26e9230746e04dd4b1ad0809901"
+SRCREV_imggen = "${K3_IMAGE_GEN_SRCREV}"
+SRCREV_FORMAT = "imggen"
+
+SRC_URI = " \
+ git://git.ti.com/processor-firmware/ti-linux-firmware.git;protocol=git;branch=${BRANCH} \
+ git://git.ti.com/k3-image-gen/k3-image-gen.git;protocol=git;branch=master;destsuffix=imggen;name=imggen \
+"
+
+S = "${WORKDIR}/git"
diff --git a/meta-ti-bsp/recipes-bsp/ti-sci-fw/files/0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch b/meta-ti-bsp/recipes-bsp/ti-sci-fw/files/0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch
new file mode 100644
index 00000000..196f3d3f
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-sci-fw/files/0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch
@@ -0,0 +1,64 @@
+From 2efc79702a47f9cbbeecbb2f604577f1ec8c95ba Mon Sep 17 00:00:00 2001
+From: Yogesh Siraswar <yogeshs@ti.com>
+Date: Wed, 8 Dec 2021 17:50:19 -0600
+Subject: [KIG PATCH] Makefile: Skip signing of binaries for combined boot hs
+ images
+
+Combined sysfw binaries used in tiboot.bin do not require signed images.
+This fixes issues with AM64x HS and J7200 HS boot images
+
+Upstream-Status: Submitted
+Signed-off-by: Yogesh Siraswar <yogeshs@ti.com>
+---
+ Makefile | 8 +++++++-
+ soc/am64x/Makefile | 1 +
+ soc/j7200/Makefile | 1 +
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 47b3b20..ab465df 100644
+--- a/Makefile
++++ b/Makefile
+@@ -215,8 +215,14 @@ $(soc_objroot)/%.o: %.c
+ $(CROSS_COMPILE)gcc $(CFLAGS) -c -o $@-pre-validated $<
+ python3 ./scripts/sysfw_boardcfg_validator.py -b $@-pre-validated -i -o $@ -s $(SOC) -l $@.log
+
+-# On HS board configuration binaries must be signed
++# On HS board configuration binaries must be signed unless it is combined boot image
+ ifdef HS
++ifndef COMBINED_BOOT_IMAGE
++SIGN_BINARY=1
++endif
++endif
++
++ifdef SIGN_BINARY
+ %.bin.unsigned: %.o
+ $(CROSS_COMPILE)objcopy -S -O binary $< $@
+ %.bin: %.bin.unsigned
+diff --git a/soc/am64x/Makefile b/soc/am64x/Makefile
+index bfbe3e5..33ebbd0 100644
+--- a/soc/am64x/Makefile
++++ b/soc/am64x/Makefile
+@@ -31,6 +31,7 @@
+ #
+
+ SBL_LOADADDDR ?= 0x70000000
++COMBINED_BOOT_IMAGE = 1
+ COMBINED_SYSFW_BRDCFG_LOADADDR ?= 0x7b000
+ LOADADDR ?= 0x44000
+ SCIFS = sci
+diff --git a/soc/j7200/Makefile b/soc/j7200/Makefile
+index 3b754f7..0baef51 100644
+--- a/soc/j7200/Makefile
++++ b/soc/j7200/Makefile
+@@ -31,6 +31,7 @@
+ #
+
+ SBL_LOADADDDR ?= 0x41c00000
++COMBINED_BOOT_IMAGE = 1
+ COMBINED_TIFS_BRDCFG_LOADADDR ?= 0x7f000
+ COMBINED_DM_BRDCFG_LOADADDR ?= 0x41c80000
+ LOADADDR ?= 0x40000
+--
+2.17.1
+
diff --git a/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw-source_git.bb b/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw-source_git.bb
new file mode 100644
index 00000000..bab4acf0
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw-source_git.bb
@@ -0,0 +1,45 @@
+# ti-sci-fw builds and packages multiple config variants via multiconfig
+# Let's take a page from gcc-source as a common recipe for all gcc stages,
+# but also to provide a single package for MAINMACHINE of all multiconfigs
+
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+SUMMARY += "- sources"
+
+COMPATIBLE_MACHINE = "k3"
+
+EXCLUDE_FROM_WORLD = "1"
+INHIBIT_DEFAULT_DEPS = "1"
+DEPENDS = ""
+
+PACKAGES = "${PN}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+SRCIPK_SRC_DIR = "${WORKDIR}/imggen"
+SRCIPK_INSTALL_DIR = "board-support/k3-image-gen-${PV}"
+FILES:${PN} = "${SRCIPK_INSTALL_DIR}"
+
+do_install() {
+ # Copy sources for packaging
+ mkdir -p ${D}/${SRCIPK_INSTALL_DIR}
+ if [ -e ${SRCIPK_SRC_DIR} ]; then
+ if [ "${SRCIPK_SRC_DIR}" = "${WORKDIR}" ]; then
+ excludes='--exclude ./temp --exclude ${D}'
+ fi
+ tar -C ${SRCIPK_SRC_DIR} -cO $excludes . | tar -C ${D}/${SRCIPK_INSTALL_DIR} -xpf -
+ fi
+
+ # Fix up patches/ directory to contain actual patches instead of symlinks
+ if [ -e ${D}/${SRCIPK_INSTALL_DIR}/patches ]
+ then
+ mv ${D}/${SRCIPK_INSTALL_DIR}/patches ${D}/${SRCIPK_INSTALL_DIR}/patches-links
+ cp -rL ${D}/${SRCIPK_INSTALL_DIR}/patches-links ${D}/${SRCIPK_INSTALL_DIR}/patches
+ rm -rf ${D}/${SRCIPK_INSTALL_DIR}/patches-links
+ fi
+}
+
+# Do not perform any QA checks on source package
+INSANE_SKIP:${PN} += "${ALL_QA}"
diff --git a/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb b/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb
new file mode 100644
index 00000000..2dad0fe0
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb
@@ -0,0 +1,160 @@
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+DEPENDS = "openssl-native u-boot-mkimage-native dtc-native"
+DEPENDS:append:j7200-evm-k3r5 = " virtual/bootloader"
+DEPENDS:append:j7200-hs-evm-k3r5 = " virtual/bootloader"
+DEPENDS:append:am64xx-evm-k3r5 = " virtual/bootloader"
+DEPENDS:append:am64xx-hs-evm-k3r5 = " virtual/bootloader"
+
+CLEANBROKEN = "1"
+PR = "${INC_PR}.1"
+
+# Loaded by R5F core
+COMPATIBLE_MACHINE = "k3r5"
+COMPATIBLE_MACHINE:aarch64 = "null"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+TI_SECURE_DEV_PKG ?= ""
+export TI_SECURE_DEV_PKG
+
+SYSFW_SOC ?= "unknown"
+SYSFW_CONFIG ?= "unknown"
+
+SYSFW_PREFIX = "ti-sci-firmware"
+SYSFW_PREFIX:j7-evm-k3r5 = "ti-fs-firmware"
+SYSFW_PREFIX:j7200-evm-k3r5 = "ti-fs-firmware"
+SYSFW_PREFIX:j7-hs-evm-k3r5 = "ti-fs-firmware"
+SYSFW_PREFIX:j7-hs-evm-k3r5-sr1-1 = "ti-fs-firmware"
+SYSFW_PREFIX:j7200-hs-evm-k3r5 = "ti-fs-firmware"
+
+SYSFW_SUFFIX ?= "unknown"
+
+SYSFW_BASE = "${SYSFW_PREFIX}-${SYSFW_SOC}-${SYSFW_SUFFIX}"
+SYSFW_BASE:append = "${@['','*']['${SYSFW_SUFFIX}' == 'hs']}"
+
+SYSFW_TISCI = "${S}/ti-sysfw/${SYSFW_BASE}.bin"
+
+SYSFW_BINARY = "sysfw-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
+SYSFW_VBINARY = "sysfw-${PV}-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
+SYSFW_IMAGE = "sysfw-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
+SYSFW_SYMLINK ?= "sysfw.itb"
+
+CFLAGS[unexport] = "1"
+LDFLAGS[unexport] = "1"
+AS[unexport] = "1"
+LD[unexport] = "1"
+
+do_configure[noexec] = "1"
+
+SRC_URI:append:j7200-hs-evm-k3r5 = " \
+ file://0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch;patchdir=../imggen"
+SRC_URI:append:am64xx-hs-evm-k3r5 = " \
+ file://0001-Makefile-Skip-signing-of-binaries-for-combined-boot-.patch;patchdir=../imggen"
+
+EXTRA_OEMAKE = "\
+ CROSS_COMPILE=${TARGET_PREFIX} SYSFW_DL_URL='' SYSFW_HS_DL_URL='' SYSFW_HS_INNER_CERT_DL_URL='' \
+ SYSFW_PATH="${SYSFW_TISCI}" SOC=${SYSFW_SOC} CONFIG=${SYSFW_CONFIG} \
+"
+EXTRA_OEMAKE_HS = " \
+ HS=1 SW_REV=1 SYSFW_HS_PATH="${S}/ti-sysfw/${SYSFW_BASE}-enc.bin" SYSFW_HS_INNER_CERT_PATH="${S}/ti-sysfw/${SYSFW_BASE}-cert.bin" \
+"
+EXTRA_OEMAKE:append = "${@['',' ${EXTRA_OEMAKE_HS}']['${SYSFW_SUFFIX}' == 'hs']}"
+
+EXTRA_OEMAKE:append:j7200-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
+EXTRA_OEMAKE:append:j7200-hs-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
+EXTRA_OEMAKE:append:am64xx-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
+EXTRA_OEMAKE:append:am64xx-hs-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
+
+do_compile() {
+ cd ${WORKDIR}/imggen/
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}/boot
+ install -m 644 ${WORKDIR}/imggen/${SYSFW_BINARY} ${D}/boot/${SYSFW_VBINARY}
+ ln -sf ${SYSFW_VBINARY} ${D}/boot/${SYSFW_IMAGE}
+ if [ ! -z "${SYSFW_SYMLINK}" ]; then
+ ln -sf ${SYSFW_VBINARY} ${D}/boot/${SYSFW_SYMLINK}
+ fi
+}
+
+FILES:${PN} = "/boot"
+
+inherit deploy
+
+do_deploy () {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/imggen/${SYSFW_BINARY} ${DEPLOYDIR}/${SYSFW_VBINARY}
+ rm -f ${DEPLOYDIR}/${SYSFW_IMAGE}
+ ln -sf ${SYSFW_VBINARY} ${DEPLOYDIR}/${SYSFW_IMAGE}
+ if [ ! -z "${SYSFW_SYMLINK}" ]; then
+ rm -f ${DEPLOYDIR}/${SYSFW_SYMLINK}
+ ln -sf ${SYSFW_VBINARY} ${DEPLOYDIR}/${SYSFW_SYMLINK}
+ fi
+
+ install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
+do_install:j7200-evm-k3r5() {
+ install -d ${D}/boot
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+}
+
+do_deploy:j7200-evm-k3r5() {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_BINARY}
+ install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
+do_install:j7200-hs-evm-k3r5() {
+ install -d ${D}/boot
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+}
+
+do_deploy:j7200-hs-evm-k3r5() {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_BINARY}
+ install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
+do_install:am64xx-evm-k3r5() {
+ install -d ${D}/boot
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+}
+
+do_deploy:am64xx-evm-k3r5() {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_BINARY}
+ install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
+do_install:am64xx-hs-evm-k3r5() {
+ install -d ${D}/boot
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+}
+
+do_deploy:am64xx-hs-evm-k3r5() {
+ install -d ${DEPLOYDIR}
+ install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_SYMLINK}
+ ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_BINARY}
+ install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
+addtask deploy before do_build after do_compile
diff --git a/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
new file mode 100644
index 00000000..8fe7c08e
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend
@@ -0,0 +1,41 @@
+PV:k3 = "2.5"
+LIC_FILES_CHKSUM:k3 = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031"
+BRANCH:k3 = "ti-atf"
+SRC_URI:k3 = "git://git.ti.com/atf/arm-trusted-firmware.git;branch=${BRANCH};name=tfa"
+SRCREV_tfa:k3 = "0693f356eb2a25adf8758d98058120bed082cc73"
+COMPATIBLE_MACHINE:k3 = "k3"
+TFA_BUILD_TARGET:k3 = "all"
+TFA_INSTALL_TARGET:k3 = "bl31"
+TFA_SPD:k3 = "opteed"
+
+do_compile:append:am65xx-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${BUILD_DIR}; \
+ mv bl31.bin bl31.bin.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh bl31.bin.unsigned bl31.bin; \
+ )
+}
+
+do_compile:append:am64xx-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${BUILD_DIR}; \
+ mv bl31.bin bl31.bin.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh bl31.bin.unsigned bl31.bin; \
+ )
+}
+
+do_compile:append:j7-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${BUILD_DIR}; \
+ mv bl31.bin bl31.bin.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh bl31.bin.unsigned bl31.bin; \
+ )
+}
+
+do_compile:append:j7200-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${BUILD_DIR}; \
+ mv bl31.bin bl31.bin.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh bl31.bin.unsigned bl31.bin; \
+ )
+}
diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-mainline_git.bb b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-mainline_git.bb
new file mode 100644
index 00000000..76aaa4b2
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-mainline_git.bb
@@ -0,0 +1,18 @@
+require u-boot-ti.inc
+
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=5a7450c57ffe5ae63fd732446b988025"
+
+PR = "r0"
+
+PV = "2021.10"
+
+# For the un-initiated:
+# The actual URL you'd use with a git clone for example would be:
+# https://source.denx.de/u-boot/u-boot.git/
+# However, in the context of OE, we have to explicitly split things up:
+# a) we want it to use git fetcher - hence git:// prefix in GIT_URI (if we
+# used https here, we'd endup attempting wget instead of git)
+# b) and we want git fetcher to use https protocol, hence GIT_PROTOCOL as https
+UBOOT_GIT_URI = "git://source.denx.de/u-boot/u-boot.git"
+UBOOT_GIT_PROTOCOL = "https"
+SRCREV = "d80bb749fab53da72c4a0e09b8c2d2aaa3103c91"
diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2020.01.bb b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2020.01.bb
new file mode 100644
index 00000000..e1bdae46
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2020.01.bb
@@ -0,0 +1,7 @@
+require u-boot-ti.inc
+
+PR = "r36"
+
+BRANCH = "ti-u-boot-2020.01"
+
+SRCREV = "2781231a33c3d779e32445f4fe55164c45d6d7c1"
diff --git a/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2021.01.bb b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2021.01.bb
new file mode 100644
index 00000000..d304df87
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti-staging_2021.01.bb
@@ -0,0 +1,9 @@
+require u-boot-ti.inc
+
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=5a7450c57ffe5ae63fd732446b988025"
+
+PR = "r16"
+
+BRANCH = "ti-u-boot-2021.01"
+
+SRCREV = "15769936a559b1840f50b83f94ee0c636b245001"
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
new file mode 100644
index 00000000..4b9f543c
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/u-boot/u-boot-ti.inc
@@ -0,0 +1,290 @@
+# UBOOT_LOCALVERSION can be set to add a tag to the end of the
+# U-boot version string. such as the commit id
+def get_git_revision(p):
+ import subprocess
+
+ try:
+ return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE, universal_newlines=True).communicate()[0].rstrip()
+ except OSError:
+ return None
+
+UBOOT_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
+
+UBOOT_SUFFIX ?= "img"
+SPL_BINARY ?= "MLO"
+
+require ${COREBASE}/meta/recipes-bsp/u-boot/u-boot-common.inc
+require ${COREBASE}/meta/recipes-bsp/u-boot/u-boot.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/u-boot:"
+
+SUMMARY = "u-boot bootloader for TI devices"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e"
+
+BRANCH ?= "master"
+UBOOT_GIT_URI = "git://git.ti.com/ti-u-boot/ti-u-boot.git"
+UBOOT_GIT_PROTOCOL = "git"
+SRC_URI = "${UBOOT_GIT_URI};protocol=${UBOOT_GIT_PROTOCOL};branch=${BRANCH}"
+
+PV:append = "+git${SRCPV}"
+
+# u-boot needs devtree compiler to parse dts files
+DEPENDS += "dtc-native bc-native lzop-native flex-native bison-native"
+
+DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f"
+
+PACKAGECONFIG[atf] = "ATF=${STAGING_DIR_HOST}/firmware/bl31.bin,,trusted-firmware-a"
+PACKAGECONFIG[optee] = "TEE=${STAGING_DIR_HOST}${nonarch_base_libdir}/firmware/bl32.bin,,optee-os"
+PACKAGECONFIG[dm] = "DM=${STAGING_DIR_HOST}${nonarch_base_libdir}/firmware/pdk-ipc/${DM_FIRMWARE},,ti-rtos-firmware"
+
+PACKAGECONFIG:append:aarch64 = " atf optee"
+PACKAGECONFIG:append:j7 = " dm"
+
+COMPATIBLE_MACHINE = "(ti-soc)"
+
+EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
+
+PROVIDES += "u-boot"
+PKG:${PN} = "u-boot"
+PKG:${PN}-dev = "u-boot-dev"
+PKG:${PN}-dbg = "u-boot-dbg"
+
+S = "${WORKDIR}/git"
+
+# Support for secure devices - detailed info is in doc/README.ti-secure
+TI_SECURE_DEV_PKG ?= ""
+export TI_SECURE_DEV_PKG
+
+SYSROOT_DIRS += "/boot"
+
+# SPL (Second Program Loader) to be loaded over UART
+SPL_UART_BINARY = "u-boot-spl.bin"
+SPL_UART_BINARY:k3r5 = ""
+SPL_UART_BINARY:lego-ev3 = ""
+SPL_UART_BINARY:j7200-evm-k3r5 = "u-boot-spl.bin"
+SPL_UART_BINARY:j7200-hs-evm-k3r5 = "u-boot-spl.bin"
+SPL_UART_BINARY:am64xx-evm-k3r5 = "u-boot-spl.bin"
+SPL_UART_BINARY:am64xx-hs-evm-k3r5 = "u-boot-spl.bin"
+
+SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}"
+SPL_UART_SYMLINK ?= "${SPL_UART_BINARY}-${MACHINE}"
+
+# SPI NOR Flash binaries
+UBOOT_SPI_SPL_BINARY = "u-boot-spl.bin"
+UBOOT_SPI_BINARY = "u-boot.img"
+UBOOT_SPI_GPH_BINARY = "u-boot-spi.gph"
+
+# SPI NOR Flash deployed images
+UBOOT_SPI_SPL_IMAGE = "u-boot-spl-${MACHINE}-${PV}-${PR}.bin"
+UBOOT_SPI_SPL_SYMLINK = "u-boot-spl-${MACHINE}.bin"
+UBOOT_SPI_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.img"
+UBOOT_SPI_SYMLINK = "u-boot-${MACHINE}.img"
+UBOOT_SPI_GPH_IMAGE = "u-boot-spi-${MACHINE}-${PV}-${PR}.gph"
+UBOOT_SPI_GPH_SYMLINK = "u-boot-spi-${MACHINE}.gph"
+
+# HS XLD
+UBOOT_HS_XLD_BINARY = "u-boot-spl_HS_X-LOADER"
+UBOOT_HS_XLD_IMAGE = "u-boot-spl_HS_X-LOADER-${MACHINE}-${PV}-${PR}"
+UBOOT_HS_XLD_SYMLINK = "u-boot-spl_HS_X-LOADER-${MACHINE}"
+
+# HS MLO
+UBOOT_HS_MLO_BINARY = "u-boot_HS_MLO"
+UBOOT_HS_MLO_IMAGE = "u-boot_HS_MLO-${MACHINE}-${PV}-${PR}"
+UBOOT_HS_MLO_SYMLINK = "u-boot_HS_MLO-${MACHINE}"
+
+# HS ISSW
+UBOOT_HS_ISSW_BINARY = "u-boot-spl_HS_ISSW"
+UBOOT_HS_ISSW_IMAGE = "u-boot-spl_HS_ISSW-${MACHINE}-${PV}-${PR}"
+UBOOT_HS_ISSW_SYMLINK = "u-boot-spl_HS_ISSW-${MACHINE}"
+
+# HS 2ND
+UBOOT_HS_2ND_BINARY = "u-boot-spl_HS_2ND"
+UBOOT_HS_2ND_IMAGE = "u-boot-spl_HS_2ND-${MACHINE}-${PV}-${PR}"
+UBOOT_HS_2ND_SYMLINK = "u-boot-spl_HS_2ND-${MACHINE}"
+
+do_install:append () {
+ if [ -n "${UBOOT_CONFIG}" ]
+ then
+ for config in ${UBOOT_MACHINE}; do
+ i=$(expr $i + 1);
+ for type in ${UBOOT_CONFIG}; do
+ j=$(expr $j + 1);
+ if [ $j -eq $i ]
+ then
+ if [ "x${SPL_UART_BINARY}" != "x" ]; then
+ install ${B}/${config}/spl/${SPL_UART_BINARY} ${D}/boot/${SPL_UART_IMAGE}-${type}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${D}/boot/${SPL_UART_BINARY}-${type}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${D}/boot/${SPL_UART_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_XLD_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_XLD_BINARY} ${D}/boot/${UBOOT_HS_XLD_IMAGE}-${type}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${D}/boot/${UBOOT_HS_XLD_BINARY}-${type}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${D}/boot/${UBOOT_HS_XLD_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_MLO_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_MLO_BINARY} ${D}/boot/${UBOOT_HS_MLO_IMAGE}-${type}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${D}/boot/${UBOOT_HS_MLO_BINARY}-${type}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${D}/boot/${UBOOT_HS_MLO_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_ISSW_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_ISSW_BINARY} ${D}/boot/${UBOOT_HS_ISSW_IMAGE}-${type}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${D}/boot/${UBOOT_HS_ISSW_BINARY}-${type}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${D}/boot/${UBOOT_HS_ISSW_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_2ND_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_2ND_BINARY} ${D}/boot/${UBOOT_HS_2ND_IMAGE}-${type}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${D}/boot/${UBOOT_HS_2ND_BINARY}-${type}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${D}/boot/${UBOOT_HS_2ND_BINARY}
+ fi
+ fi
+ done
+ unset j
+ done
+ unset i
+ else
+ if [ "x${SPL_UART_BINARY}" != "x" ]; then
+ install ${B}/spl/${SPL_UART_BINARY} ${D}/boot/${SPL_UART_IMAGE}
+ ln -sf ${SPL_UART_IMAGE} ${D}/boot/${SPL_UART_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_XLD_BINARY} ]; then
+ install ${B}/${UBOOT_HS_XLD_BINARY} ${D}/boot/${UBOOT_HS_XLD_IMAGE}
+ ln -sf ${UBOOT_HS_XLD_IMAGE} ${D}/boot/${UBOOT_HS_XLD_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_MLO_BINARY} ]; then
+ install ${B}/${UBOOT_HS_MLO_BINARY} ${D}/boot/${UBOOT_HS_MLO_IMAGE}
+ ln -sf ${UBOOT_HS_MLO_IMAGE} ${D}/boot/${UBOOT_HS_MLO_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_ISSW_BINARY} ]; then
+ install ${B}/${UBOOT_HS_ISSW_BINARY} ${D}/boot/${UBOOT_HS_ISSW_IMAGE}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE} ${D}/boot/${UBOOT_HS_ISSW_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_2ND_BINARY} ]; then
+ install ${B}/${UBOOT_HS_2ND_BINARY} ${D}/boot/${UBOOT_HS_2ND_IMAGE}
+ ln -sf ${UBOOT_HS_2ND_IMAGE} ${D}/boot/${UBOOT_HS_2ND_BINARY}
+ fi
+ fi
+}
+
+do_deploy:append () {
+ if [ -n "${UBOOT_CONFIG}" ]
+ then
+ for config in ${UBOOT_MACHINE}; do
+ i=$(expr $i + 1);
+ for type in ${UBOOT_CONFIG}; do
+ j=$(expr $j + 1);
+ if [ $j -eq $i ]
+ then
+ cd ${DEPLOYDIR}
+ if [ "x${SPL_UART_BINARY}" != "x" ]; then
+ install ${B}/${config}/spl/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_IMAGE}-${type}
+ rm -f ${DEPLOYDIR}/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${DEPLOYDIR}/${SPL_UART_BINARY}-${type}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${DEPLOYDIR}/${SPL_UART_BINARY}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${DEPLOYDIR}/${SPL_UART_SYMLINK}-${type}
+ ln -sf ${SPL_UART_IMAGE}-${type} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_XLD_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_XLD_BINARY} ${DEPLOYDIR}/${UBOOT_HS_XLD_IMAGE}-${type}
+ rm -f ${UBOOT_HS_XLD_BINARY} ${UBOOT_HS_XLD_SYMLINK}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${UBOOT_HS_XLD_SYMLINK}-${type}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${UBOOT_HS_XLD_SYMLINK}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${UBOOT_HS_XLD_BINARY}-${type}
+ ln -sf ${UBOOT_HS_XLD_IMAGE}-${type} ${UBOOT_HS_XLD_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_MLO_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_MLO_BINARY} ${DEPLOYDIR}/${UBOOT_HS_MLO_IMAGE}-${type}
+ rm -f ${UBOOT_HS_MLO_BINARY} ${UBOOT_HS_MLO_SYMLINK}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${UBOOT_HS_MLO_SYMLINK}-${type}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${UBOOT_HS_MLO_SYMLINK}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${UBOOT_HS_MLO_BINARY}-${type}
+ ln -sf ${UBOOT_HS_MLO_IMAGE}-${type} ${UBOOT_HS_MLO_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_ISSW_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_ISSW_BINARY} ${DEPLOYDIR}/${UBOOT_HS_ISSW_IMAGE}-${type}
+ rm -f ${UBOOT_HS_ISSW_BINARY} ${UBOOT_HS_ISSW_SYMLINK}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${UBOOT_HS_ISSW_SYMLINK}-${type}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${UBOOT_HS_ISSW_SYMLINK}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${UBOOT_HS_ISSW_BINARY}-${type}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE}-${type} ${UBOOT_HS_ISSW_BINARY}
+ fi
+ if [ -f ${B}/${config}/${UBOOT_HS_2ND_BINARY} ]; then
+ install ${B}/${config}/${UBOOT_HS_2ND_BINARY} ${DEPLOYDIR}/${UBOOT_HS_2ND_IMAGE}-${type}
+ rm -f ${UBOOT_HS_2ND_BINARY} ${UBOOT_HS_2ND_SYMLINK}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${UBOOT_HS_2ND_SYMLINK}-${type}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${UBOOT_HS_2ND_SYMLINK}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${UBOOT_HS_2ND_BINARY}-${type}
+ ln -sf ${UBOOT_HS_2ND_IMAGE}-${type} ${UBOOT_HS_2ND_BINARY}
+ fi
+ fi
+ done
+ unset j
+ done
+ unset i
+ else
+ cd ${DEPLOYDIR}
+ if [ "x${SPL_UART_BINARY}" != "x" ]; then
+ install ${B}/spl/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_IMAGE}
+ rm -f ${DEPLOYDIR}/${SPL_UART_BINARY} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
+ ln -sf ${SPL_UART_IMAGE} ${DEPLOYDIR}/${SPL_UART_BINARY}
+ ln -sf ${SPL_UART_IMAGE} ${DEPLOYDIR}/${SPL_UART_SYMLINK}
+ fi
+ if [ -f ${B}/${UBOOT_HS_XLD_BINARY} ]; then
+ install ${B}/${UBOOT_HS_XLD_BINARY} ${DEPLOYDIR}/${UBOOT_HS_XLD_IMAGE}
+ rm -f ${UBOOT_HS_XLD_BINARY} ${UBOOT_HS_XLD_SYMLINK}
+ ln -sf ${UBOOT_HS_XLD_IMAGE} ${UBOOT_HS_XLD_SYMLINK}
+ ln -sf ${UBOOT_HS_XLD_IMAGE} ${UBOOT_HS_XLD_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_MLO_BINARY} ]; then
+ install ${B}/${UBOOT_HS_MLO_BINARY} ${DEPLOYDIR}/${UBOOT_HS_MLO_IMAGE}
+ rm -f ${UBOOT_HS_MLO_BINARY} ${UBOOT_HS_MLO_SYMLINK}
+ ln -sf ${UBOOT_HS_MLO_IMAGE} ${UBOOT_HS_MLO_SYMLINK}
+ ln -sf ${UBOOT_HS_MLO_IMAGE} ${UBOOT_HS_MLO_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_ISSW_BINARY} ]; then
+ install ${B}/${UBOOT_HS_ISSW_BINARY} ${DEPLOYDIR}/${UBOOT_HS_ISSW_IMAGE}
+ rm -f ${UBOOT_HS_ISSW_BINARY} ${UBOOT_HS_ISSW_SYMLINK}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE} ${UBOOT_HS_ISSW_SYMLINK}
+ ln -sf ${UBOOT_HS_ISSW_IMAGE} ${UBOOT_HS_ISSW_BINARY}
+ fi
+ if [ -f ${B}/${UBOOT_HS_2ND_BINARY} ]; then
+ install ${B}/${UBOOT_HS_2ND_BINARY} ${DEPLOYDIR}/${UBOOT_HS_2ND_IMAGE}
+ rm -f ${UBOOT_HS_2ND_BINARY} ${UBOOT_HS_2ND_SYMLINK}
+ ln -sf ${UBOOT_HS_2ND_IMAGE} ${UBOOT_HS_2ND_SYMLINK}
+ ln -sf ${UBOOT_HS_2ND_IMAGE} ${UBOOT_HS_2ND_BINARY}
+ fi
+ fi
+
+ rm ${DEPLOYDIR}/u-boot-initial-env || true
+ rm ${DEPLOYDIR}/${PN}-initial-env || true
+ rm ${DEPLOYDIR}/u-boot-initial-env-${MACHINE} || true
+ rm ${DEPLOYDIR}/${PN}-initial-env-${MACHINE} || true
+ rm ${DEPLOYDIR}/u-boot-initial-env-${MACHINE}-${PV}-${PR} || true
+ rm ${DEPLOYDIR}/${PN}-initial-env-${MACHINE}-${PV}-${PR} || true
+}
+
+# j7200 uses combined image for tiboot3.bin that includes u-boot-spl.bin and sysfw
+# along with board PM/RM configs generated by k3-image-gen and comes from ti-sci-fw
+# hence move the legacy u-boot's tiboot3.bin and u-boot-spl.bin out of the way
+do_deploy:append:j7200-evm-k3r5 () {
+ mv ${DEPLOYDIR}/tiboot3.bin ${DEPLOYDIR}/tiboot3-r5spl.bin || true
+ mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
+}
+
+do_deploy:append:j7200-hs-evm-k3r5 () {
+ mv ${DEPLOYDIR}/tiboot3.bin ${DEPLOYDIR}/tiboot3-r5spl.bin || true
+ mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
+}
+
+do_deploy:append:am64xx-evm-k3r5 () {
+ mv ${DEPLOYDIR}/tiboot3.bin ${DEPLOYDIR}/tiboot3-r5spl.bin || true
+ mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
+}
+
+do_deploy:append:am64xx-hs-evm-k3r5 () {
+ mv ${DEPLOYDIR}/tiboot3.bin ${DEPLOYDIR}/tiboot3-r5spl.bin || true
+ mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
+}
+
+TOOLCHAIN = "gcc"
diff --git a/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv-test_git.bb b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv-test_git.bb
new file mode 100644
index 00000000..dc17a1e9
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv-test_git.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Test code for user space IO (UIO) driver"
+
+include uio-module-drv.inc
+
+PR = "r1"
+
+COMPATIBLE_MACHINE = "omap-a15|ti33x|ti43x"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEVICE_NAME:omap-a15 = "am57xx"
+DEVICE_NAME:ti33x = "am33xx"
+DEVICE_NAME:ti43x = "am43xx"
+RDEPENDS:${PN} = "uio-module-drv"
+
+do_compile() {
+ oe_runmake -C ${S} test "DEVICE=${DEVICE_NAME}"
+}
+
+do_install() {
+ install -d ${D}${bindir}/
+ install -c -m 755 ${S}/test/uio_mem_test ${D}${bindir}/.
+ install -c -m 755 ${S}/test/uio_int_test ${D}${bindir}/.
+}
+
+do_install:append:omap-a15 () {
+ install -c -m 755 ${S}/test/prussdrv_test/test/pruss_uio_test ${D}${bindir}/.
+}
+
+do_install:append:ti33x () {
+ install -c -m 755 ${S}/test/prussdrv_test/test/pruss_uio_test ${D}${bindir}/.
+}
+
+do_install:append:ti43x () {
+ install -c -m 755 ${S}/test/prussdrv_test/test/pruss_uio_test ${D}${bindir}/.
+}
diff --git a/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv.inc b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv.inc
new file mode 100644
index 00000000..8081d021
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv.inc
@@ -0,0 +1,19 @@
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2b7c96eb2aed7b0f6f922214dbde9016"
+
+BRANCH = "master"
+# This corresponds to version 02.02.01.00
+UIO_MODULE_DRV_SRCREV = "bda9260f2220840a60ec0fbc8011cbadf3cf1b91"
+
+PV = "2.2.1.0+git${SRCPV}"
+
+UIO_MODULE_DRV_GIT_URI = "git://git.ti.com/keystone-linux/uio-module-drv.git"
+UIO_MODULE_DRV_GIT_PROTOCOL = "git"
+SRC_URI = "${UIO_MODULE_DRV_GIT_URI};protocol=${UIO_MODULE_DRV_GIT_PROTOCOL};branch=${BRANCH}"
+
+SRCREV = "${UIO_MODULE_DRV_SRCREV}"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv/0001-uio-module-drv-Replace-ioremap_nocache-with-ioremap.patch b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv/0001-uio-module-drv-Replace-ioremap_nocache-with-ioremap.patch
new file mode 100644
index 00000000..955ef558
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv/0001-uio-module-drv-Replace-ioremap_nocache-with-ioremap.patch
@@ -0,0 +1,35 @@
+From b5c4036dac06817bffd0be21c5fa1b7f75f74e4b Mon Sep 17 00:00:00 2001
+From: Suman Anna <s-anna@ti.com>
+Date: Mon, 19 Apr 2021 13:15:51 -0500
+Subject: [PATCH] uio-module-drv: Replace ioremap_nocache with ioremap
+
+The ioremap_nocache is the same as the regular ioremap and its
+definition has been dropped from the Linux kernel v5.6 onwards in
+commit 4bdc0d676a64 ("remove ioremap_nocache and devm_ioremap_nocache")
+[1]. The uio-module-drv module fails to build against these newer
+kernels, so fix it by simply replacing ioremap_nocache with ioremap.
+
+[1]
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4bdc0d676a643140bdf17dbf7eafedee3d496a3c
+
+Signed-off-by: Suman Anna <s-anna@ti.com>
+---
+ uio_module_drv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/uio_module_drv.c b/uio_module_drv.c
+index 5a67dd199e21..7cc6005d1f05 100644
+--- a/uio_module_drv.c
++++ b/uio_module_drv.c
+@@ -240,7 +240,7 @@ static ssize_t uio_module_drv_transfer(struct file *file, char __user *buf,
+ return -EINVAL;
+ }
+
+- virt_addr_p = ioremap_nocache(phys_addr, count);
++ virt_addr_p = ioremap(phys_addr, count);
+ if (!virt_addr_p) {
+ dev_err(uio_module_drv->dev, "Mapping of virtual memory failed\n");
+ return(-ENOMEM);
+--
+2.30.1
+
diff --git a/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv_git.bb b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv_git.bb
new file mode 100644
index 00000000..2bb1f0b3
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/uio-module-drv/uio-module-drv_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "User space IO (UIO) driver for on-chip modules"
+
+include uio-module-drv.inc
+
+FILESEXTRAPATHS:prepend:= "${THISDIR}/${PN}:"
+
+SRC_URI += "file://0001-uio-module-drv-Replace-ioremap_nocache-with-ioremap.patch"
+
+# This package builds a kernel module, use kernel PR as base and append a local
+MACHINE_KERNEL_PR:append = "d"
+PR = "${MACHINE_KERNEL_PR}"
+
+module_auto_load_uio-module-drv = "uio-module-drv"
+
+inherit module
+
+do_install:append () {
+ install -d ${D}${includedir}
+ cp *.h ${D}${includedir}
+}
+
+KERNEL_MODULE_AUTOLOAD += "uio_module_drv"
diff --git a/meta-ti-bsp/recipes-bsp/vis-fw/vis_01.50.07.15.bb b/meta-ti-bsp/recipes-bsp/vis-fw/vis_01.50.07.15.bb
new file mode 100644
index 00000000..498be36b
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/vis-fw/vis_01.50.07.15.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Radio Application Firmware"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://${S}/J6_VIS_DEMO_LINUX_BINARY_01.50.07.15-Manifest.html;md5=a59aa54b9470f555cf086b91dca0afa3"
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PR = "r1"
+
+SRC_URI = "http://downloads.ti.com/dsps/dsps_public_sw/glsdk/vis/01_50_07_15/exports/vis-dra7xx-evm-01.50.07.15.tar.gz;protocol=http"
+
+SRC_URI[md5sum] = "fe8b00e398fb3b7ada0c15b601867acb"
+SRC_URI[sha256sum] = "6e2aa47ae892910616ebdc96646af778af9a59ca0657716ab4fa4b24a9afae69"
+
+S = "${WORKDIR}"
+
+DSPAPP = "dra7-dsp1-fw-radio.xe66"
+GPPAPP = "RadioApp"
+
+do_install() {
+ install -d ${D}${base_libdir}/firmware
+ install -d ${D}${bindir}
+ install ${S}/prebuilt/${DSPAPP} ${D}${base_libdir}/firmware/${DSPAPP}
+ install -m 0755 ${S}/prebuilt/${GPPAPP} ${D}${bindir}/${GPPAPP}
+}
+
+PACKAGES += "${PN}-fw"
+RDEPENDS:${PN} += "${PN}-fw"
+
+FILES:${PN}-fw += "${base_libdir}/firmware/${DSPAPP}"
+
+INSANE_SKIP:${PN} = "ldflags"
+INSANE_SKIP:${PN}-fw = "arch"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
diff --git a/meta-ti-bsp/recipes-bsp/vpdma-fw/vpdma-fw_03-2012.bb b/meta-ti-bsp/recipes-bsp/vpdma-fw/vpdma-fw_03-2012.bb
new file mode 100644
index 00000000..c7b2a7bb
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/vpdma-fw/vpdma-fw_03-2012.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "VPDMA firmware for Video Input Port and Video Processing Engine"
+
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fd463c9500441ed91d07a0331baa635c"
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEPENDS += "virtual/kernel"
+
+SRC_URI = "http://downloads.ti.com/dsps/dsps_public_sw/glsdk/vpdma-fw/03-2012/exports/vpdma-fw_03-2012.tar.gz;protocol=http;name=dra7xx-evm"
+SRC_URI[dra7xx-evm.md5sum] = "80176df1350c21d9efa90171789c546e"
+SRC_URI[dra7xx-evm.sha256sum] = "a0b254ffd0c7f481cb3989e632088f5e4a233c73a1c676faa3061721ea60dc90"
+
+S = "${WORKDIR}/vpdma-fw-${PV}"
+TARGET = "vpdma-1b8.bin"
+
+do_install() {
+ mkdir -p ${D}${base_libdir}/firmware
+ cp ${S}/${TARGET} ${D}${base_libdir}/firmware/${TARGET}
+}
+
+FILES:${PN} += "${base_libdir}/firmware/${TARGET}"
+
+PR = "r1"
diff --git a/meta-ti-bsp/recipes-bsp/vpe-tests/vpe-tests_git.bb b/meta-ti-bsp/recipes-bsp/vpe-tests/vpe-tests_git.bb
new file mode 100644
index 00000000..92c425b1
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/vpe-tests/vpe-tests_git.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "VPE test program"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74d2f71d8898c54e3d1c9d0058c484aa"
+
+DEPENDS = "virtual/kernel vpdma-fw"
+
+PR = "r3"
+
+COMPATIBLE_MACHINE = "dra7xx"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRCREV = "e3d8db1aa935775f9d196ad7428e0cd9864a36ca"
+BRANCH ?= "master"
+
+SRC_URI = "git://git.ti.com/vpe_tests/vpe_tests.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+FLOATABI = "${@bb.utils.contains("TUNE_FEATURES", "vfp", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", " -mfloat-abi=hard", " -mfloat-abi=softfp", d), "" ,d)}"
+
+# The test application needs additional include headers from the kernel
+EXTRA_OEMAKE = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${TARGET_PREFIX}gcc ${FLOATABI}" KDIR="${STAGING_KERNEL_DIR}/include/uapi -I${STAGING_KERNEL_DIR}/include"'
+
+do_install() {
+ oe_runmake DESTDIR="${D}" install
+ rm -rf ${D}${base_libdir}/firmware/vpdma-*.bin
+ rmdir -p ${D}${base_libdir}/firmware || true
+}
diff --git a/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch b/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch
new file mode 100644
index 00000000..a8db0770
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch
@@ -0,0 +1,29 @@
+From 3a8fc3ccf00796254d6cef4b6d4cd70dc37012e1 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Fri, 10 Mar 2017 13:28:29 -0500
+Subject: [PATCH] Add Makefile to install firmware files
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ Makefile | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+ create mode 100644 Makefile
+
+diff --git a/Makefile b/Makefile
+new file mode 100644
+index 0000000..1cf38e3
+--- /dev/null
++++ b/Makefile
+@@ -0,0 +1,9 @@
++# Installs the the ti-connectivity wlan firmware files into the root file system
++
++install:
++ @if [ ! -d $(DESTDIR) ] ; then \
++ echo "Target filesystem directory doesn't exist."; \
++ exit 1; \
++ fi
++ install -d $(DEST_DIR)/lib/firmware/ti-connectivity
++ cp *.bin $(DEST_DIR)/lib/firmware/ti-connectivity/
+--
+2.7.4
+
diff --git a/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb b/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb
new file mode 100644
index 00000000..48b500a8
--- /dev/null
+++ b/meta-ti-bsp/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Firmware files for use with TI wl18xx"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=4977a0fe767ee17765ae63c435a32a9e"
+
+SRC_URI = " \
+ git://git.ti.com/wilink8-wlan/wl18xx_fw.git;protocol=git;branch=${BRANCH} \
+ file://0001-Add-Makefile-to-install-firmware-files.patch \
+"
+
+SRCREV = "5ec05007f2662f460f881c5868311fd3ab7e6e71"
+BRANCH = "master"
+
+S = "${WORKDIR}/git"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ oe_runmake 'DEST_DIR=${D}' install
+}
+
+FILES:${PN} = "/lib/firmware/ti-connectivity/*"
diff --git a/meta-ti-bsp/recipes-connectivity/uim/uim-sysfs_8.5.bb b/meta-ti-bsp/recipes-connectivity/uim/uim-sysfs_8.5.bb
new file mode 100644
index 00000000..72e2166f
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/uim/uim-sysfs_8.5.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Shared Transport Line Discipline User Mode initialisation Manager Daemon"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2976c31e"
+
+INITSCRIPT_NAME = "uim-sysfs"
+INITSCRIPT_PARAMS = "defaults 03"
+
+inherit update-rc.d
+
+SRCREV = "a75f45be2d5c74fc1dd913d08afc30f09a230aa9"
+SRC_URI = "git://git.ti.com/ti-bt/uim.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 uim ${D}${bindir}
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 scripts/uim-sysfs ${D}${sysconfdir}/init.d
+}
diff --git a/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch b/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch
new file mode 100644
index 00000000..fc5542e0
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch
@@ -0,0 +1,35 @@
+From e3f694496322d3679dd9b007dc3caa4343f0f376 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Aug 2020 18:12:58 -0700
+Subject: [PATCH] plt.h: Do not define EFUSE_PARAMETER_TYPE_ENMT type enum in
+ header file
+
+gcc10 uses -fno-common by default and this causes multiple definitions
+of this enum in all files including plt.h file, therefore just define
+the type in header file
+
+Fixes
+arm-yoe-linux-musleabi-ld: misc_cmds.o:/usr/src/debug/wl18xx-calibrator/8.7.3-r0/git/./plt.h:402: multiple definition of `EFUSE_PARAMETER_TYPE_ENM'; nvs.o:/usr/src/debug/wl18xx-calibrator/8.7.3-r0/git/./plt.h:402: first defined here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plt.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plt.h b/plt.h
+index 8b534a9..43d5dbc 100644
+--- a/plt.h
++++ b/plt.h
+@@ -399,7 +399,7 @@ enum EFUSE_PARAMETER_TYPE_ENMT {
+ TX_BIP_PD_BUFFER_VBIAS_ERROR_E,
+ EFUSE_NUMBER_OF_PARAMETERS_E,
+ EFUSE_LAST_PARAMETER_E = (EFUSE_NUMBER_OF_PARAMETERS_E - 1)
+-} EFUSE_PARAMETER_TYPE_ENM;
++};
+
+ int get_mac_addr(int ifc_num, unsigned char *mac_addr);
+
+--
+2.28.0
+
diff --git a/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb b/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb
new file mode 100644
index 00000000..2888b95a
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "The calibrator utility for TI wireless solution based on wl18xx driver"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4725015cb0be7be389cf06deeae3683d"
+
+DEPENDS = "libnl"
+RDEPENDS:${PN} = "wl18xx-fw"
+
+#Tag: R8.7_SP3 (8.7.3)
+SRCREV = "5048b59a444ac59ba7171d6e122d5a84581aebf2"
+SRC_URI = "git://git.ti.com/wilink8-wlan/18xx-ti-utils.git \
+ file://0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+export CROSS_COMPILE = "${TARGET_PREFIX}"
+
+EXTRA_OEMAKE = "CFLAGS="${CFLAGS} -I${STAGING_INCDIR}/libnl3/ -DCONFIG_LIBNL32 " \
+ LDFLAGS="${LDFLAGS} -L${STAGING_LIBDIR}" \
+ CC="${CC}" \
+ NLVER=3"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 calibrator ${D}${bindir}/
+}
diff --git a/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch b/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch
new file mode 100644
index 00000000..c0719e34
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch
@@ -0,0 +1,23 @@
+From ba1ac3862c8c3b2dbb615dc342b7fb1eaa96900f Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Fri, 10 Nov 2017 17:02:39 -0500
+Subject: [PATCH] print_stat.sh: replace /system/bin/sh with /bin/sh
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ testing/print_stat.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testing/print_stat.sh b/testing/print_stat.sh
+index 681a063..0a519f6 100755
+--- a/testing/print_stat.sh
++++ b/testing/print_stat.sh
+@@ -1,4 +1,4 @@
+-#!/system/bin/sh
++#!/bin/sh
+
+ PHY=`ls /sys/class/ieee80211/`
+ mkdir -p /debug
+--
+2.7.4
+
diff --git a/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.7.3.bb b/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.7.3.bb
new file mode 100644
index 00000000..2a44fa84
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.7.3.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Scripts and configuration files for TI wireless drivers"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=1;endline=21;md5=b8d6a0865f50159bf5c0d175d1f4a705"
+
+# Tag: R8.7_SP3 (8.7.3)
+SRCREV = "a07b6e711d2a70608101d3d6cdc5749c4d8a96d5"
+BRANCH = "sitara-scripts"
+SRC_URI = "git://git.ti.com/wilink8-wlan/wl18xx-target-scripts.git;protocol=git;branch=${BRANCH} \
+file://0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch \
+"
+
+PR = "r1"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${datadir}/wl18xx/"
+
+do_install() {
+ install -d ${D}${datadir}/wl18xx/
+
+ scripts=`find ./* -type f -name "*.*"`
+ for s in $scripts
+ do
+ install -m 0755 $s ${D}${datadir}/wl18xx/
+ done
+}
diff --git a/meta-ti-bsp/recipes-connectivity/wlconf/wlconf_8.7.3.bb b/meta-ti-bsp/recipes-connectivity/wlconf/wlconf_8.7.3.bb
new file mode 100644
index 00000000..475bac28
--- /dev/null
+++ b/meta-ti-bsp/recipes-connectivity/wlconf/wlconf_8.7.3.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Configuration utility for TI wireless drivers"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://README;beginline=1;endline=21;md5=adc05a1903d3f107f85c90328e3a9438"
+
+# Tag: R8.7_SP3 (8.7.3)
+SRCREV = "5048b59a444ac59ba7171d6e122d5a84581aebf2"
+SRC_URI = "git://git.ti.com/wilink8-wlan/18xx-ti-utils.git"
+
+S = "${WORKDIR}/git/wlconf"
+
+EXTRA_OEMAKE = "CC="${CC}""
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -d ${D}${sbindir}/wlconf/
+ install -d ${D}${sbindir}/wlconf/official_inis
+ install -d ${D}/lib/firmware/ti-connectivity
+
+ install -m 0755 wlconf ${D}${sbindir}/wlconf/
+ install -m 0755 dictionary.txt ${D}${sbindir}/wlconf/
+ install -m 0755 struct.bin ${D}${sbindir}/wlconf/
+ install -m 0755 default.conf ${D}${sbindir}/wlconf/
+ install -m 0755 wl18xx-conf-default.bin ${D}${sbindir}/wlconf/
+ install -m 0755 wl18xx-conf-default.bin ${D}/lib/firmware/ti-connectivity/wl18xx-conf.bin
+ install -m 0755 README ${D}${sbindir}/wlconf/
+ install -m 0755 example.conf ${D}${sbindir}/wlconf/
+ install -m 0755 example.ini ${D}${sbindir}/wlconf/
+ install -m 0755 configure-device.sh ${D}${sbindir}/wlconf/
+ install -m 0755 ${S}/official_inis/* \
+ ${D}${sbindir}/wlconf/official_inis/
+}
+
+FILES:${PN} += " \
+ ${sbindir}/wlconf \
+ ${sbindir}/wlconf/official_inis \
+ /lib/firmware/ti-connectivity/wl18xx-conf.bin \
+"
+
+FILES:${PN}-dbg += "${sbindir}/wlconf/.debug"
diff --git a/meta-ti-bsp/recipes-core/udev/eudev/firmware.rules b/meta-ti-bsp/recipes-core/udev/eudev/firmware.rules
new file mode 100644
index 00000000..f7a08ce9
--- /dev/null
+++ b/meta-ti-bsp/recipes-core/udev/eudev/firmware.rules
@@ -0,0 +1,3 @@
+# stub for immediately telling the kernel that userspace firmware loading
+# failed; necessary to avoid long timeouts with CONFIG_FW_LOADER_USER_HELPER=y
+SUBSYSTEM=="firmware", ACTION=="add", ATTR{loading}="-1"
diff --git a/meta-ti-bsp/recipes-core/udev/eudev/omap-tty.rules b/meta-ti-bsp/recipes-core/udev/eudev/omap-tty.rules
new file mode 100644
index 00000000..989d60f8
--- /dev/null
+++ b/meta-ti-bsp/recipes-core/udev/eudev/omap-tty.rules
@@ -0,0 +1,17 @@
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+# For example, 'sda3' has a "kernel number" of '3'
+# %e the smallest number for that name which does not matches an existing node
+# %k the kernel name for the device
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute
+# %% the '%' char itself
+#
+
+# Backward compatibility with old OMAP UART-style ttyO0 naming
+SUBSYSTEM=="tty", ATTR{uartclk}!="0", KERNEL=="ttyS[0-9]", SYMLINK+="ttyO%n"
diff --git a/meta-ti-bsp/recipes-core/udev/eudev_%.bbappend b/meta-ti-bsp/recipes-core/udev/eudev_%.bbappend
new file mode 100644
index 00000000..ddb1e75d
--- /dev/null
+++ b/meta-ti-bsp/recipes-core/udev/eudev_%.bbappend
@@ -0,0 +1,13 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI:append:ti-soc = " \
+ file://omap-tty.rules \
+ file://firmware.rules \
+"
+
+PR:append:ti-soc = ".3"
+
+do_install:append:ti-soc() {
+ install -m 0644 ${WORKDIR}/omap-tty.rules ${D}${sysconfdir}/udev/rules.d/
+ install -m 0644 ${WORKDIR}/firmware.rules ${D}${sysconfdir}/udev/rules.d/
+}
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x.inc b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x.inc
new file mode 100644
index 00000000..eeb18fb1
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x.inc
@@ -0,0 +1,9 @@
+# This corresponds to version 1.1.0
+SRCREV = "dd0c82fb5763a6b32dc6d68e561efb66ab8283d7"
+
+PV = "1.1.0"
+INC_PR = "r7"
+
+SRC_URI = "git://git.ti.com/sdo-emu/gdbc6x.git;protocol=git;branch=${BRANCH}"
+
+BRANCH = "master"
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch
new file mode 100644
index 00000000..1cc23b32
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch
@@ -0,0 +1,28 @@
+From 0aa294e2bbd37a42266e59cb67687e57bfba4a88 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Sat, 15 Feb 2020 15:59:37 -0500
+Subject: [PATCH] libbfd.h: suppress GCC9 -Wstringop-truncation
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+---
+ gdbc6x/bfd/libbfd.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gdbc6x/bfd/libbfd.h b/gdbc6x/bfd/libbfd.h
+index 72d3c50..3465f89 100644
+--- a/gdbc6x/bfd/libbfd.h
++++ b/gdbc6x/bfd/libbfd.h
+@@ -34,6 +34,10 @@
+ #pragma GCC diagnostic ignored "-Wcast-function-type"
+ #endif
+
++#if __GNUC__ >= 9
++#pragma GCC diagnostic ignored "-Wstringop-truncation"
++#endif
++
+ #include "hashtab.h"
+
+ /* Align an address upward to a boundary, expressed as a number of bytes.
+--
+2.7.4
+
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/init b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/init
new file mode 100644
index 00000000..90210b82
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x/init
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+GDB_DEVICE_NAME='/dev/gdbtty$i'
+DSP_FIRMWARE_NAME='/lib/firmware/dra7-dsp$[$i+1]-fw.xe66'
+
+DSP_L2_GLOBAL_OFFSET="40000000"
+DSP_L2_GLOBAL_SHIFT="00800000"
+
+case "$1" in
+ start)
+
+ dsp_core_l2_offset=$DSP_L2_GLOBAL_OFFSET
+
+ i=0
+ while [ -c "`eval echo $GDB_DEVICE_NAME`" ]
+ do
+ dsp_firmware=`eval echo $DSP_FIRMWARE_NAME`
+
+ if [ -f "`eval echo $DSP_FIRMWARE_NAME`" ]
+ then
+ eval echo "Initializing $GDB_DEVICE_NAME based on $DSP_FIRMWARE_NAME ..."
+
+ gdb_data_local=`eval readelf -s "$DSP_FIRMWARE_NAME" | \
+ grep 'gdb_globalData' | \
+ awk '{print $2}'`
+
+ echo "gdb_globalData (local) = $gdb_data_local"
+ printf "gdb_globalData (global) = %X\n" \
+ $[0x$gdb_data_local + 0x$dsp_core_l2_offset]
+
+
+ printf "%X\n" $[0x$gdb_data_local + 0x$dsp_core_l2_offset] \
+ >> `eval echo $GDB_DEVICE_NAME`
+ fi
+ i=$[$i + 1]
+ dsp_core_l2_offset=`printf "%X" $[0x$dsp_core_l2_offset + 0x$DSP_L2_GLOBAL_SHIFT]`
+ done
+ ;;
+ stop)
+ # Nothing to be done.
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+ ;;
+esac
+
+
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x_git.bb b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x_git.bb
new file mode 100644
index 00000000..df9aaee9
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbc6x_git.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "GNU debugger for TI C6X DSP."
+SECTION = "devel"
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=bf0fe2872eb3dfeebb2cbe38206fe81f"
+
+DEPENDS = "ncurses bison-native texinfo flex-native gettext"
+
+COMPATIBLE_MACHINE = "dra7xx"
+
+PR = "${INC_PR}.1"
+
+SRC_URI:append = " \
+ file://init \
+ file://0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch;striplevel=2 \
+"
+
+S = "${WORKDIR}/git/gdbc6x"
+
+inherit update-rc.d
+inherit gettext
+
+CFLAGS += "-fcommon"
+
+do_configure () {
+ cd ${S}
+ ./configure --program-suffix=c6x --target=tic6x-elf-tirtos --host=${HOST_SYS} --prefix=${S}/install_gdb
+}
+
+do_install () {
+ make install
+
+ # Custom install to prevent conflict with standard GDB.
+ install -d ${D}${bindir}
+ install -d ${D}${includedir}
+ install -m 755 ${S}/install_gdb/bin/gdbc6x ${D}${bindir}
+ cp -rf ${S}/install_gdb/include/* ${D}${includedir}
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/gdbserverproxy
+}
+
+RDEPENDS:${PN} = "gdbserverproxy-module-drv bash"
+
+include gdbc6x.inc
+
+INITSCRIPT_NAME = "gdbserverproxy"
+INITSCRIPT_PARAMS = "defaults 95"
+
+PARALLEL_MAKE = ""
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb
new file mode 100644
index 00000000..fab4fbd2
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "TI gdb-server to be used with c6xgdb."
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://../debian/copyright;md5=82c616b6c8f9c11c46feaaf8f9a11495"
+
+DEPENDS = "ti-xdais ti-framework-components ti-cgt6x-native ti-sysbios ti-xdctools-native"
+
+PR = "${INC_PR}.0"
+
+S = "${WORKDIR}/git/gdbserver-c6x/src"
+
+PLATFORM = ""
+PLATFORM:dra7xx = "DRA7xx_PLATFORM"
+
+EXTRA_OEMAKE = "PLATFORM=${PLATFORM}"
+
+export XDAIS_DIR = "${XDAIS_INSTALL_DIR}"
+export FC_DIR = "${FC_INSTALL_DIR}"
+export TI_CGT_INSTALL = "${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x"
+export BIOS_DIR = "${SYSBIOS_INSTALL_DIR}"
+export XDC_DIR = "${XDC_INSTALL_DIR}"
+
+# The following is to prevent an unused configure.ac from erroneously
+# triggering the QA check for gettext.
+EXTRA_OECONF = "--disable-nls"
+do_configure() {
+ :
+}
+
+do_install() {
+ install -d ${D}${datadir}/ti/gdbc6x/include
+ install -d ${D}${datadir}/ti/gdbc6x/lib
+ cp -f ../include/* ${D}${datadir}/ti/gdbc6x/include
+ cp -f ../lib/* ${D}${datadir}/ti/gdbc6x/lib
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+FILES:${PN}-dev += "\
+ ${datadir}/ti/gdbc6x \
+"
+
+include gdbc6x.inc
+
+require recipes-ti/includes/ti-paths.inc
+
+ALLOW_EMPTY:${PN} = "1"
+
+PARALLEL_MAKE = ""
diff --git a/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb
new file mode 100644
index 00000000..168e4be3
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Interface for GDB to commincate witha TI C66X DSP"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=75859989545e37968a99b631ef42722e"
+
+# This package builds a kernel module, use kernel PR as base and append a local
+MACHINE_KERNEL_PR:append = "b"
+PR = "${MACHINE_KERNEL_PR}"
+PV:append = "+git${SRCPV}"
+
+S = "${WORKDIR}/git/kernel_module/gdbproxy-mod"
+
+inherit module
+
+PLATFORM = ""
+PLATFORM:dra7xx = "DRA7xx_PLATFORM"
+
+EXTRA_OEMAKE = "PLATFORM=${PLATFORM} KVERSION=${KERNEL_VERSION} KERNEL_SRC=${STAGING_KERNEL_DIR}"
+
+# The following is to prevent an unused configure.ac from erroneously
+# triggering the QA check for gettext.
+EXTRA_OECONF = "--disable-nls"
+do_configure() {
+ :
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+include gdbc6x.inc
+
+KERNEL_MODULE_AUTOLOAD += "gdbserverproxy"
diff --git a/meta-ti-bsp/recipes-devtools/ion/libion_git.bb b/meta-ti-bsp/recipes-devtools/ion/libion_git.bb
new file mode 100644
index 00000000..f5ca8e82
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/ion/libion_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "ION Userspace Memory Allocator Library"
+HOMEPAGE = "https://github.com/glneo/libion"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+PV = "1.0.0"
+
+BRANCH = "master"
+SRC_URI = "git://github.com/glneo/libion.git;protocol=https;branch=${BRANCH}"
+SRCREV = "7e138fc31febbb67734792c1a911439bfd6d23eb"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-ti-bsp/recipes-devtools/k3conf/k3conf_git.bb b/meta-ti-bsp/recipes-devtools/k3conf/k3conf_git.bb
new file mode 100644
index 00000000..0f2705b8
--- /dev/null
+++ b/meta-ti-bsp/recipes-devtools/k3conf/k3conf_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Diagnostic tool for TI K3 processors"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://common/k3conf.c;beginline=1;endline=34;md5=7154c0ffcd418064ffa528e34e70ca9d"
+
+PV = "0.2+git${SRCPV}"
+
+COMPATIBLE_MACHINE = "k3"
+
+BRANCH ?= "master"
+SRCREV = "79f007cd462384ce22e750e9002b714878f56892"
+
+SRC_URI = "git://git.ti.com/k3conf/k3conf.git;protocol=git;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+do_compile () {
+ oe_runmake CC="${CC}" CROSS_COMPILE=${TARGET_PREFIX} all
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install ${S}/k3conf ${D}${bindir}
+}
diff --git a/meta-ti-bsp/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb b/meta-ti-bsp/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb
new file mode 100644
index 00000000..ab72c109
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/libgal/ti-gc320-libs_5.0.11.p7.bb
@@ -0,0 +1,46 @@
+DESCRIPTION = "Userspace libraries for GC320 chipset on TI SoCs"
+HOMEPAGE = "https://git.ti.com/graphics/ti-gc320-libs"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://Manifest.html;md5=a9121e8936ace09820d23f7626daaca5"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "gc320"
+
+COMPATIBLE_MACHINE = "omap-a15"
+
+CLEANBROKEN = "1"
+
+BRANCH = "ti-${PV}"
+
+SRC_URI = "git://git.ti.com/graphics/ti-gc320-libs.git;protocol=git;branch=${BRANCH}"
+SRCREV = "c0afab259de59909cfe74c01f3f7fbaa147f94b5"
+
+RRECOMMENDS:${PN} = "ti-gc320-driver"
+
+# There's only hardfp version available
+python __anonymous() {
+ tunes = d.getVar("TUNE_FEATURES")
+ if not tunes:
+ return
+ pkgn = d.getVar("PN")
+ pkgv = d.getVar("PV")
+ if "callconvention-hard" not in tunes:
+ bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
+ raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
+}
+
+TARGET_PRODUCT = "jacinto6evm"
+
+PR = "r3"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE += "DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} LIBDIR=${libdir}"
+
+do_install() {
+ oe_runmake install
+ chown -R root:root ${D}
+}
+
+INSANE_SKIP:${PN} += "ldflags"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
new file mode 100644
index 00000000..1ff4b65a
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
@@ -0,0 +1,69 @@
+DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
+HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "gpu"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "j7"
+
+PR = "r3"
+
+BRANCH = "linuxws/dunfell/k5.10/${PV}"
+
+SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
+
+SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
+
+PVR_SOC ?= "j721e_linux"
+PVR_BUILD ?= "release"
+PVR_WS = "wayland"
+
+INITSCRIPT_NAME = "rc.pvr"
+INITSCRIPT_PARAMS = "defaults 8"
+
+inherit update-rc.d
+
+PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
+
+DEPENDS += "libdrm wayland expat"
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN} += "wayland expat"
+
+RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
+RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
+
+RREPLACES:${PN} = "libegl libgles1 liblges2 libgbm"
+RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
+
+RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
+RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg"
+
+RRECOMMENDS:${PN} += "ti-img-rogue-driver"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
+ chown -R root:root ${D}
+}
+
+FILES:${PN} += " ${base_libdir}/firmware/"
+FILES:${PN} += " ${datadir}/"
+
+PACKAGES =+ "${PN}-plugins"
+FILES:${PN}-plugins = "${libdir}/libGLESv2.so ${libdir}/libGLESv1_CM.so ${libdir}/libEGL.so ${libdir}/dri/pvr_dri.so"
+RDEPENDS:${PN} += "${PN}-plugins"
+
+ALLOW_EMPTY:${PN}-plugins = "1"
+
+INSANE_SKIP:${PN} += "ldflags arch already-stripped"
+INSANE_SKIP:${PN}-plugins = "dev-so"
+
+CLEANBROKEN = "1"
diff --git a/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
new file mode 100644
index 00000000..d4b7a1a6
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "Userspace libraries for PowerVR SGX chipset on TI SoCs"
+HOMEPAGE = "https://git.ti.com/graphics/omap5-sgx-ddk-um-linux"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://TI-Linux-Graphics-DDK-UM-Manifest.doc;md5=b17390502bc89535c86cfbbae961a2a8"
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "gpu"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|k3"
+
+PR = "r37"
+
+BRANCH = "ti-img-sgx/dunfell/${PV}"
+
+SRC_URI = "git://git.ti.com/graphics/omap5-sgx-ddk-um-linux.git;protocol=git;branch=${BRANCH}"
+SRCREV = "742cf38aba13e1ba1a910cf1f036a1a212c263b6"
+
+TARGET_PRODUCT:omap-a15 = "jacinto6evm"
+TARGET_PRODUCT:ti33x = "ti335x"
+TARGET_PRODUCT:ti43x = "ti437x"
+TARGET_PRODUCT:k3 = "ti654x"
+
+INITSCRIPT_NAME = "rc.pvr"
+INITSCRIPT_PARAMS = "defaults 8"
+
+inherit update-rc.d
+
+PROVIDES += "virtual/egl virtual/libgles1 virtual/libgles2 virtual/libgbm"
+
+DEPENDS += "libdrm udev wayland wayland-protocols libffi expat"
+DEPENDS:append:libc-musl = " gcompat"
+RDEPENDS:${PN} += "libdrm libdrm-omap udev wayland wayland-protocols libffi expat"
+
+RPROVIDES:${PN} = "libegl libgles1 libgles2 libgbm"
+RPROVIDES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RPROVIDES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
+
+RREPLACES:${PN} = "libegl libgles1 libgles2 libgbm"
+RREPLACES:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RREPLACES:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
+
+RCONFLICTS:${PN} = "libegl libgles1 libgles2 libgbm"
+RCONFLICTS:${PN}-dev = "libegl-dev libgles1-dev libgles2-dev libgbm-dev"
+RCONFLICTS:${PN}-dbg = "libegl-dbg libgles1-dbg libgles2-dbg libgbm-dbg"
+
+# The actual SONAME is libGLESv2.so.2, so need to explicitly specify RPROVIDES for .so.1 here
+RPROVIDES:${PN} += "libGLESv2.so.1"
+
+RRECOMMENDS:${PN} += "ti-sgx-ddk-km"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT}
+ ln -sf libGLESv2.so ${D}${libdir}/libGLESv2.so.1
+
+ chown -R root:root ${D}
+}
+
+FILES:${PN} = "${bindir}/*"
+FILES:${PN} += " ${libdir}/*"
+FILES:${PN} += "${includedir}/*"
+FILES:${PN} += "${sysconfdir}/*"
+
+INSANE_SKIP:${PN} += "dev-so ldflags useless-rpaths"
+INSANE_SKIP:${PN} += "already-stripped dev-deps"
+
+CLEANBROKEN = "1"
diff --git a/meta-ti-bsp/recipes-kernel/linux/bundle-devicetree.inc b/meta-ti-bsp/recipes-kernel/linux/bundle-devicetree.inc
new file mode 100644
index 00000000..d259e58c
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/bundle-devicetree.inc
@@ -0,0 +1,26 @@
+# Upstream kernel-devicetree.bbclass only supports bundling the DTB with
+# zImage. The factory u-boot on lego-ev3 EEPROM only supports uImage, so we
+# append the DTB to the final uImage here.
+
+do_deploy:append() {
+ if [ "${KERNEL_DEVICETREE_BUNDLE}" = "1" ]; then
+ install -d ${DEPLOYDIR}
+ for dtbf in ${KERNEL_DEVICETREE}; do
+ dtb=`normalize_dtb "$dtbf"`
+ dtb_ext=${dtb##*.}
+ dtb_base_name=`basename $dtb .$dtb_ext`
+ for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
+ if [ "$type" = "uImage" ]; then
+ cat ${D}/${KERNEL_IMAGEDEST}/$type \
+ ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin
+ ln -sf $type-$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext.bin \
+ ${DEPLOYDIR}/$type-$dtb_base_name-${KERNEL_DTB_LINK_NAME}.$dtb_ext.bin
+ cat ${D}/${KERNEL_IMAGEDEST}/$type \
+ ${DEPLOYDIR}/$dtb_base_name-${KERNEL_DTB_NAME}.$dtb_ext \
+ > ${DEPLOYDIR}/$type
+ fi
+ done
+ done
+ fi
+}
diff --git a/meta-ti-bsp/recipes-kernel/linux/cmem.inc b/meta-ti-bsp/recipes-kernel/linux/cmem.inc
new file mode 100644
index 00000000..fd913f6c
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/cmem.inc
@@ -0,0 +1,96 @@
+# Add concept of machine variants to split DTBs into subsets
+#
+# Use these for temporary overrides
+CMEM_MACHINE = "${MACHINE}"
+CMEM_MACHINE:am57xx-evm = "am571x am572x am572idk am5729-beagleboneai am574x"
+CMEM_MACHINE:am57xx-hs-evm = "am571x am572x am572idk am5729-beagleboneai am574x"
+CMEM_MACHINE:dra7xx-evm = "dra71x dra72x dra74x dra76x"
+CMEM_MACHINE:dra7xx-hs-evm = "dra71x dra72x dra74x dra76x"
+
+# Set cmem.dtsi per machine or machine variant
+CMEM_DTSI = "cmem.dtsi"
+CMEM_DTSI_am571x = "cmem-am571x.dtsi"
+CMEM_DTSI_am572idk = "cmem-am572idk.dtsi"
+CMEM_DTSI_am5729-beagleboneai = "cmem-am5729-beagleboneai.dtsi"
+CMEM_DTSI_am574x = "cmem-am574x.dtsi"
+CMEM_DTSI_dra71x = "cmem-dra71x.dtsi"
+CMEM_DTSI_dra72x = "cmem-dra72x.dtsi"
+CMEM_DTSI_dra76x = "cmem-dra76x.dtsi"
+
+# Split device trees between variants
+CMEM_DEVICETREE = "${KERNEL_DEVICETREE}"
+CMEM_DEVICETREE_am571x = "am571x-idk.dtb am571x-idk-lcd-osd101t2045.dtb am571x-idk-lcd-osd101t2587.dtb"
+CMEM_DEVICETREE_am572x = "am57xx-beagle-x15.dtb am57xx-beagle-x15-revc.dtb"
+CMEM_DEVICETREE_am572idk = "am572x-idk.dtb am572x-idk-lcd-osd101t2045.dtb am572x-idk-lcd-osd101t2587.dtb"
+CMEM_DEVICETREE_am5729-beagleboneai = "am5729-beagleboneai.dtb"
+CMEM_DEVICETREE_am574x = "am574x-idk.dtb am574x-idk-lcd-osd101t2587.dtb"
+CMEM_DEVICETREE_dra71x = "dra71-evm.dtb"
+CMEM_DEVICETREE_dra72x = "dra72-evm.dtb dra72-evm-lcd-osd101t2045.dtb dra72-evm-lcd-osd101t2587.dtb \
+ dra72-evm-revc.dtb dra72-evm-revc-lcd-osd101t2045.dtb dra72-evm-revc-lcd-osd101t2587.dtb"
+CMEM_DEVICETREE_dra74x = "dra7-evm.dtb dra7-evm-lcd-osd101t2045.dtb dra7-evm-lcd-osd101t2587.dtb"
+CMEM_DEVICETREE_dra76x = "dra76-evm.dtb dra76-evm-tfp410.dtb"
+
+# Flag to enable CMEM injection
+RESERVE_CMEM ?= "0"
+
+# Variables which influence setup_cmem
+CMEM_VARS = "RESERVE_CMEM CMEM_MACHINE"
+CMEM_VARS += "CMEM_DTSI ${@' '.join(map(lambda s: 'CMEM_DTSI_' + s, (d.getVar('CMEM_MACHINE') or '').split()))}"
+CMEM_VARS += "CMEM_DEVICETREE ${@' '.join(map(lambda s: 'CMEM_DEVICETREE_' + s, (d.getVar('CMEM_MACHINE') or '').split()))}"
+
+# Add correct cmem.dtsi to SRC_URI for each variant for a given machine
+python do_unpack() {
+ old_overrides = d.getVar('OVERRIDES', False)
+
+ # Initialize with empty string to simplify logic to append to SRC_URI
+ cmem_dtsi = set([''])
+
+ for cmem_machine in (d.getVar('CMEM_MACHINE') or '').split():
+ # Create copy of data for additional override
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('OVERRIDES', '%s:%s' % (cmem_machine, old_overrides))
+ bb.data.update_data(localdata)
+
+ cmem_dtsi.add(localdata.getVar('CMEM_DTSI'))
+
+ d.appendVar('SRC_URI', ' file://'.join(cmem_dtsi))
+ bb.build.exec_func('base_do_unpack', d)
+}
+
+python do_setup_cmem() {
+ import shutil
+
+ old_overrides = d.getVar('OVERRIDES', False)
+
+ if d.getVar('RESERVE_CMEM') is '1':
+ for cmem_machine in (d.getVar('CMEM_MACHINE') or '').split():
+ # Create copy of data for additional override
+ localdata = bb.data.createCopy(d)
+ localdata.setVar('OVERRIDES', '%s:%s' % (cmem_machine, old_overrides))
+ bb.data.update_data(localdata)
+
+ # Get source directory and dtsi filename
+ src_dir = localdata.getVar('WORKDIR')
+ src_dtsi = localdata.getVar('CMEM_DTSI')
+
+ # Get destination directory and destination dtsi filename which adds
+ # the MACHINE prefix.
+ dst_dir = os.path.join(localdata.getVar('S'), localdata.expand('arch/${ARCH}/boot/dts'))
+ dst_dtsi = localdata.expand('${MACHINE}-${CMEM_DTSI}')
+
+ # Copy cmem.dtsi into source tree
+ if localdata.getVar('ARCH') is 'arm64':
+ shutil.copy(os.path.join(src_dir,src_dtsi), os.path.join(dst_dir,'ti',dst_dtsi))
+ else:
+ shutil.copy(os.path.join(src_dir,src_dtsi), os.path.join(dst_dir,dst_dtsi))
+
+ # Inject dtsi into each dts in list
+ for dtb in (localdata.getVar('CMEM_DEVICETREE') or '').split():
+ dts = dtb[:-4] + '.dts'
+
+ with open(os.path.join(dst_dir,dts), 'a') as dts_file:
+ dts_file.write('\n#include "%s"\n' % dst_dtsi)
+}
+
+do_patch[postfuncs] += "do_setup_cmem"
+do_patch[vardeps] += "${CMEM_VARS}"
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/cmem.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/cmem.dtsi
new file mode 100644
index 00000000..23119861
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/cmem.dtsi
@@ -0,0 +1,38 @@
+/*
+ * This is a placeholder for CMEM reserved memory declarations. This
+ * is simply an example and does not actually reserve any memory for
+ * CMEM.
+ *
+ * The commented sections below provide an example for how to provide
+ * a reserved memory region for CMEM to use as a buffer pool.
+ */
+/ {
+/*
+ reserved-memory {
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0a000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+*/
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "disabled";
+/*
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0a000000>;
+ };
+*/
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/configs/empty b/meta-ti-bsp/recipes-kernel/linux/files/configs/empty
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/configs/empty
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
new file mode 100644
index 00000000..8ca11c78
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am571x-pru-uio.dtsi
@@ -0,0 +1,272 @@
+&pruss_soc_bus1 {
+ uio_pruss1_mdio: uio_mdio@4b232400 {
+ status = "okay";
+
+ compatible = "ti,davinci_mdio";
+ reg = <0x4b232400 0x90>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&dpll_gmac_h13x2_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+
+ reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+ uio_pruss1_eth0_phy: uio_ethernet-phy@0 {
+ reg = <0>;
+ };
+
+ uio_pruss1_eth1_phy: uio_ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+
+ uio_pruss1_mem: uio_pruss1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b200000 0x2000>,
+ <0x4b202000 0x2000>,
+ <0x4b210000 0x8000>,
+ <0x4b220000 0x5404>,
+ <0x4b226000 0x474>,
+ <0x4b22e000 0xc04>,
+ <0x4b232000 0x154>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss1_mem2: uio_pruss1_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b228000 0xd4>,
+ <0x4b230000 0x174>,
+ <0x4b232400 0x234>,
+ <0x40300000 0x40000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss1_evt0: uio_pruss1_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt1: uio_pruss1_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt2: uio_pruss1_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt3: uio_pruss1_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt4: uio_pruss1_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt5: uio_pruss1_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt6: uio_pruss1_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt7: uio_pruss1_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss1_0_mem: uio_pruss1_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b234000 0x3000>,
+ <0x4b222000 0xb4>,
+ <0x4b222400 0x3f4>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss1_1_mem: uio_pruss1_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b238000 0x3000>,
+ <0x4b224000 0xb4>,
+ <0x4b224400 0x3f4>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&pruss_soc_bus2 {
+ uio_pruss2_mdio: uio_mdio@4b2b2400 {
+ compatible = "ti,davinci_mdio";
+ reg = <0x4b2b2400 0x90>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&dpll_gmac_h13x2_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+ status = "okay";
+
+ reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+
+ uio_pruss2_eth0_phy: ethernet-phy@0 {
+ reg = <0>;
+ };
+
+ uio_pruss2_eth1_phy: ethernet-phy@1 {
+ reg = <1>;
+ };
+ };
+
+ uio_pruss2_mem: uio_pruss2_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b280000 0x2000>,
+ <0x4b282000 0x2000>,
+ <0x4b290000 0x8000>,
+ <0x4b2a0000 0x5404>,
+ <0x4b2a6000 0x474>,
+ <0x4b2ae000 0xc04>,
+ <0x4b2b2000 0x154>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss2_mem2: uio_pruss2_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2a8000 0xd4>,
+ <0x4b2b0000 0x174>,
+ <0x4b2b2400 0x234>,
+ <0x40340000 0x40000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss2_evt0: uio_pruss2_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt1: uio_pruss2_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt2: uio_pruss2_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt3: uio_pruss2_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt4: uio_pruss2_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt5: uio_pruss2_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt6: uio_pruss2_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt7: uio_pruss2_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss2_0_mem: uio_pruss2_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2b4000 0x3000>,
+ <0x4b2a2000 0xb4>,
+ <0x4b2a2400 0x3f4>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+ uio_pruss2_1_mem: uio_pruss2_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2b8000 0x3000>,
+ <0x4b2a4000 0xb4>,
+ <0x4b2a4400 0x3f4>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+ };
+
+&pruss2_emac0 {
+ status = "disabled";
+};
+
+&pruss2_emac1 {
+ status = "disabled";
+};
+
+&pruss1 {
+ status = "disabled";
+};
+
+&pru1_0 {
+ status = "disabled";
+};
+
+&pru1_1 {
+ status = "disabled";
+};
+
+&pruss1_intc {
+ status = "disabled";
+};
+
+&pruss1_mdio {
+ status = "disabled";
+};
+
+&pruss2 {
+ status = "disabled";
+};
+
+&pru2_0 {
+ status = "disabled";
+};
+
+&pru2_1 {
+ status = "disabled";
+};
+
+&pruss2_intc {
+ status = "disabled";
+};
+
+&pruss2_mdio {
+ status = "disabled";
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am57xx-pru-uio.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am57xx-pru-uio.dtsi
new file mode 100644
index 00000000..4cc57118
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/am57xx-pru-uio.dtsi
@@ -0,0 +1,252 @@
+&pruss_soc_bus1 {
+ uio_pruss1_mem: uio_pruss1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b200000 0x2000>,
+ <0x4b202000 0x2000>,
+ <0x4b210000 0x8000>,
+ <0x4b220000 0x2000>,
+ <0x4b226000 0x2000>,
+ <0x4b22e000 0x31c>,
+ <0x4b232000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss1_mem2: uio_pruss1_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b228000 0x38>,
+ <0x4b230000 0x60>,
+ <0x4b232400 0x90>,
+ <0x40340000 0x40000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss1_evt0: uio_pruss1_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt1: uio_pruss1_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt2: uio_pruss1_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt3: uio_pruss1_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt4: uio_pruss1_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt5: uio_pruss1_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt6: uio_pruss1_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt7: uio_pruss1_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss1_0_mem: uio_pruss1_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b234000 0x3000>,
+ <0x4b222000 0x400>,
+ <0x4b222400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss1_1_mem: uio_pruss1_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b238000 0x3000>,
+ <0x4b224000 0x400>,
+ <0x4b224400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&pruss1 {
+ status = "disabled";
+};
+
+&pru1_0 {
+ status = "disabled";
+};
+
+&pru1_1 {
+ status = "disabled";
+};
+
+&pruss1_intc {
+ status = "disabled";
+};
+
+&pruss_soc_bus2 {
+ uio_pruss2_mdio: uio_mdio@4b2b2400 {
+ compatible = "ti,davinci_mdio";
+ reg = <0x4b2b2400 0x90>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clocks = <&dpll_gmac_h13x2_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+ status = "disabled";
+ };
+
+ uio_pruss2_mem: uio_pruss2_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b280000 0x2000>,
+ <0x4b282000 0x2000>,
+ <0x4b290000 0x8000>,
+ <0x4b2a0000 0x2000>,
+ <0x4b2a6000 0x2000>,
+ <0x4b2ae000 0x31c>,
+ <0x4b2b2000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss2_mem2: uio_pruss2_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2a8000 0x38>,
+ <0x4b2b0000 0x60>,
+ <0x4b2b2400 0x90>,
+ <0x40300000 0x40000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss2_evt0: uio_pruss2_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt1: uio_pruss2_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt2: uio_pruss2_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt3: uio_pruss2_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt4: uio_pruss2_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt5: uio_pruss2_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt6: uio_pruss2_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt7: uio_pruss2_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss2_0_mem: uio_pruss2_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2b4000 0x3000>,
+ <0x4b2a2000 0x400>,
+ <0x4b2a2400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+ uio_pruss2_1_mem: uio_pruss2_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4b2b8000 0x3000>,
+ <0x4b2a4000 0x400>,
+ <0x4b2a4400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&uio_pruss2_mdio {
+ reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>,
+ <&gpio5 9 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+};
+
+&uio_pruss2_mdio {
+ status = "okay";
+ uio_pruss2_eth0_phy: uio_pruss2_eth0_phy@0 {
+ reg = <0>;
+ };
+
+ uio_pruss2_eth1_phy: uio_pruss2_eth1_phy@1 {
+ reg = <1>;
+ };
+};
+
+&pruss2_emac0 {
+ status = "disabled";
+};
+
+&pruss2_emac1 {
+ status = "disabled";
+};
+
+&pruss2 {
+ status = "disabled";
+};
+
+&pru2_0 {
+ status = "disabled";
+};
+
+&pru2_1 {
+ status = "disabled";
+};
+
+&pruss2_intc {
+ status = "disabled";
+};
+
+&pruss2_mdio {
+ status = "disabled";
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am571x.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am571x.dtsi
new file mode 100644
index 00000000..ebd61296
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am571x.dtsi
@@ -0,0 +1,29 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0c000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0c000000>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am5729-beagleboneai.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am5729-beagleboneai.dtsi
new file mode 100644
index 00000000..e0511d08
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am5729-beagleboneai.dtsi
@@ -0,0 +1,40 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x18000000>;
+ no-map;
+ status = "okay";
+ };
+
+ cmem_block_mem_1_ocmc3: cmem_block_mem@40500000 {
+ reg = <0x0 0x40500000 0x0 0x100000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x18000000>;
+ };
+
+ cmem_block_1: cmem_block@1 {
+ reg = <1>;
+ memory-region = <&cmem_block_mem_1_ocmc3>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am572idk.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am572idk.dtsi
new file mode 100644
index 00000000..6c39e22c
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am572idk.dtsi
@@ -0,0 +1,40 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x20000000>;
+ no-map;
+ status = "okay";
+ };
+
+ cmem_block_mem_1_ocmc3: cmem_block_mem@40500000 {
+ reg = <0x0 0x40500000 0x0 0x100000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x20000000>;
+ };
+
+ cmem_block_1: cmem_block@1 {
+ reg = <1>;
+ memory-region = <&cmem_block_mem_1_ocmc3>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am574x.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am574x.dtsi
new file mode 100644
index 00000000..8fb3e871
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-am574x.dtsi
@@ -0,0 +1,40 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x18000000>;
+ no-map;
+ status = "okay";
+ };
+
+ cmem_block_mem_1_ocmc3: cmem_block_mem@40500000 {
+ reg = <0x0 0x40500000 0x0 0x100000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x18000000>;
+ };
+
+ cmem_block_1: cmem_block@1 {
+ reg = <1>;
+ memory-region = <&cmem_block_mem_1_ocmc3>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra71x.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra71x.dtsi
new file mode 100644
index 00000000..ebd61296
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra71x.dtsi
@@ -0,0 +1,29 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0c000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0c000000>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra72x.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra72x.dtsi
new file mode 100644
index 00000000..ebd61296
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra72x.dtsi
@@ -0,0 +1,29 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0c000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0c000000>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra76x.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra76x.dtsi
new file mode 100644
index 00000000..9d207db5
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem-dra76x.dtsi
@@ -0,0 +1,29 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x18000000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x18000000>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem.dtsi
new file mode 100644
index 00000000..c7781c48
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/dra7xx/cmem.dtsi
@@ -0,0 +1,40 @@
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ cmem_block_mem_0: cmem_block_mem@a0000000 {
+ reg = <0x0 0xa0000000 0x0 0x0c000000>;
+ no-map;
+ status = "okay";
+ };
+
+ cmem_block_mem_1_ocmc3: cmem_block_mem@40500000 {
+ reg = <0x0 0x40500000 0x0 0x100000>;
+ no-map;
+ status = "okay";
+ };
+ };
+
+ cmem {
+ compatible = "ti,cmem";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ #pool-size-cells = <2>;
+
+ status = "okay";
+
+ cmem_block_0: cmem_block@0 {
+ reg = <0>;
+ memory-region = <&cmem_block_mem_0>;
+ cmem-buf-pools = <1 0x0 0x0c000000>;
+ };
+
+ cmem_block_1: cmem_block@1 {
+ reg = <1>;
+ memory-region = <&cmem_block_mem_1_ocmc3>;
+ };
+ };
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/ti33x/am335x-pru-uio.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/ti33x/am335x-pru-uio.dtsi
new file mode 100644
index 00000000..93a40ab5
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/ti33x/am335x-pru-uio.dtsi
@@ -0,0 +1,192 @@
+&pruss_soc_bus {
+ uio_pruss_mdio: uio_mdio@4a332400 {
+ compatible = "ti,davinci_mdio";
+ reg = <0x4a332400 0x90>;
+ clocks = <&dpll_core_m4_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ uio_pruss_mem: uio_pruss_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a300000 0x2000>,
+ <0x4a302000 0x2000>,
+ <0x4a310000 0x3000>,
+ <0x4a320000 0x2000>,
+ <0x4a326000 0x2000>,
+ <0x4a32e000 0x31c>,
+ <0x4a332000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+
+ status = "okay";
+ };
+ uio_pruss_mem2: uio_pruss_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a328000 0xd4>,
+ <0x4a330000 0x174>,
+ <0x4a332400 0x90>,
+ <0x40302000 0x0e000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+
+ uio_pruss_evt0: uio_pruss_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <20>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt1: uio_pruss_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <21>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt2: uio_pruss_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <22>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt3: uio_pruss_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <23>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt4: uio_pruss_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <24>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt5: uio_pruss_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <25>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt6: uio_pruss_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <26>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss_evt7: uio_pruss_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <27>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss_0_mem: uio_pruss_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a334000 0x2000>,
+ <0x4a322000 0x400>,
+ <0x4a322400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss_1_mem: uio_pruss_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x4a338000 0x2000>,
+ <0x4a324000 0x400>,
+ <0x4a324400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&am33xx_pinmux {
+ uio_pruss_mdio_eth_default: uio_pruss_mdio_eht_default {
+ pinctrl-single,pins = <
+ AM33XX_IOPAD(0x88c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_clk.pr1_mdio_mdclk */
+ AM33XX_IOPAD(0x888, (PIN_INPUT | MUX_MODE5)) /* gpmc_csn3.pr1_mdio_data */
+ AM33XX_IOPAD(0x89c, (PIN_INPUT_PULLUP | MUX_MODE7)) /* gpmc_ben0_cle.gpio2_5 */
+ /* disable CPSW MDIO */
+ AM33XX_IOPAD(0x948, (PIN_INPUT_PULLUP | MUX_MODE7)) /* mdio_data.gpio0_0 */
+ AM33XX_IOPAD(0x94c, (PIN_INPUT_PULLUP | MUX_MODE7)) /* mdio_clk.gpio0_1 */
+ AM33XX_IOPAD(0x8a0, (PIN_INPUT | MUX_MODE2)) /* dss_data0.pr1_mii_mt0_clk */
+ AM33XX_IOPAD(0x8b4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data5.pr1_mii0_txd0 */
+ AM33XX_IOPAD(0x8b0, (PIN_OUTPUT | MUX_MODE2)) /* dss_data4.pr1_mii0_txd1 */
+ AM33XX_IOPAD(0x8ac, (PIN_OUTPUT | MUX_MODE2)) /* dss_data3.pr1_mii0_txd2 */
+ AM33XX_IOPAD(0x8a8, (PIN_OUTPUT | MUX_MODE2)) /* dss_data2.pr1_mii0_txd3 */
+ AM33XX_IOPAD(0x8cc, (PIN_INPUT | MUX_MODE5)) /* dss_data11.pr1_mii0_rxd0 */
+ AM33XX_IOPAD(0x8c8, (PIN_INPUT | MUX_MODE5)) /* dss_data10.pr1_mii0_rxd1 */
+ AM33XX_IOPAD(0x8c4, (PIN_INPUT | MUX_MODE5)) /* dss_data9.pr1_mii0_rxd2 */
+ AM33XX_IOPAD(0x8c0, (PIN_INPUT | MUX_MODE5)) /* dss_data8.pr1_mii0_rxd3 */
+ AM33XX_IOPAD(0x8a4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data1.pr1_mii0_txen */
+ AM33XX_IOPAD(0x8d8, (PIN_INPUT | MUX_MODE5)) /* dss_data14.pr1_mii_mr0_clk */
+ AM33XX_IOPAD(0x8dc, (PIN_INPUT | MUX_MODE5)) /* dss_data15.pr1_mii0_rxdv */
+ AM33XX_IOPAD(0x8d4, (PIN_INPUT | MUX_MODE5)) /* dss_data13.pr1_mii0_rxer */
+ AM33XX_IOPAD(0x8d0, (PIN_INPUT | MUX_MODE5)) /* dss_data12.pr1_mii0_rxlink */
+ AM33XX_IOPAD(0x8e8, (PIN_INPUT | MUX_MODE2)) /* dss_pclk.pr1_mii0_crs */
+
+ AM33XX_IOPAD(0x840, (PIN_INPUT | MUX_MODE5)) /* gpmc_a0.pr1_mii_mt1_clk */
+ AM33XX_IOPAD(0x850, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a4.pr1_mii1_txd0 */
+ AM33XX_IOPAD(0x84c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a3.pr1_mii1_txd1 */
+ AM33XX_IOPAD(0x848, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a2.pr1_mii1_txd2 */
+ AM33XX_IOPAD(0x844, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a1.pr1_mii1_txd3 */
+ AM33XX_IOPAD(0x860, (PIN_INPUT | MUX_MODE5)) /* gpmc_a8.pr1_mii1_rxd0 */
+ AM33XX_IOPAD(0x85c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a7.pr1_mii1_rxd1 */
+ AM33XX_IOPAD(0x858, (PIN_INPUT | MUX_MODE5)) /* gpmc_a6.pr1_mii1_rxd2 */
+ AM33XX_IOPAD(0x854, (PIN_INPUT | MUX_MODE5)) /* gpmc_a5.pr1_mii1_rxd3 */
+ AM33XX_IOPAD(0x874, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_wpn.pr1_mii1_txen */
+ AM33XX_IOPAD(0x864, (PIN_INPUT | MUX_MODE5)) /* gpmc_a9.pr1_mii_mr1_clk */
+ AM33XX_IOPAD(0x868, (PIN_INPUT | MUX_MODE5)) /* gpmc_a10.pr1_mii1_rxdv */
+ AM33XX_IOPAD(0x86c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a11.pr1_mii1_rxer */
+ AM33XX_IOPAD(0x878, (PIN_INPUT | MUX_MODE5)) /* gpmc_ben1.pr1_mii1_rxlink */
+ AM33XX_IOPAD(0x8ec, (PIN_INPUT | MUX_MODE2)) /* lcd_ac_bias_en.pr1_mii1_crs */
+ AM33XX_IOPAD(0x870, (PIN_INPUT | MUX_MODE5)) /* gpmc_wait0.pr1_mii1_col */
+ >;
+ };
+};
+
+&uio_pruss_mdio {
+ pinctrl-0 = <&uio_pruss_mdio_eth_default>;
+ pinctrl-names = "default";
+ reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+ status = "okay";
+
+ uio_pruss_eth0_phy: ethernet-phy@1 {
+ reg = <1>;
+ };
+
+ uio_pruss_eth1_phy: ethernet-phy@3 {
+ reg = <3>;
+ };
+};
+
+&pruss {
+ status = "disabled";
+};
+
+&pru0 {
+ status = "disabled";
+};
+
+&pru1 {
+ status = "disabled";
+};
+
+&pruss_intc {
+ status = "disabled";
+};
+
+&pruss_mdio {
+ status = "disabled";
+};
+
+&pruss_emac0 {
+ status = "disabled";
+};
+
+&pruss_emac1 {
+ status = "disabled";
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/ti43x/am437x-pru-uio.dtsi b/meta-ti-bsp/recipes-kernel/linux/files/ti43x/am437x-pru-uio.dtsi
new file mode 100644
index 00000000..80993c4b
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/ti43x/am437x-pru-uio.dtsi
@@ -0,0 +1,292 @@
+&pruss_soc_bus {
+ uio_pruss2_mdio: uio_mdio@54432400 {
+ compatible = "ti,davinci_mdio";
+ reg = <0x54432400 0x90>;
+ clocks = <&dpll_core_m4_ck>;
+ clock-names = "fck";
+ bus_freq = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ uio_pruss2_mem: uio_pruss2_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54400000 0x2000>,
+ <0x54402000 0x2000>,
+ <0x54410000 0x8000>,
+ <0x54420000 0x2000>,
+ <0x54426000 0x2000>,
+ <0x5442e000 0x31c>,
+ <0x54432000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss2_mem2: uio_pruss2_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54428000 0x38>,
+ <0x54430000 0x60>,
+ <0x54432400 0x90>,
+ <0x40320000 0x20000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss2_evt0: uio_pruss2_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt1: uio_pruss2_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt2: uio_pruss2_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt3: uio_pruss2_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt4: uio_pruss2_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt5: uio_pruss2_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt6: uio_pruss2_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss2_evt7: uio_pruss2_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss2_0_mem: uio_pruss2_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54434000 0x3000>,
+ <0x54422000 0x400>,
+ <0x54422400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss2_1_mem: uio_pruss2_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54438000 0x3000>,
+ <0x54424000 0x400>,
+ <0x54424400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+
+ uio_pruss1_mem: uio_pruss1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54440000 0x1000>,
+ <0x54442000 0x1000>,
+ <0x54450000 0x8000>,
+ <0x54460000 0x2000>,
+ <0x54466000 0x2000>,
+ <0x5446e000 0x31c>,
+ <0x54472000 0x58>;
+ mem-names = "dram0", "dram1", "shrdram2", "intc", "cfg",
+ "iep", "mii_rt";
+ status = "okay";
+ };
+ uio_pruss1_mem2: uio_pruss1_mem2 {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54468000 0x38>,
+ <0x54470000 0x60>,
+ <0x54472400 0x90>,
+ <0x40302000 0x1e000>;
+ mem-names = "uart", "ecap", "mdio", "ocmc";
+ status = "okay";
+ };
+ uio_pruss1_evt0: uio_pruss1_evt0 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt1: uio_pruss1_evt1 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt2: uio_pruss1_evt2 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt3: uio_pruss1_evt3 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt4: uio_pruss1_evt4 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt5: uio_pruss1_evt5 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt6: uio_pruss1_evt6 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+ uio_pruss1_evt7: uio_pruss1_evt7 {
+ compatible = "ti,uio-module-drv";
+ interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-mode = <1>;
+ status = "okay";
+ };
+
+ uio_pruss1_0_mem: uio_pruss1_0_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54474000 0x1000>,
+ <0x54462000 0x400>,
+ <0x54462400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+ uio_pruss1_1_mem: uio_pruss1_1_mem {
+ compatible = "ti,uio-module-drv";
+ mem = <0x54478000 0x1000>,
+ <0x54464000 0x400>,
+ <0x54464400 0x100>;
+ mem-names = "iram", "control", "debug";
+ status = "okay";
+ };
+};
+
+&am43xx_pinmux {
+ uio_pruss2_mdio_eth_default: uio_pruss2_mdio_eth_default {
+ pinctrl-single,pins = <
+ AM4372_IOPAD(0x88c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_clk.pr1_mdio_mdclk */
+ AM4372_IOPAD(0xa70, (PIN_INPUT | MUX_MODE8)) /* xdma_event_intr0.pr1_mdio_data */
+ AM4372_IOPAD(0xa00, (PIN_INPUT_PULLUP | MUX_MODE7)) /* cam1_data6.gpio4_20 */
+ AM4372_IOPAD(0x8a0, (PIN_INPUT | MUX_MODE2)) /* dss_data0.pr1_mii_mt0_clk */
+ AM4372_IOPAD(0x8b4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data5.pr1_mii0_txd0 */
+ AM4372_IOPAD(0x8b0, (PIN_OUTPUT | MUX_MODE2)) /* dss_data4.pr1_mii0_txd1 */
+ AM4372_IOPAD(0x8ac, (PIN_OUTPUT | MUX_MODE2)) /* dss_data3.pr1_mii0_txd2 */
+ AM4372_IOPAD(0x8a8, (PIN_OUTPUT | MUX_MODE2)) /* dss_data2.pr1_mii0_txd3 */
+ AM4372_IOPAD(0x8cc, (PIN_INPUT | MUX_MODE5)) /* dss_data11.pr1_mii0_rxd0 */
+ AM4372_IOPAD(0x8c8, (PIN_INPUT | MUX_MODE5)) /* dss_data10.pr1_mii0_rxd1 */
+ AM4372_IOPAD(0x8c4, (PIN_INPUT | MUX_MODE5)) /* dss_data9.pr1_mii0_rxd2 */
+ AM4372_IOPAD(0x8c0, (PIN_INPUT | MUX_MODE5)) /* dss_data8.pr1_mii0_rxd3 */
+ AM4372_IOPAD(0x8a4, (PIN_OUTPUT | MUX_MODE2)) /* dss_data1.pr1_mii0_txen */
+ AM4372_IOPAD(0x8d8, (PIN_INPUT | MUX_MODE5)) /* dss_data14.pr1_mii_mr0_clk */
+ AM4372_IOPAD(0x8dc, (PIN_INPUT | MUX_MODE5)) /* dss_data15.pr1_mii0_rxdv */
+ AM4372_IOPAD(0x8d4, (PIN_INPUT | MUX_MODE5)) /* dss_data13.pr1_mii0_rxer */
+ AM4372_IOPAD(0x8d0, (PIN_INPUT | MUX_MODE5)) /* dss_data12.pr1_mii0_rxlink */
+ AM4372_IOPAD(0xa40, (PIN_INPUT | MUX_MODE5)) /* gpio5_10.pr1_mii0_crs */
+ AM4372_IOPAD(0xa38, (PIN_INPUT | MUX_MODE5)) /* gpio5_8.pr1_mii0_col */
+ AM4372_IOPAD(0x858, (PIN_INPUT | MUX_MODE5)) /* gpmc_a6.pr1_mii_mt1_clk */
+ AM4372_IOPAD(0x854, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a5.pr1_mii1_txd0 */
+ AM4372_IOPAD(0x850, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a4.pr1_mii1_txd1 */
+ AM4372_IOPAD(0x84c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a3.pr1_mii1_txd2 */
+ AM4372_IOPAD(0x848, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a2.pr1_mii1_txd3 */
+ AM4372_IOPAD(0x86c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a11.pr1_mii1_rxd0 */
+ AM4372_IOPAD(0x868, (PIN_INPUT | MUX_MODE5)) /* gpmc_a10.pr1_mii1_rxd1 */
+ AM4372_IOPAD(0x864, (PIN_INPUT | MUX_MODE5)) /* gpmc_a9.pr1_mii1_rxd2 */
+ AM4372_IOPAD(0x860, (PIN_INPUT | MUX_MODE5)) /* gpmc_a8.pr1_mii1_rxd3 */
+ AM4372_IOPAD(0x840, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a0.pr1_mii1_txen */
+ AM4372_IOPAD(0x85c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a7.pr1_mii_mr1_clk */
+ AM4372_IOPAD(0x844, (PIN_INPUT | MUX_MODE5)) /* gpmc_a1.pr1_mii1_rxdv */
+ AM4372_IOPAD(0x874, (PIN_INPUT | MUX_MODE5)) /* gpmc_wpn.pr1_mii1_rxer */
+ AM4372_IOPAD(0xa4c, (PIN_INPUT | MUX_MODE5)) /* gpio5_13.pr1_mii1_rxlink */
+ AM4372_IOPAD(0xa44, (PIN_INPUT | MUX_MODE5)) /* gpio5_11.pr1_mii1_crs */
+ AM4372_IOPAD(0x878, (PIN_INPUT | MUX_MODE5)) /* gpmc_be1n.pr1_mii1_col */
+ >;
+ };
+};
+
+&uio_pruss2_mdio {
+ pinctrl-0 = <&uio_pruss2_mdio_eth_default>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ reset-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+ reset-delay-us = <2>; /* PHY datasheet states 1uS min */
+
+ uio_pruss2_eth0_phy: uio_ethernet-phy@0 {
+ reg = <0>;
+ };
+
+ uio_pruss2_eth1_phy: uio_ethernet-phy@1 {
+ reg = <1>;
+ };
+};
+
+&pruss1 {
+ status = "disabled";
+};
+
+&pru1_0 {
+ status = "disabled";
+};
+
+&pru1_1 {
+ status = "disabled";
+};
+
+&pruss1_intc {
+ status = "disabled";
+};
+
+&pruss1_mdio {
+ status = "disabled";
+};
+
+&pruss0 {
+ status = "disabled";
+};
+
+&pru0_0 {
+ status = "disabled";
+};
+
+&pru0_1 {
+ status = "disabled";
+};
+
+&pruss0_intc {
+ status = "disabled";
+};
+
+&pruss1_emac0 {
+ status = "disabled";
+};
+
+&pruss1_emac1 {
+ status = "disabled";
+};
diff --git a/meta-ti-bsp/recipes-kernel/linux/kernel-rdepends.inc b/meta-ti-bsp/recipes-kernel/linux/kernel-rdepends.inc
new file mode 100644
index 00000000..0425c789
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/kernel-rdepends.inc
@@ -0,0 +1,27 @@
+# Pull in the devicetree files into the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base += "kernel-devicetree"
+
+# Add run-time dependency for PM firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:ti33x = " amx3-cm3"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:ti43x = " amx3-cm3"
+
+# Add run-time dependency for VPE VPDMA firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:dra7xx = " vpdma-fw"
+
+# Add run-time dependency for Goodix firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:dra7xx = " goodix-fw"
+
+# Add run-time dependency for PRU Ethernet firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:am57xx-evm = " prueth-fw prusw-fw pruhsr-fw pruprp-fw"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:am57xx-hs-evm = " prueth-fw prusw-fw pruhsr-fw pruprp-fw"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:ti43x = " prueth-fw pruhsr-fw pruprp-fw"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:ti33x = " prueth-fw pruhsr-fw pruprp-fw"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:am65xx = " prueth-fw-am65x"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:am65xx-evm = " prueth-fw-am65x-sr2 prusw-fw-am65x-sr2"
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:am64xx-evm = " prueth-fw-am65x-sr2"
+
+# Add run-time dependency for Cadence MHDP firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:j7 = " cadence-mhdp-fw"
+
+# Add run-time dependency for Video Decoding firmware to the rootfs
+RDEPENDS:${KERNEL_PACKAGE_NAME}-base:append:j7 = " vxd-dec-fw"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/defconfig
new file mode 100644
index 00000000..d083d182
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/dra7xx/defconfig
new file mode 100644
index 00000000..dcb53bab
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/k3/defconfig
new file mode 100644
index 00000000..b9bc6137
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/omapl138/defconfig
new file mode 100644
index 00000000..b3467853
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/omapl138/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omapl138_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti33x/defconfig
new file mode 100644
index 00000000..88f80fa9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti43x/defconfig
new file mode 100644
index 00000000..4b9daaf9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb
new file mode 100644
index 00000000..6fe21071
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb
@@ -0,0 +1,75 @@
+SECTION = "kernel"
+SUMMARY = "Mainline Linux kernel for TI devices (with ti-upstream-tools)"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+inherit kernel
+
+DEFCONFIG_BUILDER = "${WORKDIR}/ti-upstream-tools/config/defconfig_builder.sh"
+require recipes-kernel/linux/setup-defconfig.inc
+require recipes-kernel/linux/kernel-rdepends.inc
+require recipes-kernel/linux/ti-kernel.inc
+
+DEPENDS += "gmp-native"
+
+KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \
+ ${EXTRA_DTC_ARGS}"
+
+S = "${WORKDIR}/git"
+
+BRANCH = "master"
+TOOLS_BRANCH = "master"
+
+# 5.15 Mainline version
+SRCREV = "8bb7eca972ad531c9b149c0a51ab43a417385813"
+PV = "5.15+git${SRCPV}"
+
+# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
+MACHINE_KERNEL_PR:append = "b"
+PR = "${MACHINE_KERNEL_PR}"
+
+KERNEL_GIT_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
+KERNEL_GIT_PROTOCOL = "git"
+SRC_URI += " \
+ ${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH};name=linux \
+ git://git.ti.com/ti-linux-kernel/ti-upstream-tools.git;branch=${TOOLS_BRANCH};protocol=${KERNEL_GIT_PROTOCOL};name=ti-upstream-tools;destsuffix=ti-upstream-tools \
+ file://defconfig \
+"
+
+SRCREV_ti-upstream-tools = "0f60697843bba6f8d721b14da92b1652563ccb95"
+SRCREV_FORMAT = "linux"
+
+KERNEL_DEVICETREE = ""
+
+kernel_do_compile:append() {
+ oe_runmake dtbs CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+ oe_runmake -C ${WORKDIR}/ti-upstream-tools LINUX=${S} DTC=${B}/scripts/dtc/dtc O=${B} CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+}
+
+do_install:append() {
+ for dtbf in `find arch/${ARCH}/boot/dts/ \( -name '*.dtb' -or -name '*.dtbo' \)`; do
+ dtb="$dtbf"
+ dtb_ext=${dtb##*.}
+ dtb_base_name=`basename $dtb .$dtb_ext`
+ dtb_path=`get_real_dtb_path_in_kernel "$dtb"`
+ install -m 0644 $dtbf ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext
+ done
+}
+
+do_deploy:append() {
+ for dtbf in `find arch/${ARCH}/boot/dts/ \( -name '*.dtb' -or -name '*.dtbo' \) -printf '%P\n'`; do
+ dtb="$dtbf"
+ dtb_ext=${dtb##*.}
+ dtb_base_name=`basename $dtb .$dtb_ext`
+ dtb_dir=`dirname $dtb`
+ install -d ${DEPLOYDIR}
+ install -m 0644 ${D}/${KERNEL_IMAGEDEST}/$dtb_base_name.$dtb_ext ${DEPLOYDIR}/$dtb_base_name.$dtb_ext
+ done
+}
+
+do_shared_workdir:prepend() {
+ cd ${B}
+ echo >> Module.symvers
+}
+
+FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/defconfig
new file mode 100644
index 00000000..d083d182
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/dra7xx/defconfig
new file mode 100644
index 00000000..dcb53bab
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/k3/defconfig
new file mode 100644
index 00000000..b9bc6137
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/omapl138/defconfig
new file mode 100644
index 00000000..b3467853
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/omapl138/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omapl138_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti33x/defconfig
new file mode 100644
index 00000000..88f80fa9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti43x/defconfig
new file mode 100644
index 00000000..4b9daaf9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.10/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/defconfig
new file mode 100644
index 00000000..d083d182
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/dra7xx/defconfig
new file mode 100644
index 00000000..dcb53bab
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/k3/defconfig
new file mode 100644
index 00000000..b9bc6137
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/omapl138/defconfig
new file mode 100644
index 00000000..b3467853
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/omapl138/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omapl138_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti33x/defconfig
new file mode 100644
index 00000000..88f80fa9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti43x/defconfig
new file mode 100644
index 00000000..4b9daaf9
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-5.4/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/defconfig
new file mode 100644
index 00000000..f0b8bab0
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/dra7xx/defconfig
new file mode 100644
index 00000000..47e3d04a
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/k3/defconfig
new file mode 100644
index 00000000..cc10bfda
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti33x/defconfig
new file mode 100644
index 00000000..0a4fbac2
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti43x/defconfig
new file mode 100644
index 00000000..99594c81
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.10/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/defconfig
new file mode 100644
index 00000000..f0b8bab0
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/dra7xx/defconfig
new file mode 100644
index 00000000..47e3d04a
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/k3/defconfig
new file mode 100644
index 00000000..cc10bfda
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti33x/defconfig
new file mode 100644
index 00000000..0a4fbac2
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti43x/defconfig
new file mode 100644
index 00000000..99594c81
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-5.4/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_rt_release
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.10.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.10.bb
new file mode 100644
index 00000000..10325a8b
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.10.bb
@@ -0,0 +1,10 @@
+require linux-ti-staging_5.10.bb
+
+# Look in the generic major.minor directory for files
+# This will have priority over generic non-rt path
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.10:"
+
+BRANCH = "ti-rt-linux-5.10.y"
+
+SRCREV = "541ec9a6995c3dd881d6f0b63cc714a08ded457d"
+PV = "5.10.65+git${SRCPV}"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.4.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.4.bb
new file mode 100644
index 00000000..8a0c0eaf
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_5.4.bb
@@ -0,0 +1,10 @@
+require linux-ti-staging_5.4.bb
+
+# Look in the generic major.minor directory for files
+# This will have priority over generic non-rt path
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.4:"
+
+BRANCH = "ti-rt-linux-5.4.y"
+
+SRCREV = "519667b0d81d74a6e55105dcd6072ae550352599"
+PV = "5.4.106+git${SRCPV}"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/defconfig
new file mode 100644
index 00000000..5d051bd1
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/dra7xx/defconfig
new file mode 100644
index 00000000..2b3635c3
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/k3/defconfig
new file mode 100644
index 00000000..56cf9302
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/omapl138/defconfig
new file mode 100644
index 00000000..95b61168
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/omapl138/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omapl138_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti33x/defconfig
new file mode 100644
index 00000000..9ab6733c
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti43x/defconfig
new file mode 100644
index 00000000..825c31cd
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.10/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/defconfig
new file mode 100644
index 00000000..5d051bd1
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omap2_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/dra7xx/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/dra7xx/defconfig
new file mode 100644
index 00000000..2b3635c3
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/dra7xx/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_dra7x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/k3/defconfig
new file mode 100644
index 00000000..56cf9302
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/k3/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_arm64_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/omapl138/defconfig
new file mode 100644
index 00000000..95b61168
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/omapl138/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_omapl138_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti33x/defconfig
new file mode 100644
index 00000000..9ab6733c
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti33x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am3x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti43x/defconfig
new file mode 100644
index 00000000..825c31cd
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-5.4/ti43x/defconfig
@@ -0,0 +1 @@
+use-tisdk-config=ti_sdk_am4x_debug
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.10.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.10.bb
new file mode 100644
index 00000000..e57d82eb
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.10.bb
@@ -0,0 +1,5 @@
+require linux-ti-staging_5.10.bb
+
+# Look in the generic major.minor directory for files
+# This will have priority over generic non-rt path
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.10:"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.4.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.4.bb
new file mode 100644
index 00000000..7a9a148b
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_5.4.bb
@@ -0,0 +1,5 @@
+require linux-ti-staging_5.4.bb
+
+# Look in the generic major.minor directory for files
+# This will have priority over generic non-rt path
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.4:"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.10.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.10.bb
new file mode 100644
index 00000000..1a0ec5df
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.10.bb
@@ -0,0 +1,51 @@
+SECTION = "kernel"
+SUMMARY = "Linux kernel for TI devices"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
+
+inherit kernel
+
+DEFCONFIG_BUILDER = "${S}/ti_config_fragments/defconfig_builder.sh"
+require recipes-kernel/linux/setup-defconfig.inc
+require recipes-kernel/linux/cmem.inc
+require recipes-kernel/linux/ti-uio.inc
+require recipes-kernel/linux/bundle-devicetree.inc
+require recipes-kernel/linux/kernel-rdepends.inc
+require recipes-kernel/linux/ti-kernel.inc
+
+# Look in the generic major.minor directory for files
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.10:"
+
+KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \
+ ${EXTRA_DTC_ARGS}"
+
+S = "${WORKDIR}/git"
+
+BRANCH = "ti-linux-5.10.y"
+
+SRCREV = "dcc6bedb2c2bdb509709e4ae08303206e95ce6c2"
+PV = "5.10.65+git${SRCPV}"
+
+# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
+MACHINE_KERNEL_PR:append = "b"
+PR = "${MACHINE_KERNEL_PR}"
+
+KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
+KERNEL_GIT_PROTOCOL = "git"
+SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
+ file://defconfig"
+
+FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb"
+
+# Special configuration for remoteproc/rpmsg IPC modules
+module_conf_rpmsg_client_sample = "blacklist rpmsg_client_sample"
+module_conf_ti_k3_r5_remoteproc = "softdep ti_k3_r5_remoteproc pre: virtio_rpmsg_bus"
+module_conf_ti_k3_dsp_remoteproc = "softdep ti_k3_dsp_remoteproc pre: virtio_rpmsg_bus"
+KERNEL_MODULE_PROBECONF += "rpmsg_client_sample ti_k3_r5_remoteproc ti_k3_dsp_remoteproc"
+KERNEL_MODULE_AUTOLOAD:append:j7 = " rpmsg_kdrv_switch"
+
+# Disable SA2UL for AM64x HS and J7200 HS
+module_conf_sa2ul:am64xx-hs-evm = "blacklist sa2ul"
+KERNEL_MODULE_PROBECONF:append:am64xx-hs-evm = " sa2ul"
+module_conf_sa2ul:j7200-hs-evm = "blacklist sa2ul"
+KERNEL_MODULE_PROBECONF:append:j7200-hs-evm = " sa2ul"
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.4.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.4.bb
new file mode 100644
index 00000000..fbfa497f
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_5.4.bb
@@ -0,0 +1,43 @@
+SECTION = "kernel"
+SUMMARY = "Linux kernel for TI devices"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+inherit kernel
+
+DEFCONFIG_BUILDER = "${S}/ti_config_fragments/defconfig_builder.sh"
+require recipes-kernel/linux/setup-defconfig.inc
+require recipes-kernel/linux/cmem.inc
+require recipes-kernel/linux/ti-uio.inc
+require recipes-kernel/linux/bundle-devicetree.inc
+require recipes-kernel/linux/kernel-rdepends.inc
+
+# Look in the generic major.minor directory for files
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-5.4:"
+
+KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
+
+S = "${WORKDIR}/git"
+
+BRANCH = "ti-linux-5.4.y"
+
+SRCREV = "023faefa70274929bff92dc41167b007f7523792"
+PV = "5.4.106+git${SRCPV}"
+
+# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild
+MACHINE_KERNEL_PR:append = "a"
+PR = "${MACHINE_KERNEL_PR}"
+
+KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
+KERNEL_GIT_PROTOCOL = "git"
+SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
+ file://defconfig"
+
+FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb"
+
+# Special configuration for remoteproc/rpmsg IPC modules
+module_conf_rpmsg_client_sample = "blacklist rpmsg_client_sample"
+module_conf_ti_k3_r5_remoteproc = "softdep ti_k3_r5_remoteproc pre: virtio_rpmsg_bus"
+module_conf_ti_k3_dsp_remoteproc = "softdep ti_k3_dsp_remoteproc pre: virtio_rpmsg_bus"
+KERNEL_MODULE_PROBECONF += "rpmsg_client_sample ti_k3_r5_remoteproc ti_k3_dsp_remoteproc"
+KERNEL_MODULE_AUTOLOAD:append:j7 = " rpmsg_kdrv_switch"
diff --git a/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc b/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc
new file mode 100644
index 00000000..850a1dd8
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc
@@ -0,0 +1,92 @@
+# KERNEL_LOCALVERSION can be set to add a tag to the end of the
+# kernel version string. such as the commit id
+def get_git_revision(p):
+ import subprocess
+
+ try:
+ return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE, universal_newlines=True).communicate()[0].rstrip()
+ except OSError:
+ return None
+
+KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
+
+# Check the defconfig file and see if it points to an in kernel
+# defconfig that should be used, or if it is a complete config file
+# Or if it points to a combined defconfig that lists both in kernel
+# defconfig and associated config fragments.
+
+do_configure() {
+ # Always copy the defconfig file to .config to keep consistency
+ # between the case where there is a real config and the in kernel
+ # tree config
+ cp ${WORKDIR}/defconfig ${B}/.config
+
+ echo ${KERNEL_LOCALVERSION} > ${B}/.scmversion
+ echo ${KERNEL_LOCALVERSION} > ${S}/.scmversion
+
+ # Zero, when using "tisdk" configs, pass control to defconfig_builder
+ config=`cat ${B}/.config | grep use-tisdk-config | cut -d= -f2`
+ if [ -n "$config" ]
+ then
+ ${DEFCONFIG_BUILDER} -w ${S} -t $config
+ oe_runmake -C ${S} O=${B} "$config"_defconfig
+ else
+ # First, check if pointing to a combined config with config fragments
+ config=`cat ${B}/.config | grep use-combined-config | cut -d= -f2`
+ if [ -n "$config" ]
+ then
+ cp ${S}/$config ${B}/.config
+ fi
+
+ # Second, extract any config fragments listed in the defconfig
+ config=`cat ${B}/.config | grep config-fragment | cut -d= -f2`
+ if [ -n "$config" ]
+ then
+ configfrags=""
+ for f in $config
+ do
+ # Check if the config fragment is available
+ if [ ! -e "${S}/$f" ]
+ then
+ echo "Could not find kernel config fragment $f"
+ exit 1
+ else
+ # Sanitize config fragment files to be relative to sources
+ configfrags="$configfrags ${S}/$f"
+ fi
+ done
+ fi
+
+ # Third, check if pointing to a known in kernel defconfig
+ config=`cat ${B}/.config | grep use-kernel-config | cut -d= -f2`
+ if [ -n "$config" ]
+ then
+ oe_runmake -C ${S} O=${B} $config
+ else
+ yes '' | oe_runmake -C ${S} O=${B} oldconfig
+ fi
+ fi
+
+ # Fourth, handle config fragments specified in the recipe
+ # The assumption is that the config fragment will be specified with the absolute path.
+ # E.g. ${WORKDIR}/config1.cfg or ${S}/config2.cfg
+ if [ -n "${KERNEL_CONFIG_FRAGMENTS}" ]
+ then
+ for f in ${KERNEL_CONFIG_FRAGMENTS}
+ do
+ # Check if the config fragment is available
+ if [ ! -e "$f" ]
+ then
+ echo "Could not find kernel config fragment $f"
+ exit 1
+ fi
+ done
+ fi
+
+ # Now that all the fragments are located merge them
+ if [ -n "${KERNEL_CONFIG_FRAGMENTS}" -o -n "$configfrags" ]
+ then
+ ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config $configfrags ${KERNEL_CONFIG_FRAGMENTS} 1>&2 )
+ yes '' | oe_runmake -C ${S} O=${B} oldconfig
+ fi
+}
diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc
new file mode 100644
index 00000000..a7eb476e
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc
@@ -0,0 +1,9 @@
+# Add DTC FLAGS -@ when KERNEL_DTB_OVERLAY_SUPPORT is enabled
+
+def get_extra_dtc_args(d):
+ if d.getVar('KERNEL_DTB_OVERLAY_SUPPORT') == "1":
+ return "DTC_FLAGS=-@"
+ else:
+ return ""
+
+EXTRA_DTC_ARGS += "${@get_extra_dtc_args(d)}"
diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-uio.inc b/meta-ti-bsp/recipes-kernel/linux/ti-uio.inc
new file mode 100644
index 00000000..eea7866a
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/ti-uio.inc
@@ -0,0 +1,71 @@
+SRC_URI:append:dra7xx = " file://am57xx-pru-uio.dtsi \
+ file://am571x-pru-uio.dtsi \
+"
+SRC_URI:append:ti33x = " file://am335x-pru-uio.dtsi"
+SRC_URI:append:ti43x = " file://am437x-pru-uio.dtsi"
+
+DTSI_LIST = ""
+
+do_setup_uio() {
+ if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
+ then
+ for dtsi in ${DTSI_LIST}
+ do
+ cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+ for dtb in ${KERNEL_DEVICETREE}
+ do
+ dts=`echo $dtb | sed -e 's|dtb$|dts|'`
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+ done
+ done
+ fi
+}
+
+do_setup_uio:append:dra7xx() {
+
+ if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
+ then
+ dtsi="am57xx-pru-uio.dtsi"
+ cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+
+ dts="am572x-idk-pru-excl-uio.dts"
+ cp ${S}/arch/arm/boot/dts/am572x-idk.dts ${S}/arch/arm/boot/dts/$dts
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+
+ dts="am574x-idk-pru-excl-uio.dts"
+ cp ${S}/arch/arm/boot/dts/am574x-idk.dts ${S}/arch/arm/boot/dts/$dts
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+
+ dts="am571x-idk-pru-excl-uio.dts"
+ dtsi="am571x-pru-uio.dtsi"
+ cp ${S}/arch/arm/boot/dts/am571x-idk.dts ${S}/arch/arm/boot/dts/$dts
+ cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+ fi
+}
+
+do_setup_uio:append:ti33x() {
+
+ if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
+ then
+ dts="am335x-icev2-pru-excl-uio.dts"
+ dtsi="am335x-pru-uio.dtsi"
+ cp ${S}/arch/arm/boot/dts/am335x-icev2-prueth.dts ${S}/arch/arm/boot/dts/$dts
+ cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+ fi
+}
+
+do_setup_uio:append:ti43x() {
+
+ if [ "${ENABLE_TI_UIO_DEVICES}" == "1" ]
+ then
+ dts="am437x-idk-pru-excl-uio.dts"
+ dtsi="am437x-pru-uio.dtsi"
+ cp ${S}/arch/arm/boot/dts/am437x-idk-evm.dts ${S}/arch/arm/boot/dts/$dts
+ cp ${WORKDIR}/${dtsi} ${S}/arch/arm/boot/dts/
+ echo "#include \"${dtsi}\"" >> ${S}/arch/arm/boot/dts/$dts
+ fi
+}
+
+do_patch[postfuncs] += "do_setup_uio"
diff --git a/meta-ti-bsp/recipes-multimedia/libdce/libdce_3.00.14.00.bb b/meta-ti-bsp/recipes-multimedia/libdce/libdce_3.00.14.00.bb
new file mode 100644
index 00000000..42482c11
--- /dev/null
+++ b/meta-ti-bsp/recipes-multimedia/libdce/libdce_3.00.14.00.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Library for remotely invoking HW accelerated codecs on IVA-HD"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://libdce.h;beginline=1;endline=31;md5=0a398cf815b8b5f31f552266cd453dae"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libdrm ti-ipc"
+
+SRC_URI = "git://git.omapzoom.org/repo/libdce.git;protocol=git"
+SRCREV = "f72096090e3063e85ea77cae66b2d99a48d91727"
+
+PR = "r1"
+
+S = "${WORKDIR}/git"
+EXTRA_OECONF += "IPC_HEADERS=${STAGING_INCDIR}/ti/ipc/mm"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-security/optee/optee-%.bbappend b/meta-ti-bsp/recipes-security/optee/optee-%.bbappend
new file mode 100644
index 00000000..bc590bfd
--- /dev/null
+++ b/meta-ti-bsp/recipes-security/optee/optee-%.bbappend
@@ -0,0 +1 @@
+COMPATIBLE_MACHINE:ti-soc = "ti-soc"
diff --git a/meta-ti-bsp/recipes-security/optee/optee-os_%.bbappend b/meta-ti-bsp/recipes-security/optee/optee-os_%.bbappend
new file mode 100644
index 00000000..5cb70df9
--- /dev/null
+++ b/meta-ti-bsp/recipes-security/optee/optee-os_%.bbappend
@@ -0,0 +1,91 @@
+do_compile:prepend:ti-soc() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+}
+
+do_compile:append:k3() {
+ ( cd ${B}/core/; \
+ cp tee-pager_v2.bin ${B}/bl32.bin; \
+ cp tee.elf ${B}/bl32.elf; \
+ )
+}
+
+# Signing procedure for legacy HS devices
+optee_sign_legacyhs() {
+ ( cd ${B}/core/; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh tee.bin tee.bin.signed; \
+ normfl=`echo ${OPTEEFLAVOR} | tr "_" "-"`
+ mv tee.bin.signed ${B}/$normfl.optee; \
+ )
+
+ if [ "${OPTEEPAGER}" = "y" ]; then
+ oe_runmake clean
+ oe_runmake all CFG_TEE_TA_LOG_LEVEL=0 CFG_WITH_PAGER=y
+ ( cd ${B}/core/; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh tee.bin tee.bin.signed; \
+ normfl=`echo ${OPTEEFLAVOR} | tr "_" "-"`
+ mv tee.bin.signed ${B}/$normfl-pager.optee; \
+ )
+ fi
+}
+
+# Signing procedure for K3 HS devices
+optee_sign_k3hs() {
+ ( cd ${B}/core/; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh tee-pager_v2.bin tee-pager.bin.signed; \
+ mv tee-pager.bin.signed ${B}/bl32.bin; \
+ cp tee.elf ${B}/bl32.elf; \
+ )
+}
+
+do_compile:append:ti43x() {
+ optee_sign_legacyhs
+}
+
+do_compile:append:dra7xx() {
+ optee_sign_legacyhs
+}
+
+do_compile:append:am65xx-hs-evm() {
+ optee_sign_k3hs
+}
+
+do_compile:append:am64xx-hs-evm() {
+ optee_sign_k3hs
+}
+
+do_compile:append:j7-hs-evm() {
+ optee_sign_k3hs
+}
+
+do_compile:append:j7200-hs-evm() {
+ optee_sign_k3hs
+}
+
+do_install:append:ti-soc() {
+ install -m 644 ${B}/*.optee ${D}${nonarch_base_libdir}/firmware/ || true
+ install -m 644 ${B}/bl32.bin ${D}${nonarch_base_libdir}/firmware/ || true
+ install -m 644 ${B}/bl32.elf ${D}${nonarch_base_libdir}/firmware/ || true
+}
+
+optee_deploy_legacyhs() {
+ cd ${DEPLOYDIR}/
+ for f in optee/*.optee; do
+ ln -sf $f ${DEPLOYDIR}/
+ done
+}
+
+do_deploy:append:ti43x() {
+ optee_deploy_legacyhs
+}
+
+do_deploy:append:dra7xx() {
+ optee_deploy_legacyhs
+}
+
+do_deploy:append:k3() {
+ ln -sf optee/bl32.bin ${DEPLOYDIR}/
+ ln -sf optee/bl32.elf ${DEPLOYDIR}/
+}
+
+# This is needed for bl32.elf
+INSANE_SKIP:${PN}:append:k3 = " textrel"
diff --git a/meta-ti-bsp/recipes-ti/README b/meta-ti-bsp/recipes-ti/README
new file mode 100644
index 00000000..b32c2842
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/README
@@ -0,0 +1 @@
+Note: some of the packages in this area are not actively maintained.
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes.bb b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes.bb
new file mode 100644
index 00000000..ceefe0d6
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Userspace setup for beaglebone capes"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+PR = "r4"
+
+inherit allarch
+
+SRC_URI = "file://cape.service \
+ file://cape.sh \
+ file://cape-stop.sh \
+ "
+
+do_install() {
+ install -d ${D}${base_libdir}/systemd/system/
+ install -m 0644 ${WORKDIR}/cape.service ${D}${base_libdir}/systemd/system
+
+ install -d ${D}${base_libdir}/systemd/system/basic.target.wants
+ ln -sf ../cape.service ${D}${base_libdir}/systemd/system/basic.target.wants/
+
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/cape*.sh ${D}${bindir}
+}
+
+FILES:${PN} += "${base_libdir}/systemd/system"
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh
new file mode 100755
index 00000000..222a010d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+for eeprom in /sys/bus/i2c/devices/3-005*/eeprom ; do
+ PARTNUMBER=$(hexdump -e '8/1 "%c"' $eeprom -s 58 -n16)
+ case $PARTNUMBER in
+ "BB-BONE-LCD3-01.")
+ echo "Turning off backlight for LCD3 cape"
+ i2cset -f -y 1 0x24 0x07 0x00;;
+ "BB-BONE-LCD4"*)
+ echo "Turning off backlight for LCD4 cape"
+ i2cset -f -y 1 0x24 0x07 0x00;;
+ *)
+ echo "unknown cape: $PARTNUMBER";;
+ esac
+done
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.service b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.service
new file mode 100644
index 00000000..ce0db719
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Beaglebone cape support
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/cape.sh
+ExecStop=/usr/bin/cape-stop.sh
+
+[Install]
+WantedBy=basic.target
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.sh b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.sh
new file mode 100755
index 00000000..c279349d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-capes/cape.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+for eeprom in /sys/bus/i2c/devices/3-005*/eeprom ; do
+ PARTNUMBER=$(hexdump -e '8/1 "%c"' $eeprom -s 58 -n16)
+ case $PARTNUMBER in
+ "BB-BONE-LCD3-01.")
+ echo "Turning on backlight for LCD3 cape"
+ i2cset -f -y 1 0x24 0x07 0x09
+ i2cset -f -y 1 0x24 0x08 0x60;;
+ "BB-BONE-LCD4"*)
+ echo "Turning on backlight for LCD4 cape"
+ i2cset -f -y 1 0x24 0x07 0x09
+ i2cset -f -y 1 0x24 0x08 0x60;;
+ "BB-BONE-WTHR-01.")
+ echo "Initializing I2C devices"
+ echo sht21 0x40 > /sys/class/i2c-adapter/i2c-3/new_device
+ echo bmp085 0x77 > /sys/class/i2c-adapter/i2c-3/new_device
+ echo tsl2550 0x39 > /sys/class/i2c-adapter/i2c-3/new_device
+ echo 1 > /sys/bus/i2c/devices/3-0039/operating_mode;;
+ *)
+ echo "unknown cape: $PARTNUMBER";;
+ esac
+done
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-getting-started.bb b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-getting-started.bb
new file mode 100644
index 00000000..25538ace
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/beaglebone-getting-started.bb
@@ -0,0 +1,21 @@
+SUMMARY = "BeagleBone Getting Started Guide"
+
+PR = "r22"
+
+inherit allarch
+
+LICENSE = "CC-BY-SA-3.0 & GPLv3+ & MIT & PD"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6f02761e31334c48f7021fb94c89aaa"
+
+SRCREV = "05bedba192646152b7bc80b0accaea75aef864e5"
+SRC_URI = "git://github.com/jadonk/beaglebone-getting-started.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${datadir}/${PN}
+ cp -R --no-dereference --preserve=mode,links ${S}/* ${D}${datadir}/${PN}
+}
+
+FILES:${PN} += "${datadir}/${PN}"
+INSANE_SKIP:${PN} = "file-rdeps"
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init.bb b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init.bb
new file mode 100644
index 00000000..3ab00ec3
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init.bb
@@ -0,0 +1,60 @@
+DESCRIPTION = "Units to initialize usb gadgets"
+
+PR = "r19"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+COMPATIBLE_MACHINE = "(ti33x)"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "file://storage-gadget-init.service \
+ file://network-gadget-init.service \
+ file://udhcpd.service \
+ file://udhcpd.conf \
+ file://bone-gmass-eject.rules \
+ file://udhcpd.rules \
+ file://g-storage-reinsert.sh \
+ file://g-ether-start-service.sh \
+ file://g-ether-load.sh \
+ file://update-image-info-on-mmcblk0p1.sh \
+ "
+
+do_install() {
+ install -d ${D}${base_libdir}/systemd/system/basic.target.wants
+ install -m 0644 ${WORKDIR}/*.service ${D}${base_libdir}/systemd/system
+
+ for i in ${WORKDIR}/storage-gadget-init.service ; do
+ install -m 0644 $i ${D}${base_libdir}/systemd/system
+ ln -sf ../$(basename $i) ${D}${base_libdir}/systemd/system/basic.target.wants/
+ done
+
+ install -d ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/*.rules ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/*.conf ${D}${sysconfdir}
+
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/*.sh ${D}${bindir}
+}
+
+PACKAGES =+ "${PN}-storage ${PN}-network ${PN}-udhcpd"
+
+ALLOW_EMPTY:${PN} = "1"
+
+FILES:${PN}-storage = "${base_libdir}/systemd/system/storage-gadget-init.service \
+ ${base_libdir}/systemd/system/basic.target.wants/storage-gadget-init.service \
+ ${bindir}/g-storage-reinsert.sh \
+ ${bindir}/update-image-info-on-mmcblk0p1.sh \
+ ${sysconfdir}/udev/rules.d/bone-gmass-eject.rules"
+
+FILES:${PN}-network = "${base_libdir}/systemd/system/network-gadget-init.service \
+ ${base_libdir}/systemd/system/basic.target.wants/network-gadget-init.service \
+ ${bindir}/g-ether-load.sh \
+ ${bindir}/g-ether-start-service.sh \
+ ${sysconfdir}/udev/rules.d/udhcpd.rules"
+
+FILES:${PN}-udhcpd = "${base_libdir}/systemd/system/udhcpd.service \
+ ${base_libdir}/systemd/system/basic.target.wants/udhcpd.service \
+ ${sysconfdir}/udhcpd.conf"
+
+RRECOMMENDS:${PN} = "${PN}-storage ${PN}-network ${PN}-udhcpd"
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules
new file mode 100644
index 00000000..ee6f93e2
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="block",ACTION=="change",KERNEL=="mmcblk0p1",RUN+="/usr/bin/g-ether-start-service.sh"
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh
new file mode 100755
index 00000000..f9400649
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-load.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+function get_devmem()
+{
+ /usr/bin/devmem2 $1 | grep ": " | cut -d ":" -f 2|cut -d "x" -f 2
+}
+
+function hex_to_mac_addr()
+{
+ addr=$1
+ n=0
+ mac_addr=$(echo ${addr} | while read -r -n2 c; do
+ if [ ! -z "$c" ]; then
+ if [ $n -ne 0 ] ; then
+ echo -n ":${c}"
+ else
+ echo -n "${c}"
+ fi
+ fi
+ n=$(($n+1))
+ done)
+ echo ${mac_addr}
+}
+
+function reverse_bytes()
+{
+ addr=$1
+ New_addr=$(echo ${addr} | while read -r -n2 c; do
+ if [ ! -z "$c" ]; then
+ New_addr=${c}${New_addr}
+ else echo
+ echo ${New_addr}
+ fi
+ done)
+ echo ${New_addr}
+}
+
+DEVMEM_ADDR_LO=$(get_devmem 0x44e10638|bc)
+DEVMEM_ADDR_LO=$(reverse_bytes ${DEVMEM_ADDR_LO})
+
+DEVMEM_ADDR_HI=$(get_devmem 0x44e1063C)
+DEVMEM_ADDR_HI=$(reverse_bytes ${DEVMEM_ADDR_HI})
+
+DEV_ADDR=$(hex_to_mac_addr "${DEVMEM_ADDR_HI}${DEVMEM_ADDR_LO}")
+
+modprobe g_ether host_addr=${DEV_ADDR}
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
new file mode 100755
index 00000000..6e73b155
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+if [ -a /sys/devices/platform/omap/musb-ti81xx/musb-hdrc.0/gadget/lun0/file ]
+then
+ x=$(cat /sys/devices/platform/omap/musb-ti81xx/musb-hdrc.0/gadget/lun0/file)
+ if [ -z "$x" ]
+ then
+ /bin/systemctl stop storage-gadget-init.service
+ /bin/systemctl start network-gadget-init.service
+ fi
+fi
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh
new file mode 100755
index 00000000..d358640a
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+/bin/systemctl stop storage-gadget-init.service
+/bin/systemctl stop network-gadget-init.service
+/bin/systemctl start storage-gadget-init.service
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/network-gadget-init.service b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
new file mode 100644
index 00000000..0ee29147
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Start USB Ethernet gadget
+Conflicts=storage-gadget-init.service
+
+[Service]
+RemainAfterExit=yes
+ExecStart=/usr/bin/g-ether-load.sh
+ExecStop=/sbin/rmmod g_ether
+
+[Install]
+WantedBy=gether.target
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service
new file mode 100644
index 00000000..9a8513e8
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Start usb mass storage gadget
+After=dev-mmcblk0p1.device
+
+[Service]
+RemainAfterExit=yes
+ExecStart=/sbin/modprobe g_mass_storage file=/dev/mmcblk0p1 cdrom=0 stall=0 removable=1 nofua=1
+ExecStop=/sbin/rmmod g_mass_storage
+
+[Install]
+WantedBy=basic.target
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.conf b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.conf
new file mode 100644
index 00000000..3bcf00f0
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.conf
@@ -0,0 +1,5 @@
+start 192.168.7.1
+end 192.168.7.1
+interface usb0
+max_leases 1
+option subnet 255.255.255.252
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.rules b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.rules
new file mode 100644
index 00000000..db65f9ac
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="net",ACTION=="add",KERNEL=="usb0",RUN+="/sbin/ifconfig usb0 192.168.7.2 netmask 255.255.255.252",RUN+="/bin/systemctl start udhcpd.service"
+SUBSYSTEM=="net",ACTION=="remove",KERNEL=="usb0",RUN+="/bin/systemctl stop udhcpd.service"
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.service b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.service
new file mode 100644
index 00000000..1f4ac688
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/udhcpd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=DHCP server for USB0 network gadget
+After=dev-usb0.device
+Conflicts=storage-gadget-init.service
+
+[Service]
+ExecStart=/usr/sbin/udhcpd -f -S /etc/udhcpd.conf
+ExecStop=/bin/kill -TERM $MAINPID
+KillSignal=SIGINT
+
+[Install]
+WantedBy=gether.target
diff --git a/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh
new file mode 100755
index 00000000..a4daf734
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+mount /dev/mmcblk0p1 /mnt
+echo "Image info snapshot" > /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "/etc/angstrom-version:" >> /mnt/info.txt
+cat /etc/angstrom-version >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "/proc/cpuinfo:" >> /mnt/info.txt
+cat /proc/cpuinfo >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "uname -a:" >> /mnt/info.txt
+uname -a >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "/proc/cmdline:" >> /mnt/info.txt
+cat /proc/cmdline >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "ifconfig:" >> /mnt/info.txt
+ifconfig >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "/etc/angstrom-build-info:" >> /mnt/info.txt
+cat /etc/angstrom-build-info >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "/etc/image-version-info:" >> /mnt/info.txt
+cat /etc/image-version-info >> /mnt/info.txt
+
+echo >> /mnt/info.txt
+echo "opkg list-installed:" >> /mnt/info.txt
+opkg list-installed >> /mnt/info.txt
+
+umount /mnt
diff --git a/meta-ti-bsp/recipes-ti/bios/ti-sysbios.inc b/meta-ti-bsp/recipes-ti/bios/ti-sysbios.inc
new file mode 100644
index 00000000..0009dfcc
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/bios/ti-sysbios.inc
@@ -0,0 +1,28 @@
+DESCRIPTION = "TI SYS/BIOS v6 Kernel"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios"
+SECTION = "devel"
+LICENSE = "BSD"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+S = "${WORKDIR}/bios_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/${PV}/exports/bios_setuplinux_${PV}.bin;name=sysbiosbin"
+BINFILE="bios_${PV}.bin"
+TI_BIN_UNPK_CMDS="Y: q:workdir:Y"
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${SYSBIOS_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${SYSBIOS_INSTALL_DIR_RECIPE}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${SYSBIOS_INSTALL_DIR_RECIPE}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP:${PN}-dev = "arch ldflags staticdev file-rdeps"
diff --git a/meta-ti-bsp/recipes-ti/bios/ti-sysbios_6.76.03.01.bb b/meta-ti-bsp/recipes-ti/bios/ti-sysbios_6.76.03.01.bb
new file mode 100644
index 00000000..d242510f
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/bios/ti-sysbios_6.76.03.01.bb
@@ -0,0 +1,16 @@
+require recipes-ti/bios/ti-sysbios.inc
+
+PE = "1"
+PV = "6_76_03_01"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://manifest_bios_${PV}.html;md5=5cf40699c51b26d36fc01647c0b27fb1"
+
+SRC_URI[sysbiosbin.md5sum] = "647243209d66d5dd35503b0ec5a84ab9"
+SRC_URI[sysbiosbin.sha256sum] = "b762b7f2343d26d367f952488e529046785128005158cc921c3baef08e97116a"
+
+TI_BIN_UNPK_CMDS = ""
+TI_BIN_UNPK_ARGS = "--mode unattended --prefix ${WORKDIR}"
+
+BINFILE = "bios_${PV}.run"
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/${PV}/exports/${BINFILE};name=sysbiosbin"
diff --git a/meta-ti-bsp/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb b/meta-ti-bsp/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb
new file mode 100644
index 00000000..5851b899
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Codec Engine for TI ARM/DSP processors"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce"
+SECTION = "devel"
+LICENSE = "BSD"
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-staging.inc
+
+PV = "3_24_00_08"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://codec_engine_${PV}_Manifest.html;md5=de7d9c2594a6f3868e42a33b6a748ce7"
+
+SRC_URI[cetarball.md5sum] = "d66a8ccbd6cdfe9f735af9f4a07e2b9b"
+SRC_URI[cetarball.sha256sum] = "ed7b7399903bbf76af06ee6457836f344ad75b903618339bae82b3967f27ffa1"
+
+S = "${WORKDIR}/codec_engine_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce/${PV}/exports/codec_engine_${PV},lite.tar.gz;name=cetarball "
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ # Install/Stage the Source Tree
+ install -d ${D}${CE_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${CE_INSTALL_DIR_RECIPE}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${CE_INSTALL_DIR_RECIPE}"
diff --git a/meta-ti-bsp/recipes-ti/ctoolslib/libaet_git.bb b/meta-ti-bsp/recipes-ti/ctoolslib/libaet_git.bb
new file mode 100644
index 00000000..c15ab229
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ctoolslib/libaet_git.bb
@@ -0,0 +1,38 @@
+SUMMARY = "TI Emulation CTools AET library"
+DESCRIPTION = "The AETLIB library provides programmatic access to the Advanced Event Triggering capability on C6x processor cores"
+
+LICENSE = "BSD"
+
+PV = "4.19.0.0"
+
+LIC_FILES_CHKSUM = "file://../ctoolslib_manifest.html;md5=b7dd369a2e07ef9a71795ee5a9bd01bd"
+
+SRC_URI = "git://git.ti.com/sdo-emu/ctoolslib.git;protocol=git;branch=opencl_aetlib_build"
+SRCREV = "de7954abab0f0caa8a2c7b53095c30226d901a31"
+
+DEPENDS = "ti-cgt6x-native"
+PR = "r0"
+
+S = "${WORKDIR}/git/aet"
+
+DEVICE=""
+DEVICE:dra7xx = "DRA7xx"
+
+EXTRA_OEMAKE = "C6X_C_DIR=${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x/include"
+
+do_install() {
+ install -d ${D}${datadir}/ti/ctoolslib/aet
+ install -d ${D}${datadir}/ti/ctoolslib/aet/include
+ install -d ${D}${datadir}/ti/ctoolslib/aet/lib
+ cp -rP --preserve=mode,links,timestamps --no-preserve=ownership ${S}/include/* ${D}${datadir}/ti/ctoolslib/aet/include/
+ install -m 0644 ${S}/build/c66/libaet.ae66 ${D}${datadir}/ti/ctoolslib/aet/lib/
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+FILES:${PN}-dev += "\
+ ${datadir}/ti/ctoolslib/aet \
+"
+
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-ti-bsp/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb b/meta-ti-bsp/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb
new file mode 100644
index 00000000..e0feb02c
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Baremetal GCC for ARM"
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+
+LIC_FILES_CHKSUM = "file://share/doc/gcc-arm-none-eabi/license.txt;md5=f77466c63f5787f4bd669c402aabe061"
+
+require recipes-ti/includes/ti-paths.inc
+
+SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2;name=gcc-arm-none"
+
+SRC_URI[gcc-arm-none.md5sum] = "299ebd3f1c2c90930d28ab82e5d8d6c0"
+SRC_URI[gcc-arm-none.sha256sum] = "bb17109f0ee697254a5d4ae6e5e01440e3ea8f0277f2e8169bf95d07c7d5fe69"
+
+S = "${WORKDIR}/gcc-arm-none-eabi-7-2018-q2-update"
+
+# only x86_64 is supported
+COMPATIBLE_HOST = "x86_64.*-linux"
+COMPATIBLE_HOST:class-target = "null"
+
+do_install() {
+ install -d ${D}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}
+ cp -r ${S}/. ${D}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}
+}
+
+FILES:${PN} = "${GCC_ARM_NONE_TOOLCHAIN_RECIPE}/*"
+
+INSANE_SKIP:${PN} = "already-stripped libdir staticdev build-deps file-rdeps"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cg-xml_2.61.00.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cg-xml_2.61.00.bb
new file mode 100644
index 00000000..8e36be6d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cg-xml_2.61.00.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "TI CG_XML"
+HOMEPAGE = "http://software-dl.ti.com/ccs/non-esd/releases/other/applications_packages/cg_xml/index.htm"
+SECTION = "devel"
+LICENSE = "BSD"
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-staging.inc
+require recipes-ti/includes/ti-unpack.inc
+
+PV = "2.61.00"
+PE = "1"
+S = "${WORKDIR}/cg_xml_${PV}"
+
+SRC_URI = "\
+ http://software-dl.ti.com/ccs/non-esd/releases/other/applications_packages/cg_xml/cg_xml_v${@'${PV}'.replace('.','_')}/cgxml-${PV}-linux-installer.run;name=cgxmlbin_linux \
+"
+LIC_FILES_CHKSUM = "file://cg_xml_${PV}_Manifest.pdf;md5=fc02a39748ba50373f32b2f4a5e3a684"
+
+SRC_URI[cgxmlbin_linux.md5sum] = "6ce60caa97bbf15158d806fb062fadff"
+SRC_URI[cgxmlbin_linux.sha256sum] = "da77cb10bd3d5de89e27e4ce8f4408a2e50775c8980225f9a828ddc242bb81f9"
+
+BINFILE="cgxml-${PV}-linux-installer.run"
+TI_BIN_UNPK_CMDS=""
+TI_BIN_UNPK_ARGS="--prefix ${S} --mode unattended"
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${CG_XML_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${CG_XML_INSTALL_DIR_RECIPE}
+}
+
+FILES:${PN} += "${CG_XML_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN} = "arch ldflags file-rdeps"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb
new file mode 100644
index 00000000..b7b6d9b1
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb
@@ -0,0 +1,44 @@
+SUMMARY = "TI ARM Code Generation Tools"
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+LICENSE = "(TI-TSPA & Thai-Open-Source-Software-Center) & BSD-3-Clause & BSL-1.0 & Patrick-Powell & AFL-3.0 & MIT & BSD-2-Clause & PD & BSD-4-Clause"
+
+LIC_FILES_CHKSUM = "file://ti-cgt-arm_${PV}.LTS/README.txt;md5=79631eb21b2e5b7190cd3ff1dfd41108"
+
+require recipes-ti/includes/ti-unpack.inc
+require recipes-ti/includes/ti-staging.inc
+require recipes-ti/includes/ti-paths.inc
+
+S = "${WORKDIR}/ti-cgt-arm-${PV}"
+
+PE = "1"
+PR = "r0"
+
+SRC_URI = "http://software-dl.ti.com/codegen/esd/cgt_public_sw/TMS470/${PV}.LTS/${BINFILE};name=${BINFILE_NAME}"
+
+BINFILE = "ti_cgt_tms470_${PV}.LTS_linux_installer_x86.bin"
+TI_BIN_UNPK_ARGS = "--prefix ${S}"
+TI_BIN_UNPK_CMDS = ""
+
+# only x86_64 is supported
+COMPATIBLE_HOST = "x86_64.*-linux"
+COMPATIBLE_HOST:class-target = "null"
+
+do_install() {
+ install -d ${D}${M4_TOOLCHAIN_INSTALL_DIR_RECIPE}
+ cp -r ${S}/ti-cgt-arm*/. ${D}${M4_TOOLCHAIN_INSTALL_DIR_RECIPE}
+}
+
+SRC_URI[cgt_arm_installer.md5sum] = "e9e668332cf86c965b4da9d1d488426b"
+SRC_URI[cgt_arm_installer.sha256sum] = "da976143128c619a278cb4214a4295c409d100f9e65ad2f4d0d1039db7cf98f4"
+
+BINFILE_NAME = "cgt_arm_installer"
+
+FILES:${PN} += "${M4_TOOLCHAIN_INSTALL_DIR_RECIPE}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+INSANE_SKIP:${PN} += "arch staticdev file-rdeps"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt-pru_2.3.2.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt-pru_2.3.2.bb
new file mode 100644
index 00000000..8b3e2a07
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt-pru_2.3.2.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "TI PRU Code Generation Tools"
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+LICENSE = "(TI-TSPA & Thai-Open-Source-Software-Center) & BSD-3-Clause & BSL-1.0 & Hewlett-Packard & AFL-3.0 & MIT & BSD-2-Clause & PD"
+
+LIC_FILES_CHKSUM = "file://ti-cgt-pru_${PV}/PRU_Code_Generation_Tools_2.3.x_manifest.html;md5=e22f9d8240f7cca0c0aa5242d9ffa5bc"
+LIC_FILES_CHKSUM:class-target = "file://usr/share/doc/ti/cgt-pru/PRU_Code_Generation_Tools_2.3.x_manifest.html;md5=e22f9d8240f7cca0c0aa5242d9ffa5bc"
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-unpack.inc
+
+BINFILE = "ti_cgt_pru_${PV}_linux_installer_x86.bin"
+BINFILE_NAME = "cgt-pru-x86"
+TI_BIN_UNPK_ARGS = "--prefix ${S}"
+TI_BIN_UNPK_CMDS = ""
+
+BINFILE:class-target = "ti_cgt_pru_${PV}_armlinuxa8hf_busybox_installer.sh"
+BINFILE_NAME:class-target = "cgt-pru-arm"
+
+SRC_URI = "http://software-dl.ti.com/codegen/esd/cgt_public_sw/PRU/${PV}/${BINFILE};name=${BINFILE_NAME}"
+
+SRC_URI[cgt-pru-x86.md5sum] = "270a0ecca383f66cad3a0e2a738c6ab0"
+SRC_URI[cgt-pru-x86.sha256sum] = "af1178a059d46d67d5672df053dd2fbebb0b89a513b17b8739dbe915b4a5d71a"
+
+SRC_URI[cgt-pru-arm.md5sum] = "fbf10083af1b0e5d69b018126603bb58"
+SRC_URI[cgt-pru-arm.sha256sum] = "75ac84775a5624ea7e4fad4efc1acb7e869c79160550d48ba780068a3dce879c"
+
+do_install() {
+ install -d ${D}${TI_CGT_PRU_INSTALL_DIR_RECIPE}
+ cp -r ${S}/ti-cgt-pru_${PV}/. \
+ ${D}${TI_CGT_PRU_INSTALL_DIR_RECIPE}/
+}
+
+do_install:class-target() {
+ ${WORKDIR}/${BINFILE} --prefix ${D}
+}
+
+FILES:${PN} += "${datadir}/ti/*"
+
+FILES:${PN}-dbg = "${TI_CGT_PRU_INSTALL_DIR_RECIPE}/bin/.debug \
+ ${TI_CGT_PRU_INSTALL_DIR_RECIPE}/lib/.debug \
+"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+INSANE_SKIP:${PN} += "arch staticdev already-stripped file-rdeps"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt470.inc b/meta-ti-bsp/recipes-ti/devtools/ti-cgt470.inc
new file mode 100644
index 00000000..f0992aa7
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt470.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "TI ARM Code Generation Tools"
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/CodeGenerationTools.htm"
+SECTION = "devel"
+LICENSE = "TI"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62f46f1125a152a2e213b414db7ac600"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+S = "${WORKDIR}/cgt470_${PV}"
+
+SRC_URI = "http://install.source.dir.local/ti_cgt_tms470_${PVwithdots}_setup_linux_x86.bin;name=cgt470bin"
+
+BINFILE="ti_cgt_tms470_${PVwithdots}_setup_linux_x86.bin"
+TI_BIN_UNPK_CMDS="Y:qY:workdir: : "
+TI_BIN_UNPK_WDEXT="/cgt470_${PV}"
+
+do_install() {
+ install -d ${D}${CODEGEN_ARM_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${CODEGEN_ARM_INSTALL_DIR_RECIPE}
+}
+
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt470_4.6.6.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt470_4.6.6.bb
new file mode 100644
index 00000000..6ff2cc48
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt470_4.6.6.bb
@@ -0,0 +1,8 @@
+require ti-cgt470.inc
+
+PV = "4_6_6"
+PVwithdots = "4.6.6"
+
+SRC_URI[cgt470bin.md5sum] = "29a316dc6b8c8c3a53e0d6c956acb62b"
+SRC_URI[cgt470bin.sha256sum] = "a17bc7139f450672503c932ef53b00c425522890e031b4a7c9135fdf90815740"
+
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb
new file mode 100644
index 00000000..a7de8e38
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb
@@ -0,0 +1,46 @@
+SUMMARY = "TI DSP Code Generation Tools"
+DESCRIPTION = "Texas Instrument (TI) Code Generation Tools are custom \
+utilities targeted for TI embedded processors. This Digital Signal \
+Processor (DSP) suite contains tools needed to create and debug \
+applications for the C6000 DSP family. This includes tools such as: \
+compiler, linker, assembler, etc. This also includes C runtime \
+libraries and standard header files needed to produce a working DSP application."
+
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+LICENSE = "TI-TSPA"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b6311962635a4f15630e36ec2d875eca"
+
+S = "${WORKDIR}/c6000_7.4.16"
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-unpack.inc
+
+BINFILE = "ti_cgt_c6000_7.4.16_linux_installer_x86.bin"
+BINFILE_NAME = "cgt6x_7.4.16_x86_installer"
+TI_BIN_UNPK_ARGS = "--prefix ${WORKDIR} --mode unattended"
+TI_BIN_UNPK_CMDS=""
+
+SRC_URI = "http://install.source.dir.local/${BINFILE};name=${BINFILE_NAME}"
+
+SRC_URI[cgt6x_7.4.16_x86_installer.md5sum] = "21ca55c5b1f6b2d8d4fb7570d5eb5513"
+SRC_URI[cgt6x_7.4.16_x86_installer.sha256sum] = "baa0d1ef20397383f99f45068a6d160963a01419d42fbbb851263b54c91df82f"
+
+# only x86_64 is supported
+COMPATIBLE_HOST = "x86_64.*-linux"
+COMPATIBLE_HOST:class-target = "null"
+
+do_install() {
+ install -d ${D}/${TI_CGT6X_7_INSTALL_DIR_RECIPE}
+ cp -rP --preserve=mode,links,timestamps --no-preserve=ownership ${WORKDIR}/c6000_7.4.16/. ${D}/${TI_CGT6X_7_INSTALL_DIR_RECIPE}
+}
+
+FILES:${PN} += "${TI_CGT6X_7_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN} += "arch staticdev textrel"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x_8.3.2.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x_8.3.2.bb
new file mode 100644
index 00000000..fd34657a
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt6x_8.3.2.bb
@@ -0,0 +1,107 @@
+DESCRIPTION = "TI DSP Code Generation Tools"
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+LICENSE = "(TI-TSPA & Thai-Open-Source-Software-Center) & BSD-3-Clause & BSL-1.0 & Patrick-Powell & AFL-3.0 & MIT & BSD-2-Clause & PD"
+
+LIC_FILES_CHKSUM = "file://ti-cgt-c6000_${PV}/C6000CodeGenerationTools_8.3.x_manifest.html;md5=d06c6f9acebf78df4108a8535396e9f1"
+LIC_FILES_CHKSUM:class-target = "file://usr/share/doc/ti/cgt-c6x/C6000CodeGenerationTools_8.3.x_manifest.html;md5=d06c6f9acebf78df4108a8535396e9f1"
+
+PE = "1"
+
+require recipes-ti/includes/ti-unpack.inc
+
+COMPATIBLE_HOST:class-target = "arm.*-linux"
+
+# For now we only have hardfp version for target class
+python __anonymous() {
+ c = d.getVar("CLASSOVERRIDE")
+
+ if c == "class-target":
+ tunes = d.getVar("TUNE_FEATURES")
+ if not tunes:
+ return
+ pkgn = d.getVar("PN")
+ pkgv = d.getVar("PV")
+ if "callconvention-hard" not in tunes:
+ bb.warn("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
+ raise bb.parse.SkipPackage("%s-%s ONLY supports hardfp mode for now" % (pkgn, pkgv))
+}
+
+BINFILE = "ti_cgt_c6000_${PV}_linux_installer_x86.bin"
+BINFILE_NAME = "cgt6x_x86_installer"
+TI_BIN_UNPK_ARGS = "--prefix ${S}"
+TI_BIN_UNPK_CMDS = ""
+
+BINFILE:class-target = "ti_cgt_c6000_${PV}_armlinuxa8hf_busybox_installer.sh"
+BINFILE_NAME:class-target = "cgt6x_arm_installer"
+
+SRC_URI = "http://software-dl.ti.com/codegen/esd/cgt_public_sw/C6000/${PV}/${BINFILE};name=${BINFILE_NAME}"
+
+SRC_URI[cgt6x_x86_installer.md5sum] = "f1f534e6a4bdee6df39e8d0cb458d161"
+SRC_URI[cgt6x_x86_installer.sha256sum] = "1fba2a8f5532b33a23677771d686a866171ce7a0e567fed50d900d0ecd2e17e6"
+
+SRC_URI[cgt6x_arm_installer.md5sum] = "425d82308e71202ad004a36b7ec3cec9"
+SRC_URI[cgt6x_arm_installer.sha256sum] = "70c387ddde379194fed712087be6cb0ca5f4f0e65d7f29bd7462c38ee011928f"
+
+do_install() {
+ install -d ${D}${bindir}
+ for binfile in ${S}/ti-cgt-c6000_${PV}/bin/*; do
+ install -m 755 ${binfile} ${D}${bindir}
+ done
+
+ install -d ${D}${datadir}/ti/cgt-c6x/bin
+ for binfile in ${S}/ti-cgt-c6000_${PV}/bin/*; do
+ install -m 755 ${binfile} ${D}${datadir}/ti/cgt-c6x/bin
+ done
+
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ cp ${CP_ARGS} ${S}/ti-cgt-c6000_${PV}/include ${D}${datadir}/ti/cgt-c6x/include
+
+ install -d ${D}${datadir}/ti/cgt-c6x/lib
+ for libfile in ${S}/ti-cgt-c6000_${PV}/lib/*.a; do
+ install -m 644 ${libfile} ${D}${datadir}/ti/cgt-c6x/lib
+ done
+
+ for libfile in ${S}/ti-cgt-c6000_${PV}/lib/*.cmd; do
+ install -m 644 ${libfile} ${D}${datadir}/ti/cgt-c6x/lib
+ done
+
+ for libfile in ${S}/ti-cgt-c6000_${PV}/lib/*.lib; do
+ install -m 644 ${libfile} ${D}${datadir}/ti/cgt-c6x/lib
+ done
+
+ install -d ${D}${datadir}/man/man1
+ for manfile in ${S}/ti-cgt-c6000_${PV}/man/man1/*; do
+ if [ -e ${manfile} ]; then
+ install -m 644 ${manfile} ${D}${datadir}/man/man1
+ fi
+ done
+
+ install -d ${D}${datadir}/doc/ti/cgt-c6x
+ for docfile in ${S}/ti-cgt-c6000_${PV}/*.txt; do
+ install -m 644 ${docfile} ${D}${datadir}/doc/ti/cgt-c6x
+ done
+
+ for docfile in ${S}/ti-cgt-c6000_${PV}/*.html; do
+ install -m 644 ${docfile} ${D}${datadir}/doc/ti/cgt-c6x
+ done
+
+ for docfile in ${S}/ti-cgt-c6000_${PV}/*.spdx; do
+ install -m 644 ${docfile} ${D}${datadir}/doc/ti/cgt-c6x
+ done
+
+}
+
+do_install:class-target() {
+ ${WORKDIR}/${BINFILE} --prefix ${D}
+}
+
+FILES:${PN} += "${datadir}/ti/*"
+
+FILES:${PN}-dbg += "${datadir}/ti/cgt-c6x/bin/.debug"
+
+INSANE_SKIP:${PN} += "staticdev"
+INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${datadir}/ti/cgt-c6x/lib/libc.a"
+
+BBCLASSEXTEND = "native nativesdk"
+
+COMPATIBLE_MACHINE:class-target = "(ti-soc)"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-cgt7x_1.2.0.bb b/meta-ti-bsp/recipes-ti/devtools/ti-cgt7x_1.2.0.bb
new file mode 100644
index 00000000..b45b52a3
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-cgt7x_1.2.0.bb
@@ -0,0 +1,49 @@
+SUMMARY = "TI DSP Code Generation Tools"
+DESCRIPTION = "Texas Instruments (TI) Code Generation Tools are custom \
+utilities targeted for TI embedded processors. This Digital Signal \
+Processor (DSP) suite contains tools needed to create and debug \
+applications for the C7000 DSP family. This includes tools such as: \
+compiler, linker, assembler, etc. This also includes C runtime \
+libraries and standard header files needed to produce a working DSP application."
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+LICENSE = "(TI-TSPA & Thai-Open-Source-Software-Center) & BSD-3-Clause & BSL-1.0 & Patrick-Powell & AFL-3.0 & MIT & BSD-2-Clause & PD"
+
+LIC_FILES_CHKSUM = "file://ti-cgt-c7000_${PV}.STS/C7000_Code_Generation_Tools_1.x_manifest.html;md5=f1156d241d104c281bc64a6ec8eadc64"
+
+require recipes-ti/includes/ti-unpack.inc
+require recipes-ti/includes/ti-paths.inc
+
+# only x86_64 is supported
+COMPATIBLE_HOST = "x86_64.*-linux"
+COMPATIBLE_HOST:class-target = "null"
+
+PE = "1"
+
+BINFILE = "ti_cgt_c7000_${PV}.STS_linux_installer_x86.bin"
+BINFILE_NAME = "cgt7x_x86_installer"
+
+SRC_URI = "http://software-dl.ti.com/codegen/esd/cgt_public_sw/C7000/${PV}.STS/${BINFILE};name=${BINFILE_NAME}"
+
+TI_BIN_UNPK_ARGS = "--prefix ${S}"
+TI_BIN_UNPK_CMDS = ""
+
+SRC_URI[cgt7x_x86_installer.md5sum] = "813840908f333dd2a31f92edec71c1fb"
+SRC_URI[cgt7x_x86_installer.sha256sum] = "21379811a8857489f72ca8ec45a46eb086ced0bdbb58e78f73a86e63984ab2f5"
+
+S = "${WORKDIR}/c7000_${PV}"
+
+do_install() {
+ install -d ${D}/${TI_CGT7X_INSTALL_DIR_RECIPE}
+ cp -rP --preserve=mode,links,timestamps --no-preserve=ownership ${WORKDIR}/c7000_${PV}/ti-cgt-c7000_${PV}.STS/. ${D}/${TI_CGT7X_INSTALL_DIR_RECIPE}
+}
+
+
+FILES:${PN} += "${TI_CGT7X_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN} += "arch staticdev textrel"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-common.inc b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-common.inc
new file mode 100644
index 00000000..3caf7b8d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-common.inc
@@ -0,0 +1,70 @@
+DESCRIPTION = "TI XDCtools (RTSC - Real Time Software Components - http://rtsc.eclipse.org)"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc"
+SECTION = "devel"
+LICENSE = "BSD & GPLv2"
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-staging.inc
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+
+ install -d ${D}${XDC_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${XDC_INSTALL_DIR_RECIPE}
+}
+
+FILES:${PN}-dev = "${XDC_INSTALL_DIR_RECIPE}"
+
+BBCLASSEXTEND = "native nativesdk"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP:${PN}-dev = "libdir dev-elf arch file-rdeps"
+
+# Prevent internal libs from getting picked up
+PRIVATE_LIBS = " \
+libncdb.so \
+libcdb.so \
+libjavaplugin_oji.so \
+libjavaplugin_jni.so \
+libjsound.so \
+libinstrument.so \
+libjawt.so \
+libzip.so \
+libjava_crw_demo.so \
+libjavaplugin_nscp_gcc29.so \
+libhprof.so \
+libcmm.so \
+libjdwp.so \
+libmlib_image.so \
+libjpeg.so \
+libverify.so \
+libjavaplugin_nscp.so \
+libmanagement.so \
+libunpack.so \
+librmi.so \
+libJdbcOdbc.so \
+libawt.so \
+libnet.so \
+libjaas_unix.so \
+libnio.so \
+libdcpr.so \
+libioser12.so \
+libjsoundalsa.so \
+libjava.so \
+libfontmanager.so \
+libdt_socket.so \
+libmawt.so \
+libjvm.so \
+libhpi.so \
+lib.so \
+libcairo.so.2 \
+libjli.so \
+libawt_xawt.so \
+"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+COMPATIBLE_HOST:class-native = "(.*)"
+COMPATIBLE_HOST:class-nativesdk = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-core.inc b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-core.inc
new file mode 100644
index 00000000..47f73b6d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools-core.inc
@@ -0,0 +1,5 @@
+require ti-xdctools-common.inc
+
+S = "${WORKDIR}/xdctools_${PV}_core"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/${PV}/exports/xdccore/xdctools_${PV}_core_linux.zip;name=xdczip"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-xdctools.inc b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools.inc
new file mode 100644
index 00000000..1415f83e
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools.inc
@@ -0,0 +1,10 @@
+require ti-xdctools-common.inc
+require ../includes/ti-eula-unpack.inc
+
+S = "${WORKDIR}/xdctools_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/${PV}/exports/xdctools_setuplinux_${PV}.bin;name=xdcbin"
+
+BINFILE="xdctools_setuplinux_${PV}.bin"
+TI_BIN_UNPK_CMDS="Y:workdir:Y"
+TI_BIN_UNPK_WDEXT="/ti"
diff --git a/meta-ti-bsp/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb
new file mode 100644
index 00000000..6c3fdeb2
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb
@@ -0,0 +1,10 @@
+require recipes-ti/devtools/ti-xdctools-core.inc
+
+PE = "1"
+PV = "3_55_02_22"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://docs/license/xdc/shelf/package.html;beginline=1;endline=140;md5=2e742b9757bc9ce0241aadba9f627ab8"
+
+SRC_URI[xdczip.md5sum] = "bb9154d677ce4724a5eac73817b23a0f"
+SRC_URI[xdczip.sha256sum] = "bf90dfbbe298458c736d81d5631db25b335e79146923a4a50fab217e02723e7b"
diff --git a/meta-ti-bsp/recipes-ti/dsplib/dsplib-c64xp_git.bb b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c64xp_git.bb
new file mode 100644
index 00000000..1550a538
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c64xp_git.bb
@@ -0,0 +1,6 @@
+include dsplib.inc
+
+MATHLIB_INSTALL_DIR = "${MATHLIB_C64P_INSTALL_DIR}/packages"
+DSPLIB_INSTALL_DIR_RECIPE = "${DSPLIB_C64P_INSTALL_DIR_RECIPE}"
+DSPLIB_INSTALL_DIR = "${DSPLIB_C64P_INSTALL_DIR}"
+DSPLIB_BUILD_TARGET = "c64Px"
diff --git a/meta-ti-bsp/recipes-ti/dsplib/dsplib-c66x_git.bb b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c66x_git.bb
new file mode 100644
index 00000000..b28d8df6
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c66x_git.bb
@@ -0,0 +1,8 @@
+include dsplib.inc
+
+MATHLIB_INSTALL_DIR = "${MATHLIB_C66_INSTALL_DIR}/packages"
+DSPLIB_INSTALL_DIR_RECIPE = "${DSPLIB_C66_INSTALL_DIR_RECIPE}"
+DSPLIB_INSTALL_DIR = "${DSPLIB_C66_INSTALL_DIR}"
+DSPLIB_BUILD_TARGET = "c66x"
+
+DEPENDS += "mathlib-c66x"
diff --git a/meta-ti-bsp/recipes-ti/dsplib/dsplib-c674x_git.bb b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c674x_git.bb
new file mode 100644
index 00000000..47974ea1
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/dsplib/dsplib-c674x_git.bb
@@ -0,0 +1,8 @@
+include dsplib.inc
+
+MATHLIB_INSTALL_DIR = "${MATHLIB_C674_INSTALL_DIR}/packages"
+DSPLIB_INSTALL_DIR_RECIPE = "${DSPLIB_C674_INSTALL_DIR_RECIPE}"
+DSPLIB_INSTALL_DIR = "${DSPLIB_C674_INSTALL_DIR}"
+DSPLIB_BUILD_TARGET = "c674x"
+
+DEPENDS += "mathlib-c674x"
diff --git a/meta-ti-bsp/recipes-ti/dsplib/dsplib.inc b/meta-ti-bsp/recipes-ti/dsplib/dsplib.inc
new file mode 100644
index 00000000..85d79ae3
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/dsplib/dsplib.inc
@@ -0,0 +1,78 @@
+SUMMARY = "DSPLIB contains optimized signal processing functions for TI DSPs"
+HOMEPAGE = "http://git.ti.com/ep-processor-libraries/dsplib"
+LICENSE = "BSD-3-Clause"
+
+require ../includes/ti-paths.inc
+
+PV = "3_4_0_4"
+PR = "r2"
+
+DEPENDS = "ti-cgt6x-native \
+ ti-xdctools-native \
+ ti-sysbios \
+ doxygen-native \
+ zip-native \
+ swtools"
+
+S = "${WORKDIR}/git"
+
+DSPLIB_GIT_BRANCH = "master"
+DSPLIB_GIT_PROTOCOL = "git"
+DSPLIB_GIT_URI = "git://git.ti.com/ep-processor-libraries/dsplib.git"
+DSPLIB_SRCREV = "0390b171042c602e07669fd28a371cc319b90161"
+
+SRC_URI = "${DSPLIB_GIT_URI};protocol=${DSPLIB_GIT_PROTOCOL};branch=${DSPLIB_GIT_BRANCH}"
+SRCREV = "${DSPLIB_SRCREV}"
+
+LIC_FILES_CHKSUM = "file://ti/dsplib/src/common/c66/lnk.cmd;beginline=1;endline=37;md5=0f0c9c4d51d8af75419781591ace190b"
+
+export DSPLIB_WORK_DIR="${S}"
+export CGTOOLS_INSTALL_DIR = "${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x"
+export C64PCODEGENTOOL="${CGTOOLS_INSTALL_DIR}"
+export C674CODEGENTOOL="${CGTOOLS_INSTALL_DIR}"
+export C66CODEGENTOOL ="${CGTOOLS_INSTALL_DIR}"
+export SWTOOLS_PATH = "${SWTOOLS_INSTALL_DIR}/ti/mas/swtools"
+export XDCBUILDCFG="${SWTOOLS_PATH}/config.bld"
+export INCDIR="${MATHLIB_INSTALL_DIR}/"
+
+PATH:append = ":${XDC_INSTALL_DIR}"
+
+XDCPATH.="${XDCCGROOT}/include;${XDC_INSTALL_DIR}/packages;${SYSBIOS_INSTALL_DIR}/packages;"
+XDCPATH.="${SWTOOLS_INSTALL_DIR};${MATHLIB_INSTALL_DIR};${DSPLIB_WORK_DIR};"
+
+export XDCPATH
+
+DSPLIB_PACKAGE_NAME = "dsplib_${DSPLIB_BUILD_TARGET}_${PV}"
+
+do_compile() {
+ cd ${DSPLIB_WORK_DIR}/ti/dsplib;
+ xdc XDCARGS="${DSPLIB_BUILD_TARGET} bundle" XDCOPTIONS="-v"
+}
+
+do_install() {
+ install -d ${D}${DSPLIB_INSTALL_DIR_RECIPE}
+
+ find -name "${DSPLIB_PACKAGE_NAME}.zip" -exec unzip -o {} -d ${D}${DSPLIB_INSTALL_DIR_RECIPE} \;
+ cp -r ${D}${DSPLIB_INSTALL_DIR_RECIPE}/dsplib/. ${D}${DSPLIB_INSTALL_DIR_RECIPE}
+ rm -r ${D}${DSPLIB_INSTALL_DIR_RECIPE}/dsplib
+}
+
+inherit deploy
+addtask deploy before do_build after do_install
+
+do_deploy() {
+ install -d ${DEPLOYDIR}
+ # zip up files in ${D}${DSPLIB_INSTALL_DIR_RECIPE}
+ # and place the zip file in ${DEPLOYDIR}
+ mkdir ./${DSPLIB_PACKAGE_NAME}
+ cp -r ${D}${DSPLIB_INSTALL_DIR_RECIPE}/. ./${DSPLIB_PACKAGE_NAME}
+ zip -9 -y -r -q ${DEPLOYDIR}/${DSPLIB_PACKAGE_NAME}.zip ./${DSPLIB_PACKAGE_NAME}
+ rm -r ./${DSPLIB_PACKAGE_NAME}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${DSPLIB_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN}-dev = "arch"
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components.inc b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components.inc
new file mode 100644
index 00000000..e8b7c414
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components.inc
@@ -0,0 +1,21 @@
+DESCRIPTION = "TI Framework Components"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/fc"
+SECTION = "devel"
+LICENSE = "BSD"
+
+require recipes-ti/includes/ti-paths.inc
+
+S = "${WORKDIR}/framework_components_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/fc/${PV}/exports/framework_components_${PV},lite.tar.gz;name=fctarball"
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${FC_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${FC_INSTALL_DIR_RECIPE}
+}
+
+INSANE_SKIP:${PN} = "ldflags"
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${FC_INSTALL_DIR_RECIPE}"
diff --git a/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb
new file mode 100644
index 00000000..1ec10b15
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb
@@ -0,0 +1,9 @@
+require ti-framework-components.inc
+
+PV = "2_26_00_01"
+PR = "r2"
+
+LIC_FILES_CHKSUM = "file://framework_components_2_26_00_01_manifest.html;md5=3250f9da7ee72284c07f8dd840400c75"
+
+SRC_URI[fctarball.md5sum] = "40b51cade2f9ae6e6f6dca73c17065af"
+SRC_URI[fctarball.sha256sum] = "3f7a12a51dfe87310828a31518d7ef8f9039e59269c0ca24f74a68433c235048"
diff --git a/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb
new file mode 100644
index 00000000..56c00283
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb
@@ -0,0 +1,9 @@
+require ti-framework-components.inc
+
+PV = "3_40_02_07"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://framework_components_${PV}_Manifest.html;md5=0dd131dd53300f517b14dba8824f8b0a"
+
+SRC_URI[fctarball.md5sum] = "36dd2312ea8d70aa2ae0a05a24dbf54e"
+SRC_URI[fctarball.sha256sum] = "69082a0f86d12c24b39a1293ec35cf8007b850479898d5ae485ec1e8cf2e8c72"
diff --git a/meta-ti-bsp/recipes-ti/imglib/imglib-c66x.inc b/meta-ti-bsp/recipes-ti/imglib/imglib-c66x.inc
new file mode 100644
index 00000000..ab5cbdb6
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/imglib/imglib-c66x.inc
@@ -0,0 +1,34 @@
+DESCRIPTION = "IMGLIB contains optimized general-purpose image/video processing routines for TI DSPs"
+HOMEPAGE = "http://www.ti.com/tool/sprc264"
+SECTION = "devel"
+LICENSE = "BSD-3-Clause"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-unpack.inc
+
+COMPATIBLE_MACHINE = "omap-a15"
+
+SRC_URI = "http://software-dl.ti.com/sdoemb/sdoemb_public_sw/imglib/${PV}/exports/${BINFILE};name=imglib"
+
+S = "${WORKDIR}/imglib-c66x-${PV}"
+
+BINFILE = "imglib_c66x_${PV}_Linux.bin"
+TI_BIN_UNPK_ARGS = "--mode silent --prefix ${S}"
+TI_BIN_UNPK_CMDS = ""
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${IMGLIB_C66_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${IMGLIB_C66_INSTALL_DIR_RECIPE}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${IMGLIB_C66_INSTALL_DIR_RECIPE}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+RDEPENDS:${PN}-dev += "perl"
+INSANE_SKIP:${PN}-dev = "arch"
diff --git a/meta-ti-bsp/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb b/meta-ti-bsp/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb
new file mode 100644
index 00000000..e614352c
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb
@@ -0,0 +1,9 @@
+require imglib-c66x.inc
+
+PV = "3_1_1_0"
+PR = "r1"
+
+LIC_FILES_CHKSUM = "file://packages/ti/imglib/src/common/IMG_profile.h;beginline=1;endline=35;md5=a21fc16da34b650ce33a9a7143908667"
+
+SRC_URI[imglib.md5sum] = "9d64f213e040899048446df5055deeca"
+SRC_URI[imglib.sha256sum] = "f3153e51530f26cfc638efca7ca6ae1bbaf7736daf287fc972592372a676ed21"
diff --git a/meta-ti-bsp/recipes-ti/includes/ti-eula-unpack.inc b/meta-ti-bsp/recipes-ti/includes/ti-eula-unpack.inc
new file mode 100644
index 00000000..ead06100
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/includes/ti-eula-unpack.inc
@@ -0,0 +1,15 @@
+# This file defines function used for unpacking the .bin file downloaded over
+# the http and display EULA.
+# BINFILE - name of the install jammer .bin file
+# TARFILE - name of the tar file inside the install jammer
+# TI_BIN_UNPK_CMDS - contains list of commands separated with colon to be
+# passed while unpacking the bin file. The keyword
+# workdir expands to WORKDIR and commands are appendded
+# with '\n'. Eg. TI_BIN_UNPK_CMDS="Y:Y: qY:workdir"
+# TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
+# the output in some internal directory
+
+require recipes-ti/includes/ti-unpack.inc
+
+TI_BIN_UNPK_ARGS = "--mode console"
+
diff --git a/meta-ti-bsp/recipes-ti/includes/ti-paths.inc b/meta-ti-bsp/recipes-ti/includes/ti-paths.inc
new file mode 100644
index 00000000..358d7dfd
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/includes/ti-paths.inc
@@ -0,0 +1,109 @@
+installdir = "${datadir}/ti"
+
+export TOOLCHAIN_PATH ?= "${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_SYS}"
+# This is where do_install will put it
+export AUDIO_SOC_INSTALL_DIR_RECIPE = "${installdir}/ti-audio-soc-example-tree"
+export BIOSPSP_INSTALL_DIR_RECIPE = "${installdir}/ti-biospsp-tree"
+export C6ACCEL_INSTALL_DIR_RECIPE = "${installdir}/ti-c6accel-tree"
+export C6RUN_INSTALL_DIR_RECIPE = "${installdir}/ti-c6run-tree"
+export CE_INSTALL_DIR_RECIPE = "${installdir}/ti-codec-engine-tree"
+export CODEC_INSTALL_DIR_RECIPE = "${installdir}/ti-codecs-tree"
+export CODEGEN_ARM_INSTALL_DIR_RECIPE= "${installdir}/ti-cgt470-tree"
+export CODEGEN_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt6x-tree"
+export DSP_BENCHMARK_INSTALL_DIR_RECIPE = "${installdir}/ti-dsp-benchmark-tree"
+export DSPLIB_C64P_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c64p-tree"
+export DSPLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c674x-tree"
+export DSPLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c66x-tree"
+export DVSDK_DEMOS_INSTALL_DIR_RECIPE= "${installdir}/ti-dvsdk-demos-tree"
+export DVTB_INSTALL_DIR_RECIPE = "${installdir}/ti-dvtb-tree"
+export EDMA3_LLD_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-tree"
+export EDMA3_LLD_SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-sysbios-tree"
+export FASTMATHLIB_C674P_INSTALL_DIR_RECIPE = "${installdir}/ti-fastmathlib-c67x-tree"
+export FC3_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components3-tree"
+export FC_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components-tree"
+export GFX_SDK_INSTALL_DIR_RECIPE = "${installdir}/ti-gfx-sdk-tree"
+export HDVICP20_INSTALL_DIR_RECIPE = "${installdir}/ti-hdvicp20-tree"
+export IMGLIB_C64P_INSTALL_DIR_RECIPE= "${installdir}/ti-imglib-tree"
+export IPC_INSTALL_DIR_RECIPE = "${installdir}/ti-ipc-tree"
+export LINK_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplink-tree"
+export LPM_INSTALL_DIR_RECIPE = "${installdir}/ti-local-power-manager-tree"
+export OMX_INSTALL_DIR_RECIPE = "${installdir}/ti-omx-tree"
+export OSAL_INSTALL_DIR_RECIPE = "${installdir}/ti-osal-tree"
+export RTFS_INSTALL_DIR_RECIPE = "${installdir}/ti-rtfs-tree"
+export SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-sysbios-tree"
+export SYSLINK_INSTALL_DIR_RECIPE = "${installdir}/ti-syslink-tree"
+export SWTOOLS_INSTALL_DIR_RECIPE = "${installdir}/ti-swtools-tree"
+export UIA_INSTALL_DIR_RECIPE = "${installdir}/ti-uia-tree"
+export VICPLIB_INSTALL_DIR_RECIPE = "${installdir}/ti-vicplib-tree"
+export XDAIS_INSTALL_DIR_RECIPE = "${installdir}/ti-xdais-tree"
+export XDC_INSTALL_DIR_RECIPE = "${installdir}/ti-xdctools-tree"
+export PDK_INSTALL_DIR_RECIPE = "${installdir}/ti-pdk-tree"
+export OSAL_INSTALL_DIR_RECIPE = "${installdir}/ti-osal-tree"
+export M4_TOOLCHAIN_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt-arm"
+export GCC_ARM_NONE_TOOLCHAIN_RECIPE = "${installdir}/gcc-arm-none-eabi"
+export TI_CGT_PRU_INSTALL_DIR_RECIPE = "${installdir}/cgt-pru"
+export MATHLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c66x-tree"
+export MATHLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c674x-tree"
+export IMGLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-imglib-c66x-tree"
+export VLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-vlib-c66x-tree"
+export CG_XML_INSTALL_DIR_RECIPE = "${installdir}/ti-cg-xml-tree"
+export OMP_INSTALL_DIR_RECIPE = "${installdir}/ti-omp-tree"
+export MPM_INSTALL_DIR_RECIPE = "${installdir}/ti-mpm-tree"
+export TI_CGT6X_7_INSTALL_DIR_RECIPE = "${installdir}/cgt6x-7"
+export TI_CGT7X_INSTALL_DIR_RECIPE = "${installdir}/cgt-c7x"
+
+
+# This is where the tools will end up in sysroot
+export BIOS_INSTALL_DIR = "${STAGING_DIR_TARGET}${BIOS_INSTALL_DIR_RECIPE}"
+export BIOSPSP_INSTALL_DIR = "${STAGING_DIR_TARGET}${BIOSPSP_INSTALL_DIR_RECIPE}"
+export C6ACCEL_INSTALL_DIR = "${STAGING_DIR_TARGET}${C6ACCEL_INSTALL_DIR_RECIPE}"
+export C6RUN_INSTALL_DIR = "${STAGING_DIR_TARGET}${C6RUN_INSTALL_DIR_RECIPE}"
+export CE_INSTALL_DIR = "${STAGING_DIR_TARGET}${CE_INSTALL_DIR_RECIPE}"
+export CMEM_INSTALL_DIR = "${STAGING_DIR_TARGET}${CMEM_INSTALL_DIR_RECIPE}"
+export CODEC_INSTALL_DIR = "${STAGING_DIR_TARGET}${CODEC_INSTALL_DIR_RECIPE}"
+export CODEGEN_ARM_INSTALL_DIR= "${STAGING_DIR_TARGET}${CODEGEN_ARM_INSTALL_DIR_RECIPE}"
+export CODEGEN_INSTALL_DIR = "${STAGING_DIR_TARGET}${CODEGEN_INSTALL_DIR_RECIPE}"
+export DSP_BENCHMARK_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSP_BENCHMARK_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_INSTALL_DIR = "${STAGING_DIR_TARGET}${EDMA3_LLD_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_SYSBIOS_INSTALL_DIR = "${STAGING_DIR_TARGET}${EDMA3_LLD_SYSBIOS_INSTALL_DIR_RECIPE}"
+export FASTMATHLIB_C674P_INSTALL_DIR = "${STAGING_DIR_TARGET}${FASTMATHLIB_C674P_INSTALL_DIR_RECIPE}"
+export FC3_INSTALL_DIR = "${STAGING_DIR_TARGET}${FC3_INSTALL_DIR_RECIPE}"
+export FC_INSTALL_DIR = "${STAGING_DIR_TARGET}${FC_INSTALL_DIR_RECIPE}"
+export HDVICP20_INSTALL_DIR = "${STAGING_DIR_TARGET}${HDVICP20_INSTALL_DIR_RECIPE}"
+export IMGLIB_C64P_INSTALL_DIR= "${STAGING_DIR_TARGET}${IMGLIB_C64P_INSTALL_DIR_RECIPE}"
+export IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}${IPC_INSTALL_DIR_RECIPE}"
+export LINK_INSTALL_DIR = "${STAGING_DIR_TARGET}${LINK_INSTALL_DIR_RECIPE}"
+export LPM_INSTALL_DIR = "${STAGING_DIR_TARGET}${LPM_INSTALL_DIR_RECIPE}"
+export OMX_INSTALL_DIR = "${STAGING_DIR_TARGET}${OMX_INSTALL_DIR_RECIPE}"
+export SYSBIOS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SYSBIOS_INSTALL_DIR_RECIPE}"
+export SYSLINK_INSTALL_DIR = "${STAGING_DIR_TARGET}${SYSLINK_INSTALL_DIR_RECIPE}"
+export UIA_INSTALL_DIR = "${STAGING_DIR_TARGET}${UIA_INSTALL_DIR_RECIPE}"
+export XDAIS_INSTALL_DIR = "${STAGING_DIR_TARGET}${XDAIS_INSTALL_DIR_RECIPE}"
+export XDC_INSTALL_DIR = "${STAGING_DIR_NATIVE}${XDC_INSTALL_DIR_RECIPE}"
+export PDK_INSTALL_DIR = "${STAGING_DIR_TARGET}${PDK_INSTALL_DIR_RECIPE}"
+export OSAL_INSTALL_DIR = "${STAGING_DIR_TARGET}${OSAL_INSTALL_DIR_RECIPE}"
+export M4_TOOLCHAIN_INSTALL_DIR = "${STAGING_DIR_NATIVE}${M4_TOOLCHAIN_INSTALL_DIR_RECIPE}"
+export GCC_ARM_NONE_TOOLCHAIN = "${STAGING_DIR_NATIVE}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}"
+export TI_CGT_PRU_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT_PRU_INSTALL_DIR_RECIPE}"
+export SWTOOLS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SWTOOLS_INSTALL_DIR_RECIPE}"
+export DSPLIB_C64P_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C64P_INSTALL_DIR_RECIPE}"
+export DSPLIB_C674_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C674_INSTALL_DIR_RECIPE}"
+export DSPLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C66_INSTALL_DIR_RECIPE}"
+export MATHLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${MATHLIB_C66_INSTALL_DIR_RECIPE}"
+export MATHLIB_C674_INSTALL_DIR = "${STAGING_DIR_TARGET}${MATHLIB_C674_INSTALL_DIR_RECIPE}"
+export IMGLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${IMGLIB_C66_INSTALL_DIR_RECIPE}"
+export VLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${VLIB_C66_INSTALL_DIR_RECIPE}"
+export CG_XML_INSTALL_DIR = "${STAGING_DIR_NATIVE}${CG_XML_INSTALL_DIR_RECIPE}"
+export OMP_INSTALL_DIR = "${STAGING_DIR_TARGET}${OMP_INSTALL_DIR_RECIPE}"
+export MPM_INSTALL_DIR = "${STAGING_DIR_TARGET}${MPM_INSTALL_DIR_RECIPE}"
+export TI_CGT6X_7_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT6X_7_INSTALL_DIR_RECIPE}"
+export GCC_LINARO_BAREMETAL_TOOLCHAIN = "${STAGING_DIR_NATIVE}${GCC_LINARO_BAREMETAL_TOOLCHAIN_RECIPE}"
+export GCC_LINARO_BAREMETAL_AARCH64_TOOLCHAIN = "${STAGING_DIR_NATIVE}${GCC_LINARO_BAREMETAL_AARCH64_TOOLCHAIN_RECIPE}"
+export TI_CGT7X_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT7X_INSTALL_DIR_RECIPE}"
+
+
+DSPSUFFIX:omapl137 = "x674"
+DSPSUFFIX:omapl138 = "x674"
+DSPSUFFIX_ti816x = "xe674"
+DSPSUFFIX_ti814x = "xe674"
+DSPSUFFIX ?= "x64P"
diff --git a/meta-ti-bsp/recipes-ti/includes/ti-staging.inc b/meta-ti-bsp/recipes-ti/includes/ti-staging.inc
new file mode 100644
index 00000000..f18d017c
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/includes/ti-staging.inc
@@ -0,0 +1,6 @@
+INHIBIT_PACKAGE_STRIP = "1"
+
+ALLOW_EMPTY:${PN} = "1"
+ALLOW_EMPTY:${PN}-dev = "1"
+
+
diff --git a/meta-ti-bsp/recipes-ti/includes/ti-unpack.inc b/meta-ti-bsp/recipes-ti/includes/ti-unpack.inc
new file mode 100644
index 00000000..46bfb957
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/includes/ti-unpack.inc
@@ -0,0 +1,83 @@
+# This file defines function used for unpacking the .bin file downloaded over
+# the http.
+# BINFILE - name of the install jammer .bin file
+# TARFILE - name of the tar file inside the install jammer
+# TI_BIN_UNPK_ARGS - contains the arguments to be passed to the bin file.
+# TI_BIN_UNPK_CMDS - contains list of commands separated with colon to be
+# passed while unpacking the bin file. The keyword
+# workdir expands to WORKDIR and commands are appendded
+# with '\n'. Eg. TI_BIN_UNPK_CMDS="Y:Y: qY:workdir"
+# TI_BIN_UNPK_WDEXT - This variable extends workdir path, if user wants to put
+# the output in some internal directory
+
+python do_unpack () {
+ bb.build.exec_func('base_do_unpack', d)
+ bb.build.exec_func('ti_bin_do_unpack', d)
+}
+
+TI_BIN_UNPK_WDEXT ?= ""
+python ti_bin_do_unpack() {
+ import os
+
+ # InstallJammer requires 32bit version of glibc
+ if not os.path.exists('/lib/ld-linux.so.2'):
+ bb.fatal("TI installer requires 32bit glibc libraries for proper operation\nrun 'yum install glibc.i686' on Fedora or 'apt-get install libc6:i386' on Ubuntu/Debian")
+
+ localdata = bb.data.createCopy(d)
+ bb.data.update_data(localdata)
+
+ binfile = localdata.getVar('BINFILE')
+ binfile = bb.data.expand(binfile, localdata)
+
+ # Change to the working directory
+ save_cwd = os.getcwd()
+ workdir = localdata.getVar('WORKDIR')
+ workdir = bb.data.expand(workdir, localdata)
+ os.chdir(workdir)
+
+ # Get unpack args
+ arg_string = localdata.getVar('TI_BIN_UNPK_ARGS')
+ arg_string = bb.data.expand(arg_string, localdata)
+
+ # Get unpack commands
+ cmd_string = localdata.getVar('TI_BIN_UNPK_CMDS')
+ cmd_list = cmd_string.split( ":" )
+
+ # Make the InstallJammer binary executable so we can run it
+ os.chmod(binfile, 0o755)
+
+ # Run the InstallJammer binary and accept the EULA
+ filename = "HOME=%s ./%s %s" % (workdir, binfile, arg_string)
+
+ # Test executable by printing installer version or help screen (--version currently broken for some installers)
+ # - this is currently broken in some IJ installers - comment out for now
+ #if os.system(filename + " --version") != 0:
+ # print "ERROR: ti-eula-unpack: failed to execute binary installer"
+ # raise bb.build.FuncFailed()
+
+ f = os.popen(filename,'w')
+ for cmd in cmd_list:
+ if cmd == "workdir":
+ wdext = localdata.getVar('TI_BIN_UNPK_WDEXT')
+ wdext = bb.data.expand(wdext, localdata)
+ cmd = workdir+wdext
+ f.write(cmd+'\n');
+ f.close()
+
+ # Expand the tarball that was created if required
+ tarfile = localdata.getVar('TARFILE')
+ if bool(tarfile) == True:
+ tarfile = bb.data.expand(tarfile, localdata)
+ tcmd = 'tar x --no-same-owner -f %s -C %s' % (tarfile, workdir)
+ if os.system(tcmd) != 0:
+ print("ERROR: ti-eula-unpack: failed to extract tarfile")
+ raise bb.build.FuncFailed()
+
+ # Return to the previous directory
+ os.chdir(save_cwd)
+}
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+COMPATIBLE_HOST:class-native = "(.*)"
+COMPATIBLE_HOST:class-nativesdk = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-common.inc b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-common.inc
new file mode 100644
index 00000000..4962a3ec
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-common.inc
@@ -0,0 +1,12 @@
+PV = "3.51.00.00"
+INC_PR = "r0"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+
+PLATFORM = "UNKNOWN"
+PLATFORM:dra7xx = "DRA7XX"
+PLATFORM:omapl138 = "OMAPL138"
+
+ALT_PLATFORM:am57xx-evm = "AM572X AM571X"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch
new file mode 100644
index 00000000..ea514695
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch
@@ -0,0 +1,40 @@
+From cca4fd812959a0cd241dd3bbebfd461ece94c9b8 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denis@denix.org>
+Date: Mon, 29 Mar 2021 19:42:00 -0400
+Subject: [PATCH] examples/ClusterMgr: sys_errlist[] has been deprecated in
+ glibc
+
+Use strerror() instead.
+
+Upstream-Status: Pending
+
+Signed-off-by: Denys Dmytriyenko <denis@denix.org>
+---
+ src/examples/templates/ex46_graph/manager/ClusterMgr.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/examples/templates/ex46_graph/manager/ClusterMgr.c b/src/examples/templates/ex46_graph/manager/ClusterMgr.c
+index 19216c9..a1fa679 100644
+--- a/src/examples/templates/ex46_graph/manager/ClusterMgr.c
++++ b/src/examples/templates/ex46_graph/manager/ClusterMgr.c
+@@ -714,7 +714,7 @@ static pid_t ClusterMgr_system(char *cmd, bool wait)
+ pid = fork();
+
+ if (pid == -1) {
+- LOG "CM_system: fork error: %s\n", sys_errlist[errno] LOGF
++ LOG "CM_system: fork error: %s\n", strerror(errno) LOGF
+ status = -1;
+ goto leave;
+ }
+@@ -739,7 +739,7 @@ static pid_t ClusterMgr_system(char *cmd, bool wait)
+ else {
+ /* overlay a new executable */
+ execvp(argv[0], argv);
+- LOG "CM_system: execvp error: %s\n", sys_errlist[errno] LOGF
++ LOG "CM_system: execvp error: %s\n", strerror(errno) LOGF
+ status = -1;
+ }
+
+--
+2.7.4
+
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
new file mode 100644
index 00000000..81706592
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "TI Inter Process Communication (IPC) examples with Host running bios"
+require ti-ipc-examples.inc
+
+SRC_URI += "file://0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch;patchdir=../git/ipc-examples"
+
+DEPENDS = "ti-ipc ti-xdctools-native ti-sysbios ti-ipc-rtos zip-native"
+
+do_compile:append() {
+
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ oe_runmake extract HOSTOS="linux" IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+
+ if [ ! -z ${ALT_PLATFORM} ]; then
+ oe_runmake extract PLATFORM="${ALT_PLATFORM}" HOSTOS="linux" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+ fi
+ oe_runmake -C examples all HOSTOS="linux" \
+ LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+
+ if [ ! -z ${ALT_PLATFORM} ]; then
+ oe_runmake -C examples all HOSTOS="linux" \
+ LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ PLATFORM="${ALT_PLATFORM}"
+ fi
+ fi
+}
+
+do_install:append() {
+ cd ${S_ipc-examples}/src
+
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ # Install directory for linux examples
+ install -d ${D}${bindir}/ipc/examples
+ oe_runmake -C examples install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+ HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples"
+
+ if [ ! -z ${ALT_PLATFORM} ]; then
+ oe_runmake -C examples install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ LINUX_SYSROOT_DIR="${STAGING_INCDIR}" \
+ HOSTOS="linux" EXEC_DIR="${D}/${bindir}/ipc/examples" \
+ PLATFORM="${ALT_PLATFORM}"
+ fi
+ fi
+}
+
+FILES:${PN} += "${bindir}/*"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples.inc b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples.inc
new file mode 100644
index 00000000..66cd5d32
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples.inc
@@ -0,0 +1,31 @@
+HOMEPAGE = "http://processors.wiki.ti.com/index.php/Category:IPC"
+require ti-ipc-common.inc
+require ti-ipc-rtos.inc
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://${S_ipc-examples}/src/makefile;beginline=1;endline=30;md5=a52324bd5033bb49ea07bade1244ac9a"
+
+INSANE_SKIP:${PN} += "arch"
+
+ALLOW_EMPTY:${PN} = "1"
+
+IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}/usr/share/ti/ti-ipc-tree"
+
+do_compile() {
+
+ cd ${S_ipc-examples}/src
+ oe_runmake .examples \
+ IPCTOOLS="${S_ipc-metadata}/src/etc"
+
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake .examples "PLATFORM=${alt_platform}" \
+ IPCTOOLS="${S_ipc-metadata}/src/etc"
+ done
+}
+
+do_install() {
+ cd ${S_ipc-examples}/src
+ IPC_VERSION=`echo ${PV}${RELEASE_SUFFIX} | sed -e 's|\.|_|g'`
+}
+
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples_git.bb
new file mode 100644
index 00000000..bcc8674e
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-examples_git.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "TI Inter Process Communication (IPC) examples with Host running linux"
+require ti-ipc-examples.inc
+
+DEPENDS = "ti-ipc ti-xdctools-native ti-sysbios ti-ipc-rtos zip-native"
+
+do_compile:append() {
+
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ oe_runmake extract HOSTOS="bios" IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake extract PLATFORM="${alt_platform}" HOSTOS="bios" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+ done
+ oe_runmake -C examples all HOSTOS="bios" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}"
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake -C examples all HOSTOS="bios" \
+ IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" PLATFORM="${alt_platform}"
+ done
+ fi
+}
+
+do_install:append() {
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ # Install directory for bios examples
+ install -d ${D}/ipc_${IPC_VERSION}/examples/bios
+ oe_runmake -C examples install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ HOSTOS="bios" EXEC_DIR="${D}/ipc_${IPC_VERSION}/examples/bios"
+ oe_runmake -C examples install_rov IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ HOSTOS="bios" EXEC_DIR="${D}/ipc_${IPC_VERSION}/examples/bios"
+
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake -C examples install IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ HOSTOS="bios" EXEC_DIR="${D}/ipc_${IPC_VERSION}/examples/${alt_platform}/bios" \
+ PLATFORM="${alt_platform}"
+ oe_runmake -C examples install_rov IPC_INSTALL_DIR="${IPC_INSTALL_DIR}" \
+ HOSTOS="bios" EXEC_DIR="${D}/ipc_${IPC_VERSION}/examples/${alt_platform}/bios" \
+ PLATFORM="${alt_platform}"
+ done
+ fi
+}
+
+FILES:${PN} += "ipc_*"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos.inc b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos.inc
new file mode 100644
index 00000000..56667ad1
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos.inc
@@ -0,0 +1,73 @@
+require recipes-ti/includes/ti-paths.inc
+
+TI_IPC_EXAMPLES_GIT_URI = "git://git.ti.com/ipc/ipc-examples.git"
+TI_IPC_EXAMPLES_DEST_SUFFIX = "git/ipc-examples"
+TI_IPC_EXAMPLES_GIT_PROTOCOL = "git"
+TI_IPC_EXAMPLES_GIT_BRANCH = "master"
+TI_IPC_EXAMPLES_NAME = "ipc-examples"
+
+SRC_URI += "${TI_IPC_EXAMPLES_GIT_URI};\
+destsuffix=${TI_IPC_EXAMPLES_DEST_SUFFIX};\
+protocol=${TI_IPC_EXAMPLES_GIT_PROTOCOL};\
+branch=${TI_IPC_EXAMPLES_GIT_BRANCH};\
+name=${TI_IPC_EXAMPLES_NAME}"
+
+TI_IPC_METADATA_GIT_URI = "git://git.ti.com/ipc/ipc-metadata.git"
+TI_IPC_METADATA_DEST_SUFFIX = "git/ipc-metadata"
+TI_IPC_METADATA_GIT_PROTOCOL = "git"
+TI_IPC_METADATA_GIT_BRANCH = "master"
+TI_IPC_METADATA_NAME = "ipc-metadata"
+
+SRC_URI += "${TI_IPC_METADATA_GIT_URI};\
+destsuffix=${TI_IPC_METADATA_DEST_SUFFIX};\
+protocol=${TI_IPC_METADATA_GIT_PROTOCOL};\
+branch=${TI_IPC_METADATA_GIT_BRANCH};\
+name=${TI_IPC_METADATA_NAME}"
+
+# Corresponds to tag: 3.51.00.00
+TI_IPC_METADATA_SRCREV = "1bf668fd6b0ec2ef6956fa55b8484d0b21a9f9e2"
+# Corresponds to tag: 3.51.00.00
+TI_IPC_EXAMPLES_SRCREV = "4707fcbbe0d136e781c4a7ffdc072be407c34358"
+
+SRCREV_FORMAT = "default"
+SRCREV_ipc-metadata = "${TI_IPC_METADATA_SRCREV}"
+SRCREV_ipc-examples = "${TI_IPC_EXAMPLES_SRCREV}"
+
+S_ipc-examples = "${WORKDIR}/git/ipc-examples"
+S_ipc-metadata = "${WORKDIR}/git/ipc-metadata"
+
+RELEASE_TYPE = "GA"
+RELEASE_SUFFIX = ""
+
+PR = "${INC_PR}.r0"
+
+DEPENDS:append:omap-a15 = " ti-cgt6x-native \
+ ti-cgt-arm-native \
+ gcc-arm-baremetal-native \
+"
+DEPENDS:append:omapl138 = " ti-cgt6x-native \
+"
+
+IPC_TARGETS = ""
+
+IPC_TARGETS:omap-a15 = "\
+ gnu.targets.arm.A15F="${GCC_ARM_NONE_TOOLCHAIN}" \
+ ti.targets.elf.C66="${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x" \
+ ti.targets.elf.C66_big_endian="${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x" \
+ ti.targets.arm.elf.M4="${M4_TOOLCHAIN_INSTALL_DIR}" \
+"
+
+IPC_TARGETS:omapl138 = "\
+ ti.targets.elf.C674="${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x" \
+"
+
+PARALLEL_XDC = "${@oe.utils.parallel_make_argument(d, '--jobs=%d')}"
+EXTRA_OEMAKE = "\
+ PLATFORM=${PLATFORM} \
+ XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \
+ BIOS_INSTALL_DIR="${SYSBIOS_INSTALL_DIR}" \
+ ${IPC_TARGETS} \
+ ${PARALLEL_XDC} \
+ JAVA_TOOL_OPTIONS=-Xss2560k \
+"
+
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos_git.bb
new file mode 100644
index 00000000..abef3195
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc-rtos_git.bb
@@ -0,0 +1,101 @@
+require ti-ipc.inc
+require ti-ipc-common.inc
+require ti-ipc-rtos.inc
+
+DEPENDS = "ti-xdctools-native ti-sysbios doxygen-native zip-native"
+
+PACKAGES =+ "${PN}-fw"
+FILES:${PN}-fw = "${base_libdir}/firmware/*"
+FILES:${PN}-dev += "${IPC_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN}-fw += "arch"
+INSANE_SKIP:${PN}-dev += "arch"
+
+ALLOW_EMPTY:${PN} = "1"
+
+IPC_PACKAGE_DIR = "${S}/ipc-package"
+
+do_compile() {
+ oe_runmake -f ipc-bios.mak clean
+ oe_runmake -f ipc-bios.mak release
+
+ cd ${S_ipc-metadata}
+ oe_runmake .all-files IPC_INSTALL_DIR="${S}" \
+ BUILD_HOST_OS="linux" \
+ RELEASE_TYPE="${RELEASE_TYPE}"
+
+ cd ${S_ipc-examples}/src
+ oe_runmake .examples \
+ IPCTOOLS="${S_ipc-metadata}/src/etc"
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake .examples \
+ IPCTOOLS="${S_ipc-metadata}/src/etc" \
+ PLATFORM=${alt_platform}
+ done
+
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ oe_runmake extract HOSTOS="bios" IPC_INSTALL_DIR="${S}"
+ oe_runmake extract HOSTOS="linux" IPC_INSTALL_DIR="${S}"
+
+ for alt_platform in ${ALT_PLATFORM}; do
+ oe_runmake extract PLATFORM=${alt_platform} HOSTOS="bios" IPC_INSTALL_DIR="${S}"
+ oe_runmake extract PLATFORM=${alt_platform} HOSTOS="linux" IPC_INSTALL_DIR="${S}"
+ done
+ fi
+
+ IPC_VERSION=`echo ${PV}${RELEASE_SUFFIX} | sed -e 's|\.|_|g'`
+ install -d ${IPC_PACKAGE_DIR}
+ # Copy docs and other meta files
+ cp -pPrf ${S_ipc-metadata}/exports/ipc_${IPC_VERSION}/* -d ${IPC_PACKAGE_DIR}
+
+ # Copy example folders corresponding to the platforms
+ if [ "${PLATFORM}" != "UNKNOWN" ]; then
+ install -d ${IPC_PACKAGE_DIR}/examples
+ cp -pPf ${S_ipc-examples}/src/examples/*.* ${IPC_PACKAGE_DIR}/examples/
+ cp -pPf ${S_ipc-examples}/src/examples/makefile ${IPC_PACKAGE_DIR}/examples/
+ cp -pPrf ${S_ipc-examples}/src/examples/${PLATFORM}* ${IPC_PACKAGE_DIR}/examples/
+ for alt_platform in ${ALT_PLATFORM}; do
+ cp -pPrf ${S_ipc-examples}/src/examples/${alt_platform}* ${IPC_PACKAGE_DIR}/examples/
+ done
+ find ${IPC_PACKAGE_DIR}/examples/ -name "*zip" -type f | xargs -I {} rm {}
+ fi
+}
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ IPC_VERSION=`echo ${PV}${RELEASE_SUFFIX} | sed -e 's|\.|_|g'`
+ # Copy docs and other meta files
+ install -d ${D}${IPC_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${IPC_PACKAGE_DIR}/* -d ${D}${IPC_INSTALL_DIR_RECIPE}
+
+ install -d ${D}${base_libdir}/firmware/ipc
+ cp ${CP_ARGS} ${S}/packages/ti/ipc/tests/bin/* ${D}${base_libdir}/firmware/ipc || true
+}
+
+KFDSPNUM = "0"
+
+KFPLAT = ""
+
+ALTERNATIVE_PRIORITY = "5"
+
+pkg_postinst:${PN}-fw:omap-a15 () {
+ update-alternatives --install /lib/firmware/dra7-dsp1-fw.xe66 dra7-dsp1-fw.xe66 ipc/ti_platforms_evmDRA7XX_dsp1/test_omx_dsp1_vayu.xe66 ${ALTERNATIVE_PRIORITY}
+ update-alternatives --install /lib/firmware/dra7-dsp2-fw.xe66 dra7-dsp2-fw.xe66 ipc/ti_platforms_evmDRA7XX_dsp2/test_omx_dsp2_vayu.xe66 ${ALTERNATIVE_PRIORITY}
+ update-alternatives --install /lib/firmware/dra7-ipu1-fw.xem4 dra7-ipu1-fw.xem4 ipc/ti_platforms_evmDRA7XX_ipu1/test_omx_ipu1_vayu.xem4 ${ALTERNATIVE_PRIORITY}
+ update-alternatives --install /lib/firmware/dra7-ipu2-fw.xem4 dra7-ipu2-fw.xem4 ipc/ti_platforms_evmDRA7XX_ipu2/test_omx_ipu2_vayu.xem4 ${ALTERNATIVE_PRIORITY}
+}
+
+pkg_postrm:${PN}-fw:omap-a15 () {
+ update-alternatives --remove dra7-dsp1-fw.xe66 ipc/ti_platforms_evmDRA7XX_dsp1/test_omx_dsp1_vayu.xe66
+ update-alternatives --remove dra7-dsp2-fw.xe66 ipc/ti_platforms_evmDRA7XX_dsp2/test_omx_dsp2_vayu.xe66
+ update-alternatives --remove dra7-ipu1-fw.xem4 ipc/ti_platforms_evmDRA7XX_ipu1/test_omx_ipu1_vayu.xem4
+ update-alternatives --remove dra7-ipu2-fw.xem4 ipc/ti_platforms_evmDRA7XX_ipu2/test_omx_ipu2_vayu.xem4
+}
+
+pkg_postinst:${PN}-fw:omapl138 () {
+ update-alternatives --install /lib/firmware/rproc-dsp-fw rproc-dsp-fw ipc/ti_platforms_evmOMAPL138_DSP/messageq_single.xe674 ${ALTERNATIVE_PRIORITY}
+}
+
+pkg_postrm:${PN}-fw:omapl138 () {
+ update-alternatives --remove rproc-dsp-fw ipc/ti_platforms_evmOMAPL138_DSP/messageq_single.xe674
+}
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc.inc b/meta-ti-bsp/recipes-ti/ipc/ti-ipc.inc
new file mode 100644
index 00000000..34278d4b
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc.inc
@@ -0,0 +1,20 @@
+DESCRIPTION = "TI Inter Process Communication (IPC) Mechanisms (for Uni- and Multi- Processor Configurations)"
+HOMEPAGE="http://processors.wiki.ti.com/index.php/Category:IPC"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://${S}/ipc-linux.mak;beginline=1;endline=30;md5=7b327f9b710fd7c95e545b91cec79255"
+
+TI_IPC_GIT_URI = "git://git.ti.com/ipc/ipcdev.git"
+TI_IPC_GIT_PROTOCOL = "git"
+TI_IPC_GIT_BRANCH = "master"
+
+#Corresponds to 3.51.00.00A
+TI_IPC_SRCREV = "7a6e343a208d2849139b7272a67abc01db806e00"
+
+BRANCH = "${TI_IPC_GIT_BRANCH}"
+SRC_URI = "${TI_IPC_GIT_URI};protocol=${TI_IPC_GIT_PROTOCOL};branch=${BRANCH};name=ipcdev"
+SRCREV = "${TI_IPC_SRCREV}"
+
+CFLAGS += "-fcommon"
+
+S = "${WORKDIR}/git"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc/0001-Add-kernel-build-dir.patch b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/0001-Add-kernel-build-dir.patch
new file mode 100644
index 00000000..71d5b2be
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/0001-Add-kernel-build-dir.patch
@@ -0,0 +1,112 @@
+From c3ada6bf49e6fcf7bc49e5bf09754f384838ca6a Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@ti.com>
+Date: Mon, 27 Jul 2015 11:51:52 -0400
+Subject: [PATCH] Add kernel build dir
+
+We build kernel outside of the source directory and the generated version.h
+file ends up being in a separate directory from the rest of kernel headers.
+Use another variable to point to the kernel build artifacts.
+
+Signed-off-by: Denys Dmytriyenko <denys@ti.com>
+
+---
+ configure.ac | 6 ++++++
+ ipc-linux.mak | 3 +++
+ linux/src/mm/Makefile.am | 2 +-
+ packages/ti/ipc/mm/MmRpc.c | 4 ++++
+ 4 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4d4a559..84ac78b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -71,6 +71,7 @@ AC_SUBST([AM_LDFLAGS])
+ AC_ARG_VAR(PLATFORM, Platform to build. Options are: 'OMAPL138' 'OMAP54XX' '66AK2E' 'TCI6630' 'TCI6636' 'TCI6638' '66AK2G' 'DRA7XX' and 'AM65XX'. If not defined all platforms will be built.)
+ AC_ARG_VAR(CMEM_INSTALL_DIR, Installation path directory to the CMEM libraries)
+ AC_ARG_VAR(KERNEL_INSTALL_DIR, Installation path to the Linux kernel.)
++AC_ARG_VAR(KERNEL_BUILD_DIR, Path to the Linux kernel build artifacts.)
+ AC_ARG_VAR(AF_RPMSG, Address Family used by the RPMSG driver)
+ AC_ARG_VAR(DRM_PREFIX, Installation location to the DRM library.)
+
+@@ -113,6 +114,7 @@ AS_IF([test "x$PLATFORM" = "x"], [CMEM_INSTALL_DIR=])
+ AC_SUBST([PLATFORM])
+ AC_SUBST([CMEM_INSTALL_DIR])
+ AC_SUBST([KERNEL_INSTALL_DIR])
++AC_SUBST([KERNEL_BUILD_DIR])
+ AC_SUBST([AF_RPMSG])
+ AC_SUBST([DRM_PREFIX])
+
+@@ -130,6 +132,7 @@ AM_CONDITIONAL([AM65XX], [test "x$PLATFORM" = "xAM65XX"])
+ AM_CONDITIONAL([CMEM], [test "x$CMEM_INSTALL_DIR" != "x"])
+ AM_CONDITIONAL([KDIR], [test "x$KERNEL_INSTALL_DIR" != "x"])
+ AM_CONDITIONAL([KERNEL_INSTALL_DIR], [test -n "$KERNEL_INSTALL_DIR"])
++AM_CONDITIONAL([KERNEL_BUILD_DIR], [test -n "$KERNEL_BUILD_DIR"])
+ AM_CONDITIONAL([DRM], [test "x$DRM_PREFIX" != "x"])
+ AM_CONDITIONAL([AF_RPMSG], [test -n "$AF_RPMSG"])
+
+@@ -160,6 +163,9 @@ You have configured to build for the '${PLATFORM}' platform
+ Your KERNEL installation directory is set to:
+ '${KERNEL_INSTALL_DIR}'
+
++Your KERNEL build artifacts directory is set to:
++ '${KERNEL_BUILD_DIR}'
++
+ Your DRM installation directory is set to:
+ '${DRM_PREFIX}'
+
+diff --git a/ipc-linux.mak b/ipc-linux.mak
+index 58a9cea..4e543ff 100644
+--- a/ipc-linux.mak
++++ b/ipc-linux.mak
+@@ -60,6 +60,7 @@ config:
+ PLATFORM=$(PLATFORM) \
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR) \
++ KERNEL_BUILD_DIR=$(KERNEL_BUILD_DIR) \
+ DRM_PREFIX=$(DRM_PREFIX) \
+ AF_RPMSG=$(AF_RPMSG)
+
+@@ -72,6 +73,7 @@ config-static:
+ PLATFORM=$(PLATFORM) \
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR) \
++ KERNEL_BUILD_DIR=$(KERNEL_BUILD_DIR) \
+ DRM_PREFIX=$(DRM_PREFIX) \
+ AF_RPMSG=$(AF_RPMSG)
+
+@@ -84,5 +86,6 @@ config-shared:
+ PLATFORM=$(PLATFORM) \
+ CMEM_INSTALL_DIR=$(CMEM_INSTALL_DIR) \
+ KERNEL_INSTALL_DIR=$(KERNEL_INSTALL_DIR) \
++ KERNEL_BUILD_DIR=$(KERNEL_BUILD_DIR) \
+ DRM_PREFIX=$(DRM_PREFIX) \
+ AF_RPMSG=$(AF_RPMSG)
+diff --git a/linux/src/mm/Makefile.am b/linux/src/mm/Makefile.am
+index 59aa312..8fb51a3 100644
+--- a/linux/src/mm/Makefile.am
++++ b/linux/src/mm/Makefile.am
+@@ -32,7 +32,7 @@
+ ##
+
+ # additional include paths necessary to compile the library
+-AM_CFLAGS = -Wall @AM_CFLAGS@ -DKERNEL_INSTALL_DIR="$(KERNEL_INSTALL_DIR)"
++AM_CFLAGS = -Wall @AM_CFLAGS@ -DKERNEL_INSTALL_DIR="$(KERNEL_INSTALL_DIR)" -DKERNEL_BUILD_DIR="$(KERNEL_BUILD_DIR)"
+
+ ###############################################################################
+ # THE LIBRARIES TO BUILD
+diff --git a/packages/ti/ipc/mm/MmRpc.c b/packages/ti/ipc/mm/MmRpc.c
+index 2df7420..797e100 100644
+--- a/packages/ti/ipc/mm/MmRpc.c
++++ b/packages/ti/ipc/mm/MmRpc.c
+@@ -56,7 +56,11 @@
+ #endif
+
+ #define linux_version_include(kd) <kd/include/generated/uapi/linux/version.h>
++#if defined(KERNEL_BUILD_DIR)
++#include linux_version_include(KERNEL_BUILD_DIR)
++#else
+ #include linux_version_include(KERNEL_INSTALL_DIR)
++#endif
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
+ #define linux_include(kd,m) <kd/include/linux/m.h>
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc/omap_remoteproc.conf b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/omap_remoteproc.conf
new file mode 100644
index 00000000..6b5034cd
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/omap_remoteproc.conf
@@ -0,0 +1 @@
+softdep omap_remoteproc pre: virtio_rpmsg_bus
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.service b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.service
new file mode 100644
index 00000000..ea26845e
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=TI IPC Daemon
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/__LAD_DAEMON__ -g -l lad.txt
+
+[Install]
+WantedBy=basic.target
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.sh b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.sh
new file mode 100644
index 00000000..9ebfa35a
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc/tiipclad-daemon.sh
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+tiipclad_daemon=/usr/bin/__LAD_DAEMON__
+tiipclad_params="-g -l lad.txt"
+
+test -x "$tiipclad_daemon" || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting tiipclad daemon"
+ start-stop-daemon --start --quiet \
+ --exec $tiipclad_daemon -- $tiipclad_params
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping tiipclad daemon"
+ start-stop-daemon --stop --quiet --pidfile /var/run/tiipclad.pid
+ echo "."
+ ;;
+ *)
+ echo "Usage: /etc/init.d/tiipclad-daemon.sh {start|stop}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-ipc_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-ipc_git.bb
new file mode 100644
index 00000000..01b857c2
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-ipc_git.bb
@@ -0,0 +1,63 @@
+DESCRIPTION = "TI Inter Process Communication (IPC) Mechanisms (for Uni- and Multi- Processor Configurations)"
+HOMEPAGE="http://processors.wiki.ti.com/index.php/Category:IPC"
+
+require ti-ipc.inc
+require ti-ipc-common.inc
+
+PR = "${INC_PR}.2"
+
+DEPENDS += "virtual/kernel"
+
+SRC_URI += "file://tiipclad-daemon.sh \
+ file://omap_remoteproc.conf \
+ file://tiipclad-daemon.service \
+ file://0001-Add-kernel-build-dir.patch \
+ "
+
+DAEMON = "UNKNOWN"
+DAEMON:dra7xx = "lad_dra7xx"
+DAEMON:omapl138 = "lad_omapl138"
+
+inherit autotools-brokensep pkgconfig update-rc.d systemd
+
+INITSCRIPT_NAME = "tiipclad-daemon.sh"
+INITSCRIPT_PARAMS = "defaults 10"
+
+SYSTEMD_SERVICE:${PN} = "tiipclad-daemon.service"
+
+EXTRA_OECONF += "PLATFORM=${PLATFORM} KERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${STAGING_KERNEL_BUILDDIR}"
+
+do_compile[depends] += "virtual/kernel:do_shared_workdir"
+
+do_configure() {
+ ( cd ${S}; autoreconf -f -i -s )
+ oe_runconf
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d/
+
+ # Modify the startup scripts to point to the right
+ # lad daemon executable.
+ sed -i -e "s/__LAD_DAEMON__/${DAEMON}/" ${WORKDIR}/tiipclad-daemon.sh
+ sed -i -e "s/__LAD_DAEMON__/${DAEMON}/" ${WORKDIR}/tiipclad-daemon.service
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/tiipclad-daemon.service ${D}${systemd_system_unitdir}
+ install -d ${D}${sysconfdir}/init.d/
+ install -c -m 755 ${WORKDIR}/tiipclad-daemon.sh ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
+}
+
+do_install:append:dra7xx() {
+ install -d ${D}${sysconfdir}/modprobe.d/
+ install -c -m 644 ${WORKDIR}/omap_remoteproc.conf ${D}${sysconfdir}/modprobe.d/
+}
+
+PACKAGES =+ "${PN}-test"
+RDEPENDS:${PN}-test += "${PN}"
+
+FILES:${PN}-test = " \
+ ${bindir}/NameServerApp \
+ ${bindir}/MessageQApp \
+ ${bindir}/MessageQMulti \
+ ${bindir}/ping_rpmsg"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples/0001-examples-Remove-use-of-includedir-and-libdir.patch b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples/0001-examples-Remove-use-of-includedir-and-libdir.patch
new file mode 100644
index 00000000..71fca1b0
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples/0001-examples-Remove-use-of-includedir-and-libdir.patch
@@ -0,0 +1,38 @@
+From 1a26cb577ba54dd9214eeb94fed0ce3a0f4603b6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 24 Oct 2020 23:46:39 -0700
+Subject: [PATCH] examples: Remove use of includedir and libdir
+
+These point to standard include and library paths which already are used
+from sysroot relative paths secondly, they use absolute paths which
+means we are asking to add -I/usr/include which might be ok in a native
+build but not in cross build. This helps mitigate QA errors found with
+OE build system since it finds it adding host include and library search
+paths to linker/compiler commandline
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/Makefile.am | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index 5a9bedb..d547e41 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,6 +1,4 @@
+-INCLUDE = -I${includedir}
+-
+-AM_CFLAGS = -Wall -g -O2 $(INCLUDE)
++AM_CFLAGS = -Wall -g -O2
+
+ bin_PROGRAMS = rpmsg_char_simple
+
+@@ -8,4 +6,3 @@ bin_PROGRAMS = rpmsg_char_simple
+ rpmsg_char_simple_SOURCES = rpmsg_char_simple.c
+ rpmsg_char_simple_CPPFLAGS = $(AM_CFLAGS)
+ rpmsg_char_simple_LDADD = -lpthread -lti_rpmsg_char
+-rpmsg_char_simple_LDFLAGS = -L${libdir}
+--
+2.29.1
+
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples_git.bb
new file mode 100644
index 00000000..cbe4d7fd
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char-examples_git.bb
@@ -0,0 +1,13 @@
+SUMMARY = "TI RPMsg Char Sample Applications and Tests"
+
+require ti-rpmsg-char.inc
+
+SRC_URI += "file://0001-examples-Remove-use-of-includedir-and-libdir.patch"
+
+DEPENDS = "ti-rpmsg-char"
+
+inherit autotools pkgconfig
+
+EXTRA_OEMAKE = "-C ${B}/examples"
+
+PR = "r0"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char.inc b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char.inc
new file mode 100644
index 00000000..140536e7
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char.inc
@@ -0,0 +1,18 @@
+SUMMARY = "TI RPMsg Char Utility Library"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S}/src/rpmsg_char.c;beginline=1;endline=31;md5=71987db43a2159cff5ea00505c6fce58"
+
+PROTOCOL = "git"
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/rpmsg/ti-rpmsg-char.git;protocol=${PROTOCOL};branch=${BRANCH};"
+
+# Initial 0.3.1 release
+SRCREV = "0824546f61bda7715519841d9b9f0fb030ddfaf2"
+
+PV = "0.3.1+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char_git.bb b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char_git.bb
new file mode 100644
index 00000000..63711a3b
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ipc/ti-rpmsg-char_git.bb
@@ -0,0 +1,7 @@
+SUMMARY = "TI RPMsg Char Utility Library"
+
+require ti-rpmsg-char.inc
+
+inherit autotools pkgconfig
+
+PR = "r0"
diff --git a/meta-ti-bsp/recipes-ti/mathlib/mathlib-c66x_git.bb b/meta-ti-bsp/recipes-ti/mathlib/mathlib-c66x_git.bb
new file mode 100644
index 00000000..22683855
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/mathlib/mathlib-c66x_git.bb
@@ -0,0 +1,5 @@
+include mathlib.inc
+
+MATHLIB_BUILD_TARGET = "c66x"
+MATHLIB_INSTALL_DIR_RECIPE = "${MATHLIB_C66_INSTALL_DIR_RECIPE}"
+MATHLIB_INSTALL_DIR = "${MATHLIB_C66_INSTALL_DIR}"
diff --git a/meta-ti-bsp/recipes-ti/mathlib/mathlib-c674x_git.bb b/meta-ti-bsp/recipes-ti/mathlib/mathlib-c674x_git.bb
new file mode 100644
index 00000000..1654baf2
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/mathlib/mathlib-c674x_git.bb
@@ -0,0 +1,5 @@
+include mathlib.inc
+
+MATHLIB_BUILD_TARGET = "c674x"
+MATHLIB_INSTALL_DIR_RECIPE = "${MATHLIB_C674_INSTALL_DIR_RECIPE}"
+MATHLIB_INSTALL_DIR = "${MATHLIB_C674_INSTALL_DIR}"
diff --git a/meta-ti-bsp/recipes-ti/mathlib/mathlib.inc b/meta-ti-bsp/recipes-ti/mathlib/mathlib.inc
new file mode 100644
index 00000000..fe75c099
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/mathlib/mathlib.inc
@@ -0,0 +1,77 @@
+SUMMARY = "MATHLIB contains optimized floating-point math functions for TI DSPs"
+HOMEPAGE = "http://git.ti.com/ep-processor-libraries/mathlib"
+LICENSE = "BSD-3-Clause"
+
+require ../includes/ti-paths.inc
+
+PV = "3_1_2_4"
+PR = "r2"
+
+DEPENDS = "ti-cgt6x-native \
+ ti-xdctools-native \
+ ti-sysbios \
+ doxygen-native \
+ zip-native \
+ swtools"
+
+S = "${WORKDIR}/git"
+
+MATHLIB_GIT_BRANCH = "master"
+MATHLIB_GIT_PROTOCOL = "git"
+MATHLIB_GIT_URI = "git://git.ti.com/ep-processor-libraries/mathlib.git"
+MATHLIB_SRCREV = "eadcc9547faf69789661b004bb0b5ef53bb69951"
+
+SRC_URI = "${MATHLIB_GIT_URI};protocol=${MATHLIB_GIT_PROTOCOL};branch=${MATHLIB_GIT_BRANCH}"
+SRCREV = "${MATHLIB_SRCREV}"
+
+LIC_FILES_CHKSUM = "file://ti/mathlib/src/acosdp/acosdp.h;beginline=1;endline=35;md5=c133f7e139b46385906c861dd9552250"
+
+export MATHLIB_WORK_DIR="${S}"
+export CGTOOLS_INSTALL_DIR = "${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x"
+export C64PCODEGENTOOL="${CGTOOLS_INSTALL_DIR}"
+export C674CODEGENTOOL="${CGTOOLS_INSTALL_DIR}"
+export C66CODEGENTOOL ="${CGTOOLS_INSTALL_DIR}"
+export SWTOOLS_PATH = "${SWTOOLS_INSTALL_DIR}/ti/mas/swtools"
+export XDCBUILDCFG="${SWTOOLS_PATH}/config.bld"
+
+PATH:append = ":${XDC_INSTALL_DIR}"
+
+XDCPATH.="${XDCCGROOT}/include;${XDC_INSTALL_DIR}/packages;${SYSBIOS_INSTALL_DIR}/packages;"
+XDCPATH.="${SWTOOLS_INSTALL_DIR};${MATHLIB_WORK_DIR};"
+
+export XDCPATH
+
+MATHLIB_PACKAGE_NAME = "mathlib_${MATHLIB_BUILD_TARGET}_${PV}"
+
+do_compile() {
+ cd ${MATHLIB_WORK_DIR}/ti/mathlib;
+ xdc XDCARGS="${MATHLIB_BUILD_TARGET} bundle" XDCOPTIONS="-v"
+}
+
+do_install() {
+ install -d ${D}${MATHLIB_INSTALL_DIR_RECIPE}
+
+ find -name "${MATHLIB_PACKAGE_NAME}.zip" -exec unzip -o {} -d ${D}${MATHLIB_INSTALL_DIR_RECIPE} \;
+ cp -r ${D}${MATHLIB_INSTALL_DIR_RECIPE}/mathlib/. ${D}${MATHLIB_INSTALL_DIR_RECIPE}
+ rm -r ${D}${MATHLIB_INSTALL_DIR_RECIPE}/mathlib
+}
+
+inherit deploy
+addtask deploy before do_build after do_install
+
+do_deploy() {
+ install -d ${DEPLOYDIR}
+ # zip up files in ${D}${MATHLIB_INSTALL_DIR_RECIPE}
+ # and place the zip file in ${DEPLOYDIR}
+ mkdir ./${MATHLIB_PACKAGE_NAME}
+ cp -r ${D}${MATHLIB_INSTALL_DIR_RECIPE}/. ./${MATHLIB_PACKAGE_NAME}
+ zip -9 -y -r -q ${DEPLOYDIR}/${MATHLIB_PACKAGE_NAME}.zip ./${MATHLIB_PACKAGE_NAME}
+ rm -r ./${MATHLIB_PACKAGE_NAME}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${MATHLIB_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN}-dev = "arch"
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/openmp-rtos/openmp-rtos_git.bb b/meta-ti-bsp/recipes-ti/openmp-rtos/openmp-rtos_git.bb
new file mode 100644
index 00000000..59a9635d
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/openmp-rtos/openmp-rtos_git.bb
@@ -0,0 +1,62 @@
+DESCRIPTION = "TI OpenMP RTOS"
+HOMEPAGE = "git://git.ti.com/openmp/ti-openmp-dsp-runtime.git"
+LICENSE = "BSD"
+
+require recipes-ti/includes/ti-paths.inc
+
+inherit features_check
+
+REQUIRED_MACHINE_FEATURES = "dsp"
+REQUIRED_DISTRO_FEATURES = "openmp"
+
+PV = "2_06_03_00"
+PR = "r0"
+
+OPENMP_RTOS_GIT_URI = "git://git.ti.com/openmp/ti-openmp-dsp-runtime.git"
+OPENMP_RTOS_GIT_PROTOCOL = "git"
+OPENMP_RTOS_GIT_BRANCH = "master"
+
+BRANCH = "${OPENMP_RTOS_GIT_BRANCH}"
+SRC_URI = "${OPENMP_RTOS_GIT_URI};protocol=${OPENMP_RTOS_GIT_PROTOCOL};branch=${BRANCH}"
+
+SRCREV = "c090eb664d9815a36ead0e14f31e102590680fb8"
+
+LIC_FILES_CHKSUM = "file://docs/license/omp_manifest_template.html;md5=61a6972303c0447b7c056195d7ebafee"
+
+DEPENDS = "common-csl-ip-rtos doxygen-native libulm ti-xdctools-native ti-ipc-rtos ti-sysbios ti-cgt6x-native zip-native"
+
+COMPATIBLE_MACHINE = "omap-a15"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+S = "${WORKDIR}/git"
+export IPC_DIR = "${IPC_INSTALL_DIR}"
+export XDC_DIR = "${XDC_INSTALL_DIR}"
+export BIOS_DIR = "${SYSBIOS_INSTALL_DIR}"
+export ULM_DIR ="${STAGING_DIR_TARGET}/usr/share/ti/ulm"
+export C6636_PDK_DIR ="${PDK_INSTALL_DIR}"
+export AM572_PDK_DIR ="${PDK_INSTALL_DIR}"
+export XDCCGROOT = "${STAGING_DIR_NATIVE}/usr/share/ti/cgt-c6x"
+
+export BUILD_AM572 = "0"
+
+BUILD_AM572:omap-a15 = "1"
+
+RELEASE_TARGET = ""
+RELEASE_TARGET:omap-a15 = "am57xx"
+
+do_compile() {
+ make -f utils/product/Makefile .zipfile
+}
+
+do_install() {
+ install -d ${D}${OMP_INSTALL_DIR_RECIPE}
+ cp -r ${S}/exports/openmp_dsp_${RELEASE_TARGET}_*/. -d ${D}${OMP_INSTALL_DIR_RECIPE}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+
+FILES:${PN}-dev += " \
+ ${OMP_INSTALL_DIR_RECIPE}/ \
+"
+
+INSANE_SKIP:${PN}-dev = "arch"
diff --git a/meta-ti-bsp/recipes-ti/osal/ti-osal.inc b/meta-ti-bsp/recipes-ti/osal/ti-osal.inc
new file mode 100644
index 00000000..dbd64f7b
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/osal/ti-osal.inc
@@ -0,0 +1,24 @@
+DESCRIPTION = "TI Operating System Abstraction Library (OSAL)"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/osal"
+LICENSE = "BSD & EPL-1.0"
+SECTION = "devel"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+
+S = "${WORKDIR}/osal_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/osal/${PV}/exports/osal_${PV}.tar.gz;name=osaltarball"
+
+do_install() {
+ install -d ${D}${OSAL_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${OSAL_INSTALL_DIR_RECIPE}
+}
+
+INSANE_SKIP:${PN}-dev = "staticdev"
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${OSAL_INSTALL_DIR_RECIPE}"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/osal/ti-osal_1.24.00.09.bb b/meta-ti-bsp/recipes-ti/osal/ti-osal_1.24.00.09.bb
new file mode 100644
index 00000000..226458be
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/osal/ti-osal_1.24.00.09.bb
@@ -0,0 +1,9 @@
+require ti-osal.inc
+
+PV = "1_24_00_09"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://osal_${PV}_Manifest.html;md5=c110191994d011cee4cd02189ed3c9f4"
+
+SRC_URI[osaltarball.md5sum] = "a7ea85447fa0ff0f786d527a52fa6e8b"
+SRC_URI[osaltarball.sha256sum] = "d14f1f43c8a7965e86add69bd813cea56ea7e38abeb55de3fdcdaf4a69f19bf3"
diff --git a/meta-ti-bsp/recipes-ti/swtools/swtools_git.bb b/meta-ti-bsp/recipes-ti/swtools/swtools_git.bb
new file mode 100644
index 00000000..d3b9a9b1
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/swtools/swtools_git.bb
@@ -0,0 +1,52 @@
+SUMMARY = "TI Software Tools"
+HOMEPAGE = "https://git.ti.com/ep-processor-libraries/swtools"
+SECTION = "devel"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://ti/mas/swtools/copyright.txt;md5=b1f52a1435051fdb18f8885b0384147d"
+
+require ../includes/ti-paths.inc
+
+DEPENDS = "ti-cgt6x-native \
+ ti-sysbios \
+ ti-xdctools-native"
+
+PV = "5_0_8"
+PR = "r3"
+S = "${WORKDIR}/git"
+
+SWTOOLS_GIT_BRANCH = "master"
+SWTOOLS_GIT_PROTOCOL = "git"
+SWTOOLS_GIT_URI = "git://git.ti.com/ep-processor-libraries/swtools.git"
+SWTOOLS_SRCREV = "7d1c85e686b1466cd2d535fc9cac5baf1aae24a4"
+
+SRC_URI = "${SWTOOLS_GIT_URI};protocol=${SWTOOLS_GIT_PROTOCOL};branch=${SWTOOLS_GIT_BRANCH}"
+SRCREV = "${SWTOOLS_SRCREV}"
+
+
+export C64PCODEGENTOOL = "${CGTOOLS_INSTALL_DIR}"
+export C674CODEGENTOOL = "${CGTOOLS_INSTALL_DIR}"
+export C66CODEGENTOOL = "${CGTOOLS_INSTALL_DIR}"
+
+PATH:append = ":${XDC_INSTALL_DIR}"
+
+XDCPATH .= "${XDCCGROOT}/include;${XDC_INSTALL_DIR}/packages;${SYSBIOS_INSTALL_DIR}/packages;"
+
+export XDCPATH
+
+do_compile() {
+ cd ${S}/ti/mas/swtools
+ xdc
+}
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${SWTOOLS_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${SWTOOLS_INSTALL_DIR_RECIPE}
+}
+
+FILES:${PN}-dev += "${SWTOOLS_INSTALL_DIR_RECIPE}"
+
+INSANE_SKIP:${PN}-dev = "arch staticdev"
+ALLOW_EMPTY:${PN} = "1"
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-bsp/recipes-ti/ti-rtos-bin/files/empty b/meta-ti-bsp/recipes-ti/ti-rtos-bin/files/empty
new file mode 100644
index 00000000..c6cac692
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ti-rtos-bin/files/empty
@@ -0,0 +1 @@
+empty
diff --git a/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
new file mode 100644
index 00000000..c0beb550
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
@@ -0,0 +1,276 @@
+SUMMARY = "TI RTOS prebuilt binary firmware images"
+
+LICENSE = "TI-TFL"
+LIC_FILES_CHKSUM = "file://${COREBASE}/../meta-ti/licenses/TI-TFL;md5=a1b59cb7ba626b9dbbcbf00f3fbc438a"
+
+COMPATIBLE_MACHINE = "k3"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+inherit deploy
+inherit update-alternatives
+
+PLAT_SFX = ""
+PLAT_SFX:j7 = "j721e"
+PLAT_SFX:j7200-evm = "j7200"
+PLAT_SFX:j7200-hs-evm = "j7200"
+PLAT_SFX:am65xx = "am65xx"
+PLAT_SFX:am64xx = "am64xx"
+
+FILESEXTRAPATHS:prepend := "${METATIBASE}/recipes-bsp/ti-sci-fw/files/:"
+require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
+
+CORESDK_RTOS_VERSION ?= "08.00.00.26"
+PV = "${CORESDK_RTOS_VERSION}"
+
+CLEANBROKEN = "1"
+PR = "${INC_PR}.0"
+
+# Secure Build
+DEPENDS += "openssl-native"
+
+FILES:${PN} += "${base_libdir}"
+
+TI_SECURE_DEV_PKG ?= ""
+
+RTOS_ETH_FW_DIR = "${S}/ti-eth/${PLAT_SFX}"
+RTOS_DM_FW_DIR = "${S}/ti-dm/${PLAT_SFX}"
+RTOS_IPC_FW_DIR = "${S}/ti-ipc/${PLAT_SFX}"
+
+# For back-ward compatability keeping legacy firmware folder name
+# TODO: fix this in next version
+LEGACY_ETH_FW_DIR = "${D}${base_libdir}/firmware/ethfw/"
+LEGACY_IPC_FW_DIR = "${D}${base_libdir}/firmware/pdk-ipc/"
+LEGACY_DM_FW_DIR = "${D}${base_libdir}/firmware/pdk-ipc/"
+
+DM_FIRMWARE = "ipc_echo_testb_mcu1_0_release_strip.xer5f"
+
+# J7 HS support
+do_install:prepend:j7-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${RTOS_DM_FW_DIR}; \
+ mv ${DM_FIRMWARE} ${DM_FIRMWARE}.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${DM_FIRMWARE}.unsigned ${DM_FIRMWARE}; \
+ )
+}
+
+# J7 HS support
+do_install:prepend:j7200-hs-evm() {
+ export TI_SECURE_DEV_PKG=${TI_SECURE_DEV_PKG}
+ ( cd ${RTOS_DM_FW_DIR}; \
+ mv ${DM_FIRMWARE} ${DM_FIRMWARE}.unsigned; \
+ ${TI_SECURE_DEV_PKG}/scripts/secure-binary-image.sh ${DM_FIRMWARE}.unsigned ${DM_FIRMWARE}; \
+ )
+}
+
+# Update the am64xx ipc binaries to be consistent with other platforms
+do_install:prepend:am64xx() {
+ ( cd ${RTOS_IPC_FW_DIR}; \
+ mv am64-main-r5f0_0-fw ipc_echo_baremetal_test_mcu1_0_release_strip.xer5f; \
+ mv am64-main-r5f0_1-fw ipc_echo_baremetal_test_mcu1_1_release_strip.xer5f; \
+ mv am64-main-r5f1_0-fw ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f; \
+ mv am64-main-r5f1_1-fw ipc_echo_baremetal_test_mcu2_1_release_strip.xer5f; \
+ mv am64-mcu-m4f0_0-fw ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f; \
+ )
+}
+
+#Install all R5 & DSP ipc echo test binaries in lib/firmware/pdk-ipc, with softlinks up a level
+do_install() {
+ :
+}
+
+do_install:j7() {
+ install -d ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu1_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu3_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu3_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_c66xdsp_1_release_strip.xe66 ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_c66xdsp_2_release_strip.xe66 ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_c7x_1_release_strip.xe71 ${LEGACY_IPC_FW_DIR}
+ # DM Firmware
+ install -m 0644 ${RTOS_DM_FW_DIR}/ipc_echo_testb_mcu1_0_release_strip.xer5f ${LEGACY_DM_FW_DIR}
+ # ETH firmware
+ install -d ${LEGACY_ETH_FW_DIR}
+ install -m 0644 ${RTOS_ETH_FW_DIR}/app_remoteswitchcfg_server_strip.xer5f ${LEGACY_ETH_FW_DIR}
+}
+
+do_install:j7200-evm() {
+ install -d ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu1_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ # DM Firmware
+ install -m 0644 ${RTOS_DM_FW_DIR}/ipc_echo_testb_mcu1_0_release_strip.xer5f ${LEGACY_DM_FW_DIR}
+ # ETH firmware
+ install -d ${LEGACY_ETH_FW_DIR}
+ install -m 0644 ${RTOS_ETH_FW_DIR}/app_remoteswitchcfg_server_strip.xer5f ${LEGACY_ETH_FW_DIR}
+}
+
+do_install:j7200-hs-evm() {
+ install -d ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu1_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu2_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ # DM Firmware
+ install -m 0644 ${RTOS_DM_FW_DIR}/ipc_echo_testb_mcu1_0_release_strip.xer5f ${LEGACY_DM_FW_DIR}
+ # ETH firmware
+ install -d ${LEGACY_ETH_FW_DIR}
+ install -m 0644 ${RTOS_ETH_FW_DIR}/app_remoteswitchcfg_server_strip.xer5f ${LEGACY_ETH_FW_DIR}
+}
+
+do_install:am65xx() {
+ install -d ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu1_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_test_mcu1_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+}
+
+do_install:am64xx() {
+ install -d ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu1_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu1_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu2_1_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+ install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+}
+
+# Set up names for the firmwares
+ALTERNATIVE:${PN}:am65xx = "\
+ am65x-mcu-r5f0_0-fw \
+ am65x-mcu-r5f0_1-fw \
+ "
+
+ALTERNATIVE:${PN}:am64xx = "\
+ am64-main-r5f0_0-fw \
+ am64-main-r5f0_1-fw \
+ am64-main-r5f1_0-fw \
+ am64-main-r5f1_1-fw \
+ am64-mcu-m4f0_0-fw \
+ "
+
+ALTERNATIVE:${PN}:j7 = "\
+ j7-mcu-r5f0_0-fw \
+ j7-mcu-r5f0_1-fw \
+ j7-main-r5f0_0-fw \
+ j7-main-r5f0_1-fw \
+ j7-main-r5f1_0-fw \
+ j7-main-r5f1_1-fw \
+ j7-c66_0-fw \
+ j7-c66_1-fw \
+ j7-c71_0-fw\
+ "
+
+ALTERNATIVE:${PN}:j7200-evm = "\
+ j7200-mcu-r5f0_0-fw \
+ j7200-mcu-r5f0_1-fw \
+ j7200-main-r5f0_0-fw \
+ j7200-main-r5f0_1-fw \
+ "
+
+ALTERNATIVE:${PN}:j7200-hs-evm = "\
+ j7200-mcu-r5f0_0-fw \
+ j7200-mcu-r5f0_1-fw \
+ j7200-main-r5f0_0-fw \
+ j7200-main-r5f0_1-fw \
+ "
+
+# Set up link names for the firmwares
+
+TARGET_MCU_R5FSS0_0:am65xx = "am65x-mcu-r5f0_0-fw"
+TARGET_MCU_R5FSS0_1:am65xx = "am65x-mcu-r5f0_1-fw"
+
+TARGET_MAIN_R5FSS0_0:am64xx = "am64-main-r5f0_0-fw"
+TARGET_MAIN_R5FSS0_1:am64xx = "am64-main-r5f0_1-fw"
+TARGET_MAIN_R5FSS1_0:am64xx = "am64-main-r5f1_0-fw"
+TARGET_MAIN_R5FSS1_1:am64xx = "am64-main-r5f1_1-fw"
+TARGET_MCU_M4FSS0_0:am64xx = "am64-mcu-m4f0_0-fw"
+
+TARGET_MCU_R5FSS0_0:j7 = "j7-mcu-r5f0_0-fw"
+TARGET_MCU_R5FSS0_1:j7 = "j7-mcu-r5f0_1-fw"
+TARGET_MAIN_R5FSS0_0:j7 = "j7-main-r5f0_0-fw"
+TARGET_MAIN_R5FSS0_1:j7 = "j7-main-r5f0_1-fw"
+TARGET_MAIN_R5FSS1_0:j7 = "j7-main-r5f1_0-fw"
+TARGET_MAIN_R5FSS1_1:j7 = "j7-main-r5f1_1-fw"
+TARGET_C66_0:j7 = "j7-c66_0-fw"
+TARGET_C66_1:j7 = "j7-c66_1-fw"
+TARGET_C7X:j7 = "j7-c71_0-fw"
+
+TARGET_MCU_R5FSS0_0:j7200-evm = "j7200-mcu-r5f0_0-fw"
+TARGET_MCU_R5FSS0_1:j7200-evm = "j7200-mcu-r5f0_1-fw"
+TARGET_MAIN_R5FSS0_0:j7200-evm = "j7200-main-r5f0_0-fw"
+TARGET_MAIN_R5FSS0_1:j7200-evm = "j7200-main-r5f0_1-fw"
+
+TARGET_MCU_R5FSS0_0:j7200-hs-evm = "j7200-mcu-r5f0_0-fw"
+TARGET_MCU_R5FSS0_1:j7200-hs-evm = "j7200-mcu-r5f0_1-fw"
+TARGET_MAIN_R5FSS0_0:j7200-hs-evm = "j7200-main-r5f0_0-fw"
+TARGET_MAIN_R5FSS0_1:j7200-hs-evm = "j7200-main-r5f0_1-fw"
+
+ALTERNATIVE_LINK_NAME[am65x-mcu-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[am65x-mcu-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_1}"
+
+ALTERNATIVE_LINK_NAME[am64-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[am64-main-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_1}"
+ALTERNATIVE_LINK_NAME[am64-main-r5f1_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS1_0}"
+ALTERNATIVE_LINK_NAME[am64-main-r5f1_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS1_1}"
+ALTERNATIVE_LINK_NAME[am64-mcu-m4f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_M4FSS0_0}"
+
+ALTERNATIVE_LINK_NAME[j7-mcu-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[j7-mcu-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_1}"
+ALTERNATIVE_LINK_NAME[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[j7-main-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_1}"
+ALTERNATIVE_LINK_NAME[j7-main-r5f1_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS1_0}"
+ALTERNATIVE_LINK_NAME[j7-main-r5f1_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS1_1}"
+ALTERNATIVE_LINK_NAME[j7-c66_0-fw] = "${base_libdir}/firmware/${TARGET_C66_0}"
+ALTERNATIVE_LINK_NAME[j7-c66_1-fw] = "${base_libdir}/firmware/${TARGET_C66_1}"
+ALTERNATIVE_LINK_NAME[j7-c71_0-fw] = "${base_libdir}/firmware/${TARGET_C7X}"
+
+ALTERNATIVE_LINK_NAME[j7200-mcu-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[j7200-mcu-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_1}"
+ALTERNATIVE_LINK_NAME[j7200-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[j7200-main-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_1}"
+
+# Create the firmware alternatives
+
+ALTERNATIVE_TARGET[am65x-mcu-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu1_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[am65x-mcu-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu1_1_release_strip.xer5f"
+
+ALTERNATIVE_TARGET[am64-main-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu1_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[am64-main-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu1_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[am64-main-r5f1_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[am64-main-r5f1_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu2_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[am64-mcu-m4f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f"
+
+ALTERNATIVE_TARGET[j7-mcu-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7-mcu-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu1_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/ethfw/app_remoteswitchcfg_server_strip.xer5f"
+ALTERNATIVE_TARGET[j7-main-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu2_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7-main-r5f1_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu3_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7-main-r5f1_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu3_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7-c66_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_c66xdsp_1_release_strip.xe66"
+ALTERNATIVE_TARGET[j7-c66_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_c66xdsp_2_release_strip.xe66"
+ALTERNATIVE_TARGET[j7-c71_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_c7x_1_release_strip.xe71"
+
+ALTERNATIVE_TARGET[j7200-mcu-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7200-mcu-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu1_1_release_strip.xer5f"
+ALTERNATIVE_TARGET[j7200-main-r5f0_0-fw] = "${base_libdir}/firmware/ethfw/app_remoteswitchcfg_server_strip.xer5f"
+ALTERNATIVE_TARGET[j7200-main-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu2_1_release_strip.xer5f"
+
+ALTERNATIVE_PRIORITY = "10"
+
+# make sure that lib/firmware, and all its contents are part of the package
+FILES:${PN} += "${base_libdir}/firmware"
+
+# This is used to prevent the build system to_strip the executables
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+# This is used to prevent the build system to split the debug info in a separate file
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+# As it likely to be a different arch from the Yocto build, disable checking by adding "arch" to INSANE_SKIP
+INSANE_SKIP:${PN} += "arch"
+
+# we don't want to configure and build the source code
+do_compile[noexec] = "1"
+do_configure[noexec] = "1"
diff --git a/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-metadata.bb b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-metadata.bb
new file mode 100644
index 00000000..67b1d2a9
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/ti-rtos-bin/ti-rtos-metadata.bb
@@ -0,0 +1,47 @@
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+COMPATIBLE_MACHINE = "ti-soc"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+inherit nopackages deploy
+
+PLAT_SFX = ""
+PLAT_SFX:j7 = "/j721e"
+PLAT_SFX:j7200-evm = "/j7200"
+PLAT_SFX:am65xx = "/am65xx"
+PLAT_SFX:am64xx = "/am64x"
+
+# Use weak assignment to set defaults to TI_RTOS_METADATA_* variables
+TI_RTOS_METADATA_URI ?= "git://git.ti.com/processor-sdk/coresdk_rtos_releases.git"
+TI_RTOS_METADATA_PROTOCOL ?= "git"
+TI_RTOS_METADATA_SRCREV ?= "2ecbf45af64bc47806623cc5bf7ab493489acaf9"
+TI_RTOS_METADATA_BRANCH ?= "master"
+TI_RTOS_METADATA_DIR ?= "${PLAT_SFX}"
+TI_RTOS_METADATA_FILE ?= "${S}${TI_RTOS_METADATA_DIR}/metadata.inc"
+TI_RTOS_METADATA_FILE:am64xx ?= "${S}${TI_RTOS_METADATA_DIR}/mcusdk_metadata.inc"
+
+PV = "1.0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "${TI_RTOS_METADATA_URI};branch=${TI_RTOS_METADATA_BRANCH};protocol=${TI_RTOS_METADATA_PROTOCOL}"
+SRCREV = "${TI_RTOS_METADATA_SRCREV}"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+do_install[noexec] = "1"
+
+do_deploy () {
+ :
+}
+
+do_deploy:k3 () {
+ install -d ${DEPLOYDIR}
+ install -m 0644 ${TI_RTOS_METADATA_FILE} ${DEPLOYDIR}/
+}
+
+addtask deploy before do_build after do_compile
diff --git a/meta-ti-bsp/recipes-ti/uio-test-pruss/uio-test-pruss_git.bb b/meta-ti-bsp/recipes-ti/uio-test-pruss/uio-test-pruss_git.bb
new file mode 100644
index 00000000..59576daa
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/uio-test-pruss/uio-test-pruss_git.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Provides test pruss firmware for uio based tests"
+LICENSE = "BSD-3-Clause"
+PV = "1.0.2.0"
+require recipes-ti/includes/ti-paths.inc
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "ti-cgt-pru-native"
+
+BRANCH = "master"
+LIC_FILES_CHKSUM = "file://Makefile;startline=1;endline=31;md5=0ee4f2c42eb6b04e37859bb55a18b144"
+
+UIO_TEST_PRUSS_GIT_URI = "git://git.ti.com/processor-sdk/uio-test-pruss.git"
+UIO_TEST_PRUSS_GIT_PROTOCOL = "git"
+SRC_URI = "${UIO_TEST_PRUSS_GIT_URI};protocol=${UIO_TEST_PRUSS_GIT_PROTOCOL};branch=${BRANCH}"
+
+# Corresponds to version 01.00.02.00
+UIO_TEST_PRUSS_SRCREV = "e52a7b099d7203ca52519650df51419e9fef7e0c"
+
+SRCREV = "${UIO_TEST_PRUSS_SRCREV}"
+
+PR = "r0"
+
+COMPATIBLE_MACHINE = "omap-a15|ti33x|ti43x"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+DEVICE_NAME = ""
+DEVICE_NAME:append:am57xx-evm = "am57xx"
+DEVICE_NAME:append:ti33x = "am33xx"
+DEVICE_NAME:append:ti43x = "am43xx"
+
+EXTRA_OEMAKE = "CGT_PRU=${TI_CGT_PRU_INSTALL_DIR} DEVICE=${DEVICE_NAME}"
+
+do_install() {
+ install -d ${D}${bindir}/
+ cp -r *.bin ${D}${bindir}/
+}
diff --git a/meta-ti-bsp/recipes-ti/vlib/vlib-c66x.inc b/meta-ti-bsp/recipes-ti/vlib/vlib-c66x.inc
new file mode 100644
index 00000000..460964b3
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/vlib/vlib-c66x.inc
@@ -0,0 +1,32 @@
+DESCRIPTION = "TI Vision Library (VLIB) for C66x"
+HOMEPAGE = "http://software-dl.ti.com/libs/vlib/latest/index_FDS.html"
+SECTION = "devel"
+LICENSE = "TI-TSPA & BSD-3-Clause"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+COMPATIBLE_MACHINE = "omap-a15"
+
+SRC_URI = "http://software-dl.ti.com/libs/vlib/${PV}//exports/vlib_c66x_obj_${PV}_Linux.bin;name=vlibbin"
+
+S = "${WORKDIR}/vlib_c66x_${PV}"
+
+BINFILE="vlib_c66x_obj_${PV}_Linux.bin"
+TI_BIN_UNPK_ARGS = "--mode silent --prefix ${S}"
+TI_BIN_UNPK_CMDS=""
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${VLIB_C66_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${VLIB_C66_INSTALL_DIR_RECIPE}
+}
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${VLIB_C66_INSTALL_DIR_RECIPE}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP:${PN}-dev = "installed-vs-shipped arch"
diff --git a/meta-ti-bsp/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb b/meta-ti-bsp/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb
new file mode 100644
index 00000000..e3742d10
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb
@@ -0,0 +1,9 @@
+require vlib-c66x.inc
+
+PV = "3_2_1_0"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://docs/VLIB_Software_Manifest.html;md5=75151b04457c8a1ae3c2172ada0eedda"
+
+SRC_URI[vlibbin.md5sum] = "e292fa3f74be60b9110e0ebcc6840fe7"
+SRC_URI[vlibbin.sha256sum] = "05bf16473d60e0252d3a73a7c3d268e540783a226b4bda930e5f6042e7b01bd8"
diff --git a/meta-ti-bsp/recipes-ti/xdais/ti-xdais.inc b/meta-ti-bsp/recipes-ti/xdais/ti-xdais.inc
new file mode 100644
index 00000000..daa93ddf
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/xdais/ti-xdais.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "TI eXpress DSP Algorithm Interface Standard (XDAIS) specification"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais"
+LICENSE = "GPLv2"
+SECTION = "devel"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+
+S = "${WORKDIR}/xdais_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/${PV}/exports/xdais_${PV}.tar.gz;name=xdaistarball"
+
+do_install() {
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${XDAIS_INSTALL_DIR_RECIPE}
+ cp ${CP_ARGS} ${S}/* ${D}${XDAIS_INSTALL_DIR_RECIPE}
+}
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INSANE_SKIP:${PN}-dev = "arch"
+
+ALLOW_EMPTY:${PN} = "1"
+FILES:${PN}-dev += "${XDAIS_INSTALL_DIR_RECIPE}"
diff --git a/meta-ti-bsp/recipes-ti/xdais/ti-xdais_6.26.01.03.bb b/meta-ti-bsp/recipes-ti/xdais/ti-xdais_6.26.01.03.bb
new file mode 100644
index 00000000..9fc4cee1
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/xdais/ti-xdais_6.26.01.03.bb
@@ -0,0 +1,11 @@
+require ti-xdais.inc
+
+PV = "6_26_01_03"
+PR = "r1"
+
+LIC_FILES_CHKSUM = "file://xdais_6_26_01_03_manifest.html;md5=a5a675d49db2f658bb98746ec80cda4e"
+
+SRC_URI[xdaistarball.md5sum] = "9b2bea3408254e737ec0d819a031adf6"
+SRC_URI[xdaistarball.sha256sum] = "d7bcbd8bcfe6fdfc5f402e4b125ced6c806dc30bc5296e98d5d43b0b5a237a0d"
+
+INSANE_SKIP:${PN} = "installed-vs-shipped"
diff --git a/meta-ti-bsp/recipes-ti/xdais/ti-xdais_7.24.00.04.bb b/meta-ti-bsp/recipes-ti/xdais/ti-xdais_7.24.00.04.bb
new file mode 100644
index 00000000..8148f73a
--- /dev/null
+++ b/meta-ti-bsp/recipes-ti/xdais/ti-xdais_7.24.00.04.bb
@@ -0,0 +1,9 @@
+require ti-xdais.inc
+
+PV = "7_24_00_04"
+PR = "r1"
+
+LIC_FILES_CHKSUM = "file://xdais_7_24_00_04_Manifest.html;md5=fd16442230745f0877cfe1c622669fd6"
+
+SRC_URI[xdaistarball.md5sum] = "f7514085b531f2ae49b37b30194e4989"
+SRC_URI[xdaistarball.sha256sum] = "79fd30377ab4c497292aeefb0565f81703d9020d1242b02ca9968c561e0de9a1"
diff --git a/meta-ti-bsp/wic/sdimage-2part-efi.wks b/meta-ti-bsp/wic/sdimage-2part-efi.wks
new file mode 100644
index 00000000..ffb8d24b
--- /dev/null
+++ b/meta-ti-bsp/wic/sdimage-2part-efi.wks
@@ -0,0 +1,7 @@
+# short-description: Create SD card image with 2 partitions and EFI support
+# long-description: Creates a partitioned SD card image for TI platforms that
+# supports EFI. Boot files are located in the first vfat partition with extra
+# reserved space. We cannot use a GPT here.
+bootloader --append="rootfstype=ext4 ro"
+part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --fstype=vfat --label boot --active --align 1024 --use-uuid --fixed-size 128M
+part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
diff --git a/meta-ti-bsp/wic/sdimage-2part.wks b/meta-ti-bsp/wic/sdimage-2part.wks
new file mode 100644
index 00000000..3eab9407
--- /dev/null
+++ b/meta-ti-bsp/wic/sdimage-2part.wks
@@ -0,0 +1,6 @@
+# short-description: Create SD card image with 2 partitions
+# long-description: Creates a partitioned SD card image for TI platforms.
+# Boot files are located in the first vfat partition with extra reserved space.
+
+part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 1024 --fixed-size 128 --use-uuid
+part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 1024 --use-uuid