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

add syslink 02.00.00.78

install paths need some cleaning up e.g. slaveLoader needs to be in ${bindir}

Signed-off-by: Koen Kooi <k-kooi@ti.com>
This commit is contained in:
Koen Kooi
2011-07-06 09:56:26 +01:00
parent 8f7291208e
commit e73385b2d9
3 changed files with 259 additions and 0 deletions

View File

@@ -0,0 +1,241 @@
DESCRIPTION = "SYSLINK Inter-Processor Communications (IPC) for TI ARM/DSP processors"
HOMEPAGE = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/syslink/index.html"
SECTION = "devel"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://docs/bsd.pdf;md5=9f2edd962cd129f8c24e9ef1bd641029"
# TODO :: multi-machine, add m3 build as well?
# TODO :: proper staging?
# TODO :: kernel module examples?
# TODO :: smarter handling of config.bld
# TODO :: review XDC parallel make - why not happening automatically?
# TODO :: smarter suffix management
require ../includes/ti-paths.inc
require ../includes/ti-staging.inc
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 = "a"
PVExtra = ""
inherit module pkgconfig
S = "${WORKDIR}/syslink_${PV}${PVExtra}"
SRC_URI = "http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/syslink/${PV}${PVExtra}/exports/syslink_${PV}${PVExtra}.tar.gz;name=syslinktarball \
file://syslink.pc \
"
DEPENDS = "ti-sysbios ti-xdctools ti-cgt6x ti-ipc ti-cgt470"
DEPENDS += "virtual/kernel"
#common frameq gateMP heapBufMP heapMemMP knlNotify listMP messageQ notify ringIO ringIO_gpp sharedRegion slaveLoader tilerDaemon
SYSLINKHLOSSAMPLES = "knlnotify slaveLoader frameq notify"
#SYSLINKRTOSSAMPLES = "frameq gateMP heapBufMP heapMemMP listMP messageQ notify ringIO ringIO_gpp sharedRegion"
# SOC_FAMILY configuration
SYSLINKPLATFORM_omap3 = "OMAP3530"
SYSLINKPLATFORM_omapl137 = "OMAPL1XX"
SYSLINKPLATFORM_omapl138 = "OMAPL1XX"
SYSLINKPLATFORM_ti816x = "TI81XX"
SYSLINKPLATFORM_ti814x = "TI81XX"
SYSLINKPLATFORM ?= "<UNDEFINED_SYSLINKPLATFORM>"
SYSLINKVARIANT_omap3 = "OMAP3530"
SYSLINKVARIANT_omapl137 = "OMAPL1XX"
SYSLINKVARIANT_omapl138 = "OMAPL1XX"
SYSLINKVARIANT_ti816x = "TI816X"
SYSLINKVARIANT_ti814x = "TI814X"
SYSLINKVARIANT ?= "<UNDEFINED_SYSLINKVARIANT>"
# COFF/ELF config - omap3 can be coff/elf, omapl only coff, ti816x and ti814x only elf
# this really needs to be a list... in the case of ELF/COFF (and this could use DSPSUFFIX?)
SYSLINKSUFFIX_omap3 = "x64P"
SYSLINKSUFFIX_omapl137 = "x674"
SYSLINKSUFFIX_omapl138 = "x674"
SYSLINKSUFFIX_ti816x = "xe674"
SYSLINKSUFFIX_ti814x = "xe674"
SYSLINKSUFFIX ?= "<UNDEFINED_SYSLINKSUFFIX>"
SYSLINKLOADER_omap3 = "COFF"
SYSLINKLOADER_omapl137 = "COFF"
SYSLINKLOADER_omapl138 = "COFF"
SYSLINKLOADER_ti816x = "ELF"
SYSLINKLOADER_ti814x = "ELF"
SYSLINKLOADER ?= "<UNDEFINED_SYSLINKLOADER>"
# Do we really need to configure this? - configured already in config.bld
XDCTARGETS_omap3 = "ti.targets.C64P"
XDCTARGETS_omapl137 = "ti.targets.C674"
XDCTARGETS_omapl138 = "ti.targets.C674"
# for ti816x and ti814x, we should later also build for ti.targets.arm.elf.M3
XDCTARGETS_ti816x = "ti.targets.elf.C674 ti.targets.arm.elf.M3"
XDCTARGETS_ti814x = "ti.targets.elf.C674 ti.targets.arm.elf.M3"
XDCTARGETS ?= "<UNDEFINED_XDCTARGETS>"
export XDCTARGETS
# Exported Variable needed by build
export SYSLINK_ROOT = "${S}/packages/"
export XDCPATH = "${IPC_INSTALL_DIR}/packages;${SYSBIOS_INSTALL_DIR}/packages"
do_configure() {
sed -i -e s:@VERSION@:${PV}:g ${WORKDIR}/syslink.pc
cp ${WORKDIR}/syslink.pc ${S}
}
do_prepsources () {
# Prepare the tree for rebuiling - clean and generate interfaces
cd ${SYSLINK_ROOT}/ti/syslink
${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} .make -PR .
${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} clean -PR .
${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} .interfaces -PR .
}
addtask prepsources after do_configure before do_compile
do_compile() {
# TODO :: KERNEL_CC, should use for kernel module build?
# TODO :: Check the 'unset's
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
do_make_scripts
# Build the gpp (hlos) kernel space
cd ${SYSLINK_ROOT}/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 ${SYSLINK_ROOT}/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 ${SYSLINK_ROOT}/ti/syslink/utils/hlos/usr/Linux && make \
ARCH="${TARGET_ARCH}" \
CROSS_COMPILE="${TARGET_PREFIX}" \
TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/${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 ${SYSLINK_ROOT}/ti/syslink/samples/hlos/common/usr/Linux && make \
ARCH="${TARGET_ARCH}" \
CROSS_COMPILE="${TARGET_PREFIX}" \
TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/${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 ${SYSLINK_ROOT}/ti/syslink/samples/hlos/$sample/usr/Linux && make \
ARCH="${TARGET_ARCH}" \
CROSS_COMPILE="${TARGET_PREFIX}" \
TOOLCHAIN_PREFIX="${TOOLCHAIN_PATH}/${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 and samples)
# cd ${SYSLINK_ROOT}/ti/syslink && \
# ${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} -PR .
export XDCOPTIONS=v
cd ${SYSLINK_ROOT}/ti/syslink && \
${XDC_INSTALL_DIR}/xdc -P \
`${XDC_INSTALL_DIR}/bin/xdcpkg ${SYSLINK_ROOT}/ti/syslink | grep -v samples`
export XDCARGS="profile=debug"
cd ${SYSLINK_ROOT}/ti/syslink && \
${XDC_INSTALL_DIR}/xdc --jobs=${BB_NUMBER_THREADS} -P \
`${XDC_INSTALL_DIR}/bin/xdcpkg ${SYSLINK_ROOT}/ti/syslink | grep samples`
}
KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')}"
do_install () {
# Install the hlos kernel module
install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp
install -m 0755 ${SYSLINK_ROOT}/ti/syslink/bin/${SYSLINKVARIANT}/syslink.ko ${D}/lib/modules/${KERNEL_VERSION}/kernel/drivers/dsp/
# Install the hlos example kernel modules and apps
install -d ${D}/${installdir}/ti-syslink-examples
install -m 0755 ${SYSLINK_ROOT}/ti/syslink/bin/${SYSLINKVARIANT}/samples/* ${D}/${installdir}/ti-syslink-examples/
# Install the rtos example apps
install -d ${D}/${installdir}/ti-syslink-examples/dsp
cd ${SYSLINK_ROOT}/ti/syslink/samples/rtos
for i in $(find . -name "*.${SYSLINKSUFFIX}" | grep ${SOC_FAMILY}); do
install ${i} ${D}/${installdir}/ti-syslink-examples/dsp/
done
# TODO :: Fixup - library/headers installation - this shouldn't go into the examples directory....
# Needs proper staging
# Install the library in the filesystem
# install -d ${D}/${installdir}/ti-syslink-examples
# install -m 0755 ${SYSLINK_ROOT}/ti/syslink/lib/syslink.a ${D}/${installdir}/ti-syslink-examples/
# Install/Stage the Source Tree
install -d ${D}${SYSLINK_INSTALL_DIR_RECIPE}
cp -pPrf ${S}/* ${D}${SYSLINK_INSTALL_DIR_RECIPE}
install -d ${D}/${libdir}/pkgconfig
install ${S}/syslink.pc ${D}/${libdir}/pkgconfig/
}
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
}
PACKAGES =+ "ti-syslink-examples"
RRECOMMENDS_ti-syslink-examples_append = " ti-syslink-module"
FILES_ti-syslink-examples = "${installdir}/ti-syslink-examples/*"
INSANE_SKIP_ti-syslink-examples = True
FILES_ti-syslink-dev = "${libdir}/*"

View File

@@ -0,0 +1,10 @@
prefix=/../..//syslink_@VERSION@
libdir=${prefix}/ti/syslink/lib
includedir=${prefix}/ti/syslink
Name: TI Syslink
Description: Syslink ARM-DSP IPC (Inter Processor Communication)
Version: @VERSION@
Requires: ipc
Libs: ${libdir}/syslink.a_release
Cflags: -I${includedir} -I${includedir}/inc -I${includedir}/utils

View File

@@ -0,0 +1,8 @@
require ti-syslink.inc
PV = "2_00_00_78"
PVwithdots = "2.00.00.78"
SRC_URI[syslinktarball.md5sum] = "df7c92cd2cca38fdb38e59e4175aba61"
SRC_URI[syslinktarball.sha256sum] = "3409d080b08ec1d0bd24a715dbec783f1d52020e452485c165ad64e121548ebc"