aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoen Kooi <koen@dominion.thruhere.net>2011-03-14 19:10:15 +0100
committerKoen Kooi <koen@dominion.thruhere.net>2011-03-14 19:10:15 +0100
commitc1af7e34f0f780e7fdd93a529445fedb3057c5f3 (patch)
tree5c5d1a77cd2d492cbce4f2bf7823bf02b3764474
parent4884692d7f6b9cc76ab3535fc0790a148b1137f6 (diff)
downloadopenembedded-core-contrib-c1af7e34f0f780e7fdd93a529445fedb3057c5f3.tar.gz
recipes-ti: initial check in of dsplink stack
* the focus was on to get it to build, not to make the recipes perfect Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-rw-r--r--recipes-ti/bios/ti-dspbios.inc25
-rw-r--r--recipes-ti/bios/ti-dspbios_5.41.07.24.bb8
-rw-r--r--recipes-ti/devtools/ti-cgt6x.inc26
-rw-r--r--recipes-ti/devtools/ti-cgt6x_6.1.17.bb9
-rw-r--r--recipes-ti/devtools/ti-xdctools.inc65
-rw-r--r--recipes-ti/devtools/ti-xdctools/arm-linker-hack.diff19
-rw-r--r--recipes-ti/devtools/ti-xdctools_3.20.03.63.bb7
-rw-r--r--recipes-ti/devtools/ti-xdctools_3.20.06.81.bb12
-rw-r--r--recipes-ti/dsplink/ti-dsplink.inc208
-rw-r--r--recipes-ti/dsplink/ti-dsplink/dsplink-BKL-fix.patch71
-rw-r--r--recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_dm6446_build_support.patch337
-rw-r--r--recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_omapl137_build_support.patch288
-rw-r--r--recipes-ti/dsplink/ti-dsplink/dsplink_1_64_kernel_2_6_33_autoconf.patch335
-rwxr-xr-xrecipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-loadmodules.sh25
-rwxr-xr-xrecipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-run.sh25
-rwxr-xr-xrecipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-unloadmodules.sh5
-rw-r--r--recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb14
-rw-r--r--recipes-ti/includes/ti-eula-unpack.inc71
-rw-r--r--recipes-ti/includes/ti-paths.inc56
-rw-r--r--recipes-ti/includes/ti-staging.inc8
-rw-r--r--recipes-ti/local-power-manager/ti-local-power-manager.inc130
-rw-r--r--recipes-ti/local-power-manager/ti-local-power-manager/lpm-1_24_01-replace-define-OPT.patch24
-rw-r--r--recipes-ti/local-power-manager/ti-local-power-manager/lpm-BKL-fix.patch72
-rw-r--r--recipes-ti/local-power-manager/ti-local-power-manager_1.24.02.09.bb10
24 files changed, 1850 insertions, 0 deletions
diff --git a/recipes-ti/bios/ti-dspbios.inc b/recipes-ti/bios/ti-dspbios.inc
new file mode 100644
index 0000000000..4bad83490e
--- /dev/null
+++ b/recipes-ti/bios/ti-dspbios.inc
@@ -0,0 +1,25 @@
+DESCRIPTION = "TI DSP/BIOS v5 Kernel"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/dspbios"
+SECTION = "devel"
+LICENSE = "TI"
+
+LIC_FILES_CHKSUM = "file://docs/license/TSPA_License_Agreement_DSP_BIOS_bios_5_41_07_24.html;md5=86096a08e4088ef291c98313d82b8742"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+PR = "r1"
+
+S = "${WORKDIR}/bios_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/dspbios/${PV}/exports/bios_setuplinux_${PV}.bin;name=biosbin"
+
+BINFILE="bios_setuplinux_${PV}.bin"
+TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
+
+do_install() {
+ install -d ${D}${BIOS_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${BIOS_INSTALL_DIR_RECIPE}
+}
+
diff --git a/recipes-ti/bios/ti-dspbios_5.41.07.24.bb b/recipes-ti/bios/ti-dspbios_5.41.07.24.bb
new file mode 100644
index 0000000000..536939ed0d
--- /dev/null
+++ b/recipes-ti/bios/ti-dspbios_5.41.07.24.bb
@@ -0,0 +1,8 @@
+require ti-dspbios.inc
+
+PV = "5_41_07_24"
+
+SRC_URI[biosbin.md5sum] = "18301d0e1d351bcece9ce97255b8ff1b"
+SRC_URI[biosbin.sha256sum] = "1531dca674154fbe179ad5017555e963bcf3d74a47a0fbf10e8a7009639d6c34"
+
+
diff --git a/recipes-ti/devtools/ti-cgt6x.inc b/recipes-ti/devtools/ti-cgt6x.inc
new file mode 100644
index 0000000000..c9c3fda448
--- /dev/null
+++ b/recipes-ti/devtools/ti-cgt6x.inc
@@ -0,0 +1,26 @@
+DESCRIPTION = "TI DSP Code Generation Tools"
+HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
+SECTION = "devel"
+LICENSE = "TI"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=712a8c64bb70c5ea5fa193faef3bed6f"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+PR = "r4"
+
+S = "${WORKDIR}/cgt6x_${PV}"
+
+SRC_URI = "http://install.source.dir.local/ti_cgt_c6000_${PVwithdots}_setup_linux_x86.bin;name=cgt6xbin"
+
+BINFILE="ti_cgt_c6000_${PVwithdots}_setup_linux_x86.bin"
+TI_BIN_UNPK_CMDS="Y:qY:workdir: : "
+TI_BIN_UNPK_WDEXT="/cgt6x_${PV}"
+
+do_install() {
+ install -d ${D}${CODEGEN_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${CODEGEN_INSTALL_DIR_RECIPE}
+}
+
diff --git a/recipes-ti/devtools/ti-cgt6x_6.1.17.bb b/recipes-ti/devtools/ti-cgt6x_6.1.17.bb
new file mode 100644
index 0000000000..7798d400bc
--- /dev/null
+++ b/recipes-ti/devtools/ti-cgt6x_6.1.17.bb
@@ -0,0 +1,9 @@
+require ti-cgt6x.inc
+
+PE = "1"
+PV = "6_1_17"
+PVwithdots = "6.1.17"
+
+SRC_URI[cgt6xbin.md5sum] = "41ee41cc74800b06705804f7ef901447"
+SRC_URI[cgt6xbin.sha256sum] = "7e1c8b67420abf6f2f44786811d0a2b5692e76194743bed714ec9087cc1a75c7"
+
diff --git a/recipes-ti/devtools/ti-xdctools.inc b/recipes-ti/devtools/ti-xdctools.inc
new file mode 100644
index 0000000000..d462d9f0d8
--- /dev/null
+++ b/recipes-ti/devtools/ti-xdctools.inc
@@ -0,0 +1,65 @@
+DESCRIPTION = "TI XDCtools (RTSC - Real Time Software Components - http://rtsc.eclipse.org)"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc"
+SECTION = "devel"
+LICENSE = "BSD, GPLv2"
+
+LIC_FILES_CHKSUM = "file://docs/license/xdc/shelf/package.html;md5=fd6d0bfcac476bd22c1f1525a91c9807"
+
+PR = "r2"
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+require ../includes/ti-eula-unpack.inc
+
+S = "${WORKDIR}/xdctools_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/${PV}/exports/xdctools_setuplinux_${PV}.bin;name=xdcbin"
+
+BINFILE="xdctools_setuplinux_${PV}.bin"
+TI_BIN_UNPK_CMDS="Y: qY:workdir:Y"
+
+do_install() {
+ install -d ${D}${XDC_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${XDC_INSTALL_DIR_RECIPE}
+}
+
+# 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 \
+"
+
diff --git a/recipes-ti/devtools/ti-xdctools/arm-linker-hack.diff b/recipes-ti/devtools/ti-xdctools/arm-linker-hack.diff
new file mode 100644
index 0000000000..26debf8f6d
--- /dev/null
+++ b/recipes-ti/devtools/ti-xdctools/arm-linker-hack.diff
@@ -0,0 +1,19 @@
+--- a/packages/gnu/targets/arm/linkcmd.xdt 2010-12-30 19:33:53.000000000 +0100
++++ b/packages/gnu/targets/arm/linkcmd.xdt 2010-12-30 19:42:55.000000000 +0100
+@@ -40,12 +40,13 @@
+
+ %if ("BINVERS" in prog.build.target) {
+ % var _utils = xdc.loadCapsule("gnu/targets/linkUtils.xs");
++% if (prog.build.target.GCCVERS < "4.3.3") {
+ SECTIONS {
+ `_utils.genSections(prog)`
+ }
+-
+-% if (!prog.build.target.noStdLinkScript
+-% && prog.build.target.BINVERS >= "2.19") {
++% }
++% if (prog.build.target.noStdLinkScript
++% && prog.build.target.BINVERS >= "2.19") {
+ INSERT BEFORE .gnu.attributes
+ % }
+
diff --git a/recipes-ti/devtools/ti-xdctools_3.20.03.63.bb b/recipes-ti/devtools/ti-xdctools_3.20.03.63.bb
new file mode 100644
index 0000000000..a743a6d3be
--- /dev/null
+++ b/recipes-ti/devtools/ti-xdctools_3.20.03.63.bb
@@ -0,0 +1,7 @@
+require ti-xdctools.inc
+
+PV = "3_20_03_63"
+
+SRC_URI[xdcbin.md5sum] = "ef3e7ab06dca1d346731d87a6525d2a7"
+SRC_URI[xdcbin.sha256sum] = "da5df132c96c8d73c6ca1e03dcd3b854a1850e3abab04749d858d6fbb9111e0f"
+
diff --git a/recipes-ti/devtools/ti-xdctools_3.20.06.81.bb b/recipes-ti/devtools/ti-xdctools_3.20.06.81.bb
new file mode 100644
index 0000000000..110ee356e5
--- /dev/null
+++ b/recipes-ti/devtools/ti-xdctools_3.20.06.81.bb
@@ -0,0 +1,12 @@
+require ti-xdctools.inc
+
+PV = "3_20_06_81"
+
+# This fixes c6accel, but breaks codec-engine and lpm
+#SRC_URI += "file://arm-linker-hack.diff"
+
+SRC_URI[xdcbin.md5sum] = "65151268d6be6ad6eb940ef7ed03af16"
+SRC_URI[xdcbin.sha256sum] = "8ea6b851521ce41fe0b4a349b2d922af7e70f48c50ad9fd21f62627446a834f8"
+
+
+
diff --git a/recipes-ti/dsplink/ti-dsplink.inc b/recipes-ti/dsplink/ti-dsplink.inc
new file mode 100644
index 0000000000..396b35610a
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink.inc
@@ -0,0 +1,208 @@
+DESCRIPTION = "DSPLINK Inter-Processor Communications (IPC) for TI ARM/DSP processors"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/DSPLink/index.html"
+SECTION = "devel"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://dsplink/doc/gpl_2.0.pdf;md5=70996be607b61df78ce46093f4afe2bd"
+
+
+# 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 ../includes/ti-paths.inc
+require ../includes/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 = "i"
+
+S = "${WORKDIR}/dsplink_linux_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/${PV_DL_PATH}/dsplink_linux_${PV}.tar.gz;name=dsplinktarball \
+ file://ti-dsplink-examples-run.sh \
+ file://ti-dsplink-examples-loadmodules.sh \
+ file://ti-dsplink-examples-unloadmodules.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>"
+
+DSPLINKDSP_dm6446 = "DM6446GEM_0"
+DSPLINKDSP_dm6467 = "DM6467GEM_0"
+DSPLINKDSP_omapl137 = "OMAPL1XXGEM_0"
+DSPLINKDSP_omapl138 = "OMAPL138GEM_0"
+DSPLINKDSP_omap3 = "OMAP3530_0"
+DSPLINKDSP ?= "<UNDEFINED_DSPLINKDSP>"
+
+DSPLINKGPPOS_dm6446 = "DM6446LSP"
+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() {
+
+ # 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 - clean and generate interfaces
+ XDCPATH=${DSPLINK} ${XDC_INSTALL_DIR}/xdc .make -PR .
+ XDCPATH=${DSPLINK} ${XDC_INSTALL_DIR}/xdc clean -PR .
+ XDCPATH=${DSPLINK} ${XDC_INSTALL_DIR}/xdc .interfaces -PR .
+}
+
+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}/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/${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}/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/${TARGET_PREFIX}ar" \
+ LD="${TOOLCHAIN_PATH}/${TARGET_PREFIX}ld" \
+ COMPILER="${TOOLCHAIN_PATH}/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/${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}/${TARGET_PREFIX}gcc" \
+ LD="${TOOLCHAIN_PATH}/${TARGET_PREFIX}gcc" \
+ AR="${TOOLCHAIN_PATH}/${TARGET_PREFIX}ar" \
+ COMPILER="${TOOLCHAIN_PATH}/${TARGET_PREFIX}gcc" \
+ LINKER="${TOOLCHAIN_PATH}/${TARGET_PREFIX}gcc" \
+ ARCHIVER="${TOOLCHAIN_PATH}/${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 (gpp and dsp)
+ install -d ${D}/${installdir}/ti-dsplink-examples/
+ cp ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE/*gpp ${D}/${installdir}/ti-dsplink-examples
+ cp ${DSPLINK}/dsp/export/BIN/DspBios/${DSPLINKPLATFORM}/${DSPLINKDSP}/RELEASE/*.out ${D}/${installdir}/ti-dsplink-examples
+
+ # Install the example apps module un/load scripts
+ install ${WORKDIR}/ti-dsplink-examples-loadmodules.sh ${D}/${installdir}/ti-dsplink-examples
+ install ${WORKDIR}/ti-dsplink-examples-unloadmodules.sh ${D}/${installdir}/ti-dsplink-examples
+ install ${WORKDIR}/ti-dsplink-examples-run.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}
+ chmod -R +w ${D}${LINK_INSTALL_DIR_RECIPE}
+
+ # Changes path of include txt file to use LINK_INSTALL_DIR variable for GPP
+ for i in $(find ${D}${LINK_INSTALL_DIR_RECIPE}/dsplink/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/*/ -name "*.txt"); do
+ sed -i ${i} -e s=${S}=\$\{LINK_INSTALL_DIR\}=g
+ done
+
+ # Changes path of include txt file to use LINK_INSTALL_DIR variable for DSP
+ for i in $(find ${D}${LINK_INSTALL_DIR_RECIPE}/dsplink/dsp/export/BIN/DspBios/${DSPLINKPLATFORM}/${DSPLINKDSP}/*/ -name "*.txt"); do
+ sed -i ${i} -e s=${S}=\$\{LINK_INSTALL_DIR\}=g
+ done
+
+}
+
+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 () {
+#!/bin/sh
+if [ -n "$D" ]; then
+ exit 1
+fi
+
+depmod -a
+update-modules || true
+}
+
+pkg_postrm_ti-dsplink-module () {
+#!/bin/sh
+update-modules || true
+}
+
+PACKAGES += "ti-dsplink-examples"
+RDEPENDS_ti-dsplink-examples_append = " ti-dsplink-module"
+RDEPENDS_ti-dsplink-examples_append_omap3 += " ti-lpm-module ti-lpm-utils"
+FILES_ti-dsplink-examples = "${installdir}/ti-dsplink-examples/*"
+INSANE_SKIP_ti-dsplink-examples = True
diff --git a/recipes-ti/dsplink/ti-dsplink/dsplink-BKL-fix.patch b/recipes-ti/dsplink/ti-dsplink/dsplink-BKL-fix.patch
new file mode 100644
index 0000000000..eab3ec6386
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/dsplink-BKL-fix.patch
@@ -0,0 +1,71 @@
+From e0931bf37628727903a567f1c7096ae0011edc3d Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 4 Jan 2011 13:49:05 +0100
+Subject: [PATCH] Adjust drv_pmgr for post 2.6.36 ioctl changes
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c | 17 ++++++++++++++++-
+ 1 files changed, 16 insertions(+), 1 deletions(-)
+
+diff --git a/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c b/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c
+index a9b831c..e4a836d 100644
+--- a/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c
++++ b/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c
+@@ -399,10 +399,15 @@ DRV_Release (struct inode * inode, struct file * filp) ;
+ * @see None
+ * ----------------------------------------------------------------------------
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
+ STATIC
+ int
+ DRV_Ioctl (struct inode * inode, struct file * filp,
+ unsigned int cmd, unsigned long args) ;
++#else
++STATIC
++int DRV_Ioctl (struct file *filp, unsigned int cmd, unsigned long args);
++#endif
+
+
+ /** ----------------------------------------------------------------------------
+@@ -495,7 +500,11 @@ STATIC struct file_operations driverOps = {
+ open: DRV_Open,
+ flush: DRV_Flush,
+ release: DRV_Release,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
+ ioctl: DRV_Ioctl,
++#else
++ unlocked_ioctl: DRV_Ioctl,
++#endif
+ mmap: DRV_Mmap,
+ read: DRV_Read,
+ .owner = THIS_MODULE
+@@ -817,10 +826,16 @@ DRV_Release (struct inode * inode, struct file * filp)
+ * @desc Function to invoke the APIs through ioctl.
+ * ----------------------------------------------------------------------------
+ */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
+ STATIC
+ NORMAL_API
+ int DRV_Ioctl (struct inode * inode, struct file * filp,
+ unsigned int cmd, unsigned long args)
++#else
++STATIC
++NORMAL_API
++int DRV_Ioctl (struct file *filp, unsigned int cmd, unsigned long args)
++#endif
+ {
+ DSP_STATUS status = DSP_SOK ;
+ int osStatus = 0 ;
+@@ -829,7 +844,7 @@ int DRV_Ioctl (struct inode * inode, struct file * filp,
+ CMD_Args apiArgs ;
+
+
+- TRC_4ENTER ("DRV_Ioctl", inode, filp, cmd, args) ;
++ TRC_3ENTER ("DRV_Ioctl", filp, cmd, args) ;
+
+ retVal = copy_from_user ((Pvoid) &apiArgs,
+ (const Pvoid) srcAddr,
+--
+1.6.6.1
+
diff --git a/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_dm6446_build_support.patch b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_dm6446_build_support.patch
new file mode 100644
index 0000000000..5a25dbb588
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_dm6446_build_support.patch
@@ -0,0 +1,337 @@
+From 7b36e94dcb33892e1df7d3327db31bd41fb6167e Mon Sep 17 00:00:00 2001
+From: Roger Monk <r-monk@ti.com>
+Date: Fri, 5 Mar 2010 19:22:58 +0000
+Subject: [PATCH] dsplink_1_64: Add support for building with CS tools + against 2.6.30+
+
+ * Tweaked Patches from Niclas
+
+Signed-off-by: Roger Monk <r-monk@ti.com>
+---
+ dsplink/config/bin/dsplinkcfg.pl | 17 ++++-
+ dsplink/gpp/src/DIRS | 5 +
+ dslpink/gpp/src/Makefile | 8 ++-
+ dsplink/gpp/src/Rules.mk | 5 +
+ dsplink/make/Linux/davinci_2.6.mk | 211 +++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 244 insertions(+), 2 deletions(-)
+ create mode 100644 make/Linux/davinci_2.6.mk
+
+diff --git a/dsplink/config/bin/dsplinkcfg.pl b/dsplink/config/bin/dsplinkcfg.pl
+index 644aa38..e83c133 100644
+--- a/dsplink/config/bin/dsplinkcfg.pl
++++ b/dsplink/config/bin/dsplinkcfg.pl
+@@ -215,6 +215,18 @@ my %CFG_GPPOS_DM6467LSPuc =
+ 'OSPREFIX' => 'uc',
+ ) ;
+
++# DM6446 Linux
++my %CFG_GPPOS_DM6446LSP =
++(
++ 'NAME' => 'DM6446LSP',
++ 'PREFIX' => '2.6',
++ 'ID' => 'DM6446LSP',
++ 'DESC' => 'DM6446 LSP for DM6446',
++ 'VER' => '2.6.18',
++ 'TYPE' => 'Linux',
++ 'LOADERS'=> [\%CFG_LOADER_COFF, ],
++ 'COMPS' => 'ponslrmc',
++) ;
+
+ # OMAPL138 Linux with uCLibc filesystem
+ my %CFG_GPPOS_OMAPL138LSPuc =
+@@ -356,7 +368,7 @@ my %CFG_DSPCFG_DM6446GEMSHMEM =
+ 'PHYID' => 'DM6446GEMSHMEM',
+ 'PHYDESC' => 'Shared Memory Physical Interface',
+ 'PHYTYPE' => 'SHMEM',
+- 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G],
++ 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G, \%CFG_GPPOS_DM6446LSP],
+ 'DSPOS' => [\%CFG_DSPOS_5XX, \%CFG_DSPOS_6XX],
+ # DSP defines
+ 'DSPNAME' => 'DM6446GEM',
+@@ -2994,6 +3006,9 @@ sub main {
+ if ($platform {'ID'} eq 'DA850') {
+ print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ;
+ }
++ if ($platform {'ID'} eq 'DAVINCI') {
++ print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ;
++ }
+ if ($platform {'ID'} eq 'DAVINCIHD') {
+ print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ;
+ }
+diff --git a/dsplink/gpp/src/DIRS b/dsplink/gpp/src/DIRS
+index e82969c..05bad2b 100644
+--- a/dsplink/gpp/src/DIRS
++++ b/dsplink/gpp/src/DIRS
+@@ -63,6 +63,10 @@ ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
+ DIRS += \
+ api
+ else # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
++ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++DIRS += \
++ api
++else # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+ ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
+ DIRS += \
+ api
+@@ -77,6 +81,7 @@ DIRS += \
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
++endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
+ else # ifeq ("$(TI_DSPLINK_GPPOS)", "Linux")
+ DIRS += \
+diff --git a/dsplink/gpp/src/Makefile b/dsplink/gpp/src/Makefile
+index 9e6bbb1..49c3b97 100644
+--- a/dsplink/gpp/src/Makefile
++++ b/dsplink/gpp/src/Makefile
+@@ -78,7 +78,13 @@ ifeq ("$(TI_DSPLINK_GPPOS)", "Linux")
+ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk
+ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild
+ else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
+- include Makefile_bld
++ ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_bld
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild
++ else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++ include Makefile_bld
++ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138")
+diff --git a/dsplink/gpp/src/Rules.mk b/dsplink/gpp/src/Rules.mk
+index 658ee8a..5a6f52a 100644
+--- a/dsplink/gpp/src/Rules.mk
++++ b/dsplink/gpp/src/Rules.mk
+@@ -63,6 +63,11 @@ KERNEL_DIR := ${HOME}/da850/DaVinci-PSP-SDK-03.20.00.01/src/kernel/linux-03.2
+ TOOL_PATH := ${HOME}/git/arm-2008q3/bin
+ endif #ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
+
++ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++KERNEL_DIR := ${HOME}/linux-davinci
++TOOL_PATH := ${HOME}/toolchains/git/arm-2009q1-203/bin
++endif #ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++
+ ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
+ KERNEL_DIR := ${HOME}/linux-davinci
+ TOOL_PATH := ${HOME}/toolchains/git/arm-2009q1-203/bin
+diff --git a/dsplink/make/Linux/davinci_2.6.mk b/dsplink/make/Linux/davinci_2.6.mk
+new file mode 100644
+index 0000000..834fd74
+--- /dev/null
++++ b/dsplink/make/Linux/davinci_2.6.mk
+@@ -0,0 +1,211 @@
++# ============================================================================
++# @file davinci_2.6.mk
++#
++# @path $(DSPLINK)/make/Linux/
++#
++# @desc This makefile defines OS specific macros used by MAKE system for
++# the Montavista Pro 5.0 Linux distribution.
++#
++# @ver 1.64
++# ============================================================================
++# Copyright (C) 2002-2009, Texas Instruments Incorporated -
++# http://www.ti.com/
++#
++# 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 Texas Instruments Incorporated 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 COPYRIGHT OWNER 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.
++# ============================================================================
++
++
++ifndef DAVINCI_LINUX2_6_MK
++
++define DAVINCI_LINUX2_6_MK
++endef
++
++
++# ============================================================================
++# Let the make system know that a specific distribution for the GPP OS
++# is being used.
++# ============================================================================
++USE_DISTRIBUTION := 1
++
++
++# ============================================================================
++# Set the values of necessary variables to be used for the OS.
++# ============================================================================
++
++# ----------------------------------------------------------------------------
++# Base directory for the GPP OS
++# ----------------------------------------------------------------------------
++BASE_BUILDOS := ${HOME}/linux-davinci
++
++# ----------------------------------------------------------------------------
++# Base for toolchain
++# ----------------------------------------------------------------------------
++BASE_TOOLCHAIN := ${HOME}/toolchains/git/arm-2009q1-203
++
++# ----------------------------------------------------------------------------
++# Base for code generation tools - compiler, linker, archiver etc.
++# ----------------------------------------------------------------------------
++BASE_CGTOOLS := $(BASE_TOOLCHAIN)/bin
++
++# ----------------------------------------------------------------------------
++# Base directory for include files provided by GPP OS
++# ----------------------------------------------------------------------------
++BASE_OSINC := $(BASE_BUILDOS)/include
++
++OSINC_GENERIC := $(BASE_OSINC)
++OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-none-linux-gnueabi/4.2.3/include
++OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-none-linux-gnueabi/libc/usr/include
++
++ifneq ("$(VARIANT)", "")
++OSINC_VARIANT := $(BASE_OSINC)
++endif
++
++
++# ----------------------------------------------------------------------------
++# Base directory for libraries provided by GPP OS
++# ----------------------------------------------------------------------------
++BASE_OSLIB := $(BASE_TOOLCHAIN)/lib
++
++OSLIB_GENERIC := $(BASE_OSLIB)
++OSLIB_PLATFORM := $(BASE_OSLIB)
++
++
++ifneq ("$(VARIANT)", "")
++OSLIB_VARIANT := $(BASE_OSLIB)
++endif
++
++
++# ============================================================================
++# COMPILER
++# ============================================================================
++
++# ----------------------------------------------------------------------------
++# Name of the compiler
++# ----------------------------------------------------------------------------
++COMPILER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc
++LD := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ld
++
++CROSS_COMPILE := arm-none-linux-gnueabi-
++export CROSS_COMPILE
++
++# ----------------------------------------------------------------------------
++# Command line switches used by the compiler
++#
++# CC_SW_DEF Command line defines
++# CC_SW_INC Search path for header files
++# CC_SW_OBJ Create object file
++# CC_SW_DEB Include debug information
++# ----------------------------------------------------------------------------
++CC_SW_DEF := -D
++CC_SW_INC := -I
++CC_SW_OBJ := -o
++CC_SW_DEB := -g
++
++# ----------------------------------------------------------------------------
++# Standard flags for the compiler
++# ----------------------------------------------------------------------------
++STD_USER_FLAGS := -Wall -c
++
++# ----------------------------------------------------------------------------
++# Flags for the compiler when building a library
++# ----------------------------------------------------------------------------
++EXE_CC_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Standard flags for the compiler when building an executable
++# ----------------------------------------------------------------------------
++DRV_CC_FLAGS := -nostdinc
++
++# ----------------------------------------------------------------------------
++# Flags for the compiler when building a driver
++# ----------------------------------------------------------------------------
++LIB_CC_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Standard definitions for the compiler
++# ----------------------------------------------------------------------------
++STD_CC_DEFNS := -D_REENTRANT
++
++# ============================================================================
++# ARCHIVER2 - This denotes the archiver.
++# ============================================================================
++ARCHIVER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ar
++
++# ----------------------------------------------------------------------------
++# Standard flags for the archiver
++# ----------------------------------------------------------------------------
++STD_AR_FLAGS := -rs
++
++
++# ============================================================================
++# LINKER used for Library & Driver build
++# ============================================================================
++LINKER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc
++
++# ----------------------------------------------------------------------------
++# Command line switches used by the linker
++#
++# LD_SW_LIB Search path for libraries
++# LD_SW_OUT Output filename
++# LD_SW_RELOC Generate relocateable output
++# ----------------------------------------------------------------------------
++LD_SW_LIB := -L
++LD_SW_OUT := -o
++LD_SW_RELOC := -r
++
++# ----------------------------------------------------------------------------
++# Flags for the LD when building an executable
++# ----------------------------------------------------------------------------
++STD_LD_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Standard flags for the LD
++# ----------------------------------------------------------------------------
++EXE_LD_FLAGS := -lpthread -lc
++
++# ----------------------------------------------------------------------------
++# Standard flags for the archiver
++# ----------------------------------------------------------------------------
++DRV_LD_FLAGS :=
++
++
++# ============================================================================
++# Post processing utilities for Linux 2.6
++# ============================================================================
++ifneq ($(CONFIG_MODVERSIONS),)
++CMD_MODPOST_FLAGS := -m -i
++else
++CMD_MODPOST_FLAGS := -i
++endif
++
++CMD_MODPOST := $(BASE_BUILDOS)/scripts/mod/modpost \
++ $(CMD_MODPOST_FLAGS) $(BASE_BUILDOS)/Module.symvers \
++ $(BASE_BUILDOS)/vmlinux
++
++
++endif # ifndef DAVINCI_LINUX2_6_MK
+--
+1.6.0.6
+
diff --git a/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_omapl137_build_support.patch b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_omapl137_build_support.patch
new file mode 100644
index 0000000000..fa4cb2e642
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_omapl137_build_support.patch
@@ -0,0 +1,288 @@
+From fd5858c3a247bc61a4de3af1a5097cb05042cfa4 Mon Sep 17 00:00:00 2001
+From: Roger Monk <r-monk@ti.com>
+Date: Sun, 14 Mar 2010 22:13:42 +0000
+Subject: [PATCH] omap1
+
+Signed-off-by: Roger Monk <r-monk@ti.com>
+---
+ dsplink/config/bin/dsplinkcfg.pl | 2 +-
+ dsplink/gpp/src/DIRS | 5 +
+ dsplink/gpp/src/Makefile | 8 ++-
+ dsplink/make/Linux/omapl1xx_arm.mk | 210 ++++++++++++++++++++++++++++++++++++
+ 4 files changed, 223 insertions(+), 2 deletions(-)
+ create mode 100644 dsplink/make/Linux/omapl1xx_arm.mk
+
+diff --git a/dsplink/config/bin/dsplinkcfg.pl b/dsplink/config/bin/dsplinkcfg.pl
+index e83c133..8151945 100644
+--- a/dsplink/config/bin/dsplinkcfg.pl
++++ b/dsplink/config/bin/dsplinkcfg.pl
+@@ -523,7 +523,7 @@ my %CFG_DSPCFG_OMAPL1XXGEMSHMEM =
+ 'PHYID' => 'OMAPL1XXGEMSHMEM',
+ 'PHYDESC' => 'Shared Memory Physical Interface',
+ 'PHYTYPE' => 'SHMEM',
+- 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G],
++ 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G, \%CFG_GPPOS_ARM],
+ 'DSPOS' => [\%CFG_DSPOS_5XX],
+ # DSP defines
+ 'DSPNAME' => 'OMAPL1XXGEM',
+diff --git a/dsplink/gpp/src/DIRS b/dsplink/gpp/src/DIRS
+index 05bad2b..af48904 100644
+--- a/dsplink/gpp/src/DIRS
++++ b/dsplink/gpp/src/DIRS
+@@ -55,6 +55,10 @@ ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138")
+ DIRS += \
+ api
+ else # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138")
++ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL1XX")
++DIRS += \
++ api
++else # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL1XX")
+ ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530")
+ DIRS += \
+ api
+@@ -83,6 +87,7 @@ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
++endif
+ else # ifeq ("$(TI_DSPLINK_GPPOS)", "Linux")
+ DIRS += \
+ arch \
+diff --git a/dsplink/gpp/src/Makefile b/dsplink/gpp/src/Makefile
+index 49c3b97..0afd988 100644
+--- a/dsplink/gpp/src/Makefile
++++ b/dsplink/gpp/src/Makefile
+@@ -83,7 +83,13 @@ ifeq ("$(TI_DSPLINK_GPPOS)", "Linux")
+ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk
+ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild
+ else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+- include Makefile_bld
++ ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL1XX")
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_bld
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk
++ include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild
++ else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
++ include Makefile_bld
++ endif
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530")
+ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850")
+diff --git a/dsplink/make/Linux/omapl1xx_arm.mk b/dsplink/make/Linux/omapl1xx_arm.mk
+new file mode 100644
+index 0000000..3e42e87
+--- /dev/null
++++ b/dsplink/make/Linux/omapl1xx_arm.mk
+@@ -0,0 +1,210 @@
++# ============================================================================
++# @file omapl1xx_arm.mk
++#
++# @path $(DSPLINK)/make/Linux/
++#
++# @desc This makefile defines OS specific macros used by MAKE system for
++# the Montavista Pro 5.0 Linux distribution with mvlpro.
++#
++# @ver 1.64
++# ============================================================================
++# Copyright (C) 2002-2009, Texas Instruments Incorporated -
++# http://www.ti.com/
++#
++# 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 Texas Instruments Incorporated 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 COPYRIGHT OWNER 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.
++# ============================================================================
++
++ifndef OMAPL1XX_ARM_MK
++
++define OMAPL1XX_ARM_MK
++endef
++
++
++# ============================================================================
++# Let the make system know that a specific distribution for the GPP OS
++# is being used.
++# ============================================================================
++USE_DISTRIBUTION := 1
++
++
++# ============================================================================
++# Set the values of necessary variables to be used for the OS.
++# ============================================================================
++
++# ----------------------------------------------------------------------------
++# Base directory for the GPP OS
++# ----------------------------------------------------------------------------
++BASE_BUILDOS := ${HOME}/da850/DaVinci-PSP-SDK-03.20.00.01/src/kernel/linux-03.20.00.01
++
++# ----------------------------------------------------------------------------
++# Base for toolchain
++# ----------------------------------------------------------------------------
++BASE_TOOLCHAIN := ${HOME}/git/arm-2008q3
++
++# ----------------------------------------------------------------------------
++# Base for code generation tools - compiler, linker, archiver etc.
++# ----------------------------------------------------------------------------
++BASE_CGTOOLS := $(BASE_TOOLCHAIN)/bin
++
++# ----------------------------------------------------------------------------
++# Base directory for include files provided by GPP OS
++# ----------------------------------------------------------------------------
++BASE_OSINC := $(BASE_BUILDOS)/include
++
++OSINC_GENERIC := $(BASE_OSINC)
++OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-none-linux-gnueabi/4.3.2/include
++OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-none-linux-gnueabi/libc/usr/include
++
++ifneq ("$(VARIANT)", "")
++OSINC_VARIANT := $(BASE_OSINC)
++endif
++
++
++# ----------------------------------------------------------------------------
++# Base directory for libraries provided by GPP OS
++# ----------------------------------------------------------------------------
++BASE_OSLIB := $(BASE_TOOLCHAIN)/lib
++
++OSLIB_GENERIC := $(BASE_OSLIB)
++OSLIB_PLATFORM := $(BASE_OSLIB)
++
++
++ifneq ("$(VARIANT)", "")
++OSLIB_VARIANT := $(BASE_OSLIB)
++endif
++
++
++# ============================================================================
++# COMPILER
++# ============================================================================
++
++# ----------------------------------------------------------------------------
++# Name of the compiler
++# ----------------------------------------------------------------------------
++COMPILER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc
++LD := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ld
++
++CROSS_COMPILE := arm-none-linux-gnueabi-
++export CROSS_COMPILE
++
++# ----------------------------------------------------------------------------
++# Command line switches used by the compiler
++#
++# CC_SW_DEF Command line defines
++# CC_SW_INC Search path for header files
++# CC_SW_OBJ Create object file
++# CC_SW_DEB Include debug information
++# ----------------------------------------------------------------------------
++CC_SW_DEF := -D
++CC_SW_INC := -I
++CC_SW_OBJ := -o
++CC_SW_DEB := -g
++
++# ----------------------------------------------------------------------------
++# Standard flags for the compiler
++# ----------------------------------------------------------------------------
++STD_USER_FLAGS := -Wall -c
++
++# ----------------------------------------------------------------------------
++# Standard flags for the compiler when building an executable
++# ----------------------------------------------------------------------------
++EXE_CC_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Flags for the compiler when building a driver
++# ----------------------------------------------------------------------------
++DRV_CC_FLAGS := -nostdinc
++
++# ----------------------------------------------------------------------------
++# Flags for the compiler when building a library
++# ----------------------------------------------------------------------------
++LIB_CC_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Standard definitions for the compiler
++# ----------------------------------------------------------------------------
++STD_CC_DEFNS := -D_REENTRANT
++
++# ============================================================================
++# ARCHIVER2 - This denotes the archiver.
++# ============================================================================
++ARCHIVER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ar
++
++# ----------------------------------------------------------------------------
++# Standard flags for the archiver
++# ----------------------------------------------------------------------------
++STD_AR_FLAGS := -rs
++
++
++# ============================================================================
++# LINKER - The compiler is used for linking purpose as well.
++# ============================================================================
++LINKER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc
++
++# ----------------------------------------------------------------------------
++# Command line switches used by the linker
++#
++# LD_SW_LIB Search path for libraries
++# LD_SW_OUT Output filename
++# LD_SW_RELOC Generate relocateable output
++# ----------------------------------------------------------------------------
++LD_SW_LIB := -L
++LD_SW_OUT := -o
++LD_SW_RELOC := -r
++
++# ----------------------------------------------------------------------------
++# Standard flags for the linker
++# ----------------------------------------------------------------------------
++STD_LD_FLAGS :=
++
++# ----------------------------------------------------------------------------
++# Flags for the linker when building an executable
++# ----------------------------------------------------------------------------
++EXE_LD_FLAGS := -lpthread -lc
++
++# ----------------------------------------------------------------------------
++# Flags for the linker when building a driver
++# ----------------------------------------------------------------------------
++DRV_LD_FLAGS :=
++
++
++# ============================================================================
++# Post processing utilities for Linux 2.6
++# ============================================================================
++ifneq ($(CONFIG_MODVERSIONS),)
++CMD_MODPOST_FLAGS := -m -i
++else
++CMD_MODPOST_FLAGS := -i
++endif
++
++CMD_MODPOST := $(BASE_BUILDOS)/scripts/mod/modpost \
++ $(CMD_MODPOST_FLAGS) $(BASE_BUILDOS)/Module.symvers \
++ $(BASE_BUILDOS)/vmlinux
++
++
++endif # ifndef OMAPL1XX_ARM_MK
+--
+1.6.0.6
+
diff --git a/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_kernel_2_6_33_autoconf.patch b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_kernel_2_6_33_autoconf.patch
new file mode 100644
index 0000000000..271b3043b5
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/dsplink_1_64_kernel_2_6_33_autoconf.patch
@@ -0,0 +1,335 @@
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DA8XXGEM/da8xxgem_hal_pwr.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DA8XXGEM/da8xxgem_hal_pwr.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DA8XXGEM/da8xxgem_hal_pwr.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DA8XXGEM/da8xxgem_hal_pwr.c 2010-02-09 17:42:37.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OSAL Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <asm/page.h>
+ #include <asm/io.h>
+
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DA8XXGEM/shmem/Linux/da8xxgem_phy_shmem.c 2010-02-09 17:43:06.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6437/pci/dm6437_hal_pci_dma.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6437/pci/dm6437_hal_pci_dma.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6437/pci/dm6437_hal_pci_dma.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6437/pci/dm6437_hal_pci_dma.c 2010-02-09 17:45:06.000000000 +0000
+@@ -21,7 +21,12 @@
+ */
+
+
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <asm/page.h>
+ #include <asm/io.h>
+
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6437/pci/Linux/2.6.18/dm6437_phy_pci.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6437/pci/Linux/2.6.18/dm6437_phy_pci.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6437/pci/Linux/2.6.18/dm6437_phy_pci.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6437/pci/Linux/2.6.18/dm6437_phy_pci.c 2010-02-09 17:44:49.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6446GEM/shmem/Linux/dm6446gem_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6446GEM/shmem/Linux/dm6446gem_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6446GEM/shmem/Linux/dm6446gem_phy_shmem.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6446GEM/shmem/Linux/dm6446gem_phy_shmem.c 2010-02-09 17:44:21.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6467GEM/shmem/Linux/dm6467gem_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6467GEM/shmem/Linux/dm6467gem_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM6467GEM/shmem/Linux/dm6467gem_phy_shmem.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM6467GEM/shmem/Linux/dm6467gem_phy_shmem.c 2010-02-09 17:41:46.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM648/pci/dm648_hal_pci_dma.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM648/pci/dm648_hal_pci_dma.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM648/pci/dm648_hal_pci_dma.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM648/pci/dm648_hal_pci_dma.c 2010-02-09 17:42:02.000000000 +0000
+@@ -20,7 +20,12 @@
+ * ============================================================================
+ */
+
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <asm/page.h>
+ #include <asm/io.h>
+
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/DM648/pci/Linux/2.6.18/dm648_phy_pci.c dsplink_linux_1_64b/dsplink/gpp/src/arch/DM648/pci/Linux/2.6.18/dm648_phy_pci.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/DM648/pci/Linux/2.6.18/dm648_phy_pci.c 2009-11-13 12:12:46.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/DM648/pci/Linux/2.6.18/dm648_phy_pci.c 2010-02-09 17:42:21.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/OMAP2530/shmem/Linux/omap2530_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/OMAP2530/shmem/Linux/omap2530_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/OMAP2530/shmem/Linux/omap2530_phy_shmem.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/OMAP2530/shmem/Linux/omap2530_phy_shmem.c 2010-02-09 17:43:29.000000000 +0000
+@@ -25,7 +25,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/OMAP3530/shmem/Linux/omap3530_phy_shmem.c 2010-02-09 17:43:50.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/arch/TNETV107XGEM/shmem/Linux/tnetv107xgem_phy_shmem.c dsplink_linux_1_64b/dsplink/gpp/src/arch/TNETV107XGEM/shmem/Linux/tnetv107xgem_phy_shmem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/arch/TNETV107XGEM/shmem/Linux/tnetv107xgem_phy_shmem.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/arch/TNETV107XGEM/shmem/Linux/tnetv107xgem_phy_shmem.c 2010-02-09 17:44:06.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/dpc.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/dpc.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/dpc.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/dpc.c 2010-02-09 17:47:25.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/sched.h>
+ #include <linux/interrupt.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/isr.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/isr.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/isr.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/isr.c 2010-02-09 17:46:54.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/version.h>
+ #include <linux/spinlock.h>
+ #include <linux/sched.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/kfiledef.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/kfiledef.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/kfiledef.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/kfiledef.c 2010-02-09 17:46:39.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/kernel.h>
+ #include <linux/mm.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/mem.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/mem.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/mem.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/mem.c 2010-02-09 17:46:25.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/sched.h>
+ #include <linux/types.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/notify_knl.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/notify_knl.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/notify_knl.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/notify_knl.c 2010-02-09 17:47:12.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/signal.h>
+ #include <linux/kernel.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/sync.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/sync.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/2.6.18/sync.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/2.6.18/sync.c 2010-02-09 17:47:39.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/timer.h>
+ #include <linux/sched.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/prcs.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/prcs.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/prcs.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/prcs.c 2010-02-09 17:45:44.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/module.h>
+ #include <linux/mm.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/print.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/print.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/print.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/print.c 2010-02-09 17:45:30.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <stdarg.h>
+ #include <linux/types.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/user.c dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/user.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/osal/Linux/user.c 2009-11-13 12:12:47.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/osal/Linux/user.c 2010-02-09 17:46:07.000000000 +0000
+@@ -22,7 +22,12 @@
+
+
+ /* ----------------------------------- OS Specific Headers */
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/timer.h>
+ #include <linux/sched.h>
+diff -uNr dsplink_linux_1_64a/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c dsplink_linux_1_64b/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c
+--- dsplink_linux_1_64a/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c 2009-11-13 12:12:48.000000000 +0000
++++ dsplink_linux_1_64b/dsplink/gpp/src/pmgr/Linux/2.6.18/drv_pmgr.c 2010-02-09 17:40:59.000000000 +0000
+@@ -33,7 +33,11 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ #include <linux/device.h>
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)
++#include <generated/autoconf.h>
++#else
+ #include <linux/autoconf.h>
++#endif
+ #include <linux/spinlock.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
diff --git a/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-loadmodules.sh b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-loadmodules.sh
new file mode 100755
index 0000000000..9cfb19d5c1
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-loadmodules.sh
@@ -0,0 +1,25 @@
+#
+# Default Memory Map - for OMAP3530 dsplink examples
+#
+# Start Addr Size Description
+# -------------------------------------------
+# 0x80000000 126 MB Linux
+# 0x87E00000 2 MB DSPLINK (MEM) + DDR + DSPLINK (RESET)
+
+# sanity check to verify that we're using the right mem=xxM (126M in this case)
+awk '/MemTotal:/ {
+ mem=$2
+
+ if (mem > 126 * 1024)
+ print "Warning! You need to use mem=126M or less on the kernel cmdline"
+
+ printf "You have %dkB total memory for Linux\n", mem
+}' /proc/meminfo
+
+# insert DSP/BIOS Link driver
+#
+modprobe dsplinkk
+
+# make /dev/dsplink
+#rm -f /dev/dsplink
+#mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0
diff --git a/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-run.sh b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-run.sh
new file mode 100755
index 0000000000..b2f2faac9e
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-run.sh
@@ -0,0 +1,25 @@
+#! /bin/sh
+
+echo "Running Loop Sample App"
+./loopgpp loop.out 1024 2000 0
+
+echo "Running Message Sample App"
+./messagegpp message.out 10000 0
+
+echo "Running Message Multi Sample App"
+./messagemultigpp messagemulti.out 128 1 0
+
+echo "Running MultiProcessor List Sample App"
+./mplistgpp mplist.out 128 128 0
+
+echo "Running MultiProcessorCriticalSection Transfer Sample App"
+./mpcsxfergpp mpcsxfer.out 128 1000 0
+
+echo "Running Ringio Sample App"
+./ringiogpp ringio.out 2048 128 0
+
+echo "Running Scale Sample App"
+./scalegpp scale.out 128 500 0
+
+#echo "Running Read/Write Sample App"
+#./readwritegpp readwrite.out
diff --git a/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-unloadmodules.sh b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-unloadmodules.sh
new file mode 100755
index 0000000000..48fa84b03d
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-unloadmodules.sh
@@ -0,0 +1,5 @@
+# Unload modules - DSPLINK - OMAP3530
+
+# remove DSP/BIOS Link driver
+rmmod dsplinkk
+#rm -f /dev/dsplink
diff --git a/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb b/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb
new file mode 100644
index 0000000000..c2ca5d9f61
--- /dev/null
+++ b/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb
@@ -0,0 +1,14 @@
+require ti-dsplink.inc
+
+PE = "1"
+PV = "1_65_00_03"
+PV_dot = "1.65.00.03"
+PV_major = "1_65"
+
+PV_DL_PATH = "DSPLink/${PV_major}/${PV}/${PV_dot}"
+
+SRC_URI += "file://dsplink-BKL-fix.patch"
+
+SRC_URI[dsplinktarball.md5sum] = "1bda596b631bd2f517edc70f6be4f2ca"
+SRC_URI[dsplinktarball.sha256sum] = "4b1bda89bd8465b887f5bcdf7b95018bc1d1f8968c0c44f8cbad2a9e1c52bcb7"
+
diff --git a/recipes-ti/includes/ti-eula-unpack.inc b/recipes-ti/includes/ti-eula-unpack.inc
new file mode 100644
index 0000000000..3b79c24383
--- /dev/null
+++ b/recipes-ti/includes/ti-eula-unpack.inc
@@ -0,0 +1,71 @@
+# 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
+
+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
+
+ localdata = bb.data.createCopy(d)
+ bb.data.update_data(localdata)
+
+ binfile = bb.data.getVar('BINFILE', localdata)
+ binfile = bb.data.expand(binfile, localdata)
+
+ # Change to the working directory
+ save_cwd = os.getcwd()
+ workdir = bb.data.getVar('WORKDIR', localdata)
+ workdir = bb.data.expand(workdir, localdata)
+ os.chdir(workdir)
+
+ # Get unpack commands
+ cmd_string = bb.data.getVar('TI_BIN_UNPK_CMDS', localdata)
+ cmd_list = cmd_string.split( ":" )
+
+ # Make the InstallJammer binary executable so we can run it
+ os.chmod(binfile, 0755)
+
+ # Run the InstallJammer binary and accept the EULA
+ filename = "HOME=%s ./%s --mode console" % (workdir, binfile)
+
+ # 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 = bb.data.getVar('TI_BIN_UNPK_WDEXT', localdata)
+ wdext = bb.data.expand(wdext, localdata)
+ cmd = workdir+wdext
+ print >>f, "%s\n" % cmd
+ f.close()
+
+ # Expand the tarball that was created if required
+ tarfile = bb.data.getVar('TARFILE', localdata)
+ 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)
+}
+
diff --git a/recipes-ti/includes/ti-paths.inc b/recipes-ti/includes/ti-paths.inc
new file mode 100644
index 0000000000..e7eefe1deb
--- /dev/null
+++ b/recipes-ti/includes/ti-paths.inc
@@ -0,0 +1,56 @@
+installdir = "${datadir}/ti"
+
+# This is where do_install will put it
+export CODEGEN_INSTALL_DIR_RECIPE = "${installdir}/ti-cgt6x-tree"
+export XDC_INSTALL_DIR_RECIPE = "${installdir}/ti-xdctools-tree"
+export XDAIS_INSTALL_DIR_RECIPE = "${installdir}/ti-xdais-tree"
+export BIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-dspbios-tree"
+export SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-sysbios-tree"
+export BIOSUTILS_INSTALL_DIR_RECIPE = "${installdir}/ti-biosutils-tree"
+export FC_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components-tree"
+export FC3_INSTALL_DIR_RECIPE = "${installdir}/ti-framework-components3-tree"
+export CE_INSTALL_DIR_RECIPE = "${installdir}/ti-codec-engine-tree"
+export EDMA3_LLD_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-tree"
+export EDMA3_LLD_SYSBIOS_INSTALL_DIR_RECIPE = "${installdir}/ti-edma3lld-sysbios-tree"
+export LINUXUTILS_INSTALL_DIR_RECIPE = "${installdir}/ti-linuxutils-tree"
+export CMEM_INSTALL_DIR_RECIPE = "${installdir}/ti-linuxutils-tree"
+export LINK_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplink-tree"
+export SYSLINK_INSTALL_DIR_RECIPE = "${installdir}/ti-syslink-tree"
+export IPC_INSTALL_DIR_RECIPE = "${installdir}/ti-ipc-tree"
+export LPM_INSTALL_DIR_RECIPE = "${installdir}/ti-local-power-manager-tree"
+export DMAI_INSTALL_DIR_RECIPE = "${installdir}/ti-dmai-tree"
+export CODEC_INSTALL_DIR_RECIPE = "${installdir}/ti-codecs-tree"
+export DSPLIB_INSTALL_DIR_RECIPE = "${installdir}/ti-dsplib-tree"
+export DVSDK_DEMOS_INSTALL_DIR_RECIPE = "${installdir}/ti-dvsdk-demos-tree"
+export BIOSPSP_INSTALL_DIR_RECIPE = "${installdir}/ti-biospsp-tree"
+export AUDIO_SOC_INSTALL_DIR_RECIPE = "${installdir}/ti-audio-soc-example-tree"
+export C6ACCEL_INSTALL_DIR_RECIPE = "${installdir}/ti-c6accel-tree"
+
+# This is where the tools will end up in staging provided PACKAGE_ARCH = ${MACHINE_ARCH} is set
+export CODEGEN_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${CODEGEN_INSTALL_DIR_RECIPE}"
+export XDC_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${XDC_INSTALL_DIR_RECIPE}"
+export XDAIS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${XDAIS_INSTALL_DIR_RECIPE}"
+export BIOS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${BIOS_INSTALL_DIR_RECIPE}"
+export SYSBIOS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${SYSBIOS_INSTALL_DIR_RECIPE}"
+export BIOSUTILS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${BIOSUTILS_INSTALL_DIR_RECIPE}"
+export FC_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${FC_INSTALL_DIR_RECIPE}"
+export FC3_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${FC3_INSTALL_DIR_RECIPE}"
+export CE_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${CE_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${EDMA3_LLD_INSTALL_DIR_RECIPE}"
+export EDMA3_LLD_SYSBIOS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${EDMA3_LLD_SYSBIOS_INSTALL_DIR_RECIPE}"
+export LINUXUTILS_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${LINUXUTILS_INSTALL_DIR_RECIPE}"
+export CMEM_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${CMEM_INSTALL_DIR_RECIPE}"
+export LINK_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${LINK_INSTALL_DIR_RECIPE}"
+export SYSLINK_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${SYSLINK_INSTALL_DIR_RECIPE}"
+export IPC_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${IPC_INSTALL_DIR_RECIPE}"
+export LPM_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${LPM_INSTALL_DIR_RECIPE}"
+export DMAI_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${DMAI_INSTALL_DIR_RECIPE}"
+export CODEC_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${CODEC_INSTALL_DIR_RECIPE}"
+export DSPLIB_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${DSPLIB_INSTALL_DIR_RECIPE}"
+export BIOSPSP_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${BIOSPSP_INSTALL_DIR_RECIPE}"
+export C6ACCEL_INSTALL_DIR = "${STAGING_DIR}/${MACHINE_ARCH}${C6ACCEL_INSTALL_DIR_RECIPE}"
+
+DSPSUFFIX_omapl137 = "x674"
+DSPSUFFIX_omapl138 = "x674"
+DSPSUFFIX ?= "x64P"
+
diff --git a/recipes-ti/includes/ti-staging.inc b/recipes-ti/includes/ti-staging.inc
new file mode 100644
index 0000000000..2bacd7a99d
--- /dev/null
+++ b/recipes-ti/includes/ti-staging.inc
@@ -0,0 +1,8 @@
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PACKAGE_STRIP = "no"
+
+ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY_${PN}-dev = "1"
+
+
diff --git a/recipes-ti/local-power-manager/ti-local-power-manager.inc b/recipes-ti/local-power-manager/ti-local-power-manager.inc
new file mode 100644
index 0000000000..836e118147
--- /dev/null
+++ b/recipes-ti/local-power-manager/ti-local-power-manager.inc
@@ -0,0 +1,130 @@
+DESCRIPTION = "TI Local Power Manager (LPM)"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/lpm"
+SECTION = "devel"
+LICENSE = "GPLv2"
+
+# TODO : Hardcoded path to evm3530 - need to fix when adding omap24xx/dm6446 (other lpm targets)
+
+require ../includes/ti-paths.inc
+require ../includes/ti-staging.inc
+
+PROVIDES = "ti-lpm-module"
+PROVIDES += "ti-lpm-utils"
+
+# This package builds a kernel module, use kernel PR as base and append a local version
+PR = "${MACHINE_KERNEL_PR}"
+PR_append = "e"
+
+S = "${WORKDIR}/local_power_manager_linux_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/lpm/${PV}/exports/local_power_manager_linux_${PV}.tar.gz;name=lpmtarball"
+
+DEPENDS = "ti-dsplink ti-xdctools"
+DEPENDS += "virtual/kernel"
+
+# SOC_FAMILY configuration
+
+LPMDSPPOWERSOC_omap3 = "omap3530"
+LPMDSPPOWERSOC_dm6446 = "dm6446"
+LPMDSPPOWERSOC ?= "<UNDEFINED_LPMDSPPOWERSOC>"
+
+XDC_PLATFORM_dm6446 = "ti.platforms.evmDM6446"
+XDC_PLATFORM_omap3 = "ti.platforms.evm3530"
+XDC_PLATFORM ?= "<UNDEFINED_XDC_PLATFORM>"
+
+do_configure () {
+
+ # Generate a config.bld for XDC
+
+ cat > ${S}/config.bld <<EOF
+
+/* Generated by ti-local-power-manager.inc OE recipe */
+
+var Build = xdc.useModule('xdc.bld.BuildEnvironment');
+
+var GCArmv5T = xdc.useModule('gnu.targets.arm.GCArmv5T');
+GCArmv5T.LONGNAME = "bin/${TARGET_PREFIX}gcc";
+GCArmv5T.rootDir = "${TOOLCHAIN_PATH}";
+GCArmv5T.ccOpts.prefix += " -Wall -fno-strict-aliasing ";
+GCArmv5T.lnkOpts.suffix = GCArmv5T.lnkOpts.suffix.replace("-lstdc++", "");
+GCArmv5T.lnkOpts.suffix += " -lpthread ";
+GCArmv5T.platform = null;
+GCArmv5T.platforms = [
+ "${XDC_PLATFORM}"
+];
+
+/* remove profiles we don't use */
+delete GCArmv5T.profiles["coverage"];
+delete GCArmv5T.profiles["profile"];
+
+Build.targets.\$add(GCArmv5T);
+EOF
+
+}
+
+do_prepsources () {
+
+ # Prepare the tree for rebuiling - generate makefiles and clean
+ XDCPATH=${S} ${XDC_INSTALL_DIR}/xdc .make -PR .
+ XDCPATH=${S} ${XDC_INSTALL_DIR}/xdc clean -PR .
+}
+
+addtask prepsources after do_configure before do_compile
+
+do_compile () {
+
+ # Build the LPM kernel module
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ cd ${S}/packages/ti/bios/power/modules/${LPMDSPPOWERSOC}/lpm
+ make \
+ DSPLINK_REPO="${LINK_INSTALL_DIR}" \
+ LINUXKERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" \
+ MVTOOL_PREFIX="${TARGET_PREFIX}" \
+ clean default
+
+ # Build the user space library
+ # TODO
+
+ # Build the utilities (lpmON/OFF)
+ cd ${S}
+ XDCPATH=${S} ${XDC_INSTALL_DIR}/xdc -PR .
+}
+
+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 ${S}/packages/ti/bios/power/modules/${LPMDSPPOWERSOC}/lpm/*.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
+
+ # Install the Utilities
+ install -d ${D}/${installdir}/ti-lpm-utils
+ install -m 0755 ${S}/packages/ti/bios/power/utils/bin/$(echo ${XDC_PLATFORM} | sed s:\\.:_:g)/linux/release/* ${D}/${installdir}/ti-lpm-utils
+
+ # Install/Stage the Source Tree
+ install -d ${D}${LPM_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${LPM_INSTALL_DIR_RECIPE}
+}
+
+PACKAGES += "ti-lpm-module"
+FILES_ti-lpm-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/*lpm*ko"
+RDEPENDS_ti-lpm-module += "ti-dsplink-module"
+RDEPENDS_ti-lpm-module += "update-modules"
+
+pkg_postinst_ti-lpm-module_append () {
+ if [ -n "$D" ]; then
+ exit 1
+ fi
+ depmod -a
+ update-modules || true
+}
+
+pkg_postrm_ti-lpm-module_append () {
+ update-modules || true
+}
+
+PACKAGES += "ti-lpm-utils"
+RDEPENDS_ti-lpm-utils += "ti-lpm-module"
+FILES_ti-lpm-utils = "${installdir}/ti-lpm-utils/*"
+INSANE_SKIP_ti-lpm-utils = True
diff --git a/recipes-ti/local-power-manager/ti-local-power-manager/lpm-1_24_01-replace-define-OPT.patch b/recipes-ti/local-power-manager/ti-local-power-manager/lpm-1_24_01-replace-define-OPT.patch
new file mode 100644
index 0000000000..120792b891
--- /dev/null
+++ b/recipes-ti/local-power-manager/ti-local-power-manager/lpm-1_24_01-replace-define-OPT.patch
@@ -0,0 +1,24 @@
+diff -uNr local_power_manager_linux_1_24_01_orig/packages/ti/bios/power/modules/dm6446/lpm/Makefile local_power_manager_linux_1_24_01/packages/ti/bios/power/modules/dm6446/lpm/Makefile
+--- local_power_manager_linux_1_24_01_orig/packages/ti/bios/power/modules/dm6446/lpm/Makefile 2009-07-22 23:10:04.000000000 -0500
++++ local_power_manager_linux_1_24_01/packages/ti/bios/power/modules/dm6446/lpm/Makefile 2010-04-16 15:26:14.000000000 -0500
+@@ -54,7 +54,7 @@
+ endif
+
+ MAKE_OPTS = ARCH=arm CROSS_COMPILE=$(MVTOOL_PREFIX)
+-CFLAGS = -DUSE_UDEV -DOS_LINUX -DLINUX_KERNEL \
++CFLAGS = -DUSE_UDEV -DOS_LINUX -DLINUX_KERNEL -DOPT="" \
+ $(LINK_DEFS) $(LINK_INCS) $(LINK_INCS_INTERNAL)
+
+ # Invoke the kernel build system
+diff -uNr local_power_manager_linux_1_24_01_orig/packages/ti/bios/power/modules/omap3530/lpm/Makefile local_power_manager_linux_1_24_01/packages/ti/bios/power/modules/omap3530/lpm/Makefile
+--- local_power_manager_linux_1_24_01_orig/packages/ti/bios/power/modules/omap3530/lpm/Makefile 2009-07-22 23:10:05.000000000 -0500
++++ local_power_manager_linux_1_24_01/packages/ti/bios/power/modules/omap3530/lpm/Makefile 2010-04-16 15:26:38.000000000 -0500
+@@ -54,7 +54,7 @@
+ endif
+
+ MAKE_OPTS = ARCH=arm CROSS_COMPILE=$(MVTOOL_PREFIX)
+-CFLAGS = -DUSE_UDEV -DOS_LINUX -DLINUX_KERNEL \
++CFLAGS = -DUSE_UDEV -DOS_LINUX -DLINUX_KERNEL -DOPT="" \
+ $(LINK_DEFS) $(LINK_INCS) $(LINK_INCS_INTERNAL)
+
+ # Invoke the kernel build system
diff --git a/recipes-ti/local-power-manager/ti-local-power-manager/lpm-BKL-fix.patch b/recipes-ti/local-power-manager/ti-local-power-manager/lpm-BKL-fix.patch
new file mode 100644
index 0000000000..4b5a537ab1
--- /dev/null
+++ b/recipes-ti/local-power-manager/ti-local-power-manager/lpm-BKL-fix.patch
@@ -0,0 +1,72 @@
+From b7e83000f316f5f109b9237fde4d1c576534aa1a Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Tue, 4 Jan 2011 14:21:02 +0100
+Subject: [PATCH] Fix build with 2.6.37rcX
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+---
+ .../bios/power/modules/omap3530/lpm/lpm_driver.c | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c b/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c
+index fa22ea3..4663fc9 100644
+--- a/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c
++++ b/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c
+@@ -40,6 +40,7 @@
+ #include <asm/semaphore.h>
+ #endif
+ #include <linux/io.h>
++#include <linux/slab.h>
+
+ #include "lpm_driver.h"
+ #include "lpm_dev.h"
+@@ -95,7 +96,7 @@ static int enablevicp = -1;
+ module_param(enablevicp, int, S_IRUGO);
+
+ /* forward declaration of system calls (used by Linux driver) */
+-static int lpm_ioctl (struct inode *inode, struct file *filp,
++static long lpm_ioctl (struct file *filp,
+ unsigned int cmd, unsigned long args);
+ static int lpm_open (struct inode *inode, struct file *filp);
+ static int lpm_release (struct inode *inode, struct file *filp);
+@@ -111,7 +112,7 @@ static void lpm_os_trace (char *fmt, ...);
+
+ static struct file_operations lpm_fops = {
+ .owner = THIS_MODULE,
+- .ioctl = lpm_ioctl,
++ .unlocked_ioctl = lpm_ioctl,
+ .open = lpm_open,
+ .release = lpm_release,
+ };
+@@ -244,7 +245,11 @@ static int __init lpm_init(void)
+ lpm->inst[i].major = MAJOR(lpm->first);
+ lpm->inst[i].minor = MINOR(lpm->first) + i;
+ INIT_LIST_HEAD(&lpm->inst[i].clients);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
+ init_MUTEX(&lpm->inst[i].sem);
++#else
++ sema_init(&lpm->inst[i].sem,1);
++#endif
+ init_completion(&lpm->inst[i].event);
+ lpm_devAttrs.os_instance = (void *)&lpm->inst[i];
+ LPM_init(i, &lpm->inst[i].lpm, &lpm_devAttrs);
+@@ -320,7 +325,7 @@ fail_02:
+ /*
+ * ======== lpm_ioctl ========
+ */
+-static int lpm_ioctl(struct inode *inode, struct file *filp,
++static long lpm_ioctl(struct file *filp,
+ unsigned int cmd, unsigned long args)
+ {
+ struct LPM_Dev *dev;
+@@ -328,6 +333,7 @@ static int lpm_ioctl(struct inode *inode, struct file *filp,
+ LPM_Client *client;
+ LPM_Status lpmStat = LPM_SOK;
+ int stat = 0;
++ struct inode *inode = filp->f_dentry->d_inode;
+
+ TRACE(KERN_ALERT "--> lpm_ioctl, cmd: 0x%X\n", cmd);
+
+--
+1.6.6.1
+
diff --git a/recipes-ti/local-power-manager/ti-local-power-manager_1.24.02.09.bb b/recipes-ti/local-power-manager/ti-local-power-manager_1.24.02.09.bb
new file mode 100644
index 0000000000..759561f38c
--- /dev/null
+++ b/recipes-ti/local-power-manager/ti-local-power-manager_1.24.02.09.bb
@@ -0,0 +1,10 @@
+require ti-local-power-manager.inc
+
+PV = "1_24_02_09"
+PE = "1"
+
+SRC_URI += "file://lpm-BKL-fix.patch"
+
+SRC_URI[lpmtarball.md5sum] = "3d05453df26dfc811de04839d74c2f2b"
+SRC_URI[lpmtarball.sha256sum] = "7335959a6217df17289f81839e6c6948f31cc0797ebc5389edef7190ed3ea589"
+