Hi,

On Tue, Mar 15, 2011 at 06:59:29PM +0100, Stephan Linz wrote:
> This is support for Xilinx MicroBlaze processors. MicroBlaze
> is a soft core processor designed for Xilinx FPGAs. With this
> new architecture ptxdist have to handle dynamic platform
> configurations exported by Xilinx design tools.
> 
> Some essential changes and extensions inside a few ptxdist core
> scripts were made to merge external platform configurations into
> the ptxdist platform configuration. That is very important since
> the resulting build process have to know about the real CPU
> features like hardware multiplier, barrel shifter or similar high
> performance accelerators.
> 
> So ptxdist knows about this specialty, parse the new platform
> directory "xlbsp" and use the content for its own platform
> configuration. The content of the new platform directory "xlbsp"
> comes from Xilinx design tools and have to be:
>   * auto-config.in      (Linux Kernel 2.4 configuration)
>   * Kconfig.auto        (Linux Kernel 2.6 configuration)
>   * xilinx.dts          (Linux Kernel 2.6 configuration)
>   * config.mk           (U-Boot configuration)
>   * xparameters.h       (U-Boot configuration)
> 
> Signed-off-by: Stephan Linz <[email protected]>
> ---
>  platforms/architecture.in            |    9 ++
>  platforms/kernel.in                  |    9 ++-
>  platforms/microblaze.in              |   36 +++++++++
>  platforms/xlbsp_softcpu.in           |   25 ++++++
>  rules/post/ptxd_make_xilinx_bsp.make |   41 ++++++++++
>  rules/pre/Machine.make               |   68 +++++++++++++++++
>  rules/pre/Rules.make                 |    4 +-
>  scripts/lib/ptxd_lib_00-init.sh      |    3 +
>  scripts/lib/ptxd_make_00-init.sh     |    5 +
>  scripts/lib/ptxd_make_xilinx_bsp.sh  |  136 
> ++++++++++++++++++++++++++++++++++
>  10 files changed, 333 insertions(+), 3 deletions(-)
>  create mode 100644 platforms/microblaze.in
>  create mode 100644 platforms/xlbsp_softcpu.in
>  create mode 100644 rules/post/ptxd_make_xilinx_bsp.make
>  create mode 100644 rules/pre/Machine.make
>  create mode 100644 scripts/lib/ptxd_make_xilinx_bsp.sh
> 
> diff --git a/platforms/architecture.in b/platforms/architecture.in
> index 5a623cb..3b8436b 100644
> --- a/platforms/architecture.in
> +++ b/platforms/architecture.in
> @@ -69,6 +69,13 @@ choice
>               help
>                 This is support for the SPARC architecture.
>  
> +     config ARCH_MICROBLAZE
> +             bool "microblaze "
> +             select HAS_MMU
> +             select ARCH_SUPPORTS_ENDIAN_BIG
> +             help
> +               This is support for the Xilinx MicroBlaze architecture (with 
> MMU).
> +
>       config ARCH_MIPS
>               bool "mips       "
>               select HAS_MMU
> @@ -302,6 +309,7 @@ config ARCH_STRING
>       default "m68k"                  if ARCH_M68K
>       default "ppc"                   if ARCH_PPC
>       default "sparc"                 if ARCH_SPARC
> +     default "microblaze"            if ARCH_MICROBLAZE
>       default "mips"                  if ARCH_MIPS
>       default "cris"                  if ARCH_CRIS
>       default "parisc"                if ARCH_PARISC
> @@ -309,6 +317,7 @@ config ARCH_STRING
>  
>  # 
> ----------------------------------------------------------------------------
>  
> +source "generated/microblaze_options.in"
>  source "generated/architecture_options.in"
>  
>  endmenu
> diff --git a/platforms/kernel.in b/platforms/kernel.in
> index 476bdde..0d8702e 100644
> --- a/platforms/kernel.in
> +++ b/platforms/kernel.in
> @@ -83,6 +83,7 @@ config KERNEL_ARCH_STRING
>       default "blackfin"              if ARCH_BLACKFIN
>       default "m68k"                  if ARCH_M68K
>       default "sparc"                 if ARCH_SPARC
> +     default "microblaze"            if ARCH_MICROBLAZE
>       default "mips"                  if ARCH_MIPS
>       default "mips"                  if ARCH_MIPSEL
>       default "cris"                  if ARCH_CRIS
> @@ -142,11 +143,16 @@ choice
>               help
>                This is the target to get the kernel image as an raw 
> uncompressed
>                binary file.
> +
> +if KERNEL_ARCH_POWERPC || ARCH_MICROBLAZE
> +
>       config KERNEL_IMAGE_SIMPLE
>               bool
>               prompt "simpleImage"
>               help
>                 Create a simple Image with embedded DTB
> +endif

Maybe some kernel expert can comment on this?
mkl: what do you think?

> +
>  endchoice
>  
>  if KERNEL_IMAGE_SIMPLE
> @@ -182,7 +188,8 @@ config KERNEL_IMAGE
>       default "vmImage" if KERNEL_IMAGE_VM
>       default "vmlinux" if KERNEL_IMAGE_VMLINUX
>       default "Image"   if KERNEL_IMAGE_RAW
> -     default "simpleImage.${PTXCONF_KERNEL_IMAGE_SIMPLE_TARGET}.elf" if 
> KERNEL_IMAGE_SIMPLE
> +     default "simpleImage.${PTXCONF_KERNEL_IMAGE_SIMPLE_TARGET}.elf" if 
> KERNEL_IMAGE_SIMPLE && KERNEL_ARCH_POWERPC
> +     default "simpleImage.${PTXCONF_KERNEL_IMAGE_SIMPLE_TARGET}" if 
> KERNEL_IMAGE_SIMPLE && ARCH_MICROBLAZE
>  
>  config KERNEL_XZ
>       prompt "build xz-utils hosttool"
> diff --git a/platforms/microblaze.in b/platforms/microblaze.in
> new file mode 100644
> index 0000000..e5c9793
> --- /dev/null
> +++ b/platforms/microblaze.in
> @@ -0,0 +1,36 @@
> +## SECTION=microblaze_options
> +
> +menu "microblaze options            "
> +depends on ARCH_MICROBLAZE
> +
> +config ARCH_MICROBLAZE_HAVE_XLBSP
> +     prompt "Xilinx BSP (TPOS)"
> +     bool
> +     default y
> +     help
> +       The Xilinx BSP (shortly "xlbsp") is part of a specific OSELAS.BSP()
> +       and consits of different automatically generated files from the
> +       Xilinx FPGA design. All files for the xlbsp have to be copied from
> +       Xilinx FPGA design project into the OSELAS.BSP() platforms directory
> +       ${PTXDIST_PLATFORMCONFIGDIR}/platforms/xlbsp. Then make a link in
> +       OSELAS.BSP() platforms directory:
> +
> +             xlbsp_softcpu.in -> xlbsp/Kconfig.auto
> +
> +       You have to copy all auto generated files from Xilinx BSP "Third
> +       Party OS (TPOS)" to xlbsp in your OSELAS.BSP(). To get TPOS you have
> +       to include the EDK user repository from MB-Ref into your Xilinx FPGA
> +       design flow.
> +
> +       See: http://gitorious.org/mbref/mbref
> +        or: http://www.li-pro.de/xilinx_mb/mbref/start
> +
> +if ARCH_MICROBLAZE_HAVE_XLBSP
> +
> +menu "SoftCPU features"
> +source "generated/xlbsp_softcpu.in"
> +endmenu
> +
> +endif
> +
> +endmenu
> diff --git a/platforms/xlbsp_softcpu.in b/platforms/xlbsp_softcpu.in
> new file mode 100644
> index 0000000..a8f6b96
> --- /dev/null
> +++ b/platforms/xlbsp_softcpu.in
> @@ -0,0 +1,25 @@
> +## SECTION=xlbsp_softcpu
> +
> +comment "------------------------------------"
> +comment "Xilinx BSP Configuration"
> +comment "------------------------------------"
> +comment ""
> +comment "Do you missing configuration?"
> +comment ""
> +comment "You need the file 'Kconfig.auto'"
> +comment "from your Xilinx BSP directory."
> +comment ""
> +comment "Copy this file into the Xilinx BSP"
> +comment "configuration path, normaly at:"
> +comment "'${PTXDIST_WORKSPACE}/platforms/xlbsp' or"
> +comment "'${PTXDIST_PLATFORMCONFIGDIR}/platforms/xlbsp'."
> +comment ""
> +comment "HINT: In some cases, the 'SECTION'"
> +comment "comment in Kconfig.auto is missing."
> +comment "This leads to the same error. If so"
> +comment "adding the comment line on top of"
> +comment "the file Kconfig.auto:"
> +comment ""
> +comment "## SECTION=xlbsp_softcpu"
> +comment ""
> +comment "------------------------------------"
> diff --git a/rules/post/ptxd_make_xilinx_bsp.make 
> b/rules/post/ptxd_make_xilinx_bsp.make
> new file mode 100644
> index 0000000..325714e
> --- /dev/null
> +++ b/rules/post/ptxd_make_xilinx_bsp.make
> @@ -0,0 +1,41 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2011 by Stephan Linz <[email protected]>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +ifeq ($(PTXCONF_ARCH_MICROBLAZE),y)

I think you misunderstood my comment on this:
"ifeq ($(PTXCONF_FOO),y)" and "ifdef PTXCONF_FOO" is the same for bool
options and "ifdef" is usually what you want for tristate.
And "ifdef PTXCONF_FOO" is more readable and used everywhere else.

> +
> +ifeq ($(PTXCONF_ARCH_MICROBLAZE_HAVE_XLBSP),y)
> +$(STATEDIR)/u-boot.prepare: $(STATEDIR)/u-boot.xlbsp
> +endif
> +
> +ifeq ($(PTXCONF_ARCH_MICROBLAZE_HAVE_XLBSP),y)
> +$(STATEDIR)/kernel.prepare: $(STATEDIR)/kernel.xlbsp
> +endif
> +
> +ifeq ($(PTXCONF_KERNEL_IMAGE_SIMPLE),y)
> +SEL_ROOTFS-$(PTXCONF_IMAGE_KERNEL) += $(IMAGEDIR)/linuximage.ub
> +endif
> +
> +$(IMAGEDIR)/linuximage.ub: $(KERNEL_IMAGE_PATH_y).ub $(IMAGEDIR)/linuximage
> +     @echo -n "Creating '$(notdir $(@))' from '$(notdir $(<))'..."
> +     @install -m 644 "$(<)" "$(@)"
> +     @echo "done."

Hmmm, so "make" must be called with $(KERNEL_IMAGE) but you actually use
$(KERNEL_IMAGE).ub, right?

> +
> +endif
> +
> +$(STATEDIR)/%.xlbsp: $(STATEDIR)/%.extract
> +     @$(call targetinfo)
> +     @$(call xilinx/bsp, $(PTX_MAP_TO_PACKAGE_$(*)), 
> $($(PTX_MAP_TO_PACKAGE_$(*))_DIR))
> +     @$(call touch)
> +
> +xilinx/bsp = \
> +     $(call world/env, $(1)) \
> +     ptxd_make_xilinx_bsp

xilinx/bsp is called with 2 arguments but only uses one?

> +
> +# vim: syntax=make
> diff --git a/rules/pre/Machine.make b/rules/pre/Machine.make
> new file mode 100644
> index 0000000..e6c9601
> --- /dev/null
> +++ b/rules/pre/Machine.make
> @@ -0,0 +1,68 @@
> +# -*-makefile-*-
> +#
> +# This file contains global machine/cpu dependent definitions.
> +#
> +# Copyright (C) 2011 by Stephan Linz <[email protected]>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +# 
> ----------------------------------------------------------------------------
> +# Machine & CPU Defines (mainly SoftCPU)
> +# 
> ----------------------------------------------------------------------------
> +
> +#
> +# Xilinx MicroBlaze, SoftCPU inside a FPGA
> +#
> +ifeq ($(PTXCONF_ARCH_MICROBLAZE),y)
> +
> +  # Use defines by Xilinx BSP (borrowed from Linux kernel)
> +  ifeq ($(PTXCONF_ARCH_MICROBLAZE_HAVE_XLBSP),y)
> +
> +    # What CPU vesion are we building for, and crack it open
> +    # as major.minor.rev
> +    CPU_VER   := $(shell echo $(PTXCONF_XILINX_MICROBLAZE0_HW_VER))
> +    CPU_MAJOR := $(shell echo $(CPU_VER) | cut -d '.' -f 1)
> +    CPU_MINOR := $(shell echo $(CPU_VER) | cut -d '.' -f 2)
> +    CPU_REV   := $(shell echo $(CPU_VER) | cut -d '.' -f 3)
> +
> +    export CPU_VER CPU_MAJOR CPU_MINOR CPU_REV
> +
> +    # Use cpu-related PTXCONF_ vars to set compile options.
> +    # The various PTXCONF_XILINX cpu features options are integers 0/1/2...
> +    # rather than bools y/n
> +
> +    # Work out HW multiplier support.  This is icky.
> +    # 1. Spartan2 has no HW multipliers.
> +    # 2. MicroBlaze v3.x always uses them, except in Spartan 2
> +    # 3. All other FPGa/CPU ver combos, we can trust the PTXCONF_ settings
> +    ifeq (,$(findstring spartan2,$(PTXCONF_XILINX_MICROBLAZE0_FAMILY)))

are there really multiple matches or could you use:
ifeq ($(call remove_quotes,$(PTXCONF_XILINX_MICROBLAZE0_FAMILY)),)

> +      ifeq ($(CPU_MAJOR),3)
> +        CPUFLAGS-1 += -mno-xl-soft-mul
> +      else
> +        # USE_HW_MUL can be 0, 1, or 2, defining a heirarchy of HW Mul 
> support.
> +        CPUFLAGS-$(subst 1,,$(PTXCONF_XILINX_MICROBLAZE0_USE_HW_MUL)) += 
> -mxl-multiply-high
> +        CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_HW_MUL) += -mno-xl-soft-mul
> +      endif
> +    endif
> +    CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
> +    CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
> +    CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += 
> -mxl-pattern-compare
> +
> +    ifeq ($(PTXCONF_HAS_HARDFLOAT),y)
> +      CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_FPU) += -mhard-float
> +      CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_FPU) += -mxl-float-convert
> +      CPUFLAGS-$(PTXCONF_XILINX_MICROBLAZE0_USE_FPU) += -mxl-float-sqrt
> +    endif
> +
> +    CPUFLAGS-1 += -mcpu=v$(CPU_VER)
> +
> +    CPUFLAGS := $(CPUFLAGS-1) $(CPUFLAGS-2)
> +
> +  endif # PTXCONF_ARCH_MICROBLAZE_HAVE_XLBSP
> +
> +endif # PTXCONF_ARCH_MICROBLAZE
> +
> diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
> index c531a50..85babcd 100644
> --- a/rules/pre/Rules.make
> +++ b/rules/pre/Rules.make
> @@ -38,8 +38,8 @@ CROSS_PATH := 
> $(PTXDIST_SYSROOT_CROSS)/bin:$(PTXDIST_SYSROOT_CROSS)/sbin:$$PATH
>  #
>  # Environment variables for the compiler
>  #
> -CROSS_CFLAGS                 := $(PTXCONF_TARGET_EXTRA_CFLAGS)
> -CROSS_CXXFLAGS                       := $(PTXCONF_TARGET_EXTRA_CXXFLAGS)
> +CROSS_CFLAGS                 := $(CPUFLAGS) $(PTXCONF_TARGET_EXTRA_CFLAGS)
> +CROSS_CXXFLAGS                       := $(CPUFLAGS) 
> $(PTXCONF_TARGET_EXTRA_CXXFLAGS)
>  CROSS_CPPFLAGS                       := $(strip 
> $(PTXCONF_TARGET_EXTRA_CPPFLAGS) $(PTXDIST_CROSS_CPPFLAGS))
>  CROSS_LDFLAGS                        := $(strip 
> $(PTXCONF_TARGET_EXTRA_LDFLAGS)  $(PTXDIST_CROSS_LDFLAGS))

I think you should be able to add $(CPUFLAGS) to $(PTXDIST_CROSS_CPPFLAGS)
in Machine.make instead of modifying Rules.make.

>  
> diff --git a/scripts/lib/ptxd_lib_00-init.sh b/scripts/lib/ptxd_lib_00-init.sh
> index 02a48e7..524f30a 100644
> --- a/scripts/lib/ptxd_lib_00-init.sh
> +++ b/scripts/lib/ptxd_lib_00-init.sh
> @@ -101,6 +101,9 @@ ptxd_init_ptxdist_path() {
>      PTXDIST_PATH_PLATFORMS="${PTXDIST_PATH//://platforms:}"
>      export PTXDIST_PATH_PLATFORMS
>  
> +    PTXDIST_PATH_PLATFORMS_XLBSP="${PTXDIST_PATH_PLATFORMS//://xlbsp:}"
> +    export PTXDIST_PATH_PLATFORMS_XLBSP
> +
>      ptxd_init_ptxdist_path_sysroot
>  }
>  
> diff --git a/scripts/lib/ptxd_make_00-init.sh 
> b/scripts/lib/ptxd_make_00-init.sh
> index b74e47a..526dbae 100644
> --- a/scripts/lib/ptxd_make_00-init.sh
> +++ b/scripts/lib/ptxd_make_00-init.sh
> @@ -32,6 +32,11 @@ ptxd_init_arch() {
>                   ipkg_arch=arm
>                   ;;
>           esac
> +         ;;
> +
> +     microblaze)
> +         ipkg_arch=mb
> +         ;;
>      esac
>  
>      PTXDIST_IPKG_ARCH_STRING="${ipkg_arch}"
> diff --git a/scripts/lib/ptxd_make_xilinx_bsp.sh 
> b/scripts/lib/ptxd_make_xilinx_bsp.sh
> new file mode 100644
> index 0000000..4e53a8b
> --- /dev/null
> +++ b/scripts/lib/ptxd_make_xilinx_bsp.sh
> @@ -0,0 +1,136 @@
> +#!/bin/bash
> +#
> +# Copyright (C) 2011 by Stephan Linz <[email protected]>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# apply Xilinx BSP for U-Boot
> +#
> +ptxd_make_xilinx_bsp_apply_uboot()
> +{
> +    local ptx_xlbsp_uboot_cfg="$(ptxd_get_ptxconf PTXCONF_U_BOOT_CONFIG)"
> +    local pkg_xlbsp_uboot_files="${pkg_xlbsp_dir}/config.mk          \
> +                              ${pkg_xlbsp_dir}/xparameters.h"
> +    local pkg_xlbsp_uboot_file
> +    local ptx_xlbsp_uboot_dir
> +
> +    # find ptx_xlbsp_uboot_dir
> +    if ! ptxd_get_path 
> "${pkg_build_dir}/board/xilinx/${ptx_xlbsp_uboot_cfg%%_config}"; then
> +     echo "xlbsp: ${pkg_xlbsp_apply}: no board path found"
> +     return
> +    fi
> +    ptx_xlbsp_uboot_dir="${ptxd_reply}"
> +
> +    # apply files (remove old, link new)
> +    echo "xlbsp: ${pkg_xlbsp_apply}: board '$(ptxd_print_path 
> "${ptx_xlbsp_uboot_dir:-<none>}")'"
> +    pushd "${ptx_xlbsp_uboot_dir}" > /dev/null &&
> +    for pkg_xlbsp_uboot_file in ${pkg_xlbsp_uboot_files}; do
> +     echo "xlbsp: ${pkg_xlbsp_apply}: rm/ln '$(ptxd_print_path 
> "${pkg_xlbsp_uboot_file:-<none>}")'"
> +
> +     local pkg_uboot_file="$(basename "${pkg_xlbsp_uboot_file}")" &&
> +     rm -f ${pkg_uboot_file} &&
> +     ln -s ${pkg_xlbsp_uboot_file} ${pkg_uboot_file}

I think, with "ln -sf ..." you can avoid the "rm"

> +
> +    done &&
> +    popd > /dev/null
> +}
> +export -f ptxd_make_xilinx_bsp_apply_uboot
> +
> +#
> +# apply Xilinx BSP for Linux kernel 2.6
> +#
> +ptxd_make_xilinx_bsp_apply_kernel()
> +{
> +    local ptx_xlbsp_kernel_arch="$(ptxd_get_ptxconf 
> PTXCONF_KERNEL_ARCH_STRING)"
> +    local pkg_xlbsp_kernel24_files="${pkg_xlbsp_dir}/auto-config.in"
> +    local pkg_xlbsp_kernel26_files="${pkg_xlbsp_dir}/Kconfig.auto"
> +    local ptx_xlbsp_kernel_platform
> +    local pkg_xlbsp_kernel_files
> +    local pkg_xlbsp_kernel_file
> +    local ptx_xlbsp_kernel_dir
> +
> +    # files and platform to use per version
> +    case "${pkg_pkg}" in
> +     linux-24*|linux-2.4*)
> +         pkg_xlbsp_kernel_files=${pkg_xlbsp_kernel24_files};
> +         ptx_xlbsp_kernel_platform="uclinux-auto";
> +         ;;
> +     linux-26*|linux-2.6*)
> +         pkg_xlbsp_kernel_files=${pkg_xlbsp_kernel26_files};
> +         ptx_xlbsp_kernel_platform="generic";
> +         ;;
> +     *)
> +         echo "xlbsp: ${pkg_xlbsp_apply}: unsupported kernel version: 
> ${pkg_pkg##linux-}"
> +         return
> +         ;;
> +    esac

Hmm, the rest of this function looks just like uboot. Maybe it can be
shared?

> +
> +    # find ptx_xlbsp_kernel_dir
> +    if ! ptxd_get_path 
> "${pkg_build_dir}/arch/${ptx_xlbsp_kernel_arch}/platform/${ptx_xlbsp_kernel_platform}";
>  then
> +     echo "xlbsp: ${pkg_xlbsp_apply}: no board path found"
> +     return
> +    fi
> +    ptx_xlbsp_kernel_dir="${ptxd_reply}"
> +
> +    # apply files (remove old, link new)
> +    echo "xlbsp: ${pkg_xlbsp_apply}: board '$(ptxd_print_path 
> "${ptx_xlbsp_kernel_dir:-<none>}")'"
> +    pushd "${ptx_xlbsp_kernel_dir}" > /dev/null &&
> +    for pkg_xlbsp_kernel_file in ${pkg_xlbsp_kernel_files}; do
> +     echo "xlbsp: ${pkg_xlbsp_apply}: rm/ln '$(ptxd_print_path 
> "${pkg_xlbsp_kernel_file:-<none>}")'"
> +
> +     local pkg_kernel_file="$(basename "${pkg_xlbsp_kernel_file}")" &&
> +     rm -f ${pkg_kernel_file} &&
> +     ln -s ${pkg_xlbsp_kernel_file} ${pkg_kernel_file}
> +
> +    done &&
> +    popd > /dev/null
> +}
> +export -f ptxd_make_xilinx_bsp_apply_kernel
> +
> +#
> +# generic apply Xilinx BSP function
> +#
> +ptxd_make_xilinx_bsp_apply()
> +{
> +    local pkg_xlbsp_dir
> +    local pkg_xlbsp_apply
> +
> +    ptxd_in_path PTXDIST_PATH_PLATFORMS_XLBSP || return
> +    pkg_xlbsp_dir="${ptxd_reply}"
> +
> +    # files to use per package
> +    case "${pkg_pkg}" in
> +     u-boot*)
> +         pkg_xlbsp_apply="uboot";
> +         ;;
> +     linux*)
> +         pkg_xlbsp_apply="kernel";
> +         ;;

        *)
            error handling
            ;;

this should fail for any other package

> +    esac || return
> +
> +    echo "pkg_xlbsp_dir:     '$(ptxd_print_path "${pkg_xlbsp_dir:-<none>}")'"
> +    echo "pkg_build_dir:     '$(ptxd_print_path "${pkg_build_dir:-<none>}")'"
> +    echo
> +
> +    # apply Xilinx BSP per package if files are available
> +    if [ -n "${pkg_xlbsp_apply}" ]; then
> +     echo    "xlbsp: ${pkg_xlbsp_apply}: apply '$(ptxd_print_path 
> "${pkg_xlbsp_dir:-<none>}")'"
> +     "ptxd_make_xilinx_bsp_apply_${pkg_xlbsp_apply}" || return
> +     echo -e "xlbsp: ${pkg_xlbsp_apply}: done\n"
> +    fi
> +}
> +export -f ptxd_make_xilinx_bsp_apply
> +
> +#
> +# copy and adjust per package
> +#
> +ptxd_make_xilinx_bsp() {
> +    ptxd_make_world_init || return
> +    ptxd_make_xilinx_bsp_apply
> +}
> +export -f ptxd_make_xilinx_bsp

no need for a separate function here, imho.

Michael

> -- 
> 1.6.0.4
> 
> 
> -- 
> ptxdist mailing list
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
[email protected]

Reply via email to