summaryrefslogtreecommitdiff
path: root/recipes/ti
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2009-08-26 11:35:14 +0200
committerKoen Kooi <koen@openembedded.org>2009-08-26 11:35:14 +0200
commit172cb63ce5e91d489993590ec09e418aba019b4e (patch)
treee10d322895620ec0c96c2ab0efcd296bfc93b6b9 /recipes/ti
parentbac5eef9c8a73672ee114926011addabb36610eb (diff)
dvsdk: rename to ti now that other things like bitblit live in that dir now
Diffstat (limited to 'recipes/ti')
-rw-r--r--recipes/ti/README30
-rw-r--r--recipes/ti/dsplink.inc112
-rwxr-xr-xrecipes/ti/files/Makefile-dsplink-dsp59
-rwxr-xr-xrecipes/ti/files/Makefile-dsplink-gpp120
-rw-r--r--recipes/ti/files/cmem-class-device-27-and-sched-include-fix.patch23
-rw-r--r--recipes/ti/files/cmem-remove-show-pte-function.patch56
-rw-r--r--recipes/ti/files/config.bld48
-rw-r--r--recipes/ti/files/dm355mm_1_30.patch498
-rw-r--r--recipes/ti/files/dmai-built-with-angstrom.patch48
-rw-r--r--recipes/ti/files/dmai-do-not-panic-on-mixer-failure.patch31
-rw-r--r--recipes/ti/files/dmai-support-32bit-align.patch17
-rw-r--r--recipes/ti/files/dmai-update-cpu-name.patch16
-rw-r--r--recipes/ti/files/dmai-update-fb-display.patch77
-rw-r--r--recipes/ti/files/dmai-update-v4l2-display.patch127
-rw-r--r--recipes/ti/files/dsplink-128M.patch104
-rw-r--r--recipes/ti/files/dsplink-add-class-device-create-support.patch55
-rw-r--r--recipes/ti/files/dsplink-semaphore-27.patch36
-rw-r--r--recipes/ti/files/dvsdk-rules/Makefile284
-rwxr-xr-xrecipes/ti/files/dvsdk-rules/check.sh16
-rwxr-xr-xrecipes/ti/files/dvsdk-rules/info.sh58
-rw-r--r--recipes/ti/files/gstreamer-ti-tracker-824.patch125
-rw-r--r--recipes/ti/files/loadmodules-ti-codec-engine-apps.sh37
-rwxr-xr-xrecipes/ti/files/loadmodules-ti-dmai-apps.sh37
-rwxr-xr-xrecipes/ti/files/loadmodules-ti-dmai-dm355_al.sh23
-rwxr-xr-xrecipes/ti/files/loadmodules-ti-dmai-dm6446_al.sh19
-rwxr-xr-xrecipes/ti/files/loadmodules-ti-dmai-o3530_al.sh42
-rw-r--r--recipes/ti/files/loadmodules-ti-dsplink-apps.sh25
-rw-r--r--recipes/ti/files/lpm-device-create-and-semaphore-include-fix.patch121
-rw-r--r--recipes/ti/files/lpm-make-symbol-warnings-fix.patch117
-rwxr-xr-xrecipes/ti/files/mapdmaqbin0 -> 7680 bytes
-rw-r--r--recipes/ti/files/sdma-class-device-and-includes-fix.patch59
-rw-r--r--recipes/ti/files/unloadmodules-ti-codec-engine-apps.sh12
-rwxr-xr-xrecipes/ti/files/unloadmodules-ti-dmai-apps.sh12
-rw-r--r--recipes/ti/files/unloadmodules-ti-dsplink-apps.sh5
-rw-r--r--recipes/ti/gstreamer-ti/codec_combo_directory_fix.patch52
-rw-r--r--recipes/ti/gstreamer-ti/gst-buffsize.diff113
-rw-r--r--recipes/ti/gstreamer-ti_svn.bb66
-rw-r--r--recipes/ti/ti-cgt6x-native_6.0.21.bb22
-rw-r--r--recipes/ti/ti-cgt6x-native_6.1.9.bb22
-rw-r--r--recipes/ti/ti-cgt6x.inc42
-rw-r--r--recipes/ti/ti-cmem-module_2.23.1.bb68
-rw-r--r--recipes/ti/ti-cmem-module_2.23.bb51
-rw-r--r--recipes/ti/ti-codec-combo-dm355.inc38
-rw-r--r--recipes/ti/ti-codec-combo-dm355_1.13.bb28
-rw-r--r--recipes/ti/ti-codec-combo-dm6446.inc39
-rw-r--r--recipes/ti/ti-codec-combo-dm6446_2.05.bb40
-rw-r--r--recipes/ti/ti-codec-combo-omap3530.inc46
-rw-r--r--recipes/ti/ti-codec-combo-omap3530_3.16.1.bb51
-rw-r--r--recipes/ti/ti-codec-combo-omapl137_1.0.bb23
-rw-r--r--recipes/ti/ti-codec-combos_3.16.bb90
-rw-r--r--recipes/ti/ti-codec-engine_2.21.bb278
-rw-r--r--recipes/ti/ti-codec-engine_2.23.1.bb32
-rw-r--r--recipes/ti/ti-codec-engine_2.24.01.bb94
-rw-r--r--recipes/ti/ti-cs1-omap3530.inc41
-rw-r--r--recipes/ti/ti-cs1-omap3530_1.0.1.bb53
-rw-r--r--recipes/ti/ti-dm355mm-module_1.13.bb57
-rw-r--r--recipes/ti/ti-dmai.inc16
-rw-r--r--recipes/ti/ti-dmai_svn.bb106
-rw-r--r--recipes/ti/ti-dspbios-native_5.33.02.bb21
-rw-r--r--recipes/ti/ti-dspbios-native_5.33.04.bb22
-rw-r--r--recipes/ti/ti-dspbios.inc40
-rw-r--r--recipes/ti/ti-dsplink-module_1.61.3.bb168
-rw-r--r--recipes/ti/ti-lpm-module_2.23.1.bb65
-rw-r--r--recipes/ti/ti-paths.inc80
-rw-r--r--recipes/ti/ti-sdma-module_2.23.1.bb56
-rw-r--r--recipes/ti/ti-xdctools-native_3.10.03.bb21
-rw-r--r--recipes/ti/ti-xdctools-native_3.15.01.59.bb22
-rw-r--r--recipes/ti/ti-xdctools.inc40
68 files changed, 4452 insertions, 0 deletions
diff --git a/recipes/ti/README b/recipes/ti/README
new file mode 100644
index 0000000000..fa1b481f68
--- /dev/null
+++ b/recipes/ti/README
@@ -0,0 +1,30 @@
+Depending on platform you need to download one or more components from the external URL and put in downloads directory.
+
+DM355
+-----
+ - Code Engine 2.24
+
+OMAP3530/DM6446
+------
+ - Code Engine 2.24
+ - DSP/BIOS Link for Linux 1.61.03
+ - DSP/BIOS 5.33.04
+ - C6000 Code Generation Tools v6.1.9 Linux
+
+URL's:
+------
+* CE 2.24 (codec_engine_2_24.tar.gz)
+ http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/CE/ce_2_24/index.html
+
+* DSP/BIOS 5.33.04 (bios_setuplinux_5_33_04.bin)
+ http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/bios/bios_5_33/bios_5_33_04/index_external.html
+
+* DSP/BIOS Link for Linux 1.61.03 (dsplink_1_61_03.tar.gz)
+ http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/link/link_1_60/index.html
+
+* C6000 Code Generation Tools v6.1.9 Linux (ti_cgt_c6000_6.1.9_setup_linux_x86.bin)
+ https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm
+
+* Generic download URI
+ http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/
+
diff --git a/recipes/ti/dsplink.inc b/recipes/ti/dsplink.inc
new file mode 100644
index 0000000000..1ca01c399c
--- /dev/null
+++ b/recipes/ti/dsplink.inc
@@ -0,0 +1,112 @@
+DESCRIPTION = "DSP Link for TI ARM/DSP processors"
+
+DEPENDS = "virtual/kernel perl-native"
+
+inherit module
+
+do_configure () {
+ # Clean up stale binaries
+ find ${S} -name "*.ko" -exec rm {} \; || true
+ find ${S} -name "*.o" -exec rm {} \; || true
+
+ # Run perl script to create appropriate makefiles (v1.60 and up)
+ (
+ cd ${DSPLINK}
+ perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=${DSPCFG} --dspos_0=DSPBIOS5XX --gppos=${GPPOS} --comps=ponslrm
+ )
+}
+
+do_compile () {
+ unset DISPLAY
+ sed -i -e s:armv7a:armv7-a:g ${DSPLINK}/make/Linux/omap3530_2.6.mk
+
+ # export various settings to override the defaults in the makefiles
+ export DSP_BASE_CGTOOLS=${TITOOLSDIR}/${TICGTOOLSDIR}
+ export DSP_BASE_BIOS=${TITOOLSDIR}/${TIBIOSDIR}
+ export DSP_BASE_RTDX=${TITOOLSDIR}/${TIBIOSDIR}/packages/ti/rtdx
+ export GPPTOOL_DIR=${CROSS_DIR}
+ export LINUXKERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR}
+ export LINK_INSTALL_DIR=${DSPLINK}
+ export VARIANT=${DSPLINKSOC}
+ export PLATFORM=${DSPLINKPLATFORM}
+ export BASE_TOOLCHAIN=${CROSS_DIR}
+ export BASE_CGTOOLS=${BASE_TOOLCHAIN}/bin
+ # 'OSINC_PLATFORM' is used in both the dsp and gpp sides...
+ export OSINC_PLATFORM1=${CROSS_DIR}/lib/gcc/${TARGET_SYS}/$(${TARGET_PREFIX}gcc -dumpversion)/include
+ export OSINC_TARGET=${BASE_TOOLCHAIN}/target/usr/include
+
+ # 'ARCHIVER' is being used in the dsp side of the build as well as gpp
+ export ARCHIVER_AR=${TARGET_PREFIX}ar
+ export BASE_SABIOS=${DSP_BASE_BIOS}
+
+ #dsplinkk.ko bits
+ if [ ! -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE ] ; then
+ install -d ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE
+ fi
+
+ cp ${WORKDIR}/Makefile-dsplink-gpp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/Makefile
+ cd ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/
+
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+ export KDIR=${STAGING_KERNEL_DIR}
+
+ make -e driver
+ make -e library
+ make -e samples
+
+ make -e -f ${WORKDIR}/Makefile-dsplink-dsp
+ cp -a * ${DSPLINK}/gpp/export/BIN/Linux/${DSPLINKPLATFORM}/RELEASE
+}
+
+do_install () {
+ #driver - kernel module
+ install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
+ cp ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplinkk.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
+
+ #library
+ install -d ${D}/${libdir}
+ install -m 0755 ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/dsplink.lib ${D}/${libdir}
+
+ #sample apps
+ install -d ${D}/${datadir}/ti-dsplink
+ install ${DSPLINK}/gpp/BUILD/EXPORT/RELEASE/*gpp ${D}/${datadir}/ti-dsplink || true
+ for i in $(find ${DSPLINK}/dsp/BUILD/ -name "*.out") ; do
+ install ${i} ${D}/${datadir}/ti-dsplink
+ done
+}
+
+# Codec Engine and friends need a complete tree, so stage it all
+do_stage() {
+ install -d ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN}
+ cp -pPrf ${S}/* ${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/
+}
+
+PACKAGES =+ "ti-dsplink-module ti-dsplink-apps"
+FILES_ti-dsplink-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/dsplinkk.ko"
+FILES_ti-dsplink-apps = "${datadir}/ti-dsplink/* ${libdir}/dsplink.lib"
+
+pkg_postinst_ti-dsplink-module () {
+ if [ -n "$D" ]; then
+ exit 1
+ fi
+ depmod -a
+ update-modules || true
+}
+
+pkg_postrm_ti-dsplink-module () {
+ update-modules || true
+}
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+#legacy upgrade helpers
+RPROVIDES_ti-dsplink-module += "dsplink-module"
+RREPLACES_ti-dsplink-module += "dsplink-module"
+RPROVIDES_ti-dsplink-apps += "dsplink-apps"
+RREPLACES_ti_dsplink-apps += "dsplink-apps"
+
+#add run-time dependencies - note for kernel module we can only use RRECOMMENDS, since modules might be built into the kernel
+RRECOMMENDS_ti-dsplink-apps += "ti-dsplink-module"
+
diff --git a/recipes/ti/files/Makefile-dsplink-dsp b/recipes/ti/files/Makefile-dsplink-dsp
new file mode 100755
index 0000000000..0861f1ee21
--- /dev/null
+++ b/recipes/ti/files/Makefile-dsplink-dsp
@@ -0,0 +1,59 @@
+#
+# ======== makeunix ========
+#
+
+# Import Tools Path from Rules.make
+#include Rules.make
+
+PROJECT_BASE_DIR = $(shell pwd)
+LINUXKERNEL_INSTALL_DIR:=some-path/kernel
+LINK_INSTALL_DIR := some-path/dsplink_1_51/dsplink
+
+# The prefix to be added before the GNU compiler tools (optionally including
+# path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-".
+GPPTOOL_DIR:=some-path/cross
+
+# ---- DSP tools ----
+DSP_BASE_CGTOOLS := some-path/cg6x_6_0_19
+DSP_BASE_BIOS := some-path/bios_5_32_03
+DSP_BASE_RTDX := some-path/bios_5_32_03/packages/ti/rtdx
+OSINC_PLATFORM1 := something
+ARCHIVER_AR := something
+
+
+# ---- construct Link build make vars ----
+GPP_MAKE_OPTS := COMPILER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \
+ LINKER=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-gcc \
+ LD=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+ ARCHIVER1=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+ ARCHIVER2=$(GPPTOOL_DIR)/bin/arm-angstrom-linux-gnueabi-ld \
+ CROSS_COMPILE=arm-angstrom-linux-gnueabi- \
+ DSPLINK=$(LINK_INSTALL_DIR) \
+ BASE_TOOLCHAIN=$(GPPTOOL_DIR) \
+ BASE_BUILDOS=$(LINUXKERNEL_INSTALL_DIR) \
+ ARCHIVER=$(ARCHIVER_AR) OSINC_PLATFORM=$(OSINC_PLATFORM1) \
+
+DSP_MAKE_OPTS := DSPLINK=$(DSPLINK) \
+ DPPROOT=$(DSPLINK)/dsp \
+ BASE_SABIOS=$(DSP_BASE_BIOS) \
+ BASE_CGTOOLS=$(DSP_BASE_CGTOOLS) \
+ BASE_RTDX=$(DSP_BASE_RTDX)
+
+
+# ======== all ========
+all: $(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko
+
+$(LINK_INSTALL_DIR)/packages/dsplink/gpp/export/BIN/Linux/Davinci/RELEASE/dsplinkk.ko:
+ #@echo Building DSPLINK GPP driver, libs
+ #make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS)
+ #make -s -C $(DSPLINK)/gpp/src/samples $(GPP_MAKE_OPTS)
+ @echo Building DSPLINK DSP libs and message sample for DaVinci...
+ make -C $(DSPLINK)/dsp/src $(DSP_MAKE_OPTS)
+ make -C $(DSPLINK)/dsp/src/samples $(DSP_MAKE_OPTS)
+
+# clean rules
+clean:
+ @echo Cleaning DSPLINK GPP driver, libs
+ make -s -C $(LINK_INSTALL_DIR)/gpp/src $(GPP_MAKE_OPTS) clean
+ @rm -rf $(LINK_INSTALL_DIR)/gpp/export/BIN/*
+ @rm -rf $(LINK_INSTALL_DIR)/gpp/export/INCLUDE/*
diff --git a/recipes/ti/files/Makefile-dsplink-gpp b/recipes/ti/files/Makefile-dsplink-gpp
new file mode 100755
index 0000000000..d9f2f6209a
--- /dev/null
+++ b/recipes/ti/files/Makefile-dsplink-gpp
@@ -0,0 +1,120 @@
+# Composite Makefile
+DIRSEP=/
+
+TI_DSPLINK_RELATIVE_PATH :=../../../../
+
+# include the CURRENTCFG.mk
+include $(DSPLINK)$(DIRSEP)config$(DIRSEP)BUILD$(DIRSEP)CURRENTCFG.MK
+
+# Generate the list of sources
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)arch$(DIRSEP)SOURCES
+ARCH_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)arch$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)SOURCES
+LDRV_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES
+LDRV_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)ldrv$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)gen$(DIRSEP)SOURCES
+GEN_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)gen$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)SOURCES
+PMGR_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES
+PMGR_SOURCES += $(addpreifx $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP)SOURCES
+PMGR_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)pmgr$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)SOURCES
+OSAL_SOURCES := $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES
+OSAL_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP)SOURCES
+OSAL_SOURCES += $(addprefix $(TI_DSPLINK_RELATIVE_PATH)gpp$(DIRSEP)src$(DIRSEP)osal$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(TI_DSPLINK_GPPOSVERSION)$(DIRSEP),$(SOURCES))
+
+DSPLINK_SOURCES := $(ARCH_SOURCES) $(LDRV_SOURCES) $(GEN_SOURCES) $(OSAL_SOURCES) $(PMGR_SOURCES)
+DSPLINK_OBJS := $(foreach srcFile, $(DSPLINK_SOURCES),$(basename $(srcFile)).o)
+
+# EXTRA_CFLAGS
+EXTRA_CFLAGS += $(addprefix -D, $(TI_DSPLINK_GPP_DEFINES))
+EXTRA_CFLAGS += $(addprefix -I, $(TI_DSPLINK_GPP_INC_PATH))
+EXTRA_CFLAGS += -DEXPORT_SYMTAB
+EXTRA_CFLAGS += -DTRACE_KERNEL
+
+ifneq ($(KERNELRELEASE),)
+obj-m := dsplinkk.o
+dsplinkk-objs := $(DSPLINK_OBJS)
+else
+KDIR := /path/to/kernel/
+PWD := $(shell pwd)
+driver:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+endif
+
+clean:
+ @echo DSPLINK - cleaning driver, library and samples
+ find $(DSPLINK) -name "*.o" -exec rm {} \;
+ rm -fr dsplinkk.ko dsplinkk.mod.c Module.symvers *gpp *.a *.lib
+
+################################################################################################
+# USER SIDE
+BUILD_CONFIG := ..$(DIRSEP)..$(DIRSEP)..$(DIRSEP)config$(DIRSEP)BUILD
+# Generate the list of sources
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)SOURCES
+API_SOURCES := $(addprefix $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP),$(SOURCES))
+SOURCES :=
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)SOURCES
+API_SOURCES += $(addprefix $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)api$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP),$(SOURCES))
+
+# Update the CFLAG
+#CC = arm-none-linux-gnueabi-gcc
+#AR = arm-none-linux-gnueabi-ar
+#LD = arm-none-linux-gnueabi-ld
+ARFLAGS = -rs
+LDFLAGS = -r
+EXTRA_CFLAGS += $(addprefix -D, $(TI_DSPLINK_GPP_DEFINES)) $(addprefix -I, $(TI_DSPLINK_GPP_INC_PATH))
+
+define CONFIG_template
+$(shell cp $(DSPLINK)$(DIRSEP)config$(DIRSEP)all$(DIRSEP)$(1) $(DSPLINK)$(DIRSEP)config$(DIRSEP)BUILD$(DIRSEP))
+endef
+
+define PROGRAM_template
+$(basename $(1)).o: $(1)
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $(1) -o $(basename $(1)).o
+endef
+$(foreach prog,$(API_SOURCES),$(eval $(call PROGRAM_template,$(prog))))
+$(foreach prog,$(CONFIG),$(eval $(call CONFIG_template,$(prog))))
+
+DSPLINK_API_OBJS := $(foreach srcFile, $(API_SOURCES),$(basename $(srcFile)).o)
+
+library: $(DSPLINK_API_OBJS)
+ @echo DSPLINK - building user library - dsplink.lib
+ $(LD) $(LDFLAGS) -o dsplink.lib $(DSPLINK_API_OBJS)
+ $(AR) $(ARFLAGS) dsplink.a $(DSPLINK_API_OBJS)
+
+
+######################################### SAMPLES ###################################
+SOURCES :=
+define SAMPLES_template
+ifneq ($(1),message_multi)
+$(1): $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(1).c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(1)_os.c
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS) -o $(1)gpp $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(1).c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)$(1)_os.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)main.c dsplink.lib -lpthread
+else
+$(1): $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)message.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)message_os.c
+ $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1) -I$(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS) -o $(1)gpp $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)message.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)message_os.c $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)$(1)$(DIRSEP)$(TI_DSPLINK_GPPOS)$(DIRSEP)main.c dsplink.lib -lpthread
+endif
+endef
+
+include $(TI_DSPLINK_GPPROOT)$(DIRSEP)src$(DIRSEP)samples$(DIRSEP)DIRS
+$(foreach prog,$(DIRS),$(eval $(call SAMPLES_template,$(prog))))
+
+samples: $(foreach prog,$(DIRS),$(prog))
+
+all: driver library samples
diff --git a/recipes/ti/files/cmem-class-device-27-and-sched-include-fix.patch b/recipes/ti/files/cmem-class-device-27-and-sched-include-fix.patch
new file mode 100644
index 0000000000..8eb3210bb1
--- /dev/null
+++ b/recipes/ti/files/cmem-class-device-27-and-sched-include-fix.patch
@@ -0,0 +1,23 @@
+diff -uNr codec_engine_2_21/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c codec_engine_2_21_fix/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
+--- codec_engine_2_21/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-02-12 22:02:15.000000000 +0000
++++ codec_engine_2_21_fix/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-02-12 22:08:49.000000000 +0000
+@@ -29,6 +29,7 @@
+ #include <linux/mm.h>
+ #include <linux/seq_file.h>
+ #include <linux/vmalloc.h>
++#include <linux/sched.h>
+ #include <asm/cacheflush.h>
+ #include <asm/uaccess.h>
+ #include <asm/pgtable.h>
+@@ -1710,7 +1711,11 @@
+ #ifdef USE_CLASS_DEVICE
+ class_device_create(cmem_class, NULL, MKDEV(cmem_major, 0), NULL, "cmem");
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++ device_create(cmem_class, NULL, MKDEV(cmem_major, 0), NULL, "cmem");
++#else
+ device_create(cmem_class, NULL, MKDEV(cmem_major, 0), "cmem");
++#endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+ #endif // USE_CLASS_DEVICE
+ #endif // USE_CLASS_SIMPLE
+ #endif // USE_UDEV
diff --git a/recipes/ti/files/cmem-remove-show-pte-function.patch b/recipes/ti/files/cmem-remove-show-pte-function.patch
new file mode 100644
index 0000000000..2d0fe672ef
--- /dev/null
+++ b/recipes/ti/files/cmem-remove-show-pte-function.patch
@@ -0,0 +1,56 @@
+--- codec_engine_2_23_01/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-04-20 14:43:31.000000000 -0400
++++ codec_engine_2_23_01.new/cetools/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2009-07-28 10:48:38.000000000 -0400
+@@ -1018,53 +1018,6 @@
+ }
+
+
+-/*
+- * This is useful to dump out the page tables associated with
+- * 'addr' in mm 'mm'.
+- */
+-void show_pte(struct mm_struct *mm, unsigned long addr)
+-{
+- pgd_t *pgd;
+-
+- if (!mm)
+- mm = &init_mm;
+-
+- printk(KERN_ALERT "pgd = %p\n", mm->pgd);
+- pgd = pgd_offset(mm, addr);
+- printk(KERN_ALERT "[%08lx] *pgd=%08lx", addr, pgd_val(*pgd));
+-
+- do {
+- pmd_t *pmd;
+- pte_t *pte;
+-
+- if (pgd_none(*pgd))
+- break;
+-
+- if (pgd_bad(*pgd)) {
+- printk("(bad)");
+- break;
+- }
+-
+- pmd = pmd_offset(pgd, addr);
+-
+- if (pmd_none(*pmd))
+- break;
+-
+- if (pmd_bad(*pmd)) {
+- printk("(bad)");
+- break;
+- }
+-
+- /* We must not map this if we have highmem enabled */
+- pte = pte_offset_map(pmd, addr);
+- printk(", *pte=%08lx", pte_val(*pte));
+- printk(", *ppte=%08lx", pte_val(pte[-PTRS_PER_PTE]));
+- pte_unmap(pte);
+- } while(0);
+-
+- printk("\n");
+-}
+-
+ s