recipes-ti: initial check in of dsplink stack
authorKoen Kooi <koen@dominion.thruhere.net>
Mon, 14 Mar 2011 18:10:15 +0000 (19:10 +0100)
committerKoen Kooi <koen@dominion.thruhere.net>
Mon, 14 Mar 2011 18:10:15 +0000 (19:10 +0100)
* the focus was on to get it to build, not to make the recipes perfect

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
24 files changed:
recipes-ti/bios/ti-dspbios.inc [new file with mode: 0644]
recipes-ti/bios/ti-dspbios_5.41.07.24.bb [new file with mode: 0644]
recipes-ti/devtools/ti-cgt6x.inc [new file with mode: 0644]
recipes-ti/devtools/ti-cgt6x_6.1.17.bb [new file with mode: 0644]
recipes-ti/devtools/ti-xdctools.inc [new file with mode: 0644]
recipes-ti/devtools/ti-xdctools/arm-linker-hack.diff [new file with mode: 0644]
recipes-ti/devtools/ti-xdctools_3.20.03.63.bb [new file with mode: 0644]
recipes-ti/devtools/ti-xdctools_3.20.06.81.bb [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink.inc [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink/dsplink-BKL-fix.patch [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_dm6446_build_support.patch [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink/dsplink_1_64_add_omapl137_build_support.patch [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink/dsplink_1_64_kernel_2_6_33_autoconf.patch [new file with mode: 0644]
recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-loadmodules.sh [new file with mode: 0755]
recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-run.sh [new file with mode: 0755]
recipes-ti/dsplink/ti-dsplink/ti-dsplink-examples-unloadmodules.sh [new file with mode: 0755]
recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb [new file with mode: 0644]
recipes-ti/includes/ti-eula-unpack.inc [new file with mode: 0644]
recipes-ti/includes/ti-paths.inc [new file with mode: 0644]
recipes-ti/includes/ti-staging.inc [new file with mode: 0644]
recipes-ti/local-power-manager/ti-local-power-manager.inc [new file with mode: 0644]
recipes-ti/local-power-manager/ti-local-power-manager/lpm-1_24_01-replace-define-OPT.patch [new file with mode: 0644]
recipes-ti/local-power-manager/ti-local-power-manager/lpm-BKL-fix.patch [new file with mode: 0644]
recipes-ti/local-power-manager/ti-local-power-manager_1.24.02.09.bb [new file with mode: 0644]

diff --git a/recipes-ti/bios/ti-dspbios.inc b/recipes-ti/bios/ti-dspbios.inc
new file mode 100644 (file)
index 0000000..4bad834
--- /dev/null
@@ -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 (file)
index 0000000..536939e
--- /dev/null
@@ -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 (file)
index 0000000..c9c3fda
--- /dev/null
@@ -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 (file)
index 0000000..7798d40
--- /dev/null
@@ -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 (file)
index 0000000..d462d9f
--- /dev/null
@@ -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 (file)
index 0000000..26debf8
--- /dev/null
@@ -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 (file)
index 0000000..a743a6d
--- /dev/null
@@ -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 (file)
index 0000000..110ee35
--- /dev/null
@@ -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 (file)
index 0000000..396b356
--- /dev/null
@@ -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 (file)
index 0000000..eab3ec6
--- /dev/null
@@ -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 (file)
index 0000000..5a25dbb
--- /dev/null
@@ -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 (file)
index 0000000..fa4cb2e
--- /dev/null
@@ -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 (file)
index 0000000..271b304
--- /dev/null
@@ -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 (executable)
index 0000000..9cfb19d
--- /dev/null
@@ -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 (executable)
index 0000000..b2f2faa
--- /dev/null
@@ -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 (executable)
index 0000000..48fa84b
--- /dev/null
@@ -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 (file)
index 0000000..c2ca5d9
--- /dev/null
@@ -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 (file)
index 0000000..3b79c24
--- /dev/null
@@ -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 (file)
index 0000000..e7eefe1
--- /dev/null
@@ -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 (file)
index 0000000..2bacd7a
--- /dev/null
@@ -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 (file)
index 0000000..836e118
--- /dev/null
@@ -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 (file)
index 0000000..120792b
--- /dev/null
@@ -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 (file)
index 0000000..4b5a537
--- /dev/null
@@ -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 (file)
index 0000000..759561f
--- /dev/null
@@ -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"
+