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