[oe] [PATCH 1/2] ti-syslink: Add TI Syslink for TI816x and TI814x devices

Siddharth Heroor heroor at gmail.com
Tue Apr 5 15:10:52 UTC 2011


From: Siddharth Heroor <heroor at ti.com>

* Syslink is an Inter Processor communication layer for ARM/DSP devices.

Signed-off-by: Siddharth Heroor <heroor at ti.com>
---
 recipes/ti/ti-syslink.inc |  183 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 183 insertions(+), 0 deletions(-)
 create mode 100644 recipes/ti/ti-syslink.inc

diff --git a/recipes/ti/ti-syslink.inc b/recipes/ti/ti-syslink.inc
new file mode 100644
index 0000000..651d840
--- /dev/null
+++ b/recipes/ti/ti-syslink.inc
@@ -0,0 +1,183 @@
+DESCRIPTION = "SYSLINK Inter-Processor Communications (IPC) for TI ARM/DSP processors"
+HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/SysLink/index.html"
+SECTION = "devel"
+LICENSE = "BSD"
+
+require ti-paths.inc
+require ti-staging.inc
+
+COMPATIBLE_MACHINE = "(ti816x|ti814x)"
+
+PROVIDES = "ti-syslink-module"
+PROVIDES += "ti-syslink-examples"
+
+# This package builds a kernel module, use kernel PR as base and append a local version
+PR = "${MACHINE_KERNEL_PR}"
+PR_append = "j"
+
+S = "${WORKDIR}/syslink_${PV}"
+
+SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/SysLink/${PV}/exports/syslink_${PV}.tar.gz;name=syslinktarball"
+
+DEPENDS = "ti-sysbios ti-xdctools ti-cgt6x ti-ipc" 
+DEPENDS += "virtual/kernel" 
+
+# Define Syslink variables. 
+SYSLINKHLOSSAMPLES  = "procMgr frameq gateMP heapBufMP heapMemMP listMP messageQ notify ringIO ringIO_gpp sharedRegion"
+SYSLINKPLATFORM    ?= "TI81XX"
+SYSLINKSUFFIX      ?= "xe674"
+SYSLINKLOADER      ?= "ELF"
+
+SYSLINKVARIANT_ti816x  = "TI816X"
+SYSLINKVARIANT_ti814x  = "TI814X"
+SYSLINKVARIANT     ?= "<UNDEFINED_SYSLINKVARIANT>"
+
+# Export additional variables needed by build
+XDCTARGETS         ?= "ti.targets.elf.C674"
+export XDCTARGETS
+
+SYSLINK_ROOT = "${S}"
+export SYSLINK_ROOT
+
+XDCPATH = "${IPC_INSTALL_DIR}/packages;${SYSBIOS_INSTALL_DIR}/packages" 
+export XDCPATH
+
+XDCBUILDCFG="${SYSLINK_ROOT}/config.bld"
+export XDCBUILDCFG
+
+do_configure() {
+    # Update config.bld with rootDir paths for CodeGen Tools
+    # Build only C674 Elf.
+    sed -i \
+        -e s:^C674_ELF.rootDir.*:C674_ELF.rootDir\ =\ \"${CODEGEN_INSTALL_DIR}\":g \
+        -e s:C64P_COFF,://C64P_COFF:g \
+        -e s:C64P_ELF,://C64P_ELF:g \
+	-e s:C674_COFF,://C674_COFF:g \
+        -e s:C674_ELF,:C674_ELF:g \
+        -e s:M3_ELF,://M3_ELF:g \
+        -e s:A8_ELF$://A8_ELF:g \
+        -e 's/"ti.platforms.evmDA830:dsp",//g' \
+        ${S}/config.bld
+}
+
+do_prepsources () {
+    # Prepare the tree for rebuilding - clean and generate interfaces
+    cd ${SYSLINK_ROOT}/ti/syslink    
+    ${XDC_INSTALL_DIR}/xdc .make -PR .
+    ${XDC_INSTALL_DIR}/xdc clean -PR .
+    ${XDC_INSTALL_DIR}/xdc .interfaces -PR .
+}
+
+addtask prepsources after do_configure before do_compile
+
+do_compile() {
+    unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
+
+    # Build the gpp (hlos) kernel space
+    cd ${S}/ti/syslink/utils/hlos/knl/Linux && make \
+        ARCH="${TARGET_ARCH}" \
+        CROSS_COMPILE="${TARGET_PREFIX}" \
+        SYSLINK_PLATFORM="${SYSLINKPLATFORM}" \
+        SYSLINK_VARIANT="${SYSLINKVARIANT}" \
+        SYSLINK_LOADER="${SYSLINKLOADER}" \
+        SYSLINK_PKGPATH="${IPC_INSTALL_DIR}/packages" \
+        KDIR="${STAGING_KERNEL_DIR}"
+
+    # Build the gpp (hlos) kernel space samples. 
+    for sample in ${SYSLINKHLOSSAMPLES}; do
+        cd ${S}/ti/syslink/samples/hlos/$sample/knl/Linux && make \
+            ARCH="${TARGET_ARCH}" \
+            CROSS_COMPILE="${TARGET_PREFIX}" \
+            SYSLINK_PLATFORM="${SYSLINKPLATFORM}" \
+            SYSLINK_VARIANT="${SYSLINKVARIANT}" \
+            SYSLINK_LOADER="${SYSLINKLOADER}" \
+            SYSLINK_PKGPATH="${IPC_INSTALL_DIR}/packages" \
+            SYSLINK_SDK=EZSDK \
+            KDIR="${STAGING_KERNEL_DIR}"
+    done
+
+    # Build the gpp (hlos) user space
+    cd ${S}/ti/syslink/utils/hlos/usr/Linux && make \
+        ARCH="${TARGET_ARCH}" \
+        CROSS_COMPILE="${TARGET_PREFIX}" \
+        TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \
+        SYSLINK_PLATFORM="${SYSLINKPLATFORM}" \
+        SYSLINK_VARIANT="${SYSLINKVARIANT}" \
+        SYSLINK_LOADER="${SYSLINKLOADER}" \
+        SYSLINK_PKGPATH="${IPC_INSTALL_DIR}/packages"
+
+    # Build the gpp (hlos) user space samples 
+    # First build the common lib for samples.
+    cd ${S}/ti/syslink/samples/hlos/common/usr/Linux && make \
+        ARCH="${TARGET_ARCH}" \
+        CROSS_COMPILE="${TARGET_PREFIX}" \
+        TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \
+        SYSLINK_PLATFORM="${SYSLINKPLATFORM}" \
+        SYSLINK_VARIANT="${SYSLINKVARIANT}" \
+        SYSLINK_LOADER="${SYSLINKLOADER}" \
+        SYSLINK_SDK=EZSDK \
+        SYSLINK_PKGPATH="${IPC_INSTALL_DIR}/packages"
+
+    for sample in ${SYSLINKHLOSSAMPLES}; do
+        cd ${S}/ti/syslink/samples/hlos/$sample/usr/Linux && make \
+            ARCH="${TARGET_ARCH}" \
+            CROSS_COMPILE="${TARGET_PREFIX}" \
+            TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}" \
+            SYSLINK_PLATFORM="${SYSLINKPLATFORM}" \
+            SYSLINK_VARIANT="${SYSLINKVARIANT}" \
+            SYSLINK_LOADER="${SYSLINKLOADER}" \
+            SYSLINK_SDK=EZSDK \
+            SYSLINK_PKGPATH="${IPC_INSTALL_DIR}/packages"
+    done
+
+    # Build the dsp/arm (rtos) code (system)
+    cd ${S}/ti/syslink && \
+        ${XDC_INSTALL_DIR}/xdc -P \
+	 `${XDC_INSTALL_DIR}/bin/xdcpkg ${SYSLINK_ROOT}/ti/syslink | grep -v samples`
+
+    # Build the dsp/arm (rtos) code (samples)
+    export XDCARGS="profile=debug"
+    cd ${S}/ti/syslink && \
+        ${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} -P \
+	 `${XDC_INSTALL_DIR}/bin/xdcpkg ${SYSLINK_ROOT}/ti/syslink | grep samples`
+}
+
+do_install () {
+    # Install the hlos kernel module
+    install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
+    install -m 0755 ${S}/ti/syslink/bin/${SYSLINKVARIANT}/syslink.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
+
+    # Install the hlos examples
+    install -d ${D}/${installdir}/ti-syslink-examples
+    install -m 0755 ${S}/ti/syslink/bin/${SYSLINKVARIANT}/samples/* ${D}/${installdir}/ti-syslink-examples/
+
+    # Install the rtos examples
+    cd ${S}/ti/syslink/samples/rtos
+    for i in $(find . -name "*.${SYSLINKSUFFIX}"); do
+        install -d ${D}/${installdir}/ti-syslink-examples/`dirname ${i} | cut -f4 -d /`
+        install ${i} ${D}/${installdir}/ti-syslink-examples/`dirname ${i} | cut -f4 -d /`
+    done
+
+    # Install/Stage the Source Tree
+    install -d ${D}${SYSLINK_INSTALL_DIR_RECIPE}
+    cp -pPrf ${S}/* ${D}${SYSLINK_INSTALL_DIR_RECIPE}
+}
+
+PACKAGES += "ti-syslink-module"
+FILES_ti-syslink-module = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/syslink.ko" 
+RDEPENDS_ti-syslink-module += "update-modules"
+
+pkg_postinst_ti-syslink-module () {
+#!/bin/sh
+if [ -n "$D" ]; then
+	exit 1
+fi
+
+depmod -a
+update-modules || true
+}
+
+pkg_postrm_ti-syslink-module () {
+#!/bin/sh
+update-modules || true
+}
-- 
1.7.0.4





More information about the Openembedded-devel mailing list