openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

Makefile.linux-gto-2_6 (7574B)


      1 # 
      2 # This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      3 # 
      4 # Copyright 2007-2019 Broadcom Inc. All rights reserved.
      5 
      6 # User must select one platform from below.By default WR_LINUX is selected. .
      7 ifeq (,$(BUILD_PLATFORM))
      8 #BUILD_PLATFORM=ELDK
      9 BUILD_PLATFORM=WR_LINUX
     10 endif
     11 
     12 # Specify the ELDK version you want to use for building SDK.
     13 ifeq (,$(ELDK_VERSION))
     14 ifeq (ELDK,$(BUILD_PLATFORM))
     15 ELDK_VERSION=4.0
     16 endif
     17 endif
     18 
     19 # Specify the KERNEL VERSION  you want to use for building SDK.
     20 ifeq (,$(KERN_VER))
     21 ifeq (ELDK,$(BUILD_PLATFORM))
     22 KERN_VER=2.6.21.7
     23 endif
     24 endif
     25 
     26 
     27 # Specify the Windriver Linux version here.For example '2.0' as shown below.
     28 ifeq (WR_LINUX,$(BUILD_PLATFORM))
     29 ifeq (,$(WRS_LINUX_VERSION))
     30 WRS_LINUX_VERSION=2.0
     31 endif
     32 endif
     33 
     34 
     35 #glibc_small and glibc_std have their own cross-compilation tools and and path for these tools are different as implemented below. To enable glibc_small build, line given below should be uncommented.
     36 
     37 #WRL_GLIBC_SMALL=TRUE
     38 
     39 ifeq (2.0,$(WRS_LINUX_VERSION))
     40 ifeq ($(WRL_GLIBC_SMALL),TRUE)
     41 
     42 ifeq (,$(CROSS_COMPILE))
     43 CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_small-
     44 endif
     45 
     46 KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_2.0/gto/glibc_small/build/linux-2.6.21-standard
     47 
     48 else
     49 
     50 ifeq (,$(CROSS_COMPILE))
     51 CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_std-
     52 endif
     53 
     54 KERNDIR ?= /projects/ntsw-tools/linux/wrslinux_2.0/gto/glibc_std/build/linux-2.6.21-standard
     55 
     56 endif 
     57 
     58 export WRL_GLIBC_SMALL
     59 
     60 # After this point glibc_std and glibc_small share these flags
     61 
     62 WRLINUX_BASE ?=/tools/windriver/linux_ed/2.0_GA/Linux
     63 TOOLCHAIN_EXEC_PREFIX=$(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2
     64 TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_EXEC_PREFIX)
     65 WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin
     66 WRLINUX_GNU_PATH = $(WRLINUX_BASE)/gnu/4.1-wrlinux-2.0/x86-linux2/bin
     67 override PATH := $(TOOLCHAIN_EXEC_PREFIX):$(KERNDIR)/../../host-cross/bin:$(KERNDIR)/../../host-cross/powerpc-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH)
     68 export TOOLCHAIN_EXEC_PREFIX TOOLCHAIN_BIN_DIR WIND_LIC_PROXY
     69 endif
     70 
     71 
     72 ifeq (3.0,$(WRS_LINUX_VERSION))
     73 ifeq ($(WRL_GLIBC_SMALL),TRUE)
     74 
     75 ifeq (,$(CROSS_COMPILE))
     76 CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_small-
     77 endif
     78 
     79 KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_small/build/linux-broadcom_bcm98548xmc-standard-build
     80 KERNDIR_STD ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_small/build/linux
     81 
     82 else
     83 
     84 ifeq (,$(CROSS_COMPILE))
     85 CROSS_COMPILE := powerpc-wrs-linux-gnu-ppc_e500v2-glibc_std-
     86 endif
     87 
     88 KERNDIR ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_std_debug/build/linux-broadcom_bcm98548xmc-standard-build
     89 KERNDIR_STD ?=/projects/ntsw-tools/linux/wrslinux_3.0/gto/bcm98548xmc_30_glibc_std_debug/build/linux
     90 
     91 endif 
     92 
     93 export WRL_GLIBC_SMALL
     94 
     95 # After this point glibc_std and glibc_small share these flags
     96 
     97 WRLINUX_BASE ?=/tools/windriver/linux_ed/3.0/Linux
     98 TOOLCHAIN_EXEC_PREFIX=$(WRLINUX_BASE)/wrlinux-3.0/layers/wrll-toolchain-4.3-85/powerpc/toolchain/x86-linux2
     99 TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_EXEC_PREFIX)
    100 WIND_LIC_PROXY=$(WRLINUX_BASE)/setup/x86-linux2/bin
    101 WRLINUX_GNU_PATH = $(WRLINUX_BASE)/wrlinux-3.0/layers/wrll-toolchain-4.3-85/powerpc/toolchain/x86-linux2/bin
    102 override PATH := $(TOOLCHAIN_EXEC_PREFIX):$(KERNDIR_STD)/../../host-cross/bin:$(KERNDIR_STD)/../../host-cross/powerpc-wrs-linux-gnu/bin:$(WRLINUX_GNU_PATH):$(PATH)
    103 export TOOLCHAIN_EXEC_PREFIX TOOLCHAIN_BIN_DIR WIND_LIC_PROXY
    104 
    105 LINUX_INCLUDE_STD := $(KERNDIR_STD)/include
    106 
    107 endif
    108 
    109 ifeq (ELDK,$(BUILD_PLATFORM))
    110 ifeq (2.6.21.7, $(KERN_VER))
    111 
    112 ifeq (,$(CROSS_COMPILE))
    113 CROSS_COMPILE := ppc_85xx-
    114 endif
    115 
    116 ifeq (4.0, $(ELDK_VERSION))
    117 override PATH := /tools/eldk/4.0/usr/bin:$(PATH)
    118 else
    119 override PATH := /tools/eldk/4.1/usr/bin:$(PATH)
    120 endif
    121 KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.21.7
    122 endif
    123 endif
    124 
    125 ifeq (ELDK,$(BUILD_PLATFORM))
    126 ifeq (2.6.24.4, $(KERN_VER))
    127 
    128 ifeq (,$(CROSS_COMPILE))
    129 CROSS_COMPILE := ppc_85xx-
    130 endif
    131 
    132 ifeq (4.0, $(ELDK_VERSION))
    133 override PATH := /tools/eldk/4.0/usr/bin:$(PATH)
    134 else
    135 override PATH := /tools/eldk/4.1/usr/bin:$(PATH)
    136 endif
    137 KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.24.4
    138 endif
    139 endif
    140 
    141 
    142 ifeq (ELDK,$(BUILD_PLATFORM))
    143 ifeq (2.6.25, $(KERN_VER))
    144 
    145 ifeq (,$(CROSS_COMPILE))
    146 CROSS_COMPILE := ppc_85xx-
    147 endif
    148 
    149 ifeq (4.0, $(ELDK_VERSION))
    150 override PATH := /tools/eldk/4.0/usr/bin:$(PATH)
    151 else
    152 override PATH := /tools/eldk/4.1/usr/bin:$(PATH)
    153 endif
    154 KERNDIR ?= /projects/ntsw-tools/linux/eldk/gto_eldk/linux-2.6.25
    155 endif
    156 endif
    157 
    158 
    159 # Default Linux include directory
    160 ifeq (,$(LINUX_INCLUDE))
    161 LINUX_INCLUDE := $(KERNDIR)/include
    162 endif
    163 
    164 CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1
    165 ENDIAN = BE_HOST=1
    166 CFGFLAGS += -D$(ENDIAN) 
    167 CFGFLAGS += -DBCM_PLATFORM_STRING=\"GTO_MPC8548\"
    168 CFGFLAGS += -DSAL_BDE_DMA_MEM_DEFAULT=32
    169 
    170 # Extra variables.
    171 EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags)
    172 
    173 ARCH = powerpc
    174 KBUILD_VERBOSE = 1
    175 
    176 export ARCH KBUILD_VERBOSE 
    177 
    178 
    179 # From linux/arch/ppc/Makefile
    180 comma = ,
    181 basetarget = $(basename $(notdir $@))
    182 modname = $(basetarget)
    183 
    184 name-fix = $(subst $(comma),_,$(subst -,_,$1))
    185 basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))"
    186 modname_flags  = $(if $(filter 1,$(words $(modname))),\
    187                  -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))")
    188 
    189 
    190 ifeq (,$(KFLAG_INCLD))
    191 ifeq (4.0,$(ELDK_VERSION))
    192 ifeq (ELDK,$(BUILD_PLATFORM))
    193 KFLAG_INCLD = /tools/eldk/4.0/usr/lib/gcc/powerpc-linux/4.0.0/include
    194 endif
    195 endif
    196 
    197 ifeq (4.1,$(ELDK_VERSION))
    198 ifeq (ELDK,$(BUILD_PLATFORM))
    199 KFLAG_INCLD = /tools/eldk/4.1/usr/lib/gcc/powerpc-linux/4.0.0/include
    200 endif
    201 endif
    202 
    203 ifeq (2.0,$(WRS_LINUX_VERSION))
    204 KFLAG_INCLD = $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/4.1.2/include
    205 endif
    206 
    207 ifeq (3.0,$(WRS_LINUX_VERSION))
    208 KFLAG_INCLD = $(WRLINUX_GNU_PATH)/../lib/gcc/powerpc-wrs-linux-gnu/4.3.2/include
    209 endif
    210 endif
    211 
    212 ifdef BROADCOM_SVK
    213 ifeq ($PLX_PCI2LBUS, 1)
    214 CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE 
    215 endif
    216 endif
    217 
    218 ifdef DPP_CHIPS
    219 CFLAGS += -DDUNE_BCM -D__DUNE_LINUX_BCM_CPU_PCP_DMA__
    220 CFGFLAGS += -DSOC_CM_FUNCTION
    221 endif
    222 
    223 ifdef DFE_CHIPS
    224 CFLAGS += -DDUNE_BCM
    225 CFGFLAGS += -DSOC_CM_FUNCTION
    226 endif
    227 
    228 ifdef SAND_CHIPS
    229 CFLAGS += -D__DUNE_GTO_BCM_CPU__ -D__DUNE_LINUX_BCM_CPU_PCIE__
    230 endif
    231 
    232 ifdef SHADOW_PLX
    233 CFLAGS += -DBCM_PLX9656_LOCAL_BUS -DBDE_LINUX_NON_INTERRUPTIBLE -DSHADOW_SVK
    234 endif
    235 
    236 ifeq (,$(KFLAGS))
    237 #autoconf.h was moved in later kernels
    238 LINUX_AUTOCONF = $(LINUX_INCLUDE)/generated/autoconf.h
    239 ifeq (,$(shell ls $(LINUX_AUTOCONF) 2>/dev/null))
    240 LINUX_AUTOCONF = $(LINUX_INCLUDE)/linux/autoconf.h
    241 endif
    242 
    243 KFLAGS := -D__KERNEL__ -m32 -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/linux/version.h -include $(LINUX_AUTOCONF) -I$(KERNDIR)/arch/powerpc -I$(KERNDIR)/arch/powerpc -I$(KERNDIR)/arch/powerpc/include -I$(KERNDIR)/include/asm-powerpc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -msoft-float -pipe -ffixed-r2 -mmultiple -mno-altivec -funit-at-a-time -Wa,-me500 -fomit-frame-pointer  -Wdeclaration-after-statement -Wno-pointer-sign
    244 endif
    245 
    246 #Wind river Linux 3.0 needs addtional flags
    247 ifeq (3.0,$(WRS_LINUX_VERSION))
    248 
    249 # Use MSI interrupts if kernel is compiled with MSI support.
    250 #CFLAGS += -DBDE_LINUX_USE_MSI_INTERRUPT
    251 KFLAGS += -I$(LINUX_INCLUDE_STD) -I$(KERNDIR_STD)/arch/powerpc -I$(KERNDIR_STD)/arch/powerpc/include -I$(KERNDIR_STD)/include.asm-powerpc -mno-spe
    252 endif
    253 
    254 ifneq ($(targetplat),user)
    255 include ${SDK}/make/Makefile.linux-kernel-2_6
    256 endif