From 7b36e94dcb33892e1df7d3327db31bd41fb6167e Mon Sep 17 00:00:00 2001 From: Roger Monk Date: Fri, 5 Mar 2010 19:22:58 +0000 Subject: [PATCH] dsplink_1_64: Add support for building with CS tools + against 2.6.30+ * Tweaked Patches from Niclas Signed-off-by: Roger Monk --- dsplink/config/bin/dsplinkcfg.pl | 17 ++++- dsplink/gpp/src/DIRS | 5 + dslpink/gpp/src/Makefile | 8 ++- dsplink/gpp/src/Rules.mk | 5 + dsplink/make/Linux/davinci_2.6.mk | 211 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 make/Linux/davinci_2.6.mk diff --git a/dsplink/config/bin/dsplinkcfg.pl b/dsplink/config/bin/dsplinkcfg.pl index 644aa38..e83c133 100644 --- a/dsplink/config/bin/dsplinkcfg.pl +++ b/dsplink/config/bin/dsplinkcfg.pl @@ -215,6 +215,18 @@ my %CFG_GPPOS_DM6467LSPuc = 'OSPREFIX' => 'uc', ) ; +# DM6446 Linux +my %CFG_GPPOS_DM6446LSP = +( + 'NAME' => 'DM6446LSP', + 'PREFIX' => '2.6', + 'ID' => 'DM6446LSP', + 'DESC' => 'DM6446 LSP for DM6446', + 'VER' => '2.6.18', + 'TYPE' => 'Linux', + 'LOADERS'=> [\%CFG_LOADER_COFF, ], + 'COMPS' => 'ponslrmc', +) ; # OMAPL138 Linux with uCLibc filesystem my %CFG_GPPOS_OMAPL138LSPuc = @@ -356,7 +368,7 @@ my %CFG_DSPCFG_DM6446GEMSHMEM = 'PHYID' => 'DM6446GEMSHMEM', 'PHYDESC' => 'Shared Memory Physical Interface', 'PHYTYPE' => 'SHMEM', - 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G], + 'GPPOS' => [\%CFG_GPPOS_MVL5U, \%CFG_GPPOS_MVL5G, \%CFG_GPPOS_DM6446LSP], 'DSPOS' => [\%CFG_DSPOS_5XX, \%CFG_DSPOS_6XX], # DSP defines 'DSPNAME' => 'DM6446GEM', @@ -2994,6 +3006,9 @@ sub main { if ($platform {'ID'} eq 'DA850') { print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ; } + if ($platform {'ID'} eq 'DAVINCI') { + print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ; + } if ($platform {'ID'} eq 'DAVINCIHD') { print "GPP side distribution file: \$DSPLINK" . $DIRSEP . "gpp" . $DIRSEP. "src" . $DIRSEP. "Rules.mk\n" ; } diff --git a/dsplink/gpp/src/DIRS b/dsplink/gpp/src/DIRS index e82969c..05bad2b 100644 --- a/dsplink/gpp/src/DIRS +++ b/dsplink/gpp/src/DIRS @@ -63,6 +63,10 @@ ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD") DIRS += \ api else # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD") +ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") +DIRS += \ + api +else # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850") DIRS += \ api @@ -77,6 +81,7 @@ DIRS += \ endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD") +endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850") else # ifeq ("$(TI_DSPLINK_GPPOS)", "Linux") DIRS += \ diff --git a/dsplink/gpp/src/Makefile b/dsplink/gpp/src/Makefile index 9e6bbb1..49c3b97 100644 --- a/dsplink/gpp/src/Makefile +++ b/dsplink/gpp/src/Makefile @@ -78,7 +78,13 @@ ifeq ("$(TI_DSPLINK_GPPOS)", "Linux") include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD") - include Makefile_bld + ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") + include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_bld + include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Rules.mk + include $(DSPLINK)$(DIRSEP)gpp$(DIRSEP)src$(DIRSEP)Makefile_kbuild + else # else ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") + include Makefile_bld + endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAP3530") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850") endif # ifeq ("$(TI_DSPLINK_PLATFORM)", "OMAPL138") diff --git a/dsplink/gpp/src/Rules.mk b/dsplink/gpp/src/Rules.mk index 658ee8a..5a6f52a 100644 --- a/dsplink/gpp/src/Rules.mk +++ b/dsplink/gpp/src/Rules.mk @@ -63,6 +63,11 @@ KERNEL_DIR := ${HOME}/da850/DaVinci-PSP-SDK-03.20.00.01/src/kernel/linux-03.2 TOOL_PATH := ${HOME}/git/arm-2008q3/bin endif #ifeq ("$(TI_DSPLINK_PLATFORM)", "DA850") +ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") +KERNEL_DIR := ${HOME}/linux-davinci +TOOL_PATH := ${HOME}/toolchains/git/arm-2009q1-203/bin +endif #ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCI") + ifeq ("$(TI_DSPLINK_PLATFORM)", "DAVINCIHD") KERNEL_DIR := ${HOME}/linux-davinci TOOL_PATH := ${HOME}/toolchains/git/arm-2009q1-203/bin diff --git a/dsplink/make/Linux/davinci_2.6.mk b/dsplink/make/Linux/davinci_2.6.mk new file mode 100644 index 0000000..834fd74 --- /dev/null +++ b/dsplink/make/Linux/davinci_2.6.mk @@ -0,0 +1,211 @@ +# ============================================================================ +# @file davinci_2.6.mk +# +# @path $(DSPLINK)/make/Linux/ +# +# @desc This makefile defines OS specific macros used by MAKE system for +# the Montavista Pro 5.0 Linux distribution. +# +# @ver 1.64 +# ============================================================================ +# Copyright (C) 2002-2009, Texas Instruments Incorporated - +# http://www.ti.com/ +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of Texas Instruments Incorporated nor the names of +# its contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ============================================================================ + + +ifndef DAVINCI_LINUX2_6_MK + +define DAVINCI_LINUX2_6_MK +endef + + +# ============================================================================ +# Let the make system know that a specific distribution for the GPP OS +# is being used. +# ============================================================================ +USE_DISTRIBUTION := 1 + + +# ============================================================================ +# Set the values of necessary variables to be used for the OS. +# ============================================================================ + +# ---------------------------------------------------------------------------- +# Base directory for the GPP OS +# ---------------------------------------------------------------------------- +BASE_BUILDOS := ${HOME}/linux-davinci + +# ---------------------------------------------------------------------------- +# Base for toolchain +# ---------------------------------------------------------------------------- +BASE_TOOLCHAIN := ${HOME}/toolchains/git/arm-2009q1-203 + +# ---------------------------------------------------------------------------- +# Base for code generation tools - compiler, linker, archiver etc. +# ---------------------------------------------------------------------------- +BASE_CGTOOLS := $(BASE_TOOLCHAIN)/bin + +# ---------------------------------------------------------------------------- +# Base directory for include files provided by GPP OS +# ---------------------------------------------------------------------------- +BASE_OSINC := $(BASE_BUILDOS)/include + +OSINC_GENERIC := $(BASE_OSINC) +OSINC_PLATFORM := $(BASE_TOOLCHAIN)/lib/gcc/arm-none-linux-gnueabi/4.2.3/include +OSINC_TARGET := $(BASE_TOOLCHAIN)/arm-none-linux-gnueabi/libc/usr/include + +ifneq ("$(VARIANT)", "") +OSINC_VARIANT := $(BASE_OSINC) +endif + + +# ---------------------------------------------------------------------------- +# Base directory for libraries provided by GPP OS +# ---------------------------------------------------------------------------- +BASE_OSLIB := $(BASE_TOOLCHAIN)/lib + +OSLIB_GENERIC := $(BASE_OSLIB) +OSLIB_PLATFORM := $(BASE_OSLIB) + + +ifneq ("$(VARIANT)", "") +OSLIB_VARIANT := $(BASE_OSLIB) +endif + + +# ============================================================================ +# COMPILER +# ============================================================================ + +# ---------------------------------------------------------------------------- +# Name of the compiler +# ---------------------------------------------------------------------------- +COMPILER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc +LD := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ld + +CROSS_COMPILE := arm-none-linux-gnueabi- +export CROSS_COMPILE + +# ---------------------------------------------------------------------------- +# Command line switches used by the compiler +# +# CC_SW_DEF Command line defines +# CC_SW_INC Search path for header files +# CC_SW_OBJ Create object file +# CC_SW_DEB Include debug information +# ---------------------------------------------------------------------------- +CC_SW_DEF := -D +CC_SW_INC := -I +CC_SW_OBJ := -o +CC_SW_DEB := -g + +# ---------------------------------------------------------------------------- +# Standard flags for the compiler +# ---------------------------------------------------------------------------- +STD_USER_FLAGS := -Wall -c + +# ---------------------------------------------------------------------------- +# Flags for the compiler when building a library +# ---------------------------------------------------------------------------- +EXE_CC_FLAGS := + +# ---------------------------------------------------------------------------- +# Standard flags for the compiler when building an executable +# ---------------------------------------------------------------------------- +DRV_CC_FLAGS := -nostdinc + +# ---------------------------------------------------------------------------- +# Flags for the compiler when building a driver +# ---------------------------------------------------------------------------- +LIB_CC_FLAGS := + +# ---------------------------------------------------------------------------- +# Standard definitions for the compiler +# ---------------------------------------------------------------------------- +STD_CC_DEFNS := -D_REENTRANT + +# ============================================================================ +# ARCHIVER2 - This denotes the archiver. +# ============================================================================ +ARCHIVER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-ar + +# ---------------------------------------------------------------------------- +# Standard flags for the archiver +# ---------------------------------------------------------------------------- +STD_AR_FLAGS := -rs + + +# ============================================================================ +# LINKER used for Library & Driver build +# ============================================================================ +LINKER := $(BASE_CGTOOLS)/arm-none-linux-gnueabi-gcc + +# ---------------------------------------------------------------------------- +# Command line switches used by the linker +# +# LD_SW_LIB Search path for libraries +# LD_SW_OUT Output filename +# LD_SW_RELOC Generate relocateable output +# ---------------------------------------------------------------------------- +LD_SW_LIB := -L +LD_SW_OUT := -o +LD_SW_RELOC := -r + +# ---------------------------------------------------------------------------- +# Flags for the LD when building an executable +# ---------------------------------------------------------------------------- +STD_LD_FLAGS := + +# ---------------------------------------------------------------------------- +# Standard flags for the LD +# ---------------------------------------------------------------------------- +EXE_LD_FLAGS := -lpthread -lc + +# ---------------------------------------------------------------------------- +# Standard flags for the archiver +# ---------------------------------------------------------------------------- +DRV_LD_FLAGS := + + +# ============================================================================ +# Post processing utilities for Linux 2.6 +# ============================================================================ +ifneq ($(CONFIG_MODVERSIONS),) +CMD_MODPOST_FLAGS := -m -i +else +CMD_MODPOST_FLAGS := -i +endif + +CMD_MODPOST := $(BASE_BUILDOS)/scripts/mod/modpost \ + $(CMD_MODPOST_FLAGS) $(BASE_BUILDOS)/Module.symvers \ + $(BASE_BUILDOS)/vmlinux + + +endif # ifndef DAVINCI_LINUX2_6_MK -- 1.6.0.6