dsplink: massive build cleanup and improvements. readme.txt added
authorRoger Monk <r-monk@ti.com>
Fri, 13 Feb 2009 09:26:38 +0000 (10:26 +0100)
committerKoen Kooi <koen@openembedded.org>
Fri, 13 Feb 2009 09:26:38 +0000 (10:26 +0100)
packages/dsplink/codec-engine_2.21.bb
packages/dsplink/dsplink.inc
packages/dsplink/files/cmem-class-device-27-and-sched-include-fix.patch [new file with mode: 0644]
packages/dsplink/files/dsplink-semaphore-27.patch [new file with mode: 0644]
packages/dsplink/files/lpm-device-create-and-semaphore-include-fix.patch [new file with mode: 0644]
packages/dsplink/readme.txt [new file with mode: 0644]
packages/dsplink/ti-paths.inc

index 1b958bd..4722fec 100644 (file)
@@ -16,7 +16,9 @@ PV = "221"
 # Look for tarball at https://www-a.ti.com/downloads/sds_support/targetcontent/CE/index.html
 
 SRC_URI = "http://install.tarball.in.source.dir/codec_engine_2_21.tar.gz \
-           file://cmemk-class-device-27.diff \
+           file://cmem-class-device-27-and-sched-include-fix.patch;patch=1 \
+           file://dsplink-semaphore-27.patch;patch=1 \
+           file://lpm-device-create-and-semaphore-include-fix.patch;patch=1 \
            file://Makefile.dsplink \
            file://Makefile-dsplink-kbuild \
            file://Makefile-dsplink-gpp \
@@ -42,8 +44,19 @@ do_compile_append() {
         -e s:/db/toolsrc/library/tools/vendors/opensource/gcc/4.1.0/Linux/gcc-4.1.0-glibc-2.3.6/i686-unknown-linux-gnu:/usr:g \
         -e s:arm-none-linux-gnueabi-:${TARGET_PREFIX}:g \
         -e 's:true, // build for uC Linux:false,:g' \
-        -e 's:true,  // build for PC Linux:false,:g' \ 
-       ${S}/examples/user.bld
+        -e 's:true,  // build for PC Linux:false,:g' \
+        ${S}/examples/user.bld
+
+        # For now, remove all targets, except dm6446 and omap3530
+        sed -i \
+        -e '/evmDM357/d' \
+        -e '/evmDM6467/d' \
+        -e '/evmDM355/d' \
+        -e '/evmDM6437/d' \
+        -e '/evmDM648/d' \
+        -e '/sdp3430/d' \
+        -e '/evm2530/d' \
+        ${S}/examples/user.bld
 
        # Fix path to c6x codegen
        sed -i -e s:/db/toolsrc/library/tools/vendors/ti/c6x/6.0.16/Linux:${TITOOLSDIR}/${TICGTOOLSDIR}:g \
index b263be3..002d08d 100644 (file)
@@ -21,11 +21,6 @@ do_configure () {
        cd ${DSPLINK}
        perl config/bin/dsplinkcfg.pl --platform=${DSPLINKPLATFORM} --nodsp=1 --dspcfg_0=${DSPCFG} --dspos_0=DSPBIOS5XX  --gppos=${GPPOS} --comps=ponslrm
        )
-
-       if [ $(echo ${KERNEL_VERSION} | cut -c5,6) -gt 26 ] ; then
-               sed -i -e s:asm/semaphore:linux/semaphore: ${DSPLINK}/gpp/src/osal/Linux/user.c
-               sed -i -e s:asm/semaphore:linux/semaphore: ${DSPLINK}/gpp/src/osal/Linux/2.6.18/sync.c
-       fi
 }
 
 PARALLEL_MAKE = ""
@@ -64,7 +59,6 @@ do_compile () {
        unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
        export KDIR=${STAGING_KERNEL_DIR}
        make -e all
-
        make -e -f ${WORKDIR}/Makefile-dsplink-dsp
 
 #lpm bits
@@ -97,13 +91,8 @@ do_compile () {
                # Build the cmem kernel module
                # We unset CFLAGS because kernel modules need different ones, this is basically a verbatim copy of kernel.bbclass and module-base.bbclass       
                unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS  
-               cd ${S}/cetools/packages/ti/sdo/linuxutils/cmem
-
-               # This sadly breaks doing -c compile more than once, but I don't have a better solution 
-               if [ $(echo ${KERNEL_VERSION} | cut -c5,6) -gt 26 ] ; then
-                       patch -p0 < ${WORKDIR}/cmemk-class-device-27.diff
-               fi
 
+               cd ${S}/cetools/packages/ti/sdo/linuxutils/cmem
                oe_runmake clean
                oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
                KERNEL_SRC=${STAGING_KERNEL_DIR}    \
diff --git a/packages/dsplink/files/cmem-class-device-27-and-sched-include-fix.patch b/packages/dsplink/files/cmem-class-device-27-and-sched-include-fix.patch
new file mode 100644 (file)
index 0000000..8eb3210
--- /dev/null
@@ -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/packages/dsplink/files/dsplink-semaphore-27.patch b/packages/dsplink/files/dsplink-semaphore-27.patch
new file mode 100644 (file)
index 0000000..b2f7116
--- /dev/null
@@ -0,0 +1,36 @@
+diff -uNr codec_engine_2_21/cetools/packages/dsplink/gpp/src/osal/Linux/2.6.18/sync.c codec_engine_2_21_fix/cetools/packages/dsplink/gpp/src/osal/Linux/2.6.18/sync.c
+--- codec_engine_2_21/cetools/packages/dsplink/gpp/src/osal/Linux/2.6.18/sync.c        2008-12-19 16:27:19.000000000 +0530
++++ codec_engine_2_21_mod/cetools/packages/dsplink/gpp/src/osal/Linux/2.6.18/sync.c    2009-02-12 10:08:48.000000000 +0530
+@@ -30,9 +30,14 @@
\r
\r
+ /*  ----------------------------------- OS Specific Headers         */\r
++#include <linux/version.h>\r
+ #include <linux/autoconf.h>\r
+ #include <linux/spinlock.h>\r
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)\r
+ #include <asm/semaphore.h>\r
++#else\r
++#include <linux/semaphore.h>\r
++#endif\r
+ #include <linux/timer.h>\r
+ #include <linux/sched.h>\r
+ #include <linux/delay.h>\r
+diff -uNr codec_engine_2_21/cetools/packages/dsplink/gpp/src/osal/Linux/user.c codec_engine_2_21_fix/cetools/packages/dsplink_mod/gpp/src/osal/Linux/user.c
+--- codec_engine_2_21/cetools/packages/dsplink/gpp/src/osal/Linux/user.c        2008-12-19 16:27:19.000000000 +0530
++++ codec_engine_2_21_fix/cetools/packages/dsplink_mod/gpp/src/osal/Linux/user.c        2009-02-12 10:08:05.000000000 +0530
+@@ -30,9 +30,14 @@
\r
\r
+ /*  ----------------------------------- OS Specific Headers         */\r
++#include <linux/version.h>\r
+ #include <linux/autoconf.h>\r
+ #include <linux/spinlock.h>\r
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)\r
+ #include <asm/semaphore.h>\r
++#else\r
++#include <linux/semaphore.h>\r
++#endif\r
+ #include <linux/timer.h>\r
+ #include <linux/sched.h>\r
+ #include <linux/delay.h>\r
diff --git a/packages/dsplink/files/lpm-device-create-and-semaphore-include-fix.patch b/packages/dsplink/files/lpm-device-create-and-semaphore-include-fix.patch
new file mode 100644 (file)
index 0000000..a3bc2b1
--- /dev/null
@@ -0,0 +1,121 @@
+diff -uNr codec_engine_2_21/cetools/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c
+--- codec_engine_2_21/cetools/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c 2008-11-05 00:18:39.000000000 +0000
++++ codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/omap3530/lpm/lpm_driver.c     2009-02-13 00:16:50.000000000 +0000
+@@ -225,6 +225,9 @@
+                             .os_wait = lpm_os_wait,
+                             .os_trace = lpm_os_trace,
+                         };
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++    char                lpm_tempDeviceCreateName[50];
++#endif
+     TRACE(KERN_ALERT "lpm.ko: + lpm_init\n");
+@@ -286,9 +289,16 @@
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             NULL, "lpm%d", lpm->inst[i].minor);
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++        sprintf(lpm_tempDeviceCreateName, "lpm%d", lpm->inst[i].minor);
++        device_create(lpm->lpm_class, NULL,
++            MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
++            NULL, lpm_tempDeviceCreateName);
++#else
+         device_create(lpm->lpm_class, NULL,
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             "lpm%d", lpm->inst[i].minor);
++#endif /* LINUX_VERSION */
+ #endif
+     }
+
+diff -uNr codec_engine_2_21/cetools/packages/ti/bios/power/modules/omap2530/lpm/lpm_driver.c codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/omap2530/lpm/lpm_driver.c
+--- codec_engine_2_21/cetools/packages/ti/bios/power/modules/omap2530/lpm/lpm_driver.c  2008-11-05 00:18:39.000000000 +0000
++++ codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/omap2530/lpm/lpm_driver.c      2009-02-13 00:16:50.000000000 +0000
+@@ -225,6 +225,9 @@
+                             .os_wait = lpm_os_wait,
+                             .os_trace = lpm_os_trace,
+                         };
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++    char                lpm_tempDeviceCreateName[50];
++#endif
+
+     TRACE(KERN_ALERT "lpm.ko: + lpm_init\n");
+
+@@ -286,9 +289,16 @@
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             NULL, "lpm%d", lpm->inst[i].minor);
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++        sprintf(lpm_tempDeviceCreateName, "lpm%d", lpm->inst[i].minor);
++        device_create(lpm->lpm_class, NULL,
++            MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
++            NULL, lpm_tempDeviceCreateName);
++#else
+         device_create(lpm->lpm_class, NULL,
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             "lpm%d", lpm->inst[i].minor);
++#endif /* LINUX_VERSION */
+ #endif
+     }
+
+diff -uNr codec_engine_2_21/cetools/packages/ti/bios/power/modules/dm357/lpm/lpm_driver.c codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/dm357/lpm/lpm_driver.c
+--- codec_engine_2_21/cetools/packages/ti/bios/power/modules/dm357/lpm/lpm_driver.c  2008-11-05 00:18:39.000000000 +0000
++++ codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/dm357/lpm/lpm_driver.c      2009-02-13 00:16:50.000000000 +0000
+@@ -225,6 +225,9 @@
+                             .os_wait = lpm_os_wait,
+                             .os_trace = lpm_os_trace,
+                         };
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++    char                lpm_tempDeviceCreateName[50];
++#endif
+
+     TRACE(KERN_ALERT "lpm.ko: + lpm_init\n");
+
+@@ -286,9 +289,16 @@
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             NULL, "lpm%d", lpm->inst[i].minor);
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++        sprintf(lpm_tempDeviceCreateName, "lpm%d", lpm->inst[i].minor);
++        device_create(lpm->lpm_class, NULL,
++            MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
++            NULL, lpm_tempDeviceCreateName);
++#else
+         device_create(lpm->lpm_class, NULL,
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             "lpm%d", lpm->inst[i].minor);
++#endif /* LINUX_VERSION */
+ #endif
+     }
+
+diff -uNr codec_engine_2_21/cetools/packages/ti/bios/power/modules/dm6446/lpm/lpm_driver.c codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/dm6446/lpm/lpm_driver.c
+--- codec_engine_2_21/cetools/packages/ti/bios/power/modules/dm6446/lpm/lpm_driver.c  2008-11-05 00:18:39.000000000 +0000
++++ codec_engine_2_21_fix/cetools/packages/ti/bios/power/modules/dm6446/lpm/lpm_driver.c      2009-02-13 00:16:50.000000000 +0000
+@@ -225,6 +225,9 @@
+                             .os_wait = lpm_os_wait,
+                             .os_trace = lpm_os_trace,
+                         };
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++    char                lpm_tempDeviceCreateName[50];
++#endif
+
+     TRACE(KERN_ALERT "lpm.ko: + lpm_init\n");
+
+@@ -286,9 +289,16 @@
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             NULL, "lpm%d", lpm->inst[i].minor);
+ #else
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++        sprintf(lpm_tempDeviceCreateName, "lpm%d", lpm->inst[i].minor);
++        device_create(lpm->lpm_class, NULL,
++            MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
++            NULL, lpm_tempDeviceCreateName);
++#else
+         device_create(lpm->lpm_class, NULL,
+             MKDEV(lpm->inst[i].major, lpm->inst[i].minor),
+             "lpm%d", lpm->inst[i].minor);
++#endif /* LINUX_VERSION */
+ #endif
+     }
+
diff --git a/packages/dsplink/readme.txt b/packages/dsplink/readme.txt
new file mode 100644 (file)
index 0000000..f20be41
--- /dev/null
@@ -0,0 +1,10 @@
+placeholder for readme
+
+todo with this package
+- rename top level dsplink directory
+- repartion code into different recipes - create codecengine-examples package
+- fix lpm build to pick up Module.symversion
+- cleanup device selection script - not good to just /d the targets - need cleaner solution
+- staging needs work
+
+- add ce 2.22
index 188dd54..ca9a9e6 100644 (file)
@@ -23,6 +23,14 @@ export CGTOOLS_V5T="${CROSS_DIR}"
 export CC_V5T="bin/${TARGET_PREFIX}gcc"
 export MVTOOL_PREFIX="${TARGET_PREFIX}"
 
+# This tells codec engine which targets to build
+DEVICES ?= "DM6446"
+DEVICES_omap5912osk = "fixme-ti-paths.inc"
+DEVICES_omap3evm = "OMAP3530"
+DEVICES_beagleboard = "OMAP3530"
+DEVICES_davinci-sffsdr = "DM6446"
+DEVICES_davinci-dvevm = "DM6446"
+
 DSPLINKPLATFORM ?= "DAVINCI"
 DSPLINKPLATFORM_omap5912osk = "OMAP"
 DSPLINKPLATFORM_beagleboard = "OMAP3530"
@@ -51,6 +59,7 @@ GPPOS ?= "MVL5G"
 GPPOS_beagleboard = "OMAPLSP"
 GPPOS_omap3evm = "OMAPLSP"
 
+export DEVICES
 export DSPLINKPLATFORM
 export DSPLINKDSP
 export DSPLINKSOC