aboutsummaryrefslogtreecommitdiffstats
path: root/extras/recipes-ti/codec-engine/ti-codec-engine.inc
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-ti/codec-engine/ti-codec-engine.inc')
-rw-r--r--extras/recipes-ti/codec-engine/ti-codec-engine.inc199
1 files changed, 199 insertions, 0 deletions
diff --git a/extras/recipes-ti/codec-engine/ti-codec-engine.inc b/extras/recipes-ti/codec-engine/ti-codec-engine.inc
new file mode 100644
index 00000000..15bd4642
--- /dev/null
+++ b/extras/recipes-ti/codec-engine/ti-codec-engine.inc
@@ -0,0 +1,199 @@
+DESCRIPTION = "Codec Engine for TI ARM/DSP processors"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce"
+SECTION = "devel"
+LICENSE = "BSD"
+
+# TODO :: Add Codec Engine Library Rebuild
+# TODO :: Add Examples APP_LOCAL build as well?
+# TODO :: Check DEPENDS - are the DSP side packages required for ARM-only products?
+
+require recipes-ti/includes/ti-paths.inc
+require recipes-ti/includes/ti-staging.inc
+
+PROVIDES += "ti-codec-engine-examples"
+
+PR = "${MACHINE_KERNEL_PR}"
+
+S = "${WORKDIR}/codec_engine_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ce/${PV}/exports/codec_engine_${PV},lite.tar.gz;name=cetarball "
+
+DEPENDS = "ti-framework-components ti-xdais ti-xdctools ti-linuxutils"
+DEPENDS_append_dm6446 = " ti-dspbios ti-dsplink ti-local-power-manager ti-cgt6x ti-biosutils ti-edma3lld"
+DEPENDS_append_dm6467 = " ti-dspbios ti-dsplink ti-cgt6x ti-biosutils ti-edma3lld"
+DEPENDS_append_omap3 = " ti-dspbios ti-dsplink ti-local-power-manager ti-cgt6x ti-biosutils ti-edma3lld"
+DEPENDS_append_omapl137 = " ti-dspbios ti-dsplink ti-cgt6x ti-biosutils ti-edma3lld"
+DEPENDS_append_omapl138 = " ti-dspbios ti-dsplink ti-cgt6x ti-biosutils ti-edma3lld"
+
+# SOC_FAMILY configuration
+
+# Define DEVICES variable
+CEEXAMPLESDEVICES_dm6446 = "DM6446"
+CEEXAMPLESDEVICES_dm6467 = "DM6467"
+CEEXAMPLESDEVICES_omap3 = "OMAP3530"
+CEEXAMPLESDEVICES_dm355 = "DM355"
+CEEXAMPLESDEVICES_dm365 = "DM365"
+CEEXAMPLESDEVICES_omapl137 = "OMAPL137"
+CEEXAMPLESDEVICES_omapl138 = "OMAPL138"
+CEEXAMPLESDEVICES ?= "<UNDEFINED_CEEXAMPLESDEVICES>"
+
+# Define GPPOS variable
+CEEXAMPLESGPPOS_dm6446 = "LINUX_GCC"
+CEEXAMPLESGPPOS_dm6467 = "LINUX_GCC"
+CEEXAMPLESGPPOS_omap3 = "LINUX_GCC"
+CEEXAMPLESGPPOS_dm355 = "LINUX_GCC"
+CEEXAMPLESGPPOS_dm365 = "LINUX_GCC"
+CEEXAMPLESGPPOS_omapl137 = "LINUX_GCC"
+CEEXAMPLESGPPOS_omapl138 = "LINUX_GCC"
+CEEXAMPLESGPPOS ?= "<UNDEFINED_CEEXAMPLESGPPOS>"
+
+# Define PROGRAM variable
+CEEXAMPLESPROGRAMS_dm6446 = "APP_CLIENT DSP_SERVER"
+CEEXAMPLESPROGRAMS_dm6467 = "APP_CLIENT DSP_SERVER"
+CEEXAMPLESPROGRAMS_omap3 = "APP_CLIENT DSP_SERVER"
+CEEXAMPLESPROGRAMS_dm355 = "APP_LOCAL"
+CEEXAMPLESPROGRAMS_dm365 = "APP_LOCAL"
+CEEXAMPLESPROGRAMS_omapl137 = "APP_CLIENT DSP_SERVER"
+CEEXAMPLESPROGRAMS_omapl138 = "APP_CLIENT DSP_SERVER"
+CEEXAMPLESPROGRAMS ?= "<UNDEFINED_CEEXAMPLESPROGRAMS>"
+
+do_configure() {
+
+ # No way to pass this via ENV?
+ sed -i \
+ -e s:arm-none-linux-gnueabi-:${TARGET_PREFIX}:g \
+ ${S}/examples/xdcpaths.mak
+
+ # compiler is not under ${TOOLCHAIN_PATH}/bin anymore...
+ sed -i \
+ -e s:bin/${TARGET_PREFIX}gcc:${TARGET_PREFIX}gcc:g \
+ ${S}/examples/xdcpaths.mak
+
+ # ... and ar is not there too
+# sed -i \
+# -e s:/arm-angstrom-linux-gnueabi/bin/ar:/arm-angstrom-linux-gnueabi-ar:g \
+# ${S}/examples/ti/xdais/dm/examples/viddec1_copy/package.mak
+}
+
+do_prepsources() {
+
+ for i in codecs extensions servers apps ; do
+ cd ${S}/examples/ti/sdo/ce/examples/$i
+ make DEVICES="${CEEXAMPLESDEVICES}" \
+ GPPOS="${CEEXAMPLESGPPOS}" \
+ PROGRAMS="${CEEXAMPLESPROGRAMS}" \
+ CE_INSTALL_DIR="${S}" \
+ XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \
+ BIOS_INSTALL_DIR="${BIOS_INSTALL_DIR}" \
+ BIOSUTILS_INSTALL_DIR="${BIOSUTILS_INSTALL_DIR}" \
+ DSPLINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \
+ XDAIS_INSTALL_DIR="${XDAIS_INSTALL_DIR}" \
+ FC_INSTALL_DIR="${FC_INSTALL_DIR}" \
+ CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \
+ LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \
+ EDMA3_LLD_INSTALL_DIR="${EDMA3_LLD_INSTALL_DIR}" \
+ CGTOOLS_V5T="${TOOLCHAIN_PATH}" \
+ CGTOOLS_C64P="${CODEGEN_INSTALL_DIR}" \
+ CGTOOLS_C674="${CODEGEN_INSTALL_DIR}" \
+ clean
+ # '.make' target was used in CE < 2.26, but its no longer
+ # supported in CE >= 2.26. Now we are moved to >=2.26
+ # hence commenting out the .make target.
+ # .make clean
+ done
+}
+
+addtask prepsources after do_configure before do_compile
+
+do_compile () {
+
+ for i in codecs extensions servers apps ; do
+ cd ${S}/examples/ti/sdo/ce/examples/$i
+ make DEVICES="${CEEXAMPLESDEVICES}" \
+ GPPOS="${CEEXAMPLESGPPOS}" \
+ PROGRAMS="${CEEXAMPLESPROGRAMS}" \
+ CE_INSTALL_DIR="${S}" \
+ XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \
+ BIOS_INSTALL_DIR="${BIOS_INSTALL_DIR}" \
+ BIOSUTILS_INSTALL_DIR="${BIOSUTILS_INSTALL_DIR}" \
+ DSPLINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \
+ XDAIS_INSTALL_DIR="${XDAIS_INSTALL_DIR}" \
+ FC_INSTALL_DIR="${FC_INSTALL_DIR}" \
+ CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \
+ LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \
+ EDMA3_LLD_INSTALL_DIR="${EDMA3_LLD_INSTALL_DIR}" \
+ CGTOOLS_V5T="${TOOLCHAIN_PATH}" \
+ CGTOOLS_C64P="${CODEGEN_INSTALL_DIR}" \
+ CGTOOLS_C674="${CODEGEN_INSTALL_DIR}" \
+ all
+ done
+}
+
+do_install() {
+
+ install -d ${D}/${installdir}/ti-codec-engine-examples
+ if [ -e ${S}/examples/apps/system_files/${CEEXAMPLESDEVICES}/loadmodules.sh ]; then
+ cp ${S}/examples/apps/system_files/${CEEXAMPLESDEVICES}/loadmodules.sh ${D}/${installdir}/ti-codec-engine-examples
+ elif [ -e ${WORKDIR}/loadmodules.sh ]; then
+ cp ${WORKDIR}/loadmodules.sh ${D}/${installdir}/ti-codec-engine-examples
+ fi
+
+ cd ${S}/examples/ti/sdo/ce/examples
+
+ # Install the apps, servers and test data, mirroring the source directory structure
+ # - Put the servers inside the same folder as the executable
+ # - TODO - Check nested dirs (e.g. dualcpu_separateconfig)
+
+ # Put all servers in separate tree.
+ for i in $(find . -name "*.${DSPSUFFIX}"); do
+ install -d ${D}/${installdir}/ti-codec-engine-examples/servers/`dirname ${i} | cut -f3 -d /`
+ install ${i} ${D}/${installdir}/ti-codec-engine-examples/servers/`dirname ${i} | cut -f3 -d /`
+ done
+
+ for i in $(find . -name "*.xv5T"); do
+ install -d ${D}/${installdir}/ti-codec-engine-examples/`dirname ${i} | cut -f3 -d /`
+ install ${i} ${D}/${installdir}/ti-codec-engine-examples/`dirname ${i} | cut -f3 -d /`
+ done
+
+ for i in $(find . -name "*.dat"); do
+ install -d ${D}/${installdir}/ti-codec-engine-examples/`dirname ${i} | cut -f3 -d /`
+ install ${i} ${D}/${installdir}/ti-codec-engine-examples/`dirname ${i} | cut -f3 -d /`
+ done
+
+ # For each directory, softlink to the app server, except special cases
+ cd ${D}/${installdir}/ti-codec-engine-examples
+ for i in $(find . -type d | grep -v servers); do
+ {
+ pwd
+ cd ${D}/${installdir}/ti-codec-engine-examples/$i
+ if [ $(basename $i) = "audio1_ires" ] ; then
+ ln -s ../servers/audio1_ires/audio1_ires.${DSPSUFFIX}
+ elif [ $(basename $i) = "server_api_example" ] ; then
+ ln -s ../servers/server_api_example/audio_copy.${DSPSUFFIX}
+ elif [ $(basename $i) != "." ] ; then
+ ln -s ../servers/all_codecs/all.${DSPSUFFIX}
+ else
+ echo Skipping $i
+ fi
+ }
+ done
+
+ # Install/Stage the Source Tree
+ install -d ${D}${CE_INSTALL_DIR_RECIPE}
+ cp -pPrf ${S}/* ${D}${CE_INSTALL_DIR_RECIPE}
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+PACKAGES += "ti-codec-engine-examples"
+
+RDEPENDS_ti-codec-engine-examples = " ti-cmem-module"
+RDEPENDS_ti-codec-engine-examples_append_dm6446 = " ti-dsplink-module ti-lpm-module"
+RDEPENDS_ti-codec-engine-examples_append_dm6467 = " ti-dsplink-module"
+RDEPENDS_ti-codec-engine-examples_append_omap3 = " ti-dsplink-module ti-lpm-module"
+RDEPENDS_ti-codec-engine-examples_append_omapl137 = " ti-dsplink-module"
+RDEPENDS_ti-codec-engine-examples_append_omapl138 = " ti-dsplink-module"
+FILES_ti-codec-engine-examples = "${installdir}/ti-codec-engine-examples/*"
+INSANE_SKIP_ti-codec-engine-examples = "1"
+
+FILES_${PN}-dbg += "${installdir}/ti-codec-engine-examples/*/.debug"