aboutsummaryrefslogtreecommitdiffstats
path: root/meta-ti-extras
diff options
context:
space:
mode:
Diffstat (limited to 'meta-ti-extras')
-rw-r--r--meta-ti-extras/COPYING.MIT17
-rw-r--r--meta-ti-extras/README31
-rw-r--r--meta-ti-extras/conf/layer.conf18
-rw-r--r--meta-ti-extras/licenses/Hewlett-Packard13
-rw-r--r--meta-ti-extras/licenses/Patrick-Powell4
-rw-r--r--meta-ti-extras/licenses/Thai-Open-Source-Software-Center31
-rw-r--r--meta-ti-extras/recipes-bsp/bt-fw/bt-fw_git.bb24
-rw-r--r--meta-ti-extras/recipes-bsp/dspdce-fw/dspdce-fw_git.bb65
-rw-r--r--meta-ti-extras/recipes-bsp/dsptop/debugss-module-drv_git.bb22
-rw-r--r--meta-ti-extras/recipes-bsp/dsptop/dsptop.inc8
-rw-r--r--meta-ti-extras/recipes-bsp/dsptop/dsptop_git.bb28
-rw-r--r--meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb45
-rw-r--r--meta-ti-extras/recipes-bsp/ipumm-fw/ipumm-fw_git.bb67
-rw-r--r--meta-ti-extras/recipes-bsp/pru/pru-icss_git.bb383
-rw-r--r--meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch31
-rw-r--r--meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb29
-rw-r--r--meta-ti-extras/recipes-connectivity/uim/uim-sysfs_8.5.bb20
-rw-r--r--meta-ti-extras/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch35
-rw-r--r--meta-ti-extras/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb26
-rw-r--r--meta-ti-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch25
-rw-r--r--meta-ti-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.8.1.bb26
-rw-r--r--meta-ti-extras/recipes-connectivity/wlconf/wlconf_8.7.3.bb39
-rw-r--r--meta-ti-extras/recipes-devtools/cuia/cuia_1.0.0.13.bb33
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x.inc9
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch30
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/init48
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x_git.bb49
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb49
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0001-Support-Linux-kernels-v5.15.patch40
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0002-Support-Linux-kernels-v6.6.patch31
-rw-r--r--meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb36
-rw-r--r--meta-ti-extras/recipes-devtools/python-yamllint/python3-yamllint_1.33.0.bb15
-rw-r--r--meta-ti-extras/recipes-multimedia/libdce/libdce_3.00.15.00.bb16
-rw-r--r--meta-ti-extras/recipes-ti/README1
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes.bb26
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh14
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape.service11
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape.sh22
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/beaglebone-getting-started.bb21
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init.bb60
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules1
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/gadget-init/g-ether-load.sh46
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh10
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh4
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/network-gadget-init.service11
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service11
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.conf5
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.rules2
-rw-r--r--meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.service12
-rwxr-xr-xmeta-ti-extras/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh37
-rw-r--r--meta-ti-extras/recipes-ti/bios/ti-sysbios.inc28
-rw-r--r--meta-ti-extras/recipes-ti/bios/ti-sysbios_6.76.03.01.bb16
-rw-r--r--meta-ti-extras/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb29
-rw-r--r--meta-ti-extras/recipes-ti/ctoolslib/libaet_git.bb38
-rw-r--r--meta-ti-extras/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb29
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cg-xml_2.61.00.bb40
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb44
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt-pru_2.3.3.bb49
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt470.inc24
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt470_4.6.6.bb8
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb46
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt6x_8.3.2.bb107
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-cgt7x_1.2.0.bb49
-rw-r--r--meta-ti-extras/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb83
-rw-r--r--meta-ti-extras/recipes-ti/dsplib/dsplib-c64xp_git.bb6
-rw-r--r--meta-ti-extras/recipes-ti/dsplib/dsplib-c66x_git.bb8
-rw-r--r--meta-ti-extras/recipes-ti/dsplib/dsplib-c674x_git.bb8
-rw-r--r--meta-ti-extras/recipes-ti/dsplib/dsplib.inc78
-rw-r--r--meta-ti-extras/recipes-ti/framework-components/ti-framework-components.inc21
-rw-r--r--meta-ti-extras/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb9
-rw-r--r--meta-ti-extras/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb9
-rw-r--r--meta-ti-extras/recipes-ti/imglib/imglib-c66x.inc34
-rw-r--r--meta-ti-extras/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb9
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc15
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-paths.inc60
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-staging.inc6
-rw-r--r--meta-ti-extras/recipes-ti/includes/ti-unpack.inc82
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch40
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb49
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-examples.inc31
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-examples_git.bb44
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-rtos.inc73
-rw-r--r--meta-ti-extras/recipes-ti/ipc/ti-ipc-rtos_git.bb101
-rw-r--r--meta-ti-extras/recipes-ti/jailhouse/jailhouse-inmate.bb12
-rw-r--r--meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb126
-rw-r--r--meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc87
-rw-r--r--meta-ti-extras/recipes-ti/mathlib/mathlib-c66x_git.bb5
-rw-r--r--meta-ti-extras/recipes-ti/mathlib/mathlib-c674x_git.bb5
-rw-r--r--meta-ti-extras/recipes-ti/mathlib/mathlib.inc77
-rw-r--r--meta-ti-extras/recipes-ti/openmp-rtos/openmp-rtos_git.bb62
-rw-r--r--meta-ti-extras/recipes-ti/osal/ti-osal.inc24
-rw-r--r--meta-ti-extras/recipes-ti/osal/ti-osal_1.24.00.09.bb9
-rw-r--r--meta-ti-extras/recipes-ti/swtools/swtools_git.bb52
-rw-r--r--meta-ti-extras/recipes-ti/vlib/vlib-c66x.inc32
-rw-r--r--meta-ti-extras/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb9
-rw-r--r--meta-ti-extras/recipes-ti/xdais/ti-xdais.inc25
-rw-r--r--meta-ti-extras/recipes-ti/xdais/ti-xdais_6.26.01.03.bb9
-rw-r--r--meta-ti-extras/recipes-ti/xdais/ti-xdais_7.24.00.04.bb9
98 files changed, 3453 insertions, 0 deletions
diff --git a/meta-ti-extras/COPYING.MIT b/meta-ti-extras/COPYING.MIT
new file mode 100644
index 00000000..fb950dc6
--- /dev/null
+++ b/meta-ti-extras/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-extras/README b/meta-ti-extras/README
new file mode 100644
index 00000000..1b38921a
--- /dev/null
+++ b/meta-ti-extras/README
@@ -0,0 +1,31 @@
+OpenEmbedded/Yocto layer that extends and supplements Texas Instruments BSP layer.
+
+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
+
+URI: git://git.yoctoproject.org/meta-ti
+branch: master
+revision: HEAD
+layers: meta-ti-bsp
+
+
+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:
+Ryan Eatmon <reatmon@ti.com>
+Denys Dmytriyenko <denys@konsulko.com>
diff --git a/meta-ti-extras/conf/layer.conf b/meta-ti-extras/conf/layer.conf
new file mode 100644
index 00000000..f2d6b250
--- /dev/null
+++ b/meta-ti-extras/conf/layer.conf
@@ -0,0 +1,18 @@
+# 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-extras"
+BBFILE_PATTERN_meta-ti-extras := "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-ti-extras = "6"
+
+LAYERSERIES_COMPAT_meta-ti-extras = "nanbield scarthgap styhead"
+
+LICENSE_PATH += "${LAYERDIR}/licenses"
+
+LAYERDEPENDS_meta-ti-extras = " \
+ meta-ti-bsp \
+"
diff --git a/meta-ti-extras/licenses/Hewlett-Packard b/meta-ti-extras/licenses/Hewlett-Packard
new file mode 100644
index 00000000..569d009c
--- /dev/null
+++ b/meta-ti-extras/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-extras/licenses/Patrick-Powell b/meta-ti-extras/licenses/Patrick-Powell
new file mode 100644
index 00000000..9c6eac42
--- /dev/null
+++ b/meta-ti-extras/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-extras/licenses/Thai-Open-Source-Software-Center b/meta-ti-extras/licenses/Thai-Open-Source-Software-Center
new file mode 100644
index 00000000..3a3972dd
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-bsp/bt-fw/bt-fw_git.bb b/meta-ti-extras/recipes-bsp/bt-fw/bt-fw_git.bb
new file mode 100644
index 00000000..9a5a6ffa
--- /dev/null
+++ b/meta-ti-extras/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"
+
+CLEANBROKEN = "1"
+
+SRCREV = "0ee619b598d023fffc77679f099bc2a4815510e4"
+BRANCH = "master"
+SRC_URI = "git://git.ti.com/git/ti-bt/service-packs.git;protocol=https;branch=${BRANCH}"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/ti-connectivity
+ oe_runmake "DEST_DIR=${D}" "BASE_LIB_DIR=${nonarch_base_libdir}" install
+}
+
+FILES:${PN} += "${nonarch_base_libdir}/firmware/ti-connectivity/*"
diff --git a/meta-ti-extras/recipes-bsp/dspdce-fw/dspdce-fw_git.bb b/meta-ti-extras/recipes-bsp/dspdce-fw/dspdce-fw_git.bb
new file mode 100644
index 00000000..491ee0f3
--- /dev/null
+++ b/meta-ti-extras/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/git/glsdk/dspdce.git;protocol=https;branch=master"
+
+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}${nonarch_base_libdir}/firmware
+ install -m 0644 ${S}/dra7xx-c66x-dsp.xe66 ${D}${nonarch_base_libdir}/firmware/${TARGET}.${BPN}
+}
+
+ALTERNATIVE:${PN} = "dra7-dsp1-fw.xe66"
+ALTERNATIVE_LINK_NAME[dra7-dsp1-fw.xe66] = "${nonarch_base_libdir}/firmware/${TARGET}"
+ALTERNATIVE_TARGET[dra7-dsp1-fw.xe66] = "${nonarch_base_libdir}/firmware/${TARGET}.${BPN}"
+ALTERNATIVE_PRIORITY = "10"
+
+INSANE_SKIP:${PN} = "arch"
+
+FILES:${PN} += "${nonarch_base_libdir}/firmware/*"
diff --git a/meta-ti-extras/recipes-bsp/dsptop/debugss-module-drv_git.bb b/meta-ti-extras/recipes-bsp/dsptop/debugss-module-drv_git.bb
new file mode 100644
index 00000000..9d85829b
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/dsptop/debugss-module-drv_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Debug Sub-System (DebugSS) driver for Keystone and DRA7xx devices"
+LICENSE = "GPL-2.0-only"
+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"
+
+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-extras/recipes-bsp/dsptop/dsptop.inc b/meta-ti-extras/recipes-bsp/dsptop/dsptop.inc
new file mode 100644
index 00000000..ec159c75
--- /dev/null
+++ b/meta-ti-extras/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/git/sdo-emu/dsptop.git;protocol=https;branch=${BRANCH}"
+
+BRANCH = "master"
diff --git a/meta-ti-extras/recipes-bsp/dsptop/dsptop_git.bb b/meta-ti-extras/recipes-bsp/dsptop/dsptop_git.bb
new file mode 100644
index 00000000..90ce8943
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/dsptop/dsptop_git.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "TI dsptop utility."
+LICENSE = "BSD-3-Clause"
+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}
+ chown -R root:root ${D}
+}
+
+COMPATIBLE_MACHINE = "dra7xx"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RDEPENDS:${PN} = "debugss-module-drv bash"
+
+include dsptop.inc
+
+PARALLEL_MAKE = ""
diff --git a/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
new file mode 100644
index 00000000..6a2cde30
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/dsptop/libulm_git.bb
@@ -0,0 +1,45 @@
+SUMMARY = "TI Usage & Load Monitor Implementation"
+LICENSE = "BSD-3-Clause"
+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-extras/recipes-bsp/ipumm-fw/ipumm-fw_git.bb b/meta-ti-extras/recipes-bsp/ipumm-fw/ipumm-fw_git.bb
new file mode 100644
index 00000000..8d066eb0
--- /dev/null
+++ b/meta-ti-extras/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/git/ivimm/ipumm.git;protocol=https;branch=master"
+
+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}${nonarch_base_libdir}/firmware
+ install -m 0644 ${S}/${TARGET} ${D}${nonarch_base_libdir}/firmware/${TARGET}.${BPN}
+ install -m 0644 ${S}/${TARGET_MAP} ${D}${nonarch_base_libdir}/firmware/${TARGET}.map
+}
+
+ALTERNATIVE:${PN} = "dra7-ipu2-fw.xem4"
+ALTERNATIVE_LINK_NAME[dra7-ipu2-fw.xem4] = "${nonarch_base_libdir}/firmware/${TARGET}"
+ALTERNATIVE_TARGET[dra7-ipu2-fw.xem4] = "${nonarch_base_libdir}/firmware/${TARGET}.${BPN}"
+ALTERNATIVE_PRIORITY = "20"
+
+FILES:${PN} += "${nonarch_base_libdir}/firmware/*"
diff --git a/meta-ti-extras/recipes-bsp/pru/pru-icss_git.bb b/meta-ti-extras/recipes-bsp/pru/pru-icss_git.bb
new file mode 100644
index 00000000..b01dd6a5
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/pru/pru-icss_git.bb
@@ -0,0 +1,383 @@
+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/git/pru-software-support-package/pru-software-support-package.git;protocol=https;branch=${BRANCH}"
+SRCREV = "00a5efa5157feb84cb2e4bf50b481f7082acca82"
+
+PV = "6.3.0"
+
+require recipes-ti/includes/ti-paths.inc
+
+COMPATIBLE_MACHINE = "ti33x|ti43x|omap-a15|am62xx|am64xx|am65xx|j721e"
+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:am62xx = "am62x"
+PLATFORM:am64xx = "am64x"
+PLATFORM:am65xx = "am65x"
+PLATFORM:j721e = "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}${nonarch_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}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+ done
+}
+
+do_install:append:ti43x() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+ done
+ done
+}
+
+do_install:append:omap-a15() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+ done
+ done
+}
+
+do_install:append:am62xx() {
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU_Halt.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ for i in 0 1
+ do
+ install -m 0644 ${S}/examples/${PLATFORM}/PRU_RPMsg_Echo_Interrupt${i}/gen/PRU_RPMsg_Echo_Interrupt${i}.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ 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}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${nonarch_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}${nonarch_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}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${nonarch_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}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+
+ done
+ done
+}
+
+do_install:append:j721e() {
+ for i in 0 1
+ do
+ install -m 644 ${S}/examples/${PLATFORM}/PRU_Halt/gen/PRU${i}/PRU_Halt_${i}.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/RTU_Halt/gen/RTU${i}/RTU_Halt_${i}.out \
+ ${D}${nonarch_base_libdir}/firmware/pru
+ install -m 644 ${S}/examples/${PLATFORM}/TX_PRU_Halt/gen/TX_PRU${i}/TX_PRU_Halt_${i}.out \
+ ${D}${nonarch_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}${nonarch_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}${nonarch_base_libdir}/firmware/pru
+
+ done
+ done
+}
+
+
+FILES:${PN}-halt = "${nonarch_base_libdir}/firmware/pru/PRU_Halt* ${nonarch_base_libdir}/firmware/pru/RTU_Halt* ${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt*"
+FILES:${PN}-rpmsg-echo = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt* ${nonarch_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:am62xx = "am62x-pru0-fw am62x-pru1-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:j721e = "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] = "${nonarch_base_libdir}/firmware/am335x-pru0-fw"
+ALTERNATIVE_LINK_NAME[am335x-pru1-fw] = "${nonarch_base_libdir}/firmware/am335x-pru1-fw"
+
+ALTERNATIVE_LINK_NAME[am437x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/am437x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/am437x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/am437x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am437x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/am437x-pru1_1-fw"
+
+ALTERNATIVE_LINK_NAME[am57xx-pru1_0-fw] = "${nonarch_base_libdir}/firmware/am57xx-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru1_1-fw] = "${nonarch_base_libdir}/firmware/am57xx-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru2_0-fw] = "${nonarch_base_libdir}/firmware/am57xx-pru2_0-fw"
+ALTERNATIVE_LINK_NAME[am57xx-pru2_1-fw] = "${nonarch_base_libdir}/firmware/am57xx-pru2_1-fw"
+
+ALTERNATIVE_LINK_NAME[am62x-pru0-fw] = "${nonarch_base_libdir}/firmware/am62x-pru0-fw"
+ALTERNATIVE_LINK_NAME[am62x-pru1-fw] = "${nonarch_base_libdir}/firmware/am62x-pru1-fw"
+
+ALTERNATIVE_LINK_NAME[am64x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/am64x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/am64x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/am64x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/am64x-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/am64x-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/am64x-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/am64x-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/am64x-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/am64x-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/am64x-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/am64x-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[am64x-txpru1_1-fw] = "${nonarch_base_libdir}/firmware/am64x-txpru1_1-fw"
+
+ALTERNATIVE_LINK_NAME[am65x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/am65x-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/am65x-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/am65x-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/am65x-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru2_0-fw] = "${nonarch_base_libdir}/firmware/am65x-pru2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-pru2_1-fw] = "${nonarch_base_libdir}/firmware/am65x-pru2_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu2_0-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-rtu2_1-fw] = "${nonarch_base_libdir}/firmware/am65x-rtu2_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru1_1-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru1_1-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru2_0-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru2_0-fw"
+ALTERNATIVE_LINK_NAME[am65x-txpru2_1-fw] = "${nonarch_base_libdir}/firmware/am65x-txpru2_1-fw"
+
+ALTERNATIVE_LINK_NAME[j7-pru0_0-fw] = "${nonarch_base_libdir}/firmware/j7-pru0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-pru0_1-fw] = "${nonarch_base_libdir}/firmware/j7-pru0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-pru1_0-fw] = "${nonarch_base_libdir}/firmware/j7-pru1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-pru1_1-fw] = "${nonarch_base_libdir}/firmware/j7-pru1_1-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/j7-rtu0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/j7-rtu0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/j7-rtu1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/j7-rtu1_1-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/j7-txpru0_0-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/j7-txpru0_1-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/j7-txpru1_0-fw"
+ALTERNATIVE_LINK_NAME[j7-txpru1_1-fw] = "${nonarch_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:j721e = " j7-txpru0_0-fw j7-txpru0_1-fw j7-txpru1_0-fw j7-txpru1_1-fw"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am335x-pru0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am335x-pru1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am437x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru2_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am57xx-pru2_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am62x-pru0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am62x-pru1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am64x-txpru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru2_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-pru2_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu2_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-rtu2_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru2_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[am65x-txpru2_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_1.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/TX_PRU_Halt_0.out"
+ALTERNATIVE_TARGET_pru-icss-halt[j7-txpru1_1-fw] = "${nonarch_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] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am335x-pru1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am437x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru2_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am57xx-pru2_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am62x-pru0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am62x-pru1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am64x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru2_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-pru2_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu1_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu2_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt2_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[am65x-rtu2_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt2_1.out"
+
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru0_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru0_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru1_0-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-pru1_1-fw] = "${nonarch_base_libdir}/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu0_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu0_1-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu1_0-fw] = "${nonarch_base_libdir}/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out"
+ALTERNATIVE_TARGET_pru-icss-rpmsg-echo[j7-rtu1_1-fw] = "${nonarch_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 buildpaths"
+INSANE_SKIP:${PN}-rpmsg-echo = "arch buildpaths"
diff --git a/meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch b/meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch
new file mode 100644
index 00000000..bb05c6fe
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw/0001-Add-Makefile-to-install-firmware-files.patch
@@ -0,0 +1,31 @@
+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
+
+Upstream-Status: Pending
+
+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-extras/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb b/meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb
new file mode 100644
index 00000000..dbae5a21
--- /dev/null
+++ b/meta-ti-extras/recipes-bsp/wl18xx-fw/wl18xx-fw_8.9.0.0.86.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Firmware files for use with TI wl18xx"
+LICENSE = "TI-TSPA"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=4977a0fe767ee17765ae63c435a32a9e"
+
+SRC_URI = " \
+ git://git.ti.com/git/wilink8-wlan/wl18xx_fw.git;protocol=https;branch=${BRANCH} \
+ file://0001-Add-Makefile-to-install-firmware-files.patch \
+"
+
+SRCREV = "5ec05007f2662f460f881c5868311fd3ab7e6e71"
+BRANCH = "master"
+
+S = "${WORKDIR}/git"
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+ oe_runmake 'DEST_DIR=${D}/usr' install
+ else
+ oe_runmake 'DEST_DIR=${D}' install
+ fi
+}
+
+FILES:${PN} = "${nonarch_base_libdir}/firmware/ti-connectivity/*"
diff --git a/meta-ti-extras/recipes-connectivity/uim/uim-sysfs_8.5.bb b/meta-ti-extras/recipes-connectivity/uim/uim-sysfs_8.5.bb
new file mode 100644
index 00000000..2e528376
--- /dev/null
+++ b/meta-ti-extras/recipes-connectivity/uim/uim-sysfs_8.5.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Shared Transport Line Discipline User Mode initialisation Manager Daemon"
+LICENSE = "GPL-2.0-or-later"
+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/git/ti-bt/uim.git;branch=master;protocol=https"
+
+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-extras/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator/0001-plt.h-Do-not-define-EFUSE_PARAMETER_TYPE_ENMT-type-e.patch b/meta-ti-extras/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-extras/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-extras/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb b/meta-ti-extras/recipes-connectivity/wl18xx-calibrator/wl18xx-calibrator_8.7.3.bb
new file mode 100644
index 00000000..1e9c445d
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+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/git/wilink8-wlan/18xx-ti-utils.git;branch=master;protocol=https \
+ 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-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch b/meta-ti-extras/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..cde01541
--- /dev/null
+++ b/meta-ti-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts/0001-print_stat.sh-replace-system-bin-sh-with-bin-sh.patch
@@ -0,0 +1,25 @@
+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
+
+Upstream-Status: Pending
+
+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-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.8.1.bb b/meta-ti-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.8.1.bb
new file mode 100644
index 00000000..87890a31
--- /dev/null
+++ b/meta-ti-extras/recipes-connectivity/wl18xx-target-scripts/wl18xx-target-scripts_8.8.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Scripts and configuration files for TI wireless drivers"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README;beginline=1;endline=21;md5=b8d6a0865f50159bf5c0d175d1f4a705"
+
+# Tag: R8.8.1
+SRCREV = "8bcee075061527d61f26d6d506aebdfd496037d9"
+BRANCH = "sitara-scripts"
+SRC_URI = "git://git.ti.com/git/wilink8-wlan/wl18xx-target-scripts.git;protocol=https;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-extras/recipes-connectivity/wlconf/wlconf_8.7.3.bb b/meta-ti-extras/recipes-connectivity/wlconf/wlconf_8.7.3.bb
new file mode 100644
index 00000000..a2a8b775
--- /dev/null
+++ b/meta-ti-extras/recipes-connectivity/wlconf/wlconf_8.7.3.bb
@@ -0,0 +1,39 @@
+DESCRIPTION = "Configuration utility for TI wireless drivers"
+LICENSE = "GPL-2.0-only"
+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/git/wilink8-wlan/18xx-ti-utils.git;branch=master;protocol=https"
+
+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}${nonarch_base_libdir}/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}${nonarch_base_libdir}/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 \
+ ${nonarch_base_libdir}/firmware/ti-connectivity/wl18xx-conf.bin \
+"
+
+FILES:${PN}-dbg += "${sbindir}/wlconf/.debug"
diff --git a/meta-ti-extras/recipes-devtools/cuia/cuia_1.0.0.13.bb b/meta-ti-extras/recipes-devtools/cuia/cuia_1.0.0.13.bb
new file mode 100644
index 00000000..8b16830f
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/cuia/cuia_1.0.0.13.bb
@@ -0,0 +1,33 @@
+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
+ rm -rf ${D}${libdir}/boot.*
+ rm -rf ${D}${libdir}/gnu.targets.*
+ rm -rf ${D}${libdir}/syscalls.*
+}
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
+
+INSANE_SKIP:${PN} += "textrel"
diff --git a/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x.inc b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x.inc
new file mode 100644
index 00000000..54115f4e
--- /dev/null
+++ b/meta-ti-extras/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/git/sdo-emu/gdbc6x.git;protocol=https;branch=${BRANCH}"
+
+BRANCH = "master"
diff --git a/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch
new file mode 100644
index 00000000..e52efa56
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/0001-libbfd.h-suppress-GCC9-Wstringop-truncation.patch
@@ -0,0 +1,30 @@
+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
+
+Upstream-Status: Inappropriate [OE-specific]
+
+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-extras/recipes-devtools/gdbc6x/gdbc6x/init b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x/init
new file mode 100644
index 00000000..90210b82
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-devtools/gdbc6x/gdbc6x_git.bb b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x_git.bb
new file mode 100644
index 00000000..d3ada9c6
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbc6x_git.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "GNU debugger for TI C6X DSP."
+SECTION = "devel"
+LICENSE = "GPL-3.0-or-later"
+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-extras/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb
new file mode 100644
index 00000000..3460eadb
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserver-c6x_git.bb
@@ -0,0 +1,49 @@
+DESCRIPTION = "TI gdb-server to be used with c6xgdb."
+LICENSE = "BSD-3-Clause"
+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-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0001-Support-Linux-kernels-v5.15.patch b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0001-Support-Linux-kernels-v5.15.patch
new file mode 100644
index 00000000..fdf7e95f
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0001-Support-Linux-kernels-v5.15.patch
@@ -0,0 +1,40 @@
+From 7e6e1312629f9bc7a24871f7f395f2d288a1758f Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Tue, 18 Apr 2023 11:38:54 -0500
+Subject: [PATCH] Support Linux kernels v5.15+
+
+put_tty_driver was removed and write_room return type has changed.
+
+Function tty_driver_kref_put has been around a while, so no need
+to do a kernel version check.
+
+Upstream-Status: Inactive-Upstream
+Signed-off-by: Andrew Davis <afd@ti.com>
+---
+ kernel_module/gdbproxy-mod/gdbserverproxy.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/kernel_module/gdbproxy-mod/gdbserverproxy.c b/kernel_module/gdbproxy-mod/gdbserverproxy.c
+index 418b6db..4b1c676 100644
+--- a/kernel_module/gdbproxy-mod/gdbserverproxy.c
++++ b/kernel_module/gdbproxy-mod/gdbserverproxy.c
+@@ -540,7 +540,11 @@ static int gdb_write(struct tty_struct *tty,
+ *
+ *
+ */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0))
++static unsigned int gdb_write_room(struct tty_struct *tty)
++#else
+ static int gdb_write_room(struct tty_struct *tty)
++#endif
+ {
+ return GDB_STR_SIZE;
+ }
+@@ -914,7 +918,7 @@ static int __init gdb_dev_init(void)
+ if (ret < 0) {
+
+ printk(KERN_ERR "Couldn't register gdbtty driver.\n");
+- put_tty_driver(tty_gdb_driver);
++ tty_driver_kref_put(tty_gdb_driver);
+ return ret;
+ }
diff --git a/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0002-Support-Linux-kernels-v6.6.patch b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0002-Support-Linux-kernels-v6.6.patch
new file mode 100644
index 00000000..1e897394
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv/0002-Support-Linux-kernels-v6.6.patch
@@ -0,0 +1,31 @@
+From: Ryan Eatmon <reatmon@ti.com>
+Date: Wed, 08 Feb 2024 10:43:00 -0500
+Subject: [PATCH] Support Linux kernels v6.6+
+
+gdb_write arg changed from int to unsigned int
+
+Upstream-Status: Inactive-Upstream
+
+Signed-off-by: Ryan Eatmon <reatmon@ti.com>
+---
+ kernel_module/gdbproxy-mod/gdbserverproxy.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/kernel_module/gdbproxy-mod/gdbserverproxy.c b/kernel_module/gdbproxy-mod/gdbserverproxy.c
+index 418b6db..4b1c676 100644
+--- a/kernel_module/gdbproxy-mod/gdbserverproxy.c
++++ b/kernel_module/gdbproxy-mod/gdbserverproxy.c
+@@ -496,8 +496,13 @@ static void gdb_close(struct tty_struct *tty, struct file *filp)
+ *
+ *
+ */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,6,0))
++static int gdb_write(struct tty_struct *tty,
++ const unsigned char *buf, unsigned int count)
++#else
+ static int gdb_write(struct tty_struct *tty,
+ const unsigned char *buf, int count)
++#endif
+ {
+ struct dsp_session *dsp = tty->driver_data;
+ int ret = 0;
diff --git a/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb
new file mode 100644
index 00000000..8bea12f7
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/gdbc6x/gdbserverproxy-module-drv_git.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Interface for GDB to commincate witha TI C66X DSP"
+LICENSE = "GPL-2.0-only"
+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"
+
+SRC_URI:append = "\
+ file://0001-Support-Linux-kernels-v5.15.patch;patchdir=../.. \
+ file://0002-Support-Linux-kernels-v6.6.patch;patchdir=../.. \
+"
+
+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-extras/recipes-devtools/python-yamllint/python3-yamllint_1.33.0.bb b/meta-ti-extras/recipes-devtools/python-yamllint/python3-yamllint_1.33.0.bb
new file mode 100644
index 00000000..4b7bd065
--- /dev/null
+++ b/meta-ti-extras/recipes-devtools/python-yamllint/python3-yamllint_1.33.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A linter for YAML files."
+HOMEPAGE = "https://github.com/adrienverge/yamllint"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "yamllint"
+
+SRC_URI[sha256sum] = "2dceab9ef2d99518a2fcf4ffc964d44250ac4459be1ba3ca315118e4a1a81f7d"
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+RDEPENDS:${PN} += "${PYTHON_PN}-pyyaml"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-ti-extras/recipes-multimedia/libdce/libdce_3.00.15.00.bb b/meta-ti-extras/recipes-multimedia/libdce/libdce_3.00.15.00.bb
new file mode 100644
index 00000000..54f6ff8a
--- /dev/null
+++ b/meta-ti-extras/recipes-multimedia/libdce/libdce_3.00.15.00.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Library for remotely invoking HW accelerated codecs on IVA-HD"
+LICENSE = "BSD-3-Clause"
+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;branch=master"
+SRCREV = "ec14e1d5cea1ed3c3ea0e2b9cf1fd581acff93e3"
+
+S = "${WORKDIR}/git"
+EXTRA_OECONF += "IPC_HEADERS=${STAGING_INCDIR}/ti/ipc/mm"
+
+COMPATIBLE_HOST ?= "null"
+COMPATIBLE_HOST:ti-soc = "(.*)"
diff --git a/meta-ti-extras/recipes-ti/README b/meta-ti-extras/recipes-ti/README
new file mode 100644
index 00000000..b32c2842
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/README
@@ -0,0 +1 @@
+Note: some of the packages in this area are not actively maintained.
diff --git a/meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes.bb b/meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes.bb
new file mode 100644
index 00000000..ceefe0d6
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh b/meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape-stop.sh
new file mode 100755
index 00000000..222a010d
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/beaglebone-capes/cape.service b/meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape.service
new file mode 100644
index 00000000..ce0db719
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/beaglebone-capes/cape.sh b/meta-ti-extras/recipes-ti/beagleboard/beaglebone-capes/cape.sh
new file mode 100755
index 00000000..c279349d
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/beaglebone-getting-started.bb b/meta-ti-extras/recipes-ti/beagleboard/beaglebone-getting-started.bb
new file mode 100644
index 00000000..85ab861d
--- /dev/null
+++ b/meta-ti-extras/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 & GPL-3.0-or-later & 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-extras/recipes-ti/beagleboard/gadget-init.bb b/meta-ti-extras/recipes-ti/beagleboard/gadget-init.bb
new file mode 100644
index 00000000..3ab00ec3
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/bone-gmass-eject.rules
new file mode 100644
index 00000000..ee6f93e2
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/g-ether-load.sh b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/g-ether-load.sh
new file mode 100755
index 00000000..f9400649
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
new file mode 100755
index 00000000..6e73b155
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/g-storage-reinsert.sh
new file mode 100755
index 00000000..d358640a
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/network-gadget-init.service b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
new file mode 100644
index 00000000..0ee29147
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/storage-gadget-init.service
new file mode 100644
index 00000000..9a8513e8
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/udhcpd.conf b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.conf
new file mode 100644
index 00000000..3bcf00f0
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/udhcpd.rules b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.rules
new file mode 100644
index 00000000..db65f9ac
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/udhcpd.service b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/udhcpd.service
new file mode 100644
index 00000000..1f4ac688
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh b/meta-ti-extras/recipes-ti/beagleboard/gadget-init/update-image-info-on-mmcblk0p1.sh
new file mode 100755
index 00000000..a4daf734
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/bios/ti-sysbios.inc b/meta-ti-extras/recipes-ti/bios/ti-sysbios.inc
new file mode 100644
index 00000000..f31decec
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+
+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-extras/recipes-ti/bios/ti-sysbios_6.76.03.01.bb b/meta-ti-extras/recipes-ti/bios/ti-sysbios_6.76.03.01.bb
new file mode 100644
index 00000000..d242510f
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb b/meta-ti-extras/recipes-ti/codec-engine/ti-codec-engine_3.24.00.08.bb
new file mode 100644
index 00000000..2e25ea76
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+
+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-extras/recipes-ti/ctoolslib/libaet_git.bb b/meta-ti-extras/recipes-ti/ctoolslib/libaet_git.bb
new file mode 100644
index 00000000..400221f9
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+
+PV = "4.19.0.0"
+
+LIC_FILES_CHKSUM = "file://../ctoolslib_manifest.html;md5=b7dd369a2e07ef9a71795ee5a9bd01bd"
+
+SRC_URI = "git://git.ti.com/git/sdo-emu/ctoolslib.git;protocol=https;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-extras/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb b/meta-ti-extras/recipes-ti/devtools/gcc-arm-baremetal_7-2018-q2-update.bb
new file mode 100644
index 00000000..64bac240
--- /dev/null
+++ b/meta-ti-extras/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 & GPL-3.0-only"
+
+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-extras/recipes-ti/devtools/ti-cg-xml_2.61.00.bb b/meta-ti-extras/recipes-ti/devtools/ti-cg-xml_2.61.00.bb
new file mode 100644
index 00000000..c7608a76
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+
+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-extras/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt-arm_18.12.5.bb
new file mode 100644
index 00000000..b7b6d9b1
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-cgt-pru_2.3.3.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt-pru_2.3.3.bb
new file mode 100644
index 00000000..c96113fe
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/devtools/ti-cgt-pru_2.3.3.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] = "abb76fac986993aafaf467915985ec4f"
+SRC_URI[cgt-pru-x86.sha256sum] = "1f1405167214f2c0ef848591b17a7799fdcd9f55f11bc90db9ace3490d426215"
+
+SRC_URI[cgt-pru-arm.md5sum] = "648a6d7d8162fd6a89f381c7b974e6b0"
+SRC_URI[cgt-pru-arm.sha256sum] = "8390cb77b46b728ce2940595b81406f76d86dfed58c21258e3206a7c1232ccf2"
+
+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-extras/recipes-ti/devtools/ti-cgt470.inc b/meta-ti-extras/recipes-ti/devtools/ti-cgt470.inc
new file mode 100644
index 00000000..f0992aa7
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-cgt470_4.6.6.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt470_4.6.6.bb
new file mode 100644
index 00000000..6ff2cc48
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt6x-7_7.4.16.bb
new file mode 100644
index 00000000..a7de8e38
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-cgt6x_8.3.2.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt6x_8.3.2.bb
new file mode 100644
index 00000000..fd34657a
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-cgt7x_1.2.0.bb b/meta-ti-extras/recipes-ti/devtools/ti-cgt7x_1.2.0.bb
new file mode 100644
index 00000000..b45b52a3
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb b/meta-ti-extras/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb
new file mode 100644
index 00000000..b1361804
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/devtools/ti-xdctools_3.55.02.22.bb
@@ -0,0 +1,83 @@
+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-3-Clause & GPL-2.0-only"
+
+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 = "(.*)"
+
+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"
+
+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-extras/recipes-ti/dsplib/dsplib-c64xp_git.bb b/meta-ti-extras/recipes-ti/dsplib/dsplib-c64xp_git.bb
new file mode 100644
index 00000000..1550a538
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/dsplib/dsplib-c66x_git.bb b/meta-ti-extras/recipes-ti/dsplib/dsplib-c66x_git.bb
new file mode 100644
index 00000000..b28d8df6
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/dsplib/dsplib-c674x_git.bb b/meta-ti-extras/recipes-ti/dsplib/dsplib-c674x_git.bb
new file mode 100644
index 00000000..47974ea1
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/dsplib/dsplib.inc b/meta-ti-extras/recipes-ti/dsplib/dsplib.inc
new file mode 100644
index 00000000..6ebc3b34
--- /dev/null
+++ b/meta-ti-extras/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 = "https"
+DSPLIB_GIT_URI = "git://git.ti.com/git/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-extras/recipes-ti/framework-components/ti-framework-components.inc b/meta-ti-extras/recipes-ti/framework-components/ti-framework-components.inc
new file mode 100644
index 00000000..81407ed7
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+
+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-extras/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb b/meta-ti-extras/recipes-ti/framework-components/ti-framework-components_2.26.00.01.bb
new file mode 100644
index 00000000..1ec10b15
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb b/meta-ti-extras/recipes-ti/framework-components/ti-framework-components_3.40.02.07.bb
new file mode 100644
index 00000000..56c00283
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/imglib/imglib-c66x.inc b/meta-ti-extras/recipes-ti/imglib/imglib-c66x.inc
new file mode 100644
index 00000000..ab5cbdb6
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb b/meta-ti-extras/recipes-ti/imglib/imglib-c66x_3.1.1.0.bb
new file mode 100644
index 00000000..e614352c
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/includes/ti-eula-unpack.inc b/meta-ti-extras/recipes-ti/includes/ti-eula-unpack.inc
new file mode 100644
index 00000000..ead06100
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/includes/ti-paths.inc b/meta-ti-extras/recipes-ti/includes/ti-paths.inc
new file mode 100644
index 00000000..e8b0f17b
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-paths.inc
@@ -0,0 +1,60 @@
+installdir = "${datadir}/ti"
+
+export TOOLCHAIN_PATH ?= "${STAGING_DIR_NATIVE}${prefix_native}/bin/${TARGET_SYS}"
+
+# This is where do_install will put it
+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 CG_XML_INSTALL_DIR_RECIPE = "${installdir}/ti-cg-xml-tree"
+export DSPLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c66x-tree"
+export DSPLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c674x-tree"
+export DSPLIB_C64P_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-c64p-tree"
+export EDMA3_LLD_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-tree"
+export FC_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components-tree"
+export GCC_ARM_NONE_TOOLCHAIN_RECIPE = "${installdir}/gcc-arm-none-eabi"
+export IMGLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-imglib-c66x-tree"
+export IPC_INSTALL_DIR_RECIPE = "${installdir}/ti-ipc-tree"
+export M4_TOOLCHAIN_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt-arm"
+export MATHLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c66x-tree"
+export MATHLIB_C674_INSTALL_DIR_RECIPE = "${installdir}/ti-mathlib-c674x-tree"
+export MPM_INSTALL_DIR_RECIPE = "${installdir}/ti-mpm-tree"
+export OMP_INSTALL_DIR_RECIPE = "${installdir}/ti-omp-tree"
+export OSAL_INSTALL_DIR_RECIPE = "${installdir}/ti-osal-tree"
+export PDK_INSTALL_DIR_RECIPE = "${installdir}/ti-pdk-tree"
+export SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-sysbios-tree"
+export SWTOOLS_INSTALL_DIR_RECIPE = "${installdir}/ti-swtools-tree"
+export TI_CGT_PRU_INSTALL_DIR_RECIPE = "${installdir}/cgt-pru"
+export TI_CGT6X_7_INSTALL_DIR_RECIPE = "${installdir}/cgt6x-7"
+export TI_CGT7X_INSTALL_DIR_RECIPE = "${installdir}/cgt-c7x"
+export VLIB_C66_INSTALL_DIR_RECIPE = "${installdir}/ti-vlib-c66x-tree"
+export XDAIS_INSTALL_DIR_RECIPE = "${installdir}/ti-xdais-tree"
+export XDC_INSTALL_DIR_RECIPE = "${installdir}/ti-xdctools-tree"
+
+# This is where the tools will end up in sysroot
+export CE_INSTALL_DIR = "${STAGING_DIR_TARGET}${CE_INSTALL_DIR_RECIPE}"
+export CODEGEN_ARM_INSTALL_DIR = "${STAGING_DIR_TARGET}${CODEGEN_ARM_INSTALL_DIR_RECIPE}"
+export CG_XML_INSTALL_DIR = "${STAGING_DIR_NATIVE}${CG_XML_INSTALL_DIR_RECIPE}"
+export DSPLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C66_INSTALL_DIR_RECIPE}"
+export DSPLIB_C674_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C674_INSTALL_DIR_RECIPE}"
+export DSPLIB_C64P_INSTALL_DIR = "${STAGING_DIR_TARGET}${DSPLIB_C64P_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_INSTALL_DIR = "${STAGING_DIR_TARGET}${EDMA3_LLD_INSTALL_DIR_RECIPE}"
+export FC_INSTALL_DIR = "${STAGING_DIR_TARGET}${FC_INSTALL_DIR_RECIPE}"
+export GCC_ARM_NONE_TOOLCHAIN = "${STAGING_DIR_NATIVE}${GCC_ARM_NONE_TOOLCHAIN_RECIPE}"
+export IMGLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${IMGLIB_C66_INSTALL_DIR_RECIPE}"
+export IPC_INSTALL_DIR = "${STAGING_DIR_TARGET}${IPC_INSTALL_DIR_RECIPE}"
+export M4_TOOLCHAIN_INSTALL_DIR = "${STAGING_DIR_NATIVE}${M4_TOOLCHAIN_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 MPM_INSTALL_DIR = "${STAGING_DIR_TARGET}${MPM_INSTALL_DIR_RECIPE}"
+export OMP_INSTALL_DIR = "${STAGING_DIR_TARGET}${OMP_INSTALL_DIR_RECIPE}"
+export OSAL_INSTALL_DIR = "${STAGING_DIR_TARGET}${OSAL_INSTALL_DIR_RECIPE}"
+export PDK_INSTALL_DIR = "${STAGING_DIR_TARGET}${PDK_INSTALL_DIR_RECIPE}"
+export SWTOOLS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SWTOOLS_INSTALL_DIR_RECIPE}"
+export SYSBIOS_INSTALL_DIR = "${STAGING_DIR_TARGET}${SYSBIOS_INSTALL_DIR_RECIPE}"
+export TI_CGT_PRU_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT_PRU_INSTALL_DIR_RECIPE}"
+export TI_CGT6X_7_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT6X_7_INSTALL_DIR_RECIPE}"
+export TI_CGT7X_INSTALL_DIR = "${STAGING_DIR_NATIVE}${TI_CGT7X_INSTALL_DIR_RECIPE}"
+export VLIB_C66_INSTALL_DIR = "${STAGING_DIR_TARGET}${VLIB_C66_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}"
diff --git a/meta-ti-extras/recipes-ti/includes/ti-staging.inc b/meta-ti-extras/recipes-ti/includes/ti-staging.inc
new file mode 100644
index 00000000..f18d017c
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/includes/ti-unpack.inc b/meta-ti-extras/recipes-ti/includes/ti-unpack.inc
new file mode 100644
index 00000000..13068843
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/includes/ti-unpack.inc
@@ -0,0 +1,82 @@
+# 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)
+
+ 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-extras/recipes-ti/ipc/ti-ipc-examples-linux/0001-examples-ClusterMgr-sys_errlist-has-been-deprecated-.patch b/meta-ti-extras/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-extras/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-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples-linux_git.bb
new file mode 100644
index 00000000..81706592
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/ipc/ti-ipc-examples.inc b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples.inc
new file mode 100644
index 00000000..09352505
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples.inc
@@ -0,0 +1,31 @@
+HOMEPAGE = "http://processors.wiki.ti.com/index.php/Category:IPC"
+require recipes-ti/ipc/ti-ipc-common.inc
+require ti-ipc-rtos.inc
+
+LICENSE = "BSD-3-Clause"
+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-extras/recipes-ti/ipc/ti-ipc-examples_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-examples_git.bb
new file mode 100644
index 00000000..bcc8674e
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/ipc/ti-ipc-rtos.inc b/meta-ti-extras/recipes-ti/ipc/ti-ipc-rtos.inc
new file mode 100644
index 00000000..14ac7c77
--- /dev/null
+++ b/meta-ti-extras/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/git/ipc/ipc-examples.git"
+TI_IPC_EXAMPLES_DEST_SUFFIX = "git/ipc-examples"
+TI_IPC_EXAMPLES_GIT_PROTOCOL = "https"
+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/git/ipc/ipc-metadata.git"
+TI_IPC_METADATA_DEST_SUFFIX = "git/ipc-metadata"
+TI_IPC_METADATA_GIT_PROTOCOL = "https"
+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-extras/recipes-ti/ipc/ti-ipc-rtos_git.bb b/meta-ti-extras/recipes-ti/ipc/ti-ipc-rtos_git.bb
new file mode 100644
index 00000000..999993ea
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/ipc/ti-ipc-rtos_git.bb
@@ -0,0 +1,101 @@
+require recipes-ti/ipc/ti-ipc.inc
+require recipes-ti/ipc/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 = "${nonarch_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}${nonarch_base_libdir}/firmware/ipc
+ cp ${CP_ARGS} ${S}/packages/ti/ipc/tests/bin/* ${D}${nonarch_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-extras/recipes-ti/jailhouse/jailhouse-inmate.bb b/meta-ti-extras/recipes-ti/jailhouse/jailhouse-inmate.bb
new file mode 100644
index 00000000..39654a53
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/jailhouse/jailhouse-inmate.bb
@@ -0,0 +1,12 @@
+require ti-jailhouse.inc
+
+do_install() {
+
+ install -d ${D}${bindir}
+ install -m 0755 ${TOOLS_SRC_DIR}/demos/ivshmem-demo ${D}${bindir}
+
+}
+
+FILES:${PN} = " \
+ ${bindir}/ivshmem-demo \
+"
diff --git a/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb b/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb
new file mode 100644
index 00000000..98ec0e9e
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/jailhouse/jailhouse_git.bb
@@ -0,0 +1,126 @@
+require ti-jailhouse.inc
+
+RDEPENDS:${PN} += "\
+ python3-curses\
+ python3-datetime\
+ python3-mmap\
+"
+
+JH_CELL_FILES ?= "*.cell"
+JH_CELL_FILES:k3 ?= "k3-*.cell"
+JH_CELL_FILES:am62xx ?= "k3-am625-*.cell"
+JH_CELL_FILES:am62pxx ?= "k3-am62p5-*.cell"
+
+JH_INMATE_DTB ?= ""
+JH_INMATE_DTB:am62xx ?= "inmate-k3-am625-sk.dtb"
+JH_INMATE_DTB:am65xx ?= "inmate-k3-am654-idk.dtb"
+JH_INMATE_DTB:am62pxx ?= "inmate-k3-am62p5-sk.dtb"
+JH_INMATE_DTB:j7 ?= "inmate-k3-j721e-evm.dtb"
+JH_INMATE_DTB:j7200-evm ?= "inmate-k3-j7200-evm.dtb"
+
+JH_LINUX_DEMO_CELL ?= ""
+JH_LINUX_DEMO_CELL:am62xx ?= "k3-am625-sk-linux-demo.cell"
+JH_LINUX_DEMO_CELL:am65xx ?= "k3-am654-idk-linux-demo.cell"
+JH_LINUX_DEMO_CELL:am62pxx ?= "k3-am62p5-sk-linux-demo.cell"
+JH_LINUX_DEMO_CELL:j7 ?= "k3-j721e-evm-linux-demo.cell"
+JH_LINUX_DEMO_CELL:j7200-evm ?= "k3-j7200-evm-linux-demo.cell"
+
+INITRAMFS_IMAGE ?= ""
+JH_RAMFS_IMAGE ?= "${INITRAMFS_IMAGE}"
+
+JH_CMDLINE ?= ""
+JH_CMDLINE:am62xx ?= "console=ttyS3,115200n8 earlycon=ns16550a,mmio32,0x02810000"
+JH_CMDLINE:am62pxx ?= "console=ttyS1,115200n8"
+JH_CMDLINE:am65xx ?= "console=ttyS1,115200n8"
+JH_CMDLINE:j7 ?= "console=ttyS3,115200n8"
+JH_CMDLINE:j7200-evm ?= "console=ttyS3,115200n8"
+
+do_install() {
+
+ # We want to install the python tools, but we do not want to use pip...
+ # At least with v0.10, we can work around this with
+ # 'PIP=":" PYTHON_PIP_USEABLE=yes'
+ oe_runmake PIP=: PYTHON=python3 PYTHON_PIP_USEABLE=yes DESTDIR=${D} install
+
+ install -d ${D}${CELL_DIR}
+ install -m 0644 ${B}/configs/${JH_ARCH}/${JH_CELL_FILES} ${D}${CELL_DIR}/
+
+ install -d ${D}${INMATES_DIR}
+ install -m 0644 ${B}/inmates/demos/${JH_ARCH}/*.bin ${D}${INMATES_DIR}
+
+ install -d ${D}/boot
+ if [ -n "${JH_RAMFS_IMAGE}" ]
+ then
+ if [ -f ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}-${MACHINE}.cpio ]
+ then
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}-${MACHINE}.cpio ${D}/boot
+ else
+ bberror "Could not find JH_RAMFS_IMAGE (${JH_RAMFS_IMAGE}-${MACHINE}.cpio)!"
+ bberror "Please make sure that \"cpio\" is in IMAGE_FSTYPES."
+ fi
+ fi
+
+ if [ -n "${JH_INMATE_DTB}" -a -n "${JH_LINUX_DEMO_CELL}" ]; then
+ cd ${TOOLS_SRC_DIR}
+
+ echo "#! /bin/sh" > ${D}${JH_DATADIR}/linux-demo.sh
+ echo "jailhouse enable ${CELL_DIR}/${JH_SYSCONFIG_CELL}" >> ${D}${JH_DATADIR}/linux-demo.sh
+ ./jailhouse-cell-linux -w ${D}${JH_DATADIR}/${JH_INMATE_DTB} \
+ -a ${JH_ARCH} -c "${JH_CMDLINE}" \
+ -d ../configs/${JH_ARCH}/dts/${JH_INMATE_DTB} \
+ -i ${D}/boot/${JH_RAMFS_IMAGE}-${MACHINE}.cpio \
+ ${D}${CELL_DIR}/${JH_LINUX_DEMO_CELL} \
+ ${DEPLOY_DIR_IMAGE}/Image \
+ | tr -cd '\11\12\15\40-\176' \
+ >> ${D}${JH_DATADIR}/linux-demo.sh
+
+ sed -i -e 's,^Modified device tree written.*,,g' ${D}${JH_DATADIR}/linux-demo.sh
+ sed -i -e 's,\${D},,g' ${D}${JH_DATADIR}/linux-demo.sh
+ sed -i -e 's, linux-loader.bin, ${JH_EXEC_DIR}/linux-loader.bin,g' ${D}${JH_DATADIR}/linux-demo.sh
+ sed -i -e 's,\${DEPLOY_DIR_IMAGE},/boot,g' ${D}${JH_DATADIR}/linux-demo.sh
+ sed -i -e '/^\s*$/d' ${D}${JH_DATADIR}/linux-demo.sh
+ chmod +x ${D}${JH_DATADIR}/linux-demo.sh
+ fi
+
+ rm ${D}${JH_DATADIR}/root-cell-config.c.tmpl
+ rm ${D}${JH_DATADIR}/jailhouse-config-collect.tmpl
+}
+
+PACKAGE_BEFORE_PN = "kernel-module-jailhouse pyjailhouse ${PN}-tools"
+
+FILES:pyjailhouse = "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PN}-tools = "${libexecdir}/${BPN}/${BPN}-*"
+
+RDEPENDS:${PN}-tools = "pyjailhouse python3-mmap python3-math python3-datetime python3-curses python3-compression"
+RDEPENDS:pyjailhouse = "python3-core python3-ctypes python3-fcntl python3-shell"
+
+RRECOMMENDS:${PN} = "${PN}-tools"
+
+INSANE_SKIP:${PN} = "ldflags"
+
+KERNEL_MODULE_AUTOLOAD += "jailhouse"
+
+# Any extra cells/inmates from external recipes/packages
+CELLS = ""
+
+python __anonymous () {
+ d.appendVarFlag('do_install', 'depends', ' virtual/kernel:do_deploy')
+ ramfs = d.getVar('JH_RAMFS_IMAGE', True)
+ if ramfs:
+ d.appendVarFlag('do_install', 'depends', ' ${JH_RAMFS_IMAGE}:do_image_complete')
+
+ # Setup DEPENDS and RDEPENDS to included cells
+ cells = d.getVar('CELLS', True) or ""
+ for cell in cells.split():
+ d.appendVar('DEPENDS', ' ' + cell)
+ d.appendVar('RDEPENDS_${PN}', ' ' + cell)
+}
+
+FILES:${PN} = " \
+ /boot/* \
+ /usr/libexec \
+ /usr/sbin/* \
+ /usr/libexec/* \
+ /usr/share/* \
+ /lib/firmware/* \
+"
diff --git a/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc b/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc
new file mode 100644
index 00000000..6faf16b8
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/jailhouse/ti-jailhouse.inc
@@ -0,0 +1,87 @@
+SUMMARY = "Linux-based partitioning hypervisor"
+DESCRIPTION = "Jailhouse is a partitioning Hypervisor based on Linux. It is able to run bare-metal applications or (adapted) \
+operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware \
+platform in a way that none of these domains, called 'cells' here, can interfere with each other in an unacceptable way."
+HOMEPAGE = "https://github.com/siemens/jailhouse"
+SECTION = "jailhouse"
+
+LICENSE = "GPL-2.0-only & BSD-2-Clause"
+
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=9fa7f895f96bde2d47fd5b7d95b6ba4d \
+"
+
+COMPATIBLE_MACHINE = "am62xx|am62pxx"
+TARGET_CC_ARCH += "${LDFLAGS}"
+PV = "0.12+git"
+SRCREV = "603819ef9a771a3c253a141220daab8e61751a43"
+BRANCH = "master"
+SRC_URI = " \
+ git://git.ti.com/git/jailhouse/ti-jailhouse.git;protocol=https;branch=${BRANCH} \
+"
+
+# Set jailhouse architecture JH_ARCH variable
+#
+# return value must match one of architectures supported by jailhouse
+#
+valid_jh_archs = "x86 arm"
+
+def map_jh_arch(a, d):
+ import re
+
+ valid_jh_archs = d.getVar('valid_jh_archs', True).split()
+
+ if re.match('(i.86|athlon|x86.64)$', a): return 'x86'
+ elif re.match('armeb$', a): return 'arm'
+ elif re.match('aarch64$', a): return 'arm64'
+ elif re.match('aarch64_be$', a): return 'arm64'
+ elif a in valid_jh_archs: return a
+ else:
+ bb.error("cannot map '%s' to a jailhouse supported architecture" % a)
+
+export JH_ARCH = "${@map_jh_arch(d.getVar('TARGET_ARCH', True), d)}"
+
+COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+DEPENDS = "virtual/kernel dtc-native python3-mako-native python3-mako make-native"
+
+inherit module python3native bash-completion deploy setuptools3
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+COMPATIBLE_MACHINE = "(ti-soc)"
+
+JH_DATADIR ?= "${datadir}/jailhouse"
+JH_EXEC_DIR ?= "${libexecdir}/jailhouse"
+CELL_DIR ?= "${JH_DATADIR}/cells"
+CELLCONF_DIR ?= "${JH_DATADIR}/configs"
+INMATES_DIR ?= "${JH_DATADIR}/inmates"
+
+JH_SYSCONFIG_CELL ?= ""
+JH_SYSCONFIG_CELL:am62xx ?= "k3-am625-sk.cell"
+JH_SYSCONFIG_CELL:am65xx ?= "k3-am654-idk.cell"
+JH_SYSCONFIG_CELL:am62pxx ?= "k3-am62p5-sk.cell"
+JH_SYSCONFIG_CELL:j7 ?= "k3-j721e-evm.cell"
+JH_SYSCONFIG_CELL:j7200-evm ?= "k3-j7200-evm.cell"
+
+do_configure() {
+ if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ];
+ then
+ cp ${STAGING_DIR_HOST}/${CELLCONF_DIR}/*.c ${S}/configs/
+ fi
+}
+
+USER_SPACE_CFLAGS = '${CFLAGS} -DLIBEXECDIR=\\\"${libexecdir}\\\" \
+ -DJAILHOUSE_VERSION=\\\"$JAILHOUSE_VERSION\\\" \
+ -Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Werror \
+ -I../driver'
+
+TOOLS_SRC_DIR = "${S}/tools"
+
+EXTRA_OEMAKE = "ARCH=${JH_ARCH} CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" KDIR=${STAGING_KERNEL_BUILDDIR}"
+
+do_compile() {
+ oe_runmake V=1
+}
diff --git a/meta-ti-extras/recipes-ti/mathlib/mathlib-c66x_git.bb b/meta-ti-extras/recipes-ti/mathlib/mathlib-c66x_git.bb
new file mode 100644
index 00000000..22683855
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/mathlib/mathlib-c674x_git.bb b/meta-ti-extras/recipes-ti/mathlib/mathlib-c674x_git.bb
new file mode 100644
index 00000000..1654baf2
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/mathlib/mathlib.inc b/meta-ti-extras/recipes-ti/mathlib/mathlib.inc
new file mode 100644
index 00000000..6ad073ec
--- /dev/null
+++ b/meta-ti-extras/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 = "https"
+MATHLIB_GIT_URI = "git://git.ti.com/git/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-extras/recipes-ti/openmp-rtos/openmp-rtos_git.bb b/meta-ti-extras/recipes-ti/openmp-rtos/openmp-rtos_git.bb
new file mode 100644
index 00000000..aa4bc6cd
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/openmp-rtos/openmp-rtos_git.bb
@@ -0,0 +1,62 @@
+DESCRIPTION = "TI OpenMP RTOS"
+HOMEPAGE = "git://git.ti.com/git/openmp/ti-openmp-dsp-runtime.git"
+LICENSE = "BSD-3-Clause"
+
+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/git/openmp/ti-openmp-dsp-runtime.git"
+OPENMP_RTOS_GIT_PROTOCOL = "https"
+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-extras/recipes-ti/osal/ti-osal.inc b/meta-ti-extras/recipes-ti/osal/ti-osal.inc
new file mode 100644
index 00000000..b0470793
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause & 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-extras/recipes-ti/osal/ti-osal_1.24.00.09.bb b/meta-ti-extras/recipes-ti/osal/ti-osal_1.24.00.09.bb
new file mode 100644
index 00000000..226458be
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/swtools/swtools_git.bb b/meta-ti-extras/recipes-ti/swtools/swtools_git.bb
new file mode 100644
index 00000000..4bcd6754
--- /dev/null
+++ b/meta-ti-extras/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-3-Clause"
+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 = "https"
+SWTOOLS_GIT_URI = "git://git.ti.com/git/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-extras/recipes-ti/vlib/vlib-c66x.inc b/meta-ti-extras/recipes-ti/vlib/vlib-c66x.inc
new file mode 100644
index 00000000..6b5e186c
--- /dev/null
+++ b/meta-ti-extras/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 = "arch"
diff --git a/meta-ti-extras/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb b/meta-ti-extras/recipes-ti/vlib/vlib-c66x_3.2.1.0.bb
new file mode 100644
index 00000000..e3742d10
--- /dev/null
+++ b/meta-ti-extras/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-extras/recipes-ti/xdais/ti-xdais.inc b/meta-ti-extras/recipes-ti/xdais/ti-xdais.inc
new file mode 100644
index 00000000..67d19022
--- /dev/null
+++ b/meta-ti-extras/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 = "GPL-2.0-only"
+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-extras/recipes-ti/xdais/ti-xdais_6.26.01.03.bb b/meta-ti-extras/recipes-ti/xdais/ti-xdais_6.26.01.03.bb
new file mode 100644
index 00000000..ee9826e6
--- /dev/null
+++ b/meta-ti-extras/recipes-ti/xdais/ti-xdais_6.26.01.03.bb
@@ -0,0 +1,9 @@
+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"
diff --git a/meta-ti-extras/recipes-ti/xdais/ti-xdais_7.24.00.04.bb b/meta-ti-extras/recipes-ti/xdais/ti-xdais_7.24.00.04.bb
new file mode 100644
index 00000000..8148f73a
--- /dev/null
+++ b/meta-ti-extras/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"