summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2008-07-16 11:24:17 +0000
committerKoen Kooi <koen@openembedded.org>2008-07-16 11:24:17 +0000
commit75eee7ef85db2e30e772b07384a519ce4bb9391b (patch)
tree5441519d38370503d89cb0e251d4c69677008c83
parenta27a28585eb3f4a3a6f2cad461cb00bbf82f8ea9 (diff)
codec-engine: hook into TI xdc and dsp toolchains
-rw-r--r--packages/dsplink/codec-engine_2.10.bb24
-rw-r--r--packages/dsplink/files/xdcpaths.mak232
2 files changed, 255 insertions, 1 deletions
diff --git a/packages/dsplink/codec-engine_2.10.bb b/packages/dsplink/codec-engine_2.10.bb
index b26a8cbc94..f4712eecce 100644
--- a/packages/dsplink/codec-engine_2.10.bb
+++ b/packages/dsplink/codec-engine_2.10.bb
@@ -13,11 +13,33 @@ PV = "2.10"
# 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_10_01.tar.gz \
-"
+ file://xdcpaths.mak \
+ "
S = "${WORKDIR}/codec_engine_2_10_01"
+# Path to the dir where the TI tools are unpacked
+TITOOLSDIR ?= "/OE/TI"
+# Path under TITOOLSDIR where dspbios is unpacked
+TIBIOSDIR ?= "bios_5_32_03"
+TIXDCTOOLSDIR ?= "${TIBIOSDIR}/xdctools"
+# Path under TITOOLSDIR where the dsp toolchain is unpacked
+TICGTOOLSDIR ?= "cg6x_6_1_2"
+
PARALLEL_MAKE = ""
+
+do_configure() {
+ cp ${WORKDIR}/xdcpaths.mak ${S}/examples/
+ sed -i -e s:SEDME_TITOOLS_BASEPATH:${TITOOLSDIR}:g \
+ -e s:SEDME_BIOSUNPACKDIR:${TITOOLSDIR}/${TIBIOSDIR}:g \
+ -e 's:SEDME_S:${S}:g' \
+ -e s:SEDME_XDCTOOLSUNPACKDIR:${TIXDCTOOLSDIR}:g \
+ -e s:/db/toolsrc/library/tools/vendors/mvl/arm/mvl4.0-new/montavista/pro/devkit/arm/v5t_le:${CROSS_DIR}:g \
+ -e s:bin/arm_v5t_le-gcc:bin/${TARGET_PREFIX}gcc:g \
+ -e s:/db/toolsrc/library/tools/vendors/ti/c6x/6.0.16/Linux:${TICGTOOLSDIR}:g \
+ ${S}/examples/xdcpaths.mak
+}
+
do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
cd ${S}/cetools/packages/ti/sdo/linuxutils/cmem
diff --git a/packages/dsplink/files/xdcpaths.mak b/packages/dsplink/files/xdcpaths.mak
new file mode 100644
index 0000000000..3df3bf6305
--- /dev/null
+++ b/packages/dsplink/files/xdcpaths.mak
@@ -0,0 +1,232 @@
+#
+# ======== xdcpaths.mak ========
+# definition of XDC paths and commands
+#
+# This makefile constructs the "search path" for the XDC tools where it finds
+# numerous components and packages needed to build Codec Engine examples and
+# programs.
+#
+# USER NOTE:
+# 1) you must specify various <component>_INSTALL_DIRs directores below to
+# reflect your installation, where <component> is CE for Codec Engine,
+# BIOS for DSP/BIOS, etc.
+# 2) you must specify compiler path and name in CGTOOLS_* variables below
+# 3) you can remove some of the devices from the "DEVICES" list and/or remove
+# some of the types of binaries from the "PROGRAMS" list to reduce
+# the build time (and possibly avoid checking for presence of a component
+# you don't need)
+
+
+
+# (Optional) Remove from this list the devices you're not interested in building
+DEVICES := DM6446 DM355 DM6437 DM648 DM6467
+
+# (Optional) Remove from the list the types of programs you're not intersted in
+# building:
+# APP_CLIENT -- Arm client for codecs running on the DSP, on dual-CPU systems
+# DSP_SERVER -- DSP server with the codecs, running on the DSP, on dual-CPUs
+# APP_LOCAL -- Client+codecs in a single program, whether Arm only or DSP only
+PROGRAMS := APP_CLIENT DSP_SERVER APP_LOCAL
+
+
+# (Mandatory) Specify where various components are installed.
+# What you need depends on what device(s) you're building for, what type(s) of
+# programs you are building for, and whether your Codec Engine distribution
+# is a "big" one that contains all the minor components in its "cetools"
+# directory. The legend:
+# CE - Codec Engine (needed for Arm and for DSP)
+# XDC - XDC tools (Arm and DSP)
+# BIOS - DSP/BIOS (DSP only)
+# XDAIS - XDAIS header files (Arm and DSP)
+# FC - Framework components, various resource managers (ARM and DSP)
+# CMEM - Continuous memory manager (Arm only)
+# DSPLINK - Arm<->DSP communication software (Arm + DSP)
+#
+# you can omit directory specifications for the components you think you don't
+# need (will be warned if you do, based on your DEVICES + PROGRAMS selection
+# above).
+
+CE_INSTALL_DIR := SEDME_S
+XDC_INSTALL_DIR := SEDME_XDCTOOLSUNPACKDIR
+BIOS_INSTALL_DIR := SEDME_BIOSUNPACKDIR
+
+# no need to specify the installation directories below if your CE installation
+# has cetools/ directory on top
+USE_CETOOLS_IF_EXISTS := 1
+XDAIS_INSTALL_DIR := _your_xDAIS_installation_directory/xdais_6_10_01
+DSPLINK_INSTALL_DIR := _your_DSPLink_installation_directory/dsplink-davinci-v1.50-prebuilt
+CMEM_INSTALL_DIR := _your_CMEM_installation_directory/cmem_2_10
+FC_INSTALL_DIR := _your_FC_installation_directory/framework_components_2_10_01
+BIOSUTILS_INSTALL_DIR := _your_BIOSUTILS_installation_directory/biosutils
+
+
+# (Mandatory) specify correct compiler paths and names for the architectures
+# you'll be building for:
+
+# compiler path and name for Montavista Arm 9 toolchain. NOTE: make sure the
+# directory you specify has a "bin" subdirectory
+CGTOOLS_MVARM9 = /db/toolsrc/library/tools/vendors/mvl/arm/mvl4.0-new/montavista/pro/devkit/arm/v5t_le
+CC_MVARM9 = bin/arm_v5t_le-gcc
+
+# compiler path and name for TI C64x toolchain. NOTE: make sure the
+# directory you specify has a "bin" subdirectory
+CGTOOLS_C64P = /db/toolsrc/library/tools/vendors/ti/c6x/6.0.16/Linux
+CC_C64P = bin/cl6x
+
+# -----------------------------------------------------------------------------
+
+# figure out what categories of devices we are to build for
+ifneq (,$(findstring DM6446,$(DEVICES)))
+ DEVICES_DAVINCI := 1
+endif
+ifneq (,$(findstring DM6467,$(DEVICES)))
+ DEVICES_DAVINCI := 1
+endif
+ifneq (,$(findstring DM355,$(DEVICES)))
+ DEVICES_ARMONLY := 1
+endif
+ifneq (,$(findstring DM6437,$(DEVICES)))
+ DEVICES_DSPONLY := 1
+endif
+ifneq (,$(findstring DM648,$(DEVICES)))
+ DEVICES_DSPONLY := 1
+endif
+
+# determine which components are necessary based on DEVICES and PROGRAMS
+REQUIRE_CE := 1
+REQUIRE_XDC := 1
+REQUIRE_XDAIS := 1
+REQUIRE_FC := 1
+
+ifneq (,$(findstring DM6446,$(DEVICES)))
+ ifneq (, $(findstring APP_CLIENT, $(PROGRAMS) ))
+ REQUIRE_LINK := 1
+ REQUIRE_CMEM := 1
+ endif
+ ifneq (, $(findstring DSP_SERVER, $(PROGRAMS) ))
+ REQUIRE_LINK := 1
+ REQUIRE_BIOS := 1
+ endif
+endif
+
+ifneq (,$(findstring DM6467,$(DEVICES)))
+ ifneq (, $(findstring APP_CLIENT, $(PROGRAMS) ))
+ REQUIRE_LINK := 1
+ REQUIRE_CMEM := 1
+ endif
+ ifneq (, $(findstring DSP_SERVER, $(PROGRAMS) ))
+ REQUIRE_LINK := 1
+ REQUIRE_BIOS := 1
+ endif
+endif
+
+ifneq (,$(findstring DM355,$(DEVICES)))
+ ifneq (, $(findstring APP_LOCAL, $(PROGRAMS) ))
+ REQUIRE_CMEM := 1
+ endif
+endif
+
+ifneq (,$(findstring DM6437,$(DEVICES)))
+ ifneq (, $(findstring APP_LOCAL, $(PROGRAMS) ))
+ REQUIRE_BIOS := 1
+ endif
+endif
+
+ifneq (,$(findstring DM648,$(DEVICES)))
+ ifneq (, $(findstring APP_LOCAL, $(PROGRAMS) ))
+ REQUIRE_BIOS := 1
+ endif
+endif
+
+
+# Build the XDC path from the necessary components, verifying along the way
+# that the required compoments are present
+XDC_PATH :=
+
+ERRMSG = which is invalid (could not find file "$(TEST_FILE)"). Set this in <codec engine examples>/xdcpaths.mak! See the build documentation to correct this error.
+
+# CE_INSTALL_DIR is the location of your Codec Engine.
+ifeq ($(REQUIRE_CE), 1)
+ TEST_FILE := $(CE_INSTALL_DIR)/packages/ti/sdo/ce/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error CE_INSTALL_DIR is set to "$(CE_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(CE_INSTALL_DIR)/packages
+endif
+
+# Add cetools to XDCPATH if 1) $(USE_CETOOLS_IF_EXISTS) is set, and
+# 2) the CE distribution has "cetools/"
+USING_CETOOLS := 0
+ifeq ($(USE_CETOOLS_IF_EXISTS), 1)
+ ifneq ($(wildcard $(CE_INSTALL_DIR)/cetools),)
+ USING_CETOOLS := 1
+ XDC_PATH := $(CE_INSTALL_DIR)/cetools/packages;$(XDC_PATH)
+ endif
+endif
+ifeq ($(USING_CETOOLS),0)
+ # XDAIS_INSTALL_DIR is the location of your XDAIS distribution
+ ifeq ($(REQUIRE_XDAIS), 1)
+ TEST_FILE := $(XDAIS_INSTALL_DIR)/packages/ti/xdais/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error XDAIS_INSTALL_DIR is set to "$(XDAIS_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(XDAIS_INSTALL_DIR)/packages
+ endif
+
+ # DSPLINK_INSTALL_DIR is the location of your DSPLINK distribution
+ ifeq ($(REQUIRE_LINK), 1)
+ TEST_FILE := $(DSPLINK_INSTALL_DIR)/packages/dsplink/gpp/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error DSPLINK_INSTALL_DIR is set to "$(DSPLINK_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(DSPLINK_INSTALL_DIR)/packages
+ endif
+
+ # CMEM_INSTALL_DIR is the location of your CMEM distribution
+ ifeq ($(REQUIRE_CMEM), 1)
+ TEST_FILE := $(CMEM_INSTALL_DIR)/packages/ti/sdo/linuxutils/cmem/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error CMEM_INSTALL_DIR is set to "$(CMEM_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(CMEM_INSTALL_DIR)/packages
+ endif
+
+ # FC_INSTALL_DIR is the location of your Frameworks Components distribution
+ ifeq ($(REQUIRE_FC), 1)
+ TEST_FILE := $(FC_INSTALL_DIR)/packages/ti/sdo/fc/dskt2/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error FC_INSTALL_DIR is set to "$(FC_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(FC_INSTALL_DIR)/packages
+ endif
+
+ # BIOSUTILS_INSTALL_DIR is the location of your BIOSUTILS distribution
+ ifeq ($(REQUIRE_BIOS), 1)
+ TEST_FILE := $(BIOSUTILS_INSTALL_DIR)/packages/ti/bios/utils/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error BIOSUTILS_INSTALL_DIR is set to "$(BIOSUTILS_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(BIOSUTILS_INSTALL_DIR)/packages
+ endif
+
+endif
+
+# BIOS_INSTALL_DIR is the location of your BIOS distribution
+ifeq ($(REQUIRE_BIOS), 1)
+ TEST_FILE := $(BIOS_INSTALL_DIR)/packages/ti/bios/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error BIOS_INSTALL_DIR is set to "$(BIOS_INSTALL_DIR)", $(ERRMSG))
+ endif
+ XDC_PATH := $(XDC_PATH);$(BIOS_INSTALL_DIR)/packages
+endif
+
+# XDC_INSTALL_DIR is the location of your XDCTOOLS installation.
+ifeq ($(REQUIRE_XDC), 1)
+ TEST_FILE := $(XDC_INSTALL_DIR)/packages/xdc/package.xdc
+ ifeq ($(wildcard $(TEST_FILE)),)
+ $(error XDC_INSTALL_DIR is set to "$(XDC_INSTALL_DIR)", $(ERRMSG))
+ endif
+endif
+
+# XDC_PATH is complete. Any other components you could add as
+# XDC_PATH := <your component>/packages;$(XDC_PATH)