1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-01-12 01:20:20 +00:00

import codec engine and dependencies from oe classic

Signed-off-by: Enrico Butera <ebutera@users.berlios.de>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
This commit is contained in:
Enrico Butera
2011-08-06 13:02:30 +02:00
committed by Koen Kooi
parent 3242ac8f0a
commit e32f2b80be
43 changed files with 2146 additions and 0 deletions

View File

@@ -0,0 +1,94 @@
DESCRIPTION = "TI C6Accel - DSP Software Libraries on ARM"
HOMEPAGE = "https://gforge01.dal.design.ti.com/gf/project/dsplib4arm/"
SECTION = "devel"
LICENSE = "TI TSPA"
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
require recipes-ti/includes/ti-eula-unpack.inc
PLATFORM_omapl138 = "omapl138"
PLATFORM_omap3 = "omap3530"
PLATFORM ?= "<UNDEFINED_PLATFORM>"
COMPATIBLE_MACHINE = "(omapl138|omap3)"
PROVIDES += "ti-c6accel-apps"
# This recipe links statically against kernel dependant stuff, use kernel PR as base and append a local version
PR = "${MACHINE_KERNEL_PR}"
PR_append = "c"
S = "${WORKDIR}/c6accel_${PV}"
# http://software-dl.ti.com/dsps/dsps_public_sw/c6000/web/c6accel/latest/index_FDS.html
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/c6000/web/c6accel/latest/exports//c6accel_${PV}_Linux-x86_Setup.bin;name=c6accelbin "
BINFILE="c6accel_${PV}_Linux-x86_Setup.bin"
TI_BIN_UNPK_CMDS="Y:workdir"
DEPENDS = "ti-codec-engine ti-xdais ti-dsplink ti-dspbios"
DEPENDS += "ti-edma3lld ti-cgt6x ti-xdctools ti-framework-components"
DEPENDS += "ti-biosutils"
TIARGS = ' \
PLATFORM="${PLATFORM}" \
CE_INSTALL_DIR="${CE_INSTALL_DIR}" \
XDAIS_INSTALL_DIR="${XDAIS_INSTALL_DIR}" \
LINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \
CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \
EDMA3_LLD_INSTALL_DIR="${EDMA3_LLD_INSTALL_DIR}" \
CODEGEN_INSTALL_DIR="${CODEGEN_INSTALL_DIR}" \
XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \
FC_INSTALL_DIR="${FC_INSTALL_DIR}" \
BIOS_INSTALL_DIR="${BIOS_INSTALL_DIR}" \
BIOSUTILS_INSTALL_DIR="${BIOSUTILS_INSTALL_DIR}" \
LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \
SERVER_INSTALL_DIR="${CODEC_INSTALL_DIR}" \
C6ACCEL_INSTALL_DIR="${S}" \
CSTOOL_DIR="${TOOLCHAIN_PATH}" \
CSTOOL_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \
LINUXLIBS_INSTALL_DIR="${STAGING_DIR}/${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" \
CFLAGS=" ${TARGET_CC_ARCH} ${CFLAGS}" LDFLAGS="${LDFLAGS}" \
'
do_configure() {
unset VERBOSE
make ${TIARGS} clean
sed -i -e 's:-L$(LINUXLIBS_INSTALL_DIR)/lib:-L$(LINUXLIBS_INSTALL_DIR)/lib -L$(LINUXLIBS_INSTALL_DIR)/usr/lib ${LDFLAGS}:' ${S}/soc/app/Makefile
# Angstrom 2008 breaks with -Wl,-T, while angstrom 2010 needs it
if [ $(${TARGET_PREFIX}gcc -dumpversion | awk -F. '{print $2}') -gt 3 ] ; then
sed -i -e 's: $(XDC_CFG)/linker.cmd: -Wl,-T,$(XDC_CFG)/linker.cmd:g' ${S}/soc/app/Makefile
fi
}
do_compile() {
unset VERBOSE
make ${TIARGS} all
}
do_install() {
install -d ${D}${C6ACCEL_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${C6ACCEL_INSTALL_DIR_RECIPE}
# update linker.cmd file to point to sysroot
sed -i ${i} -e s=${S}=${C6ACCEL_INSTALL_DIR}=g ${D}${C6ACCEL_INSTALL_DIR_RECIPE}/soc/app/c6accel_app_config/linker.cmd
cd ${S}
make \
PLATFORM="${PLATFORM}" \
CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \
LINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \
LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \
C6ACCEL_INSTALL_DIR="${S}" \
EXEC_DIR_C6ACCEL="${D}/${installdir}/c6accel-apps" \
install
}
PACKAGES += "ti-c6accel-apps"
FILES_ti-c6accel-apps = "${installdir}/c6accel-apps/*"
INSANE_SKIP_ti-c6accel-apps = True
RDEPENDS_ti-c6accel-apps += "ti-cmem-module ti-dsplink-module"

View File

@@ -0,0 +1,26 @@
From 58c50064afdc2fd7093613e0ae3a9192ea189460 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Wed, 5 Jan 2011 10:10:33 +0100
Subject: [PATCH] soc/app: fix makefile to pass -Wl,-T, before the linkerscript
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
soc/app/Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/soc/app/Makefile b/soc/app/Makefile
index 0bb7bdc..342e43a 100755
--- a/soc/app/Makefile
+++ b/soc/app/Makefile
@@ -33,7 +33,7 @@ XDC_CFG = $(TARGET)_config
XDC_CFLAGS = $(XDC_CFG)/compiler.opt
# Output linker file
-XDC_LFILE = $(XDC_CFG)/linker.cmd
+XDC_LFILE = -Wl,-T,$(XDC_CFG)/linker.cmd
# Input configuration file
XDC_CFGFILE = $(PLATFORM)/$(TARGET).cfg
--
1.6.6.1

View File

@@ -0,0 +1,82 @@
From 192b19046a67263da44203bf50a5b51d0a655fec Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@dominion.thruhere.net>
Date: Fri, 31 Dec 2010 15:26:37 +0100
Subject: [PATCH] soc: honour buildsystem CFLAGS and LDFLAGS when set
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
soc/app/Makefile | 13 ++++---------
soc/c6accelw/Makefile | 14 ++++----------
2 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/soc/app/Makefile b/soc/app/Makefile
index 2647746..bed937e 100755
--- a/soc/app/Makefile
+++ b/soc/app/Makefile
@@ -53,15 +53,10 @@ CONFIGURO = $(XDC_INSTALL_DIR)/xs xdc.tools.configuro
CONFIG_BLD = ../../config.bld
ifeq ($(BUILD_TYPE), release)
-ifeq ($(ARM_ISA),armv7-a)
- C_FLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp
-endif
-ifeq ($(ARM_ISA),armv5t)
- C_FLAGS += -mlittle-endian -march=armv5t -mtune=arm9tdmi -mabi=aapcs-linux -O
-endif
+C_FLAGS += $(CFLAGS)
else
CPP_FLAGS += -DNDEBUG
- C_FLAGS += -Wall -g
+ C_FLAGS += $(CFLAGS) -Wall -g
endif
@@ -72,7 +67,7 @@ ifeq ($(PLATFORM),omapl138)
C_FLAGS += -DPLATFORM=138
endif
-LD_FLAGS += -L$(LINUXLIBS_INSTALL_DIR)/lib -lm -lpthread
+LD_FLAGS += $(LDFLAGS) -L$(LINUXLIBS_INSTALL_DIR)/lib -lm -lpthread
C6ACCEL_LIB += ../c6accelw/lib/c6accelw_$(PLATFORM).a470MV
COMPILE.c = $(VERBOSE) $(CSTOOL_PREFIX)gcc $(CPP_FLAGS) $(C_FLAGS) $(CPP_FLAGS) -c
@@ -102,7 +97,7 @@ $(TARGET): $(OBJFILES) $(C6ACCEL_LIB) $(XDC_LFILE)
$(OBJFILES): %.o: %.c $(HEADERS) $(XDC_CFLAGS)
@echo Compiling $@ from $<..
- $(COMPILE.c) $(shell cat $(XDC_CFLAGS)) -o $@ $<
+ $(COMPILE.c) $(shell cat $(XDC_CFLAGS) | sed 's:-march=armv5t::g') -o $@ $<
$(XDC_LFILE) $(XDC_CFLAGS): $(XDC_CFGFILE)
@echo
diff --git a/soc/c6accelw/Makefile b/soc/c6accelw/Makefile
index cc58acf..298ab3b 100755
--- a/soc/c6accelw/Makefile
+++ b/soc/c6accelw/Makefile
@@ -21,19 +21,13 @@ BUILD_TYPE=release
CPP_FLAGS += -I../packages -I$(XDC_INSTALL_DIR)/packages -I$(CE_INSTALL_DIR)/packages -I$(XDAIS_INSTALL_DIR)/packages -Dxdc_target_name__=arm/GCArmv5T -Dxdc_target_types__=gnu/targets/std.h
ifeq ($(BUILD_TYPE), release)
-ifeq ($(ARM_ISA),armv7-a)
- C_FLAGS += -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp
- endif
-ifeq ($(ARM_ISA),armv5t)
- C_FLAGS += -mlittle-endian -march=armv5t -mtune=arm9tdmi -mabi=aapcs-linux -O
- endif
-
+C_FLAGS += $(CFLAGS)
else
- CPP_FLAGS += -DNDEBUG
- C_FLAGS += -Wall -g
+ CPP_FLAGS += -DNDEBUG
+ C_FLAGS += $(CFLAGS) -Wall -g
endif
-LD_FLAGS += -L$(LINUXLIBS_INSTALL_DIR)/lib
+LD_FLAGS += $(LDFLAGS) -L$(LINUXLIBS_INSTALL_DIR)/lib
AR_FLAGS +=
COMPILE.c = $(VERBOSE) $(CSTOOL_PREFIX)gcc $(CPP_FLAGS) $(C_FLAGS) -c
--
1.6.6.1

View File

@@ -0,0 +1,81 @@
diff -uNr c6accel_1_00_00_04_orig/soc/app/omap3530/loadmodules_omap3530_c6accel.sh c6accel_1_00_00_04/soc/app/omap3530/loadmodules_omap3530_c6accel.sh
--- c6accel_1_00_00_04_orig/soc/app/omap3530/loadmodules_omap3530_c6accel.sh 2010-07-26 16:18:35.000000000 -0500
+++ c6accel_1_00_00_04/soc/app/omap3530/loadmodules_omap3530_c6accel.sh 2010-09-12 11:50:46.129159981 -0500
@@ -1,4 +1,4 @@
-# loadmodules.sh
+#!/bin/sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
@@ -11,34 +11,16 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
-#
-# Default Memory Map
-#
-# Start Addr Size Description
-# -------------------------------------------
-# 0x80000000 88 MB Linux
-# 0x85800000 08 MB CMEM
-# 0x86800000 24 MB DDRALGHEAP
-# 0x87800000 6 MB DDR2 (BIOS, Codecs, Applications)
-# 0x87E00000 1 MB DSPLINK (MEM)
-# 0x87F00000 4 KB DSPLINK (RESET)
-# 0x87F01000 1020 KB unused
-rmmod cmemk.ko
-rmmod lpm_omap3530.ko
-rmmod dsplinkk
-# Allocate 15MB for CMEM
-insmod cmemk.ko phys_start=0x86300000 phys_end=0x87200000 pools=20x4096
+# remove previously loaded cmem to ensure that it configured to use our pool configuration
+rmmod cmemk 2>/dev/null
-# insert DSP/BIOS Link driver
-#
-insmod dsplinkk.ko
+# Allocate 15MB for CMEM
+modprobe cmemk phys_start=0x86300000 phys_end=0x87200000 pools=20x4096 allowOverlap=1
+modprobe dsplinkk
+modprobe lpm_omap3530
# make /dev/dsplink
rm -rf /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0
-# insert Local Power Manager driver
-#
-insmod lpm_omap3530.ko
-
diff -uNr c6accel_1_00_00_04_orig/soc/app/omapl138/loadmodules_omapl138_c6accel.sh c6accel_1_00_00_04/soc/app/omapl138/loadmodules_omapl138_c6accel.sh
--- c6accel_1_00_00_04_orig/soc/app/omapl138/loadmodules_omapl138_c6accel.sh 2010-07-27 09:45:37.000000000 -0500
+++ c6accel_1_00_00_04/soc/app/omapl138/loadmodules_omapl138_c6accel.sh 2010-09-12 11:52:07.193160179 -0500
@@ -1,4 +1,4 @@
-#
+#!/bin/sh
# Copyright (c) 2008, Texas Instruments Incorporated
# All rights reserved.
#
@@ -29,15 +29,14 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-rmmod dsplinkk.ko
-rmmod cmemk.ko
+
+# remove previously loaded cmem to ensure that its configured to use our pool configuration.
+rmmod cmemk 2>/dev/null
+
# insert cmemk, tell it to occupy physical 120MB-128MB, create
# 20 4K buffers, 10 128K buffers and two 1MB buffers
-insmod cmemk.ko phys_start=0xC2000000 phys_end=0xC4000000 pools=20x4096
-
-# insert DSP/BIOS Link driver
-#
-insmod dsplinkk.ko
+modprobe cmemk phys_start=0xC2000000 phys_end=0xC4000000 pools=20x4096 allowOverlap=1
+modprobe dsplinkk
# make /dev/dsplink
rm -f /dev/dsplink

View File

@@ -0,0 +1,14 @@
require ti-c6accel.inc
SRC_URI[c6accelbin.md5sum] = "0ddf37fd9dad91fa3a914e549da933b9"
SRC_URI[c6accelbin.sha256sum] = "453399a84bf117bd7a91393242c7c005e2829692db5ede18e4be166c61e4354c"
SRC_URI_append = "file://fix-loadmodule.patch \
file://0001-soc-honour-buildsystem-CFLAGS-and-LDFLAGS-when-set.patch \
"
PV = "1_01_00_03"
CFLAGS += "-fPIC"

View File

@@ -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"
LIC_FILES_CHKSUM = "file://codec_engine_2_26_02_11_manifest.html;md5=912535f1b02ecf329a3979bf313f91e0"
# 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}"
PR_append = "a"
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}
}
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 = True

View File

@@ -0,0 +1,60 @@
diff --git a/examples/ti/sdo/ce/examples/apps/audio1_ires/rtcfg_local_evm3530_linux/makefile b/examples/ti/sdo/ce/examples/apps/audio1_ires/rtcfg_local_evm3530_linux/makefile
index 2bbfb72..2a00d0d 100644
--- a/examples/ti/sdo/ce/examples/apps/audio1_ires/rtcfg_local_evm3530_linux/makefile
+++ b/examples/ti/sdo/ce/examples/apps/audio1_ires/rtcfg_local_evm3530_linux/makefile
@@ -80,6 +80,7 @@ REPO_PATH = \
$(FC_INSTALL_DIR)/packages \
$(FC_INSTALL_DIR)/examples \
$(CMEM_INSTALL_DIR)/packages \
+ $(LPM_INSTALL_DIR)/packages \
$(BIOSUTILS_INSTALL_DIR)/packages \
$(EXAMPLES_ROOTDIR)
diff --git a/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_local_evm3530_linux/makefile b/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_local_evm3530_linux/makefile
index f2b187a..827f6bc 100644
--- a/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_local_evm3530_linux/makefile
+++ b/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_local_evm3530_linux/makefile
@@ -74,6 +74,7 @@ REPO_PATH = \
$(XDAIS_INSTALL_DIR)/packages \
$(FC_INSTALL_DIR)/packages \
$(CMEM_INSTALL_DIR)/packages \
+ $(LPM_INSTALL_DIR)/packages \
$(BIOSUTILS_INSTALL_DIR)/packages \
$(EXAMPLES_ROOTDIR)
diff --git a/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_remote_evm3530_linux/makefile b/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_remote_evm3530_linux/makefile
index a4fe4dc..a23f991 100644
--- a/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_remote_evm3530_linux/makefile
+++ b/examples/ti/sdo/ce/examples/apps/speech1_copy/rtcfg_remote_evm3530_linux/makefile
@@ -76,6 +76,7 @@ REPO_PATH = \
$(XDAIS_INSTALL_DIR)/packages \
$(FC_INSTALL_DIR)/packages \
$(CMEM_INSTALL_DIR)/packages \
+ $(LPM_INSTALL_DIR)/packages \
$(BIOSUTILS_INSTALL_DIR)/packages \
$(EXAMPLES_ROOTDIR)
diff --git a/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_local_evm3530_linux/makefile b/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_local_evm3530_linux/makefile
index 8baa9dd..3c01c04 100644
--- a/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_local_evm3530_linux/makefile
+++ b/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_local_evm3530_linux/makefile
@@ -74,6 +74,7 @@ REPO_PATH = \
$(XDAIS_INSTALL_DIR)/packages \
$(FC_INSTALL_DIR)/packages \
$(CMEM_INSTALL_DIR)/packages \
+ $(LPM_INSTALL_DIR)/packages \
$(BIOSUTILS_INSTALL_DIR)/packages \
$(EXAMPLES_ROOTDIR)
diff --git a/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_remote_evm3530_linux/makefile b/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_remote_evm3530_linux/makefile
index 3319c06..09a6357 100644
--- a/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_remote_evm3530_linux/makefile
+++ b/examples/ti/sdo/ce/examples/apps/video1_copy/rtcfg_remote_evm3530_linux/makefile
@@ -75,6 +75,7 @@ REPO_PATH = \
$(XDAIS_INSTALL_DIR)/packages \
$(FC_INSTALL_DIR)/packages \
$(CMEM_INSTALL_DIR)/packages \
+ $(LPM_INSTALL_DIR)/packages \
$(BIOSUTILS_INSTALL_DIR)/packages \
$(EXAMPLES_ROOTDIR)

View File

@@ -0,0 +1,49 @@
#
# Copyright (c) 2008, Texas Instruments Incorporated
# All rights reserved.
#
# 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.
#
# insert cmemk, tell it to occupy physical 120MB-128MB, create
# 20 4K buffers, 10 128K buffers and two 1MB buffers
CMEM_MODPARAMS="phys_start=0x87800000 phys_end=0x88000000 pools=20x4096,10x131072,2x1048576"
if [ -e cmemk.ko ]
then
insmod cmemk.ko $CMEM_MODPARAMS
else
modprobe cmemk $CMEM_MODPARAMS
fi
# Allow cmem driver to be used by all users
if [ -e /dev/cmem ]
then
chmod 666 /dev/cmem
fi

View File

@@ -0,0 +1,37 @@
#
# Default Memory Map - for OMAP3530 CE 2.21 examples
#
# Start Addr Size Description
# -------------------------------------------
# 0x80000000 80 MB Linux
# 0x85000000 08 MB CMEM
# 0x86000000 24 MB DDRALGHEAP
# 0x87800000 6 MB DDR2 (BIOS, Codecs, Applications)
# 0x87E00000 1 MB DSPLINK (MEM)
# 0x87F00000 4 KB DSPLINK (RESET)
# 0x87F01000 1020 KB unused
# sanity check to verify that we're using the right mem=xxM (80M in this case)
awk '/MemTotal:/ {
mem=$2
if (mem > 80 * 1024)
print "Warning! You need to use mem=80M or less on the kernel cmdline"
printf "You have %dkB total memory for Linux\n", mem
}' /proc/meminfo
# Select cmemk parameters for best fit, i.e. starting at 0x85000000
modprobe cmemk phys_start=0x85000000 phys_end=0x86000000 pools=20x4096,8x131072,5x1048576,1x1429440,1x256000,1x3600000,5x829440
# 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
# insert Local Power Manager driver
#
modprobe lpm_omap3530

View File

@@ -0,0 +1,12 @@
# Unload modules - CODEC ENGINE - OMAP3530
# remove lpm module
rmmod lpm_omap3530
# remove DSP/BIOS Link driver
rmmod dsplinkk
#rm -f /dev/dsplink
# remove cmem module
rmmod cmemk

View File

@@ -0,0 +1,6 @@
require ti-codec-engine.inc
PV = "2_26_02_11"
SRC_URI[cetarball.md5sum] = "4f755f77119e4da19ab5cc7ae7ccfdb4"
SRC_URI[cetarball.sha256sum] = "17fa053719265e0901fe3c3f90c9204957c6d0f5351d6b3ba4900df58cb7300f"

View File

@@ -0,0 +1,41 @@
diff -uNr -x .xdcenv.mak -x mp3dec cs1omap3530_1_00_01/packages/ti/sdo/server/cs/codec.cfg cs1omap3530_1_00_01_patches/packages/ti/sdo/server/cs/codec.cfg
--- cs1omap3530_1_00_01/packages/ti/sdo/server/cs/codec.cfg 2009-10-26 14:19:21.000000000 -0500
+++ cs1omap3530_1_00_01_patches/packages/ti/sdo/server/cs/codec.cfg 2009-10-26 14:36:03.000000000 -0500
@@ -92,6 +92,14 @@
MPEG4ENC.alg.udataSection = "DDR2";
MPEG4ENC.alg.dataSection = "DDR2";
+ var MP3DEC = xdc.useModule('ti.sdo.codecs.mp3dec.ce.MP3DEC');
+
+ // Module Config
+ MP3DEC.alg.watermark = false;
+ MP3DEC.alg.codeSection = "DDR2";
+ MP3DEC.alg.udataSection = "DDR2";
+ MP3DEC.alg.dataSection = "DDR2";
+
/*
* The array of algorithms this server can serve up. This array also
* configures details about the threads which will be created to run the
@@ -103,6 +111,11 @@
groupId : 1,
},
+ {name: "mp3dec", mod: MP3DEC , threadAttrs: {
+ stackMemId: 0, priority: Server.MINPRI + 3},
+ groupId : 1,
+ },
+
{name: "g711dec", mod: G711DEC , threadAttrs: {
stackMemId: 0, priority: Server.MINPRI + 3},
groupId : 1,
diff -uNr -x .xdcenv.mak -x mp3dec cs1omap3530_1_00_01/packages/ti/sdo/server/cs/package.xs cs1omap3530_1_00_01_patches/packages/ti/sdo/server/cs/package.xs
--- cs1omap3530_1_00_01/packages/ti/sdo/server/cs/package.xs 2009-10-26 14:19:20.000000000 -0500
+++ cs1omap3530_1_00_01_patches/packages/ti/sdo/server/cs/package.xs 2009-10-26 14:53:40.000000000 -0500
@@ -17,6 +17,7 @@
validate_one_codec( "ti.sdo.codecs.mpeg2dec", "MPEG2DEC" );
validate_one_codec( "ti.sdo.codecs.mpeg4dec", "MPEG4DEC" );
validate_one_codec( "ti.sdo.codecs.mpeg4enc", "MPEG4ENC" );
+ validate_one_codec( "ti.sdo.codecs.mp3dec", "MP3DEC" );
}
function validate_one_codec( packageName, moduleName ) {

View File

@@ -0,0 +1,204 @@
DESCRIPTION = "TI Codecs and Server Combo for OMAP3530"
SECTION = "multimedia"
LICENSE = "TI"
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
PR="${MACHINE_KERNEL_PR}"
PR_append = "a"
PV="4_00_00_00"
CODEC_SUITE_NAME="${WORKDIR}/${PN}_${PV}"
SRCREV = "8393c892b09e0ac42b19ff1531e232478c3b1a6c"
require recipes-ti/includes/ti-eula-unpack.inc
SRC_URI="http://software-dl.ti.com/dsps/dsps_public_sw/codecs/OMAP35xx//OMAP35xx_latest/omap3530_h264enc_2_01_013_production.bin;name=h264enc \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/OMAP35xx//OMAP35xx_latest/omap3530_h264dec_2_01_007_production.bin;name=h264dec \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/OMAP35xx//OMAP35xx_latest/omap3530_jpegenc_02_01_01_00_production.bin;name=jpegenc \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Video//C64XPlus_Video_latest/c64xplus_jpegdec_02_00_01_01_production.bin;name=jpegdec \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Video//C64XPlus_Video_latest/c64xplus_mpeg2dec_02_00_02_00_production.bin;name=mpeg2dec \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/OMAP35xx//OMAP35xx_latest/omap3530_mpeg4enc_02_04_00_00_production.bin;name=mpeg4enc \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Video//C64XPlus_Video_latest/c64xplus_mpeg4dec_02_01_00_00_production.bin;name=mpeg4dec \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Audio//C64XPlus_Audio_latest/c64xplus_aachedec_01_30_03_00_production.bin;name=aachedec \
http://software-dl.ti.com/dsps/dsps_public_sw/codecs/C64XPlus_Speech//C64XPlus_Speech_latest/c64xplus_g711_1_12_00_000_production.bin;name=g711 \
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/OMAP35xx_DM37xx_C64xPLUS_Algorithms/01_00_00_07//exports/c64xplus_deinterlacer_01_00_00_07_production.bin;name=i2p \
git://arago-project.org/git/projects/codec-servers.git;protocol=git \
"
SRC_URI[h264enc.md5sum] = "4a7a4698b1db360fe103aae76127a4ec"
SRC_URI[h264enc.sha256sum] = "8fd970d83004bb099f51420b0eecd660b4ba9dccc87b2759d0b5a0be46f8f1a0"
SRC_URI[h264dec.md5sum] = "81980df2d9dbedc5b64789c4e5575819"
SRC_URI[h264dec.sha256sum] = "19d65e71ba0342670cb217e0fa6617263ff68a513e8444a8dfd5f34bd641b24f"
SRC_URI[jpegenc.md5sum] = "c2e8ad88e90c04d2de7b199517019ac8"
SRC_URI[jpegenc.sha256sum] = "6525e067cb5dd00cfc0b38045c44dcbed05866f8ad20188ceac630812502d473"
SRC_URI[jpegdec.md5sum] = "cf2886c3406ab41409a586e5d550918d"
SRC_URI[jpegdec.sha256sum] = "6b0c9f1b8f023070c6a59af690f015f84f2c7f3143235f788ddd1a4a7b229089"
SRC_URI[mpeg2dec.md5sum] = "da3d0561f3073352be43dce96ce1ea62"
SRC_URI[mpeg2dec.sha256sum] = "06cdb31242b8649bdd46bc07b9276de0ccd5f4e1c137d3cb79e0866c1ed04264"
SRC_URI[mpeg4enc.md5sum] = "07c36e5d03368e1326df75a1f0c4934d"
SRC_URI[mpeg4enc.sha256sum] = "a9566c8978f7230936053de9b1f3bfe8820ae555262ceba87243abdf60e5193f"
SRC_URI[mpeg4dec.md5sum] = "4a27cda2d5a859e6322680a4855b6b88"
SRC_URI[mpeg4dec.sha256sum] = "ca35db6841586fc2c22dd9c07a7f5b8557f480fa907e8a3471b660d4ada76e40"
SRC_URI[aachedec.md5sum] = "649f2e79b4950719295cfecbff2ea82b"
SRC_URI[aachedec.sha256sum] = "34d19e40d624ccdc1b371f9a5d6594b4793bdf3b7223ac65912d15d75320e020"
SRC_URI[g711.md5sum] = "fd8e9f939cc505dc5761705ed17a726c"
SRC_URI[g711.sha256sum] = "c87021e8df2a3f494f47e5bdce8a5fad04d667aa1b792fd9b3ecff634867b48d"
SRC_URI[i2p.md5sum] = "f67c04eec9ee49c7a686eecf5d54be33"
SRC_URI[i2p.sha256sum] = "3fbf8801f3ce2aabb6d31eb18e1e24e41ca861696b3140536f1d66adc76f0323"
TI_BIN_UNPK_CMDS = "Y:workdir"
S = "${CODEC_SUITE_NAME}"
DEPENDS = "ti-cgt6x ti-xdctools ti-dspbios ti-codec-engine ti-linuxutils ti-c6accel"
#generic codec
DSPSUFFIX_omap3530 = "x64P"
python do_unpack () {
bb.build.exec_func('base_do_unpack', d)
bb.data.setVar("BINFILE", "omap3530_h264enc_2_01_013_production.bin", d)
bb.data.setVar("TARFILE", "h264enc_dm6467_1_20_00_08/omap3530_h264enc_2_01_013_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "omap3530_h264dec_2_01_007_production.bin", d)
bb.data.setVar("TARFILE", "omap3530_h264dec_2_01_007_production/omap3530_h264dec_2_01_007_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "omap3530_jpegenc_02_01_01_00_production.bin", d)
bb.data.setVar("TARFILE", "omap3530_jpegenc_02_01_01_00_production/omap3530_jpegenc_02_01_01_00_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_jpegdec_02_00_01_01_production.bin", d)
bb.data.setVar("TARFILE", "c64xplus_jpegdec_02_00_01_01_production/c64xplus_jpegdec_02_00_01_01_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_mpeg2dec_02_00_02_00_production.bin", d)
bb.data.setVar("TARFILE", "c64xplus_mpeg2dec_02_00_02_00_production/c64xplus_mpeg2dec_02_00_02_00_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "omap3530_mpeg4enc_02_04_00_00_production.bin", d)
bb.data.setVar("TARFILE", "omap3530_mpeg4enc_02_04_00_00_production/omap3530_mpeg4enc_02_04_00_00_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_mpeg4dec_02_01_00_00_production.bin", d)
bb.data.setVar("TARFILE", "h264enc_dm6467_1_20_00_08/c64xplus_mpeg4dec_02_01_00_00_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_aachedec_01_30_03_00_production.bin", d)
bb.data.setVar("TARFILE", "c64xplus_aachedec_01_30_03_00_production/dm6446_aachedec_01_30_03_00_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_g711_1_12_00_000_production.bin", d)
bb.data.setVar("TARFILE", "h264enc_dm6467_1_20_00_08/dm6446_g711enc_1_12_00_000_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_g711_1_12_00_000_production.bin", d)
bb.data.setVar("TARFILE", "h264enc_dm6467_1_20_00_08/dm6446_g711dec_1_12_00_000_production.tar", d)
bb.build.exec_func('ti_bin_do_unpack', d)
bb.data.setVar("BINFILE", "c64xplus_deinterlacer_01_00_00_07_production.bin", d)
bb.data.setVar("TARFILE", "c64xplus_deinterlacer_01_00_00_07/c64xplus_deinterlacer_01_00_00_07_production.tar", d)
bb.data.setVar("TI_BIN_UNPK_CMDS", "y: :q: ", d)
bb.build.exec_func('ti_bin_do_unpack', d)
}
addtask prepsources after do_unpack before do_patch
do_prepsources () {
mkdir -p ${CODEC_SUITE_NAME}/packages/ti/sdo/server/cs
cp ${WORKDIR}/git/omap3530/cs1omap3530/rel-files/* ${CODEC_SUITE_NAME}/
cp ${WORKDIR}/git/omap3530/cs1omap3530/source/* ${CODEC_SUITE_NAME}/packages/ti/sdo/server/cs
cp -a "${WORKDIR}/git/omap3530/cs1omap3530/docs" ${CODEC_SUITE_NAME}/packages/ti/sdo/server/cs
mkdir -p ${CODEC_SUITE_NAME}/packages/ti/sdo/codecs
cp -a "${WORKDIR}/omap3530_h264enc_2_01_013_production/packages/ti/sdo/codecs/h264enc" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/omap3530_h264dec_2_01_007_production/packages/ti/sdo/codecs/h264dec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/omap3530_jpegenc_02_01_01_00_production/packages/ti/sdo/codecs/jpegenc" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/c64xplus_jpegdec_02_00_01_01_production/packages/ti/sdo/codecs/jpegdec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/c64xplus_mpeg2dec_02_00_02_00_production/packages/ti/sdo/codecs/mpeg2dec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/omap3530_mpeg4enc_02_04_00_00_production/packages/ti/sdo/codecs/mpeg4enc" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/c64xplus_mpeg4dec_02_01_00_00_production/packages/ti/sdo/codecs/mpeg4dec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
chmod -R +w "${WORKDIR}/dm6446_aachedec_01_30_03_00_production/packages/ti/sdo/codecs/aachedec/docs"
cp -a "${WORKDIR}/dm6446_aachedec_01_30_03_00_production/packages/ti/sdo/codecs/aachedec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/dm6446_g711enc_1_12_00_000_production/packages/ti/sdo/codecs/g711enc" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/dm6446_g711dec_1_12_00_000_production/packages/ti/sdo/codecs/g711dec" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
cp -a "${WORKDIR}/c64xplus_deinterlacer_01_00_00_07_production/packages/ti/sdo/codecs/deinterlacer" "${CODEC_SUITE_NAME}/packages/ti/sdo/codecs"
chmod 755 -R ${CODEC_SUITE_NAME}
}
do_compile() {
cd "${S}"
make \
CE_INSTALL_DIR=${CE_INSTALL_DIR} \
FC_INSTALL_DIR=${FC_INSTALL_DIR} \
LINK_INSTALL_DIR=${LINK_INSTALL_DIR} \
CMEM_INSTALL_DIR=${CMEM_INSTALL_DIR} \
LPM_INSTALL_DIR=${LPM_INSTALL_DIR} \
BIOS_INSTALL_DIR=${BIOS_INSTALL_DIR} \
CODEGEN_INSTALL_DIR=${CODEGEN_INSTALL_DIR} \
XDC_INSTALL_DIR=${XDC_INSTALL_DIR} \
CODEC_INSTALL_DIR="${S}" \
XDCARGS="prod" \
C6ACCEL_INSTALL_DIR=${C6ACCEL_INSTALL_DIR} \
clean
make \
CE_INSTALL_DIR=${CE_INSTALL_DIR} \
FC_INSTALL_DIR=${FC_INSTALL_DIR} \
LINK_INSTALL_DIR=${LINK_INSTALL_DIR} \
CMEM_INSTALL_DIR=${CMEM_INSTALL_DIR} \
LPM_INSTALL_DIR=${LPM_INSTALL_DIR} \
BIOS_INSTALL_DIR=${BIOS_INSTALL_DIR} \
CODEGEN_INSTALL_DIR=${CODEGEN_INSTALL_DIR} \
XDC_INSTALL_DIR=${XDC_INSTALL_DIR} \
CODEC_INSTALL_DIR="${S}" \
XDCARGS="prod" \
C6ACCEL_INSTALL_DIR=${C6ACCEL_INSTALL_DIR} \
all
}
do_install() {
install -d ${D}/${installdir}/ti-codecs-server
cd ${S}
# Install the DSP Server Binary
for file in `find . -name *.${DSPSUFFIX}`; do
cp ${file} ${D}/${installdir}/ti-codecs-server
done
# Install docs (codec qualiTI test reports, server config datasheet, etc)
for file in `find . -name *.html`; do
cp ${file} ${D}/${installdir}/ti-codecs-server
done
install -d ${D}${CODEC_INSTALL_DIR_RECIPE}
cp -pPrf ${CODEC_SUITE_NAME}/* ${D}${CODEC_INSTALL_DIR_RECIPE}
}
PACKAGES += "ti-codecs-omap3530-server"
FILES_ti-codecs-omap3530-server = "${installdir}/ti-codecs-server/*"

View File

@@ -0,0 +1,158 @@
DESCRIPTION = "Davinci Multimedia Application Interface (DMAI) for TI ARM/DSP processors"
HOMEPAGE = "https://gforge.ti.com/gf/project/dmai/"
SECTION = "multimedia"
LICENSE = "BSD"
# TODO ::
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
PROVIDES += "ti-dmai-apps"
PE = "1"
SRCREV ?= "<UNDEFINED_SRCREV>"
DMAIBRANCH ?= "<UNDEFINED_DMAIBRANCH>"
S = "${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface/dmai_${PV}"
SRC_URI = "svn://gforge.ti.com/svn/dmai/;module=${DMAIBRANCH};proto=https;user=anonymous;pswd='' \
file://loadmodules-ti-dmai-dm6446_al.sh \
file://loadmodules-ti-dmai-dm6467_al.sh \
file://loadmodules-ti-dmai-o3530_al.sh \
file://loadmodules-ti-dmai-dm355_al.sh \
file://loadmodules-ti-dmai-dm365_al.sh \
file://loadmodules-ti-dmai-ol137_al.sh \
file://loadmodules-ti-dmai-ol138_al.sh \
file://doxygen_templates.tar.gz \
file://arago-tdox \
"
DEPENDS = "virtual/kernel alsa-lib ti-framework-components ti-codec-engine ti-xdctools"
DEPENDS_append_dm6446 = " ti-codecs-dm6446 ti-dspbios ti-cgt6x ti-linuxutils"
DEPENDS_append_dm6467 = " ti-codecs-dm6467 ti-dspbios ti-cgt6x ti-linuxutils"
DEPENDS_append_omap3 = " ti-codecs-omap3530 ti-dspbios ti-cgt6x ti-linuxutils"
DEPENDS_append_dm355 = " ti-codecs-dm355"
DEPENDS_append_dm365 = " ti-codecs-dm365"
DEPENDS_append_omapl137 = " ti-codecs-omapl137 ti-dspbios ti-cgt6x ti-linuxutils"
DEPENDS_append_omapl138 = " ti-codecs-omapl138 ti-dspbios ti-cgt6x ti-linuxutils"
# Define DMAI build time variables
DMAIPLATFORM_dm6446 = "dm6446_al"
DMAIPLATFORM_dm6467 = "dm6467_al"
DMAIPLATFORM_omap3 = "o3530_al"
DMAIPLATFORM_dm355 = "dm355_al"
DMAIPLATFORM_dm365 = "dm365_al"
DMAIPLATFORM_omapl137 = "ol137_al"
DMAIPLATFORM_omapl138 = "ol138_al"
DMAIPLATFORM ?= "<UNDEFINED_DMAIPLATFORM>"
# Need to set this for other platforms as well
#GPPOS_dm355 = "LINUX_GCC"
#GPPOS_dm365 = "LINUX_GCC"
#GPPOS ?= "<UNDEFINEDGPPOS>"
# Need to re-define this for OMAP-L137/L138
DSPSUFFIX_omapl137 = "x64P"
DSPSUFFIX_omapl138 = "x64P"
DSPSUFFIX ?= "x64p"
# This is needed for dm355/dm365 targets in order to find ti.sdo.codecs.g711
# TODO :: review - should we just pass this in do_compile?
USER_XDC_PATH = "${CE_INSTALL_DIR}/examples"
PARALLEL_MAKE = ""
do_prepsources() {
# run the release steps - this will delete .svn file and run doxygen to
# generate proper documentation of the source etc.
find ${WORKDIR}/${DMAIBRANCH} -name .svn -type d | xargs rm -rf
cp -pPrf ${WORKDIR}/doxygen_templates ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface
cp -pPrf ${WORKDIR}/arago-tdox ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface/tdox
chmod a+x ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface/release.sh
chmod a+x ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface/tdox
sed -i 's|tdox|./tdox|g' ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface/release.sh
(cd ${WORKDIR}/${DMAIBRANCH}/davinci_multimedia_application_interface; ./release.sh ${PV})
}
# run prepare sources before do_patch to ensure that sourceipk picks the right sources.
addtask prepsources after do_unpack before do_patch
do_compile () {
# Recent kernel headers warn against inclusion from userspace
for makefile in $(find ${S} -name "Makefile") ; do
sed -i -e s:-Werror::g $makefile
done
# Angstrom 2008 breaks with -Wl,-T, while angstrom 2010 needs it
if [ $(${TARGET_PREFIX}gcc -dumpversion | awk -F. '{print $2}') -gt 3 ] ; then
# Fix up linkerscripts, recent toolchains need -T to prepend the default script to the custom one
for appmakefile in $(find ${S} -name "Makefile.app") ; do
sed -i -e 's: $(XDC_CFG)/linker.cmd: -Wl,-T,$(XDC_CFG)/linker.cmd:g' $appmakefile
done
fi
# TODO :: Why do we do this?
unset DMAI_INSTALL_DIR
cd ${S}
make XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" PLATFORM="${DMAIPLATFORM}" clean
for dir in ${S}; do
cd $dir
# TODO: Figure out how to pass the alsa require location, currently
# LINUXLIBS_INSTALL_DIR is hard-coded for armv5te
make \
CE_INSTALL_DIR="${CE_INSTALL_DIR}" \
CODEC_INSTALL_DIR="${CODEC_INSTALL_DIR}" \
FC_INSTALL_DIR="${FC_INSTALL_DIR}" \
LINUXKERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" \
XDC_INSTALL_DIR="${XDC_INSTALL_DIR}" \
CODEGEN_INSTALL_DIR="${CODEGEN_INSTALL_DIR}" \
BIOS_INSTALL_DIR="${BIOS_INSTALL_DIR}"\
LINUXLIBS_INSTALL_DIR="${STAGING_DIR_TARGET}/usr" \
USER_XDC_PATH="${USER_XDC_PATH}" \
CROSS_COMPILE="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \
VERBOSE="true" \
XDAIS_INSTALL_DIR="${XDAIS_INSTALL_DIR}" \
LINK_INSTALL_DIR="${LINK_INSTALL_DIR}" \
CMEM_INSTALL_DIR="${CMEM_INSTALL_DIR}" \
LPM_INSTALL_DIR="${LPM_INSTALL_DIR}" \
C6ACCEL_INSTALL_DIR=${C6ACCEL_INSTALL_DIR} \
MVTOOL_PREFIX="${TARGET_PREFIX}" \
PLATFORM="${DMAIPLATFORM}"
done
}
do_install () {
# TODO :: Why do we do this?
unset DMAI_INSTALL_DIR
install -d ${D}/${installdir}/ti-dmai-apps
cd ${S}
make PLATFORM="${DMAIPLATFORM}" EXEC_DIR=${D}/${installdir}/ti-dmai-apps install
install -m 0755 ${WORKDIR}/loadmodules-ti-dmai-${DMAIPLATFORM}.sh ${D}/${installdir}/ti-dmai-apps/loadmodules.sh
install -d ${D}${DMAI_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${DMAI_INSTALL_DIR_RECIPE}
}
PACKAGES += "ti-dmai-apps"
FILES_ti-dmai-apps = "${installdir}/ti-dmai-apps/*"
INSANE_SKIP_ti-dmai-apps = True
RDEPENDS_ti-dmai-apps_dm6446 += "ti-codecs-dm6446-server ti-cmem-module ti-dsplink-module"
RDEPENDS_ti-dmai-apps_dm6467 += "ti-codecs-dm6467 ti-cmem-module ti-dsplink-module"
RDEPENDS_ti-dmai-apps_omap3 += "ti-codecs-omap3530-server ti-cmem-module ti-dsplink-module ti-lpm-module ti-sdma-module"
RDEPENDS_ti-dmai-apps_dm355 += "ti-codecs-dm355 ti-cmem-module ti-dm355mm-module"
RDEPENDS_ti-dmai-apps_dm365 += "ti-codecs-dm365 ti-cmem-module ti-dm365mm-module ti-edma-module ti-irq-module"
RDEPENDS_ti-dmai-apps_omapl137 += "ti-codecs-omapl137-server ti-cmem-module ti-dsplink-module"
RDEPENDS_ti-dmai-apps_omapl138 += "ti-codecs-omapl138-server ti-cmem-module ti-dsplink-module"
pkg_postinst_ti-dmai-apps () {
ln -sf ${installdir}/ti-codecs-server/*.${DSPSUFFIX} ${installdir}/ti-dmai-apps/
}

View File

@@ -0,0 +1,34 @@
From 9d9326c26ea990fa49842e0c57d520a5acb4d887 Mon Sep 17 00:00:00 2001
From: Don Darling <ddarling@ti.com>
Date: Fri, 16 Apr 2010 17:40:40 -0500
Subject: [PATCH] Correct DMAI's Resize module for DM365.
The PSP requires virtual addresses to be given for the resize buffers. This
differs from previous releases, which required physical addresses. This
change updates the Resize module to use virtual addresses.
---
.../packages/ti/sdo/dmai/linux/dm365/Resize.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dmai/packages/ti/sdo/dmai/linux/dm365/Resize.c b/dmai/packages/ti/sdo/dmai/linux/dm365/Resize.c
index c1716c4..3e71e46 100644
--- a/dmai/packages/ti/sdo/dmai/linux/dm365/Resize.c
+++ b/dmai/packages/ti/sdo/dmai/linux/dm365/Resize.c
@@ -313,12 +313,12 @@ Int Resize_execute(Resize_Handle hResize,
rsz.in_buff.index = -1;
rsz.in_buff.buf_type = IMP_BUF_IN;
- rsz.in_buff.offset = Buffer_getPhysicalPtr(hSrcBuf) + srcOffset;
+ rsz.in_buff.offset = ((Int32)Buffer_getUserPtr(hSrcBuf)) + srcOffset;
rsz.in_buff.size = Buffer_getSize(hSrcBuf);
rsz.out_buff1.index = -1;
rsz.out_buff1.buf_type = IMP_BUF_OUT1;
- rsz.out_buff1.offset = Buffer_getPhysicalPtr(hDstBuf) + dstOffset;
+ rsz.out_buff1.offset = ((Int32)Buffer_getUserPtr(hDstBuf)) + dstOffset;
rsz.out_buff1.size = Buffer_getSize(hDstBuf);
/*
--
1.6.3.3

View File

@@ -0,0 +1,210 @@
#!/bin/bash
#
#
# This script sets a series of environment variable that are referenced
# in a doxygen configuration file. The values passed in here are simply
# plugged into the file locations and doxygen proceeds normaly.
#
# template location is ${VENDORS}/opensource/doxygen/templates/<version>
#
#
# Revision history
#! 02 Jul 2009 cring: Added cmd line args for doxygendir (-x) and template (-t)
#! 13 Jul 2006 ada: New template smaller pdf generation
#! 16 May 2006 ada: Added -p file to pdf for space in project names
#! 08 May 2006 ada: Added pdf generation to tdox (Solaris/Linux only).
#! 23 Jan 2006 ada: Overide file to change default doxyfile behaivior
#! 19 Jan 2006 ada: 1093, ENUM_VALUES_PER_LINE set to 1, ref doxyfile via vers
#! 05 Oct 2005 ada: 933, doxyfile in tools, removed win and unix vendors path
#! 24 Aug 2005 ada: Added 897 changes, optional css c or jave optimization
#! 18 Aug 2005 ada: inital version from AR 887
# Set these defaults here as the usage statement uses them
TDOX_TEMPLATEDIR=${TOOLS}/default/doxygen_templates
DOXYGEN_EXECUTABLE=doxygen
function usage
{
OPTIONS="`basename $0` code_location out_doc_location [-x doxygen_exe ] [-t tdox_templatedir] [-n project_name] [-v version] [-f FILE_PATTERNS ] [-s strip_dir] [-c css location] [-e exclude dirs] [-b enabled sections] [-m generate chm] [-p pdf_file] [-o override doxyfile] [-j]"
echo "`basename $1` $OPTIONS"
echo "Where: "
echo "\tcode_location: Top of tree(s) to search for code (required as 1st param)"
echo "\tout_doc_location: Output location for generated files (required as 2nd param)"
echo "\t[-n project_name]: title of generated documentation (defaults to Project)"
echo "\t[-x doxygen_exe]: location of doxygen executable (defaults to $DOXYGEN_EXECUTABLE)"
echo "\t[-t tdox_templatedir]: location of tdox templates (defaults to $TDOX_TEMPLATEDIR)"
echo "\t[-v version]: version number or string (defaults to 1.0)"
echo "\t[-f FILE_PATTERNS]: Optional list of files to document (defaults to all)"
echo "\t[-s strip_dirs]: Remove directory prefix from generated files (defaults to not remove)"
echo "\t[-c path_to_css]: Path to a user suplied CSS style sheet"
echo "\t[-e exclude dirs]: List of directories to exclude"
echo "\t[-b enabled sections]: List of sections to enable"
echo "\t[-m generate chm]: chm file name (required)"
echo "\t[-p generate pdf <file>]: create <file>.pdf in html/pdf (Linux only)"
echo "\t[-o override doxyfile]: file (advanced) Overide any doxyfile default"
echo "\t[-j]: Optimize for Java (Generate class files) defaults to C"
echo "\t[-r]: Call rshd to windows for chm generation (defaults to wine)"
echo
exit
}
function optimizeForJava
{
DOX_OPTIMIZE_OUTPUT_JAVA="YES"
DOX_OPTIMIZE_OUTPUT_FOR_C="NO"
}
if [ "$#" -lt 2 ]; then
echo "Invalid number of parameters"
usage $0
fi
# get the required parameters then shift for the getopts parameters
export DOX_INPUT="$1"
shift
export DOX_OUTPUT_DIRECTORY="$1"
shift
#set the global defaults
DOX_QUIET="YES"
DOX_OPTIMIZE_OUTPUT_JAVA="NO"
DOX_OPTIMIZE_OUTPUT_FOR_C="YES"
DOX_CHM_FILE=
DOX_GENERATE_HTMLHELP="NO"
OVERRIDE_FILE=""
PDF=""
# Process the rest of the arguments as getopts
# parameters
while getopts b:c:e:f:m:n:o:p:s:t:v:x:dhjr arg
do
case $arg in
b) DOX_ENABLED_SECTIONS=${OPTARG};;
c) DOX_HTML_STYLESHEET=${OPTARG};;
d) DEBUG=1;;
e) DOX_EXCLUDE=${OPTARG};;
f) DOX_FILE_PATTERNS=${OPTARG};;
h) usage;exit 0;;
j) optimizeForJava;;
r) USERSHD=1;;
m) DOX_CHM_FILE=${OPTARG};DOX_GENERATE_HTMLHELP="YES";;
n) DOX_PROJECT_NAME=${OPTARG};;
s) DOX_STRIP_FROM_PATH=${OPTARG};;
t) TDOX_TEMPLATEDIR=${OPTARG};;
v) DOX_PROJECT_NUMBER=${OPTARG};;
x) DOXYGEN_EXECUTABLE=${OPTARG};;
o) OVERRIDE_FILE=${OPTARG};;
p) PDF=${OPTARG};;
\?) usage
exit 2;;
esac
done
if [ "$DEBUG" = "1" ]; then
DOX_QUIET="NO"
set -x
fi
if [ "$DOX_PROJECT_NAME" = "" ]; then
DOX_PROJECT_NAME="Project"
fi
if [ "$DOX_PROJECT_NUMBER" = "" ]; then
DOX_PROJECT_NUMBER="1.0"
fi
if [ "$DOX_FILE_PATTERNS" = "" ]; then
DOX_FILE_PATTERNS="*.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.d \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox"
fi
export DOX_INPUT
export DOX_OUTPUT_DIRECTORY
export DOX_PROJECT_NAME
export DOX_PROJECT_NUMBER
export DOX_FILE_PATTERNS
export DOX_STRIP_FROM_PATH
export DOX_QUIET
export DOX_HTML_STYLESHEET
export DOX_OPTIMIZE_OUTPUT_FOR_C
export DOX_OPTIMIZE_OUTPUT_JAVA
export DOX_EXCLUDE
export DOX_ENABLED_SECTIONS
export DOX_CHM_FILE
export DOX_GENERATE_HTMLHELP
export TDOX_TEMPLATEDIR
# Make sure the dir exists
mkdir -p $DOX_OUTPUT_DIRECTORY
# Create temp file copy of doxyfile and append overrides to the end of the file
cp ${TDOX_TEMPLATEDIR}/doxyfile /tmp/doxyfile$$
chmod +w /tmp/doxyfile$$
if [ "$OVERRIDE_FILE" != "" ]; then
cat $OVERRIDE_FILE >> /tmp/doxyfile$$
fi
# Run doxygen and clean up temp file
${DOXYGEN_EXECUTABLE} /tmp/doxyfile$$
rm -f /tmp/doxyfile$$
# Copy the TI banner gifs to the html directory.
cp -p ${TDOX_TEMPLATEDIR}/*gif $DOX_OUTPUT_DIRECTORY/html
# Generate PDF files
if [ "$PDF" != "" ]; then
if [ "$BUILD_HOST_OS" = "Linux" ]; then
rm -rf $DOX_OUTPUT_DIRECTORY/html/pdf
mkdir -p $DOX_OUTPUT_DIRECTORY/html/pdf
cwd=`pwd`
cd $DOX_OUTPUT_DIRECTORY/latex
latex refman.tex
makeindex refman.idx
latex refman.tex
latex_count=5
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ]
do
latex refman.tex
latex_count=`expr $$latex_count - 1`
done
dvips -o refman.ps refman.dvi
ps2pdf refman.ps refman.pdf
cd $cwd
mv $DOX_OUTPUT_DIRECTORY/latex/refman.pdf $DOX_OUTPUT_DIRECTORY/html/pdf/${PDF}.pdf
else
echo "Sorry... pdf generation supported under Linux only"
fi
fi
# Generate Windows compressed help
if [ "$DOX_GENERATE_HTMLHELP" = "YES" ]; then
echo "chm generation is not supported"
fi

View File

@@ -0,0 +1,48 @@
Index: dmai_1_20_00_06/packages/config.bld
===================================================================
--- dmai_1_20_00_06.orig/packages/config.bld 2009-02-11 19:38:51.000000000 -0600
+++ dmai_1_20_00_06/packages/config.bld 2009-02-11 19:39:23.000000000 -0600
@@ -42,7 +42,7 @@
/* location of the Codec Sourcery Arm9 tools */
var GCArmv5T = xdc.useModule('gnu.targets.arm.GCArmv5T');
-GCArmv5T.LONGNAME = 'bin/arm-none-linux-gnueabi-gcc';
+GCArmv5T.LONGNAME = 'bin/arm-angstrom-linux-gnueabi-gcc';
GCArmv5T.platform = "ti.platforms.evm3530";
GCArmv5T.rootDir = java.lang.System.getenv("CSTOOL_DIR");
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/Makefile
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/Makefile 2009-02-11 19:39:57.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/Makefile 2009-02-11 19:58:05.000000000 -0600
@@ -33,7 +33,7 @@
DMAI_INSTALL_DIR = ../../../..
TARGET = dmai
-include $(DMAI_INSTALL_DIR)/Rules.make
+#include $(DMAI_INSTALL_DIR)/Rules.make
# Should the full command be echoed to the console during build?
VERBOSE=false
@@ -64,7 +64,7 @@
MVL_CPP_FLAGS = $(GNU_CPP_FLAGS) -Dxdc_target_name__=MVArm9
CS_CPP_FLAGS = $(GNU_CPP_FLAGS) -Dxdc_target_name__=codesourcery/GCArmv5T
-GNU_C_FLAGS = $(C_FLAGS) -Wall -Werror
+GNU_C_FLAGS = $(C_FLAGS) -Wall
C64P_C_FLAGS = $(C_FLAGS)
GNU_AR_FLAGS = $(AR_FLAGS)
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/apps/Makefile.app
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/apps/Makefile.app 2009-02-11 19:58:44.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/apps/Makefile.app 2009-02-11 19:59:01.000000000 -0600
@@ -34,7 +34,7 @@
ifndef DMAI_INSTALL_DIR
DMAI_INSTALL_DIR = ../../../../../..
endif
-include $(DMAI_INSTALL_DIR)/Rules.make
+#include $(DMAI_INSTALL_DIR)/Rules.make
# Should the full command be echoed to the console during build?
VERBOSE=false

View File

@@ -0,0 +1,31 @@
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Sound_alsa.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Sound_alsa.c 2009-02-11 19:19:23.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Sound_alsa.c 2009-02-11 19:19:25.000000000 -0600
@@ -139,7 +139,7 @@
snd_mixer_selem_id_free (sid);
snd_mixer_close (rcMixer);
-
+
return Dmai_EOK;
}
@@ -431,14 +431,13 @@
Sound_alsa_delete(hSound);
return NULL;
}
-
+
if (setMixerVolume (attrs) <0) {
- Sound_alsa_delete (hSound);
- return NULL;
+ Dmai_dbg2("Failed to set the mixer volume on %s (%s)\n",
+ AUDIO_DEVICE, snd_strerror(status));
}
}
-
return hSound;
}

View File

@@ -0,0 +1,12 @@
diff -uNr davinci_multimedia_application_interface/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c davinci_multimedia_application_interfaceb/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c
--- davinci_multimedia_application_interface/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c 2010-03-14 22:43:20.000000000 +0000
+++ davinci_multimedia_application_interfaceb/dmai/packages/ti/sdo/dmai/linux/Display_fbdev.c 2010-03-14 23:19:41.000000000 +0000
@@ -43,7 +43,7 @@
#ifdef Dmai_Device_omap3530
#include <linux/omapfb.h>
-#elif defined Dmai_Device_omapl138
+#elif defined (Dmai_Device_omapl137) || defined (Dmai_Device_omapl138)
#include <video/davincifb.h>
#else
#include <video/davincifb_ioctl.h>

View File

@@ -0,0 +1,17 @@
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/omap3530/Resize.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/omap3530/Resize.c 2009-02-11 19:20:45.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/omap3530/Resize.c 2009-02-11 19:21:09.000000000 -0600
@@ -557,9 +557,9 @@
srcOffset = srcDim.y * srcDim.lineLength + srcDim.x * 2;
dstOffset = dstDim.y * dstDim.lineLength + dstDim.x * 2;
- /* Input and output buffers must be 4096 bytes aligned */
- assert(((Buffer_getPhysicalPtr(hDstBuf) + srcOffset) & 0xFFF) == 0);
- assert(((Buffer_getPhysicalPtr(hSrcBuf) + dstOffset) & 0xFFF) == 0);
+ /* Pointers must be a multiple of 32 bytes */
+ assert((Buffer_getPhysicalPtr(hDstBuf) & 0x1F) == 0);
+ assert((Buffer_getPhysicalPtr(hSrcBuf) & 0x1F) == 0);
/* Queue the resizer buffers */
for (i=0; i < 2; i++) {

View File

@@ -0,0 +1,16 @@
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Cpu.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Cpu.c 2009-02-12 09:34:22.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Cpu.c 2009-02-12 09:34:51.000000000 -0600
@@ -103,7 +103,10 @@
else if (strcmp(valBuf, "DM357 EVM") == 0) {
*device = Cpu_Device_DM6446;
}
- else if (strcmp(valBuf, "OMAP3EVM Board") == 0) {
+ else if ((strcmp(valBuf, "OMAP3EVM Board") == 0) ||
+ (strcmp(valBuf, "OMAP3 EVM") == 0) ||
+ (strcmp(valBuf, "OMAP3 Beagle Board") == 0)
+ ){
*device = Cpu_Device_OMAP3530;
}
else {

View File

@@ -0,0 +1,77 @@
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_fbdev.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display_fbdev.c 2009-02-11 19:59:57.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_fbdev.c 2009-02-11 20:02:46.000000000 -0600
@@ -41,10 +41,7 @@
#include <sys/ioctl.h>
#include <linux/fb.h>
-#ifdef Dmai_Device_omap3530
-/* OMAP specific kernel headers */
-#include <video/omapfbdev.h>
-#else
+#ifndef Dmai_Device_omap3530
/* Davinci specific kernel headers */
#include <video/davincifb_ioctl.h>
#endif
@@ -184,11 +181,13 @@
}
#endif
+#if 0
/* Set up the sysfs variables before opening the display device */
if (_Display_sysfsSetup(attrs, channel) < 0) {
cleanup(hDisplay);
return NULL;
}
+#endif
/* Open video display device */
hDisplay->fd = open(attrs->displayDevice, O_RDWR);
@@ -423,6 +422,7 @@
******************************************************************************/
Int Display_fbdev_get(Display_Handle hDisplay, Buffer_Handle *hBufPtr)
{
+#if defined (FBIO_WAITFORVSYNC)
BufTab_Handle hBufTab = hDisplay->hBufTab;
int dummy;
@@ -436,7 +436,8 @@
}
*hBufPtr = BufTab_getBuf(hBufTab, hDisplay->workingIdx);
-
+
+#endif
return Dmai_EOK;
}
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display.c 2009-02-11 20:00:10.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display.c 2009-02-11 20:02:07.000000000 -0600
@@ -80,18 +80,18 @@
const Display_Attrs Display_Attrs_O3530_VID_DEFAULT = {
3,
- Display_Std_V4L2,
- VideoStd_VGA,
- Display_Output_LCD,
- "/dev/video1",
+ Display_Std_FBDEV,
+ VideoStd_D1_NTSC,
+ Display_Output_DVI,
+ "/dev/fb2",
0
};
const Display_Attrs Display_Attrs_O3530_OSD_DEFAULT = {
1,
Display_Std_FBDEV,
- VideoStd_VGA,
- Display_Output_LCD,
+ VideoStd_D1_NTSC,
+ Display_Output_DVI,
"/dev/fb0",
0
};

View File

@@ -0,0 +1,127 @@
Index: dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_v4l2.c
===================================================================
--- dmai_1_20_00_06.orig/packages/ti/sdo/dmai/linux/Display_v4l2.c 2009-02-11 19:22:51.000000000 -0600
+++ dmai_1_20_00_06/packages/ti/sdo/dmai/linux/Display_v4l2.c 2009-02-11 19:27:02.000000000 -0600
@@ -120,7 +120,9 @@
struct v4l2_format fmt;
enum v4l2_buf_type type;
Display_Handle hDisplay;
- Int channel;
+#if defined(Dmai_Device_omap3530) && defined(V4L2_CID_ROTATION)
+ struct v4l2_control control;
+#endif
assert(attrs);
@@ -134,44 +136,6 @@
hDisplay->userAlloc = TRUE;
-#ifdef Dmai_Device_omap3530
- /* channel = 0 - digital video path
- * channel = 1 - analog video path
- */
- switch (attrs->videoOutput) {
- case Display_Output_SVIDEO:
- case Display_Output_COMPOSITE:
- channel = 1;
- break;
- case Display_Output_DVI:
- case Display_Output_LCD:
- case Display_Output_SYSTEM:
- channel = 0;
- break;
- default:
- /* do nothing */
- break;
- }
-#else
- if (strcmp(attrs->displayDevice, "/dev/video2") == 0) {
- channel = 0;
- }
- else if (strcmp(attrs->displayDevice, "/dev/video3") == 0) {
- channel = 1;
- }
- else {
- Dmai_err1("%s not a display device\n", attrs->displayDevice);
- cleanup(hDisplay);
- return NULL;
- }
-#endif
-
- /* Set up the sysfs variables before opening the display device */
- if (_Display_sysfsSetup(attrs, channel) < 0) {
- cleanup(hDisplay);
- return NULL;
- }
-
/* Open video capture device */
hDisplay->fd = open(attrs->displayDevice, O_RDWR, 0);
@@ -182,9 +146,8 @@
return NULL;
}
-#ifdef Dmai_Device_omap3530
-#define VIDIOC_S_OMAP2_ROTATION _IOW ('V', 3, int)
-
+
+#if defined(Dmai_Device_omap3530) && defined(V4L2_CID_ROTATION)
if (attrs->rotation != 0 && attrs->rotation != 90 &&
attrs->rotation != 180 && attrs->rotation != 270) {
@@ -193,49 +156,16 @@
return NULL;
}
- if (ioctl(hDisplay->fd, VIDIOC_S_OMAP2_ROTATION, &attrs->rotation) < 0) {
- Dmai_err2("Failed VIDIOC_S_OMAP2_ROTATION on %s (%s)\n",
+ control.id = V4L2_CID_ROTATION;
+ control.value = attrs->rotation;
+
+ if (ioctl(hDisplay->fd, VIDIOC_S_CTRL, &control) < 0) {
+ Dmai_err2("Failed VIDIOC_S_CTRL on %s (%s)\n",
attrs->displayDevice, strerror(errno));
cleanup(hDisplay);
return NULL;
}
- switch (attrs->videoStd) {
- case VideoStd_D1_NTSC:
- fmt.fmt.pix.width = VideoStd_D1_WIDTH;
- fmt.fmt.pix.height = VideoStd_D1_NTSC_HEIGHT;
- break;
- case VideoStd_D1_PAL:
- fmt.fmt.pix.width = VideoStd_D1_WIDTH;
- fmt.fmt.pix.height = VideoStd_D1_PAL_HEIGHT;
- break;
- case VideoStd_VGA:
- fmt.fmt.pix.width = VideoStd_VGA_WIDTH;
- fmt.fmt.pix.height = VideoStd_VGA_HEIGHT;
- break;
- case VideoStd_480P:
- fmt.fmt.pix.width = VideoStd_480P_WIDTH;
- fmt.fmt.pix.height = VideoStd_480P_HEIGHT;
- break;
- case VideoStd_720P_60:
- fmt.fmt.pix.width = VideoStd_480P_WIDTH;
- fmt.fmt.pix.height = VideoStd_480P_HEIGHT;
- break;
- default:
- Dmai_err1("Unknown video standard %d\n", attrs->videoStd);
- cleanup(hDisplay);
- return NULL;
- }
-
- fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY;
- fmt.type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
-
- if (ioctl(hDisplay->fd, VIDIOC_S_FMT, &fmt) == -1) {
- Dmai_err2("Failed VIDIOC_S_FMT on %s (%s)\n", attrs->displayDevice,
- strerror(errno));
- cleanup(hDisplay);
- return NULL;
- }
#endif /* Dmai_Device_omap3530 */
/* Determine the video image dimensions */

View File

@@ -0,0 +1,37 @@
#
# Default Memory Map - for OMAP3530 dvsdk examples from 3.00.00.29 - this memory map is used for DMAI apps
#
# Start Addr Size Description
# -------------------------------------------
# 0x80000000 88 MB Linux
# 0x85800000 08 MB CMEM
# 0x86800000 16 MB DDRALGHEAP
# 0x87800000 6 MB DDR2 (BIOS, Codecs, Applications)
# 0x87E00000 1 MB DSPLINK (MEM)
# 0x87F00000 4 KB DSPLINK (RESET)
# 0x87F01000 1020 KB unused
# sanity check to verify that we're using the right mem=xxM (88M in this case)
awk '/MemTotal:/ {
mem=$2
if (mem > 88 * 1024)
print "Warning! You need to use mem=88M or less on the kernel cmdline"
printf "You have %dkB total memory for Linux\n", mem
}' /proc/meminfo
# Select cmemk parameters for best fit, i.e. starting at 0x85000000
modprobe cmemk phys_start=0x85800000 phys_end=0x86800000 pools=20x4096,8x131072,5x1048576,1x1429440,1x256000,1x3600000,5x829440
# 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
# insert Local Power Manager driver
#
modprobe lpm_omap3530

View File

@@ -0,0 +1,23 @@
#!/bin/sh
#
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# 12MB
modprobe cmemk phys_start=0x87400000 phys_end=0x88000000 pools=1x2903040,1x1529856,7x829440,1x524288,1x108680,1x81920,2x8192,6x4096
./mapdmaq
modprobe dm350mmap
rm -f /dev/dm350mmap
mknod /dev/dm350mmap c `awk "\\$2==\"dm350mmap\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,25 @@
#!/bin/sh
# This loadmodules script is provided to support 1920x1080 resolution file based encode/decode DMAI unit test applications
# Sample bootargs is given below
# mem=60M console=ttyS0,115200n8 root=/dev/nfs rw nfsroot=<nfsroot> ip=dhcp video=davincifb:vid0=OFF:vid1=OFF:osd0=720x576x16,2025K dm365_imp.oper_mode=0
depmod -a
rmmod cmemk 2>/dev/null
rmmod irqk 2>/dev/null
rmmod edmak 2>/dev/null
rmmod dm365mmap 2>/dev/null
# Pools configuration
modprobe cmemk phys_start=0x83C00000 phys_end=0x88000000 pools=1x384,2x5984,2x3133440,1x16384,1x48952,1x20480,1x60288,1x74,1x28,1x2048,1x6785280,1x146,1x896,1x65536,1x98,1x296,29x56,2x24,1x624,4x62,1x1456,1x18321120,1x65792,5x3523584,1x4194304,1x8355840
#VC1 decode pool configuration
# insmod cmemk.ko phys_start=0x83C00000 phys_end=0x88000000 pools=1x384,1x112665,3x7680,1x319264,2x1024,5x7208960,1x80,1x116,1x29184,1x2688,1x30720,1x551680,2x128,1x74,1x28,1x10240,1x47232,1x448,2x1152,1x8192,2x272896,18x56,2x24,1x86,4x62,2x7808,1x2097152
modprobe irqk
modprobe edmak
modprobe dm365mmap
rm -f /dev/dm365mmap
mknod /dev/dm365mmap c `awk "\\$2==\"dm365mmap\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,19 @@
#
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
modprobe cmemk phys_start=0x87800000 phys_end=0x88E00000 pools=20x4096,8x202752,10x131072,2x1048576,1x2097152,10x829440,1x6750000
modprobe dsplinkk ddr_start=0x8F800000 ddr_size=0x600000
rm -rf /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,19 @@
#
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
modprobe cmemk phys_start=0x87800000 phys_end=0x88E00000 pools=20x4096,8x202752,10x131072,2x1048576,1x2097152,10x829440,1x6750000
modprobe dsplinkk ddr_start=0x8F800000 ddr_size=0x600000
rm -rf /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,42 @@
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# Default Memory Map
#
# Start Addr Size Description
# -------------------------------------------
# 0x80000000 88 MB Linux
# 0x85800000 08 MB CMEM
# 0x86800000 24 MB DDRALGHEAP
# 0x87800000 6 MB DDR2 (BIOS, Codecs, Applications)
# 0x87E00000 1 MB DSPLINK (MEM)
# 0x87F00000 4 KB DSPLINK (RESET)
# 0x87F01000 1020 KB unused
modprobe cmemk phys_start=0x85800000 phys_end=0x86800000 pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
# 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
# insert Local Power Manager driver
#
modprobe lpm_omap3530

View File

@@ -0,0 +1,19 @@
#
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
modprobe cmemk phys_start=0xC2200000 phys_end=0xC3200000 pools=1x5250000,3x1048576,3x829440,1x256000,4x131072
modprobe dsplinkk
rm -rf /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,19 @@
#
# loadmodules.sh
#
# Copyright (C) $year Texas Instruments Incorporated - http://www.ti.com/
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation version 2.1 of the License.
#
# This program is distributed #as is# WITHOUT ANY WARRANTY of any kind,
# whether express or implied; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
modprobe cmemk phys_start=0xC2200000 phys_end=0xC3200000 pools=1x5250000,3x1048576,3x829440,1x256000,4x131072
modprobe dsplinkk
rm -rf /dev/dsplink
mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0

View File

@@ -0,0 +1,12 @@
# Unload modules - DMAI - OMAP3530
# remove lpm module
rmmod lpm_omap3530
# remove DSP/BIOS Link driver
rmmod dsplinkk
#rm -f /dev/dsplink
# remove cmem module
rmmod cmemk

View File

@@ -0,0 +1,31 @@
require ti-dmai.inc
# Hack to be able to use recent kernel headers from userspace
TARGET_CC_ARCH += " -D__EXPORTED_HEADERS__"
DEFAULT_PREFERENCE = "-1"
PV = "2_10_00_01+svnr${SRCPV}"
# This package has high dependence on kernel, use kernel PR as base and append a local version
PR = "${MACHINE_KERNEL_PR}"
PR_append = "n"
DMAIBRANCH_dm6446 = "trunk"
DMAIBRANCH_dm6467 = "branches/GITPSP_INT_101009"
DMAIBRANCH_omap3 = "trunk"
DMAIBRANCH_dm355 = "branches/GITPSP_INT_101009"
DMAIBRANCH_dm365 = "trunk"
DMAIBRANCH_omapl137 = "trunk"
DMAIBRANCH_omapl138 = "trunk"
DMAIBRANCH ?= "<UNDEFINED_DMAIBRANCH>"
SRCREV_dm6446 = "482"
SRCREV_dm6467 = "441"
SRCREV_omap3 = "570"
SRCREV_dm355 = "424"
SRCREV_dm365 = "570"
SRCREV_omapl137 = "482"
SRCREV_omapl138 = "570"
SRCREV ?= "<UNDEFINED_SRCREV>"

View File

@@ -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"

View File

@@ -0,0 +1,21 @@
DESCRIPTION = "TI Framework Components"
HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/fc"
SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://framework_components_2_26_00_01_manifest.html;md5=3250f9da7ee72284c07f8dd840400c75"
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
PR = "r1"
S = "${WORKDIR}/framework_components_${PV}"
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/fc/${PV}/exports/framework_components_${PV},lite.tar.gz;name=fctarball"
do_install() {
install -d ${D}${FC_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${FC_INSTALL_DIR_RECIPE}
}

View File

@@ -0,0 +1,8 @@
require ti-framework-components.inc
PV = "2_26_00_01"
SRC_URI[fctarball.md5sum] = "40b51cade2f9ae6e6f6dca73c17065af"
SRC_URI[fctarball.sha256sum] = "3f7a12a51dfe87310828a31518d7ef8f9039e59269c0ca24f74a68433c235048"

View File

@@ -0,0 +1,90 @@
DESCRIPTION = "MFP Linux utils for TI ARM/DSP processors"
SECTION = "devel"
LICENSE = "GPLv2,BSD"
BASE_SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/linuxutils/${PV}/exports"
SRC_URI = "${BASE_SRC_URI}/linuxutils_${PV}.tar.gz "
LIC_FILES_CHKSUM = "file://gpl_2.0.txt;md5=1298794fc2eed3df92a89f3c9d317440"
S = "${WORKDIR}/linuxutils_${PV}"
require recipes-ti/includes/ti-paths.inc
require recipes-ti/includes/ti-staging.inc
#This is a kernel module, don't set PR directly
MACHINE_KERNEL_PR_append = "d"
inherit module
do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
case ${SOC_FAMILY} in
dm365)
modules="cmem edma irq";;
omap3)
modules="cmem sdma";;
dm355)
modules="cmem edma irq";;
*)
modules="cmem"
esac
for module in $modules ; do
cd ${S}/packages/ti/sdo/linuxutils/$module
make \
LINUXKERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" \
MVTOOL_PREFIX="${TARGET_PREFIX}" \
UCTOOL_PREFIX="${TARGET_PREFIX}" \
clean debug release
done
}
do_install () {
install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
# Install CMEM
for module in $(find ${S}/packages/ti/sdo/linuxutils/ -name "*.ko") ; do
install -m 0755 $module ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
done
cd ${S}/packages/ti/sdo/linuxutils/cmem/apps
make \
LINUXKERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" \
MVTOOL_PREFIX="${TARGET_PREFIX}" \
UCTOOL_PREFIX="${TARGET_PREFIX}" \
EXEC_DIR="${D}${installdir}/ti-linuxutils-app/cmem-app" \
install
# Install EDMA
if [ ${SOC_FAMILY} = "dm365" ] ; then
cd ${S}/packages/ti/sdo/linuxutils/edma/apps
make \
LINUXKERNEL_INSTALL_DIR="${STAGING_KERNEL_DIR}" \
MVTOOL_PREFIX="${TARGET_PREFIX}" \
UCTOOL_PREFIX="${TARGET_PREFIX}" \
EXEC_DIR="${D}${installdir}/ti-linuxutils-app/edma-app" \
install
fi
# stage tree - other packages may need this
install -d ${D}${LINUXUTILS_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${LINUXUTILS_INSTALL_DIR_RECIPE}
}
PACKAGES =+ " ti-cmem-module \
ti-sdma-module \
ti-edma-module \
ti-irq-module \
ti-linuxutils-app"
FILES_ti-cmem-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/cmem*.ko"
FILES_ti-sdma-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/sdma*.ko"
FILES_ti-edma-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/edma*.ko"
FILES_ti-irq-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/irq*.ko"
FILES_ti-linuxutils-app = "${installdir}/ti-linuxutils-app/*/*"
INSANE_SKIP_ti-linuxutils-app = "True"
PACKAGE_STRIP = "no"

View File

@@ -0,0 +1,22 @@
From: Koen Kooi <k-kooi@ti.com>
Subject: linuxutils: fix build with 2.6.37rcX
---
--- /tmp/sdmak.c 2010-12-05 18:43:55.000000000 +0100
+++ linuxutils_2_25_05_11/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c 2010-12-05 18:48:31.000000000 +0100
@@ -208,9 +208,12 @@
}
up_read(&current->mm->mmap_sem);
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ sema_init(&(channels[channel].mutex),1);
+#else
init_MUTEX_LOCKED(&(channels[channel].mutex));
- channels[channel].owner = filp;
+#endif
+ channels[channel].owner = filp;
if (copy_to_user(argp, &channel, sizeof(channel))) {
return -EFAULT;

View File

@@ -0,0 +1,73 @@
From: Koen Kooi <k-kooi@ti.com>
Subject: linuxutils: fix build with 2.6.37rcX
---
--- /tmp/cmemk.c 2010-12-05 18:41:00.000000000 +0100
+++ linuxutils_2_25_05_11/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c 2010-12-05 18:43:24.000000000 +0100
@@ -31,6 +31,7 @@
#include <linux/seq_file.h>
#include <linux/vmalloc.h>
#include <linux/sched.h>
+#include <linux/slab.h>
#include <asm/cacheflush.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
@@ -204,7 +205,11 @@
"\n\t\t fall back to a heap-based allocation attempt");
module_param(useHeapIfPoolUnavailable, int, S_IRUGO);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+static DEFINE_SEMAPHORE(cmem_mutex);
+#else
static DECLARE_MUTEX(cmem_mutex);
+#endif
/* Describes a pool buffer */
typedef struct pool_buffer {
@@ -243,8 +248,12 @@
static struct file_operations cmem_fxns = {
owner: THIS_MODULE,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ unlocked_ioctl: ioctl,
+#else
ioctl: ioctl,
- mmap: mmap,
+#endif
+ mmap: mmap,
open: open,
release: release
};
--- /tmp/sdmak.c 2010-12-05 18:43:55.000000000 +0100
+++ linuxutils_2_25_05_11/packages/ti/sdo/linuxutils/sdma/src/module/sdmak.c 2010-12-05 18:48:31.000000000 +0100
@@ -208,9 +208,12 @@
}
up_read(&current->mm->mmap_sem);
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ sema_init(&(channels[channel].mutex),1);
+#else
init_MUTEX_LOCKED(&(channels[channel].mutex));
- channels[channel].owner = filp;
+#endif
+ channels[channel].owner = filp;
if (copy_to_user(argp, &channel, sizeof(channel))) {
return -EFAULT;
@@ -286,8 +289,12 @@
}
static struct file_operations fops = {
- .ioctl = dma_ioctl,
- .release = dma_release,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+ .unlocked_ioctl = dma_ioctl,
+#else
+ .ioctl = dma_ioctl,
+#endif
+ .release = dma_release,
.owner = THIS_MODULE
};

View File

@@ -0,0 +1,10 @@
require ti-linuxutils.inc
SRC_URI += "file://linuxutils-BKL-fix-2.patch"
PE = "1"
PV = "2_26_01_02"
SRC_URI[md5sum] = "70b4918bc35c1bcfef34d6ba3fbce0c8"
SRC_URI[sha256sum] = "51266dd928f8d629cd417c869789a6c0d596612120f165619119cbaadfd66ee2"

View File

@@ -0,0 +1,21 @@
DESCRIPTION = "TI eXpress DSP Algorithm Interface Standard (XDAIS) specification"
HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais"
LICENSE = "GPLv2"
SECTION = "devel"
LIC_FILES_CHKSUM = "file://xdais_6_26_01_03_manifest.html;md5=a5a675d49db2f658bb98746ec80cda4e"
require ../includes/ti-paths.inc
require ../includes/ti-staging.inc
PR = "r1"
S = "${WORKDIR}/xdais_${PV}"
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/${PV}/exports/xdais_${PV}.tar.gz;name=xdaistarball"
do_install() {
install -d ${D}${XDAIS_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${XDAIS_INSTALL_DIR_RECIPE}
}

View File

@@ -0,0 +1,8 @@
require ti-xdais.inc
PV = "6_26_01_03"
SRC_URI[xdaistarball.md5sum] = "9b2bea3408254e737ec0d819a031adf6"
SRC_URI[xdaistarball.sha256sum] = "d7bcbd8bcfe6fdfc5f402e4b125ced6c806dc30bc5296e98d5d43b0b5a237a0d"