All of lore.kernel.org
 help / color / mirror / Atom feed
From: Koen Kooi <koen@dominion.thruhere.net>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH 1/2] ti-syslink: Add TI Syslink for TI816x and TI814x devices
Date: Tue, 05 Apr 2011 18:16:09 +0200	[thread overview]
Message-ID: <inff89$hdg$1@dough.gmane.org> (raw)
In-Reply-To: <1302016253-10390-1-git-send-email-heroor@gmail.com>

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 05-04-11 17:10, Siddharth Heroor wrote:
> From: Siddharth Heroor <heroor@ti.com>
> 
> * Syslink is an Inter Processor communication layer for ARM/DSP devices.

NAK!

1) This has way too much copy/paste crud from dsplink that needs to get
cleaned up, some highlights:

> +PROVIDES = "ti-syslink-module"
> +PROVIDES += "ti-syslink-examples"
> +PR_append = "j"

2) inconsistent whitespace every where, do_compile is the worst

3) This really needs to get split into 2 recipes: one for the kernel
modules using module.bbclass and one for the userspace bits.

4) The platform defines seem to be better suited for e.g. ti-paths.inc

> 
> Signed-off-by: Siddharth Heroor <heroor@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)"
> +

> +
> +# This package builds a kernel module, use kernel PR as base and append a local version
> +PR = "${MACHINE_KERNEL_PR}"

> +
> +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
> +}

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFNm0BJMkyGM64RGpERAqy5AJ9T3vsdHIinTlVPOLVPVzqheFzqIgCcCVnW
qCNQqh3vixfM9CqJH0quZL0=
=Vgxn
-----END PGP SIGNATURE-----




  parent reply	other threads:[~2011-04-05 16:18 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-05 15:10 [PATCH 1/2] ti-syslink: Add TI Syslink for TI816x and TI814x devices Siddharth Heroor
2011-04-05 15:10 ` [PATCH 2/2] ti-syslink: Add release 02.00.00.68 Siddharth Heroor
2011-04-05 16:16 ` Koen Kooi [this message]
2011-04-06  2:42   ` [PATCH 1/2] ti-syslink: Add TI Syslink for TI816x and TI814x devices Siddharth Heroor
2011-04-06  7:28     ` Koen Kooi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='inff89$hdg$1@dough.gmane.org' \
    --to=koen@dominion.thruhere.net \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.