summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recipes/ti/ti-dsplink-module.inc169
-rw-r--r--recipes/ti/ti-dsplink-module_1.64.bb25
-rw-r--r--recipes/ti/ti-dsplink.inc239
-rw-r--r--recipes/ti/ti-dsplink_1.61.3.bb (renamed from recipes/ti/ti-dsplink-module_1.61.3.bb)6
-rw-r--r--recipes/ti/ti-dsplink_1.64.bb17
5 files changed, 257 insertions, 199 deletions
diff --git a/recipes/ti/ti-dsplink-module.inc b/recipes/ti/ti-dsplink-module.inc
deleted file mode 100644
index e62174fdd7..0000000000
--- a/recipes/ti/ti-dsplink-module.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-DESCRIPTION = "DSPLINK module for TI ARM/DSP processors"
-
-require ti-paths.inc
-
-#This is a kernel module, don't set PR directly
-MACHINE_KERNEL_PR_append = "a"
-
-inherit module
-
-# compile and run time dependencies
-DEPENDS += "virtual/kernel perl-native ti-dspbios ti-cgt6x update-modules ti-xdctools"
-
-SRC_URI = "http://install.source.dir.local/dsplink_${PV}.tar.gz \
- file://loadmodules-ti-dsplink-apps.sh \
- file://unloadmodules-ti-dsplink-apps.sh"
-
-# Set the source directory
-S = "${WORKDIR}/dsplink_${PV}"
-
-# DSPLINK - Config Variable for different platform
-DSPLINKPLATFORM_dm6446 = "DAVINCI"
-DSPLINKPLATFORM_dm6467 = "DAVINCIHD"
-DSPLINKPLATFORM_omapl137 = "OMAPL1XX"
-DSPLINKPLATFORM_omapl138 = "OMAPL138"
-DSPLINKPLATFORM ?= "DAVINCI"
-
-
-DSPLINKDSPCFG_dm6446 = "DM6446GEMSHMEM"
-DSPLINKDSPCFG_dm6467 = "DM6467GEMSHMEM"
-DSPLINKDSPCFG_omapl137 = "OMAPL1XXGEMSHMEM"
-DSPLINKDSPCFG_omapl138 = "OMAPL138GEMSHMEM"
-DSPLINKDSPCFG ?= "DM6446GEMSHMEM"
-
-DSPLINKGPPOS_dm355 = "LINUX_GCC"
-DSPLINKGPPOS_dm365 = "LINUX_GCC"
-DSPLINKGPPOS_dm6446 = "MVL5G"
-DSPLINKGPPOS_dm6467 = "DM6467LSP"
-DSPLINKGPPOS_omapl137 = "ARM"
-DSPLINKGPPOS_omapl138 = "ARM"
-DSPLINKGPPOS_omap3 = "OMAPLSP"
-DSPLINKGPPOS ?= "ARM"
-
-DSPLINK = "${S}/dsplink"
-export DSPLINK
-
-STAGING_TI_DSPBIOS_DIR="${BIOS_INSTALL_DIR}"
-STAGING_TI_CGT6x_DIR="${CODEGEN_INSTALL_DIR}"
-STAGING_TI_XDCTOOL_INSTALL_DIR="${XDC_INSTALL_DIR}"
-
-do_configure() {
-
- # asm/page.h is gone with linux-libc-headers 2.6.31.
- # We can safely sed it out since it has been empty for the past 2 years
- sed -i /page.h/d ${S}/dsplink/gpp/src/api/Linux/drv_api.c || true
-
- # Run perl script to create appropriate makefiles (v1.60 and up)
- (
- cd ${DSPLINK}
- perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 \
- --dspcfg_0=${DSPLINKDSPCFG} --dspos_0=DSPBIOS5XX \
- --gppos=${DSPLINKGPPOS} --comps=ponslrmc
-
- for i in ${DSPLINK}/gpp ${DSPLINK}/dsp ; do
- cd $i
- ${XDC_INSTALL_DIR}/xdc clean
- ${XDC_INSTALL_DIR}/xdc .interfaces
- done
- )
-
-}
-
-do_compile() {
- # TODO :: KERNEL_CC, etc need replacing with user CC
- # TODO :: Need to understand why OBJDUMP is required for kernel module
- # Unset these since LDFLAGS gets picked up and used incorrectly.... need
- # investigation
-
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
-
- # Build the gpp user space library
- cd ${DSPLINK}/gpp/src/api && make \
- CROSS_COMPILE="${TARGET_PREFIX}" \
- CC="${KERNEL_CC}" \
- AR="${KERNEL_AR}" \
- LD="${KERNEL_LD}" \
- COMPILER="${KERNEL_CC}" \
- ARCHIVER="${KERNEL_AR}" \
- KERNEL_DIR="${STAGING_KERNEL_DIR}" \
- all
-
- # Build the gpp kernel space (debug and release)
- cd ${DSPLINK}/gpp/src && make \
- OBJDUMP="${TARGET_PREFIX}objdump" \
- CROSS_COMPILE="${TARGET_PREFIX}" \
- CC="${KERNEL_CC}" \
- AR="${KERNEL_AR}" \
- LD="${KERNEL_LD}" \
- COMPILER="${KERNEL_CC}" \
- ARCHIVER="${KERNEL_AR}" \
- KERNEL_DIR="${STAGING_KERNEL_DIR}" \
- BASE_BUILDOS="${STAGING_KERNEL_DIR}" \
- all
-
- # Build the gpp samples
- cd ${DSPLINK}/gpp/src/samples
- cd ${DSPLINK}/gpp/src/samples && make \
- BASE_TOOLCHAIN="${TOOLCHAIN_PATH}" \
- BASE_CGTOOLS="${BASE_TOOLCHAIN}/bin" \
- OSINC_PLATFORM="${TOOLCHAIN_PATH}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include" \
- OSINC_TARGET="${BASE_TOOLCHAIN}/target/usr/include" \
- CROSS_COMPILE="${TARGET_PREFIX}" \
- CC="${KERNEL_CC}" \
- AR="${KERNEL_AR}" \
- LD="${KERNEL_LD}" \
- COMPILER="${KERNEL_CC}" \
- LINKER="${KERNEL_CC}" \
- ARCHIVER="${KERNEL_AR}" \
- KERNEL_DIR="${STAGING_KERNEL_DIR}" \
- clean all
-
- # Build the dsp library (debug and release)
- cd ${DSPLINK}/dsp/src && make \
- BASE_CGTOOLS="${STAGING_TI_CGT6x_DIR}" \
- BASE_SABIOS="${STAGING_TI_DSPBIOS_DIR}" \
- clean all
-
- # Build the dsp samples (debug and release)
- cd ${DSPLINK}/dsp/src/samples && make \
- BASE_CGTOOLS="${STAGING_TI_CGT6x_DIR}" \
- BASE_SABIOS="${STAGING_TI_DSPBIOS_DIR}" \
- clean all
-}
-
-do_install () {
- # DSPLINK driver - kernel module
- install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
- install -m 0755 ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
-
- # DSPLINK library
- install -d ${D}/${installdir}/dsplink/libs
- install -m 0755 ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/dsplink.lib ${D}/${installdir}/dsplink/libs
-
- # DSPLINK sample apps
- install -d ${D}/${installdir}/dsplink/apps
-
- cp ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/*gpp ${D}/${installdir}/dsplink/apps
-
- for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do
- cp ${i} ${D}/${installdir}/dsplink/apps
- done
-
- # DSPLINK test app module un/load scripts
- install ${WORKDIR}/loadmodules-ti-dsplink-apps.sh ${D}/${installdir}/dsplink/apps
- install ${WORKDIR}/unloadmodules-ti-dsplink-apps.sh ${D}/${installdir}/dsplink/apps
-
- # install the complete tree as well
- install -d ${D}${LINK_INSTALL_DIR_RECIPE}
- cp -pPrf ${S}/* ${D}${LINK_INSTALL_DIR_RECIPE}
-}
-
-require ti-staging.inc
-
-PACKAGES += " ti-dsplink-apps"
-FILES_ti-dsplink-apps = "${installdir}/dsplink/*"
-
-# Disable QA check untils we figure out how to pass LDFLAGS in build
-INSANE_SKIP_${PN} = True
-INSANE_SKIP_ti-dsplink-apps = True
-
diff --git a/recipes/ti/ti-dsplink-module_1.64.bb b/recipes/ti/ti-dsplink-module_1.64.bb
deleted file mode 100644
index 0fa92d9ed2..0000000000
--- a/recipes/ti/ti-dsplink-module_1.64.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-require ti-dsplink-module.inc
-
-SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/DSPLink/${PV}/exports/dsplink_linux_${PV}.tar.gz;name=dsplinktarball \
- file://loadmodules-ti-dsplink-apps.sh \
- file://unloadmodules-ti-dsplink-apps.sh"
-
-SRC_URI[dsplinktarball.md5sum] = "90223da7c88af57d12936adeba1a0661"
-SRC_URI[dsplinktarball.sha256sum] = "32b6fbae2b61f5f71ab3eae9d2f5ad6b75d682ad8bde9963152830be1f8d286b"
-
-# tconf from xdctools dislikes '.' in pwd :/
-PE = "1"
-PV = "1_64"
-PR_append = "a"
-
-S = "${WORKDIR}/dsplink_linux_${PV}"
-
-# Cheat a bit with includes
-# SZ_1k = 0x00000400
-# /OE/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi/ti-dsplink-module-1_64-r50/dsplink_linux_1_64/dsplink/gpp/src/../../gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c:127: error: 'SZ_2K' undeclared (first use in this function)
-
-do_compile_prepend() {
- sed -i s:SZ_2K:0x00000800:g ${S}/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c
-}
-
-
diff --git a/recipes/ti/ti-dsplink.inc b/recipes/ti/ti-dsplink.inc
new file mode 100644
index 0000000000..6c9089ad62
--- /dev/null
+++ b/recipes/ti/ti-dsplink.inc
@@ -0,0 +1,239 @@
+DESCRIPTION = "DSPLINK Inter-Processor Communications (IPC) for TI ARM/DSP processors"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/DSPLink"
+
+# TODO :: KERNEL_CC, should use for kernel cc for module build?
+# TODO :: Need to understand why OBJDUMP is required for kernel module
+# TODO :: Unset required since LDFLAGS gets picked up and used incorrectly - investigate
+# TODO :: Do we need to pass so many variables to each make step?
+
+require ti-paths.inc
+require ti-staging.inc
+
+PROVIDES = "ti-dsplink-module"
+PROVIDES += "ti-dsplink-examples"
+
+# This package builds a kernel module, use kernel PR as base and append a local version
+PR = "${MACHINE_KERNEL_PR}"
+PR_append = "b"
+
+S = "${WORKDIR}/dsplink_linux_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/DSPLink/${PV}/exports/dsplink_linux_${PV}.tar.gz;name=dsplinktarball \
+ file://loadmodules-ti-dsplink-apps.sh \
+ file://unloadmodules-ti-dsplink-apps.sh"
+
+DEPENDS = "ti-dspbios ti-xdctools ti-cgt6x"
+DEPENDS += "virtual/kernel perl-native"
+
+# SOC_FAMILY configuration
+
+DSPLINKPLATFORM_dm6446 = "DAVINCI"
+DSPLINKPLATFORM_dm6467 = "DAVINCIHD"
+DSPLINKPLATFORM_omapl137 = "OMAPL1XX"
+DSPLINKPLATFORM_omapl138 = "OMAPL138"
+DSPLINKPLATFORM_omap3 = "OMAP3530"
+DSPLINKPLATFORM ?= "<UNDEFINED_DSPLINKPLATFORM>"
+
+DSPLINKDSPCFG_dm6446 = "DM6446GEMSHMEM"
+DSPLINKDSPCFG_dm6467 = "DM6467GEMSHMEM"
+DSPLINKDSPCFG_omapl137 = "OMAPL1XXGEMSHMEM"
+DSPLINKDSPCFG_omapl138 = "OMAPL138GEMSHMEM"
+DSPLINKDSPCFG_omap3 = "OMAP3530SHMEM"
+DSPLINKDSPCFG ?= "<UNDEFINED_DSPLINKDSPCFG>"
+
+DSPLINKGPPOS_dm6446 = "MVL5G"
+DSPLINKGPPOS_dm6467 = "DM6467LSP"
+DSPLINKGPPOS_omapl137 = "ARM"
+DSPLINKGPPOS_omapl138 = "ARM"
+DSPLINKGPPOS_omap3 = "OMAPLSP"
+DSPLINKGPPOS ?= "<DEFINED_DSPLINKGPPOS>"
+
+# Exported Variable needed by build
+DSPLINK = "${S}/dsplink"
+export DSPLINK
+
+do_configure() {
+
+ # asm/page.h is gone with linux-libc-headers 2.6.31.
+ # We can safely sed it out since it has been empty for the past 2 years
+ sed -i /page.h/d ${S}/dsplink/gpp/src/api/Linux/drv_api.c || true
+
+ # Run perl script to create appropriate makefiles (v1.60 and up)
+ (
+ cd ${DSPLINK}
+ perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 \
+ --dspcfg_0=${DSPLINKDSPCFG} --dspos_0=DSPBIOS5XX \
+ --gppos=${DSPLINKGPPOS} --comps=ponslrmc
+ )
+
+}
+
+do_prepsources () {
+
+ # Prepare the tree for rebuiling - generate makefiles and clean
+ XDCPATH=${DSPLINK} ${XDC_INSTALL_DIR}/xdc .make -PR .
+ XDCPATH=${DSPLINK} ${XDC_INSTALL_DIR}/xdc clean -PR .
+
+ # Clean the gpp user space library
+ cd ${DSPLINK}/gpp/src/api && make \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ clean
+
+ # Clean the gpp kernel space (debug and release)
+ cd ${DSPLINK}/gpp/src && make \
+ OBJDUMP="${TARGET_PREFIX}objdump" \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ BASE_BUILDOS="${STAGING_KERNEL_DIR}" \
+ clean
+
+ # Clean the gpp samples
+ cd ${DSPLINK}/gpp/src/samples && make \
+ BASE_TOOLCHAIN="${TOOLCHAIN_PATH}" \
+ BASE_CGTOOLS="${BASE_TOOLCHAIN}/bin" \
+ OSINC_PLATFORM="${TOOLCHAIN_PATH}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include" \
+ OSINC_TARGET="${BASE_TOOLCHAIN}/target/usr/include" \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ LINKER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ clean
+
+ # Clean the dsp library (debug and release)
+ cd ${DSPLINK}/dsp/src && make \
+ BASE_CGTOOLS="${CODEGEN_INSTALL_DIR}" \
+ BASE_SABIOS="${BIOS_INSTALL_DIR}" \
+ clean
+
+ # Clean the dsp samples (debug and release)
+ cd ${DSPLINK}/dsp/src/samples && make \
+ BASE_CGTOOLS="${CODEGEN_INSTALL_DIR}" \
+ BASE_SABIOS="${BIOS_INSTALL_DIR}" \
+ clean
+
+}
+
+addtask prepsources after do_configure before do_compile
+
+do_compile() {
+ # TODO :: KERNEL_CC, should use for kernel module build?
+ # TODO :: Need to understand why OBJDUMP is required for kernel module
+ # Unset these since LDFLAGS gets picked up and used incorrectly.... need
+ # investigation
+
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+
+ # Build the gpp user space library
+ cd ${DSPLINK}/gpp/src/api && make \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ all
+
+ # Build the gpp kernel space (debug and release)
+ cd ${DSPLINK}/gpp/src && make \
+ OBJDUMP="${TARGET_PREFIX}objdump" \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ BASE_BUILDOS="${STAGING_KERNEL_DIR}" \
+ all
+
+ # Build the gpp samples
+ cd ${DSPLINK}/gpp/src/samples && make \
+ BASE_TOOLCHAIN="${TOOLCHAIN_PATH}" \
+ BASE_CGTOOLS="${BASE_TOOLCHAIN}/bin" \
+ OSINC_PLATFORM="${TOOLCHAIN_PATH}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include" \
+ OSINC_TARGET="${BASE_TOOLCHAIN}/target/usr/include" \
+ CROSS_COMPILE="${TARGET_PREFIX}" \
+ CC="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ LD="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ COMPILER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ LINKER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}ar" \
+ KERNEL_DIR="${STAGING_KERNEL_DIR}" \
+ all
+
+ # Build the dsp library (debug and release)
+ cd ${DSPLINK}/dsp/src && make \
+ BASE_CGTOOLS="${CODEGEN_INSTALL_DIR}" \
+ BASE_SABIOS="${BIOS_INSTALL_DIR}" \
+ all
+
+ # Build the dsp samples (debug and release)
+ cd ${DSPLINK}/dsp/src/samples && make \
+ BASE_CGTOOLS="${CODEGEN_INSTALL_DIR}" \
+ BASE_SABIOS="${BIOS_INSTALL_DIR}" \
+ all
+}
+
+KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')}"
+
+do_install () {
+
+ # Install the kernel module
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
+ install -m 0755 ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
+
+ # Install the example apps
+ install -d ${D}/${installdir}/ti-dsplink-examples/
+ cp ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/*gpp ${D}/${installdir}/ti-dsplink-examples
+
+ for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do
+ cp ${i} ${D}/${installdir}/ti-dsplink-examples
+ done
+
+ # Install the example apps module un/load scripts
+ install ${WORKDIR}/loadmodules-ti-dsplink-apps.sh ${D}/${installdir}/ti-dsplink-examples
+ install ${WORKDIR}/unloadmodules-ti-dsplink-apps.sh ${D}/${installdir}/ti-dsplink-examples
+
+ # Install/Stage the Source Tree
+ install -d ${D}${LINK_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${LINK_INSTALL_DIR_RECIPE}
+}
+
+PACKAGES += "ti-dsplink-module"
+FILES_ti-dsplink-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/dsplinkk.ko"
+RDEPENDS_ti-dsplink-module += "update-modules"
+
+pkg_postinst_ti-dsplink-module_append () {
+ if [ -n "$D" ]; then
+ exit 1
+ fi
+ depmod -a
+ update-modules || true
+}
+
+pkg_postrm_ti-dsplink-module_append () {
+ update-modules || true
+}
+
+PACKAGES += "ti-dsplink-examples"
+RDEPENDS_ti-dsplink-examples += "ti-dsplink-module"
+RDEPENDS_ti-dsplink-examples_omap3 += "ti-lpm-module"
+FILES_ti-dsplink-examples = "${installdir}/ti-dsplink-examples/*"
+INSANE_SKIP_ti-dsplink-examples = True
diff --git a/recipes/ti/ti-dsplink-module_1.61.3.bb b/recipes/ti/ti-dsplink_1.61.3.bb
index 8da781036f..83db044184 100644
--- a/recipes/ti/ti-dsplink-module_1.61.3.bb
+++ b/recipes/ti/ti-dsplink_1.61.3.bb
@@ -1,9 +1,5 @@
-require ti-dsplink-module.inc
+require ti-dsplink.inc
-#This is a kernel module, don't set PR directly
-MACHINE_KERNEL_PR_append = "b"
-
-# tconf from xdctools dislikes '.' in pwd :/
PV = "1_61_03"
do_configure_append() {
diff --git a/recipes/ti/ti-dsplink_1.64.bb b/recipes/ti/ti-dsplink_1.64.bb
new file mode 100644
index 0000000000..add140747f
--- /dev/null
+++ b/recipes/ti/ti-dsplink_1.64.bb
@@ -0,0 +1,17 @@
+require ti-dsplink.inc
+
+PE = "1"
+PV = "1_64"
+
+SRC_URI[dsplinktarball.md5sum] = "90223da7c88af57d12936adeba1a0661"
+SRC_URI[dsplinktarball.sha256sum] = "32b6fbae2b61f5f71ab3eae9d2f5ad6b75d682ad8bde9963152830be1f8d286b"
+
+# Cheat a bit with includes
+# SZ_1k = 0x00000400
+# ../gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c:127: error: 'SZ_2K' undeclared (first use in this function)
+
+do_compile_prepend() {
+ sed -i s:SZ_2K:0x00000800:g ${S}/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c
+}
+
+