[oe-commits] org.oe.dev codec-engine: hook into TI xdc and dsp toolchains

koen commit oe at amethyst.openembedded.net
Wed Jul 16 11:32:40 UTC 2008


codec-engine: hook into TI xdc and dsp toolchains

Author: koen at openembedded.org
Branch: org.openembedded.dev
Revision: eb0e2717f2a0cdfbfbb5861e59033084ead61dad
ViewMTN: http://monotone.openembedded.org/revision/info/eb0e2717f2a0cdfbfbb5861e59033084ead61dad
Files:
1
packages/dsplink/files/xdcpaths.mak
packages/dsplink/codec-engine_2.10.bb
Diffs:

#
# mt diff -r929db1bed561085591b7aaa4f8b2456eef0d06c6 -reb0e2717f2a0cdfbfbb5861e59033084ead61dad
#
#
#
# add_file "packages/dsplink/files/xdcpaths.mak"
#  content [219146c50e997b2283576cc4716f1e499c8f1f6d]
# 
# patch "packages/dsplink/codec-engine_2.10.bb"
#  from [26e9ad67a3840ad4acde461454c135e085195807]
#    to [bd2ab3dbbc15be9b29e632b0110aff300ee480ac]
#
============================================================
--- packages/dsplink/files/xdcpaths.mak	219146c50e997b2283576cc4716f1e499c8f1f6d
+++ packages/dsplink/files/xdcpaths.mak	219146c50e997b2283576cc4716f1e499c8f1f6d
@@ -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)
============================================================
--- packages/dsplink/codec-engine_2.10.bb	26e9ad67a3840ad4acde461454c135e085195807
+++ packages/dsplink/codec-engine_2.10.bb	bd2ab3dbbc15be9b29e632b0110aff300ee480ac
@@ -13,11 +13,33 @@ SRC_URI = "http://install.tarball.in.sou
 # 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






More information about the Openembedded-commits mailing list