• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/cfe/build/broadcom/bcm947xx/
1#
2# Makefile for Broadcom BCM947XX boards
3#
4# Copyright (C) 2013, Broadcom Corporation. All Rights Reserved.
5# 
6# Permission to use, copy, modify, and/or distribute this software for any
7# purpose with or without fee is hereby granted, provided that the above
8# copyright notice and this permission notice appear in all copies.
9# 
10# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
13# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17#
18# $Id: Makefile 398971 2013-04-26 22:39:49Z $
19#
20
21include ../../../../.config
22
23ARCH ?= arm
24CPU ?= bcmcore
25BOARD := bcm947xx
26CFE_NAME := `echo $(BUILD_NAME)|tr A-Z a-z`
27
28# Standard options
29CFG_MLONG64 := 0
30CFG_LITTLE ?= 1
31CFG_RELOC := 0
32CFG_UNCACHED := 0
33CFG_VAPI := 0 
34CFG_BOARDNAME := "BCM947XX"
35CFG_PCI ?= 0
36CFG_ZLIB := 0
37CFG_LZMA := 1
38CFG_MINIMAL_SIZE := 1
39CFG_CFLASH := 1
40CFG_XIP := 0
41CFG_ATE := 0
42CFG_LDR_SREC := 0
43CFG_LDR_ELF := 0
44CFG_ROMBOOT ?= 0
45CFG_SHMOO := 1
46
47# BCM947XX options
48CFG_BCMHND74K ?= 0
49CFG_EMBEDDED_NVRAM := 1
50CFG_OTPNVRAM := 0
51CFG_FLASH := 1   # if CFG_XIP is set then CFG_FLASH must be set to 0
52CFG_SFLASH := 1
53CFG_NFLASH := 1
54ifeq ($(strip $(CFG_NFLASH)),1)
55CFG_FLASH_ERASE := 1
56endif
57CFG_ET := 1
58CFG_GMAC ?= 0	# CFG_GMAC requires CFG_ET
59CFG_WL := 0
60CFG_WLU := 0
61CFG_SIM := 0	# build for Quickturn/Simulator
62CFG_SIM_CONSOLE := 0	# with console
63ifeq ($(strip $(CFG_PCI)),1)
64CFG_BCM57XX := 1
65CFG_ET := 0
66else
67CFG_BCM57XX := 0
68endif
69CFG_FAILSAFE_UPGRADE ?= 1   # Default on, can be turned off with CFG_FAILSAFE_UPGRADE=0
70# CFG_DUAL_IMAGE :=1	# Default to off in compile time
71
72# read sdram params from nvram in internal builds                               
73CFG_SDRAM_PARAM_FROM_EMBEDDED_NVRAM := 1
74
75# Additional options
76COMPRESSED_CFE := 1
77RESCUE_MODE := 1        # disable for tmp
78RGMII_P5 := 0
79DSLAC68U := 0
80RTAC68U := 0
81PATYPE := 0
82BCM470XC0 := 0
83MTDSIZE ?= 64
84DUAL_TRX := 0
85
86# HND source base
87SRCBASE := $(shell cd ../../../.. && pwd)
88TOP := $(SRCBASE)/cfe/cfe
89
90ifeq ($(strip $(CFG_RELOC)),0)
91
92# Link binary in RAM
93CFG_BOOTRAM := 1
94ifeq ($(strip ${CFG_UNCACHED}),1)
95  ifeq ($(strip $(CFG_XIP)),0)
96    CFG_TEXT_START := 0xa0700000
97  else
98    CFG_DATA_START := 0xa0001000
99  endif
100else
101  ifeq ($(strip $(CFG_XIP)),0)
102    CFG_TEXT_START := 0x80e00000
103  else
104    CFG_DATA_START := 0x80001000
105  endif
106endif
107# To generating ATE traces
108ifeq ($(strip $(CFG_ATE)),1)
109CFLAGS += -DBCM_ATE
110endif
111
112ifeq ($(strip $(CFG_DUAL_IMAGE)),1)
113CFLAGS +=-DDUAL_IMAGE
114endif
115ifeq ($(strip $(CFG_FAILSAFE_UPGRADE)),1)
116CFLAGS +=-DFAILSAFE_UPGRADE
117endif
118ifeq ($(strip $(CFG_FLASH_ERASE)),1)
119CFLAGS +=-DCFE_FLASH_ERASE_FLASH_ENABLED=1
120endif
121ifeq ($(strip $(CFG_FLASH_FILL)),1)
122CFLAGS +=-DFLASH_PARTITION_FILL_ENABLED=1
123endif
124ifeq ($(strip $(CFG_SDRAM_PARAM_FROM_EMBEDDED_NVRAM)),1)
125CFLAGS +=-DSDRAM_PARAM_FROM_EMBEDDED_NVRAM
126endif
127
128ifeq ($(strip $(CFG_BCM_DEVINFO)),1)
129CFLAGS += -DBCM_DEVINFO
130endif
131
132ifeq ($(strip $(RESCUE_MODE)),1)
133CFLAGS += -DRESCUE_MODE
134endif
135
136ifeq ($(strip $(RGMII_P5)),1)
137CFLAGS += -DRGMII_P5
138endif
139
140ifeq ($(strip $(DUAL_TRX)),1)
141CFLAGS += -DDUAL_TRX
142endif
143
144ifeq ($(strip $(RTAC68U)),1)
145CFLAGS += -DRTAC68U
146endif
147
148ifeq ($(BUILD_NAME),$(filter $(BUILD_NAME),RT-AC88U RT-AC88B RT-AC5400))
149CFLAGS += -DRTAC68U
150CFLAGS += -DRTAC88U -DRTL8365MB
151CFLAGS += -L /opt/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/../lib/gcc/arm-brcm-linux-uclibcgnueabi/4.5.3 -lgcc
152endif
153
154ifeq ($(strip $(DSLAC68U)),1)
155CFLAGS += -DDSLAC68U
156endif
157
158ifeq ($(strip $(RTAC87U)),1)
159MTDSIZE := 128
160CFLAGS += -DRTAC87U
161endif
162
163ifeq ($(strip $(RTN18U)),1)
164CFLAGS += -DRTN18U
165endif
166
167ifeq ($(strip $(COMPRESSED_CFE)),1)
168CFLAGS += -DCOMPRESSED_CFE
169endif
170ifeq ($(MTDSIZE),32)
171CFLAGS += -D"CONFIG_LINUX_MTD=32"
172endif
173ifeq ($(MTDSIZE),48)
174CFLAGS += -D"CONFIG_LINUX_MTD=48"
175endif
176ifeq ($(MTDSIZE),64)
177CFLAGS += -D"CONFIG_LINUX_MTD=64"
178endif
179ifeq ($(MTDSIZE),128)
180CFLAGS += -D"CONFIG_LINUX_MTD=128"
181endif
182
183# Toolchain prefix 
184LINUX_VERSION ?= 2_6
185ifeq ($(strip $(LINUX_VERSION)),2_6)
186    TOOLPREFIX := mipsel-uclibc-linux26-
187else
188    TOOLPREFIX := mipsel-linux-
189endif
190
191#PATH := $(PATH):/projects/hnd/tools/linux/bin:/projects/hnd/tools/linux/hndtools-mips-wrs-vxworks-3.2.3/bin
192
193CFLAGS += -Ulinux -pipe
194
195# Disable 4710A0 compiler workarounds if any
196check_gcc = $(shell if $(GCC) $(1) -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)";  fi)
197CFLAGS += $(call check_gcc, -m4710a0kern, )
198
199# Disable PIC
200CFLAGS-mips = -G 0 -mno-abicalls -fno-pic
201CFLAGS-arm = -g -DSTANDALONE -O0 -D__KERNEL__
202CFLAGS += $(CFLAGS-$(ARCH))
203
204# Discard unused sections if supported
205CFLAGS += -ffunction-sections -fdata-sections
206LDFLAGS += -static --gc-sections
207
208else
209
210# Locate data in RAM
211CFG_BOOTRAM := 0
212ifeq ($(strip ${CFG_UNCACHED}),1)
213  CFG_DATA_START := 0xa0001000
214else
215  CFG_DATA_START := 0x80001000
216endif
217
218endif
219
220# ARM override
221ifeq ($(ARCH), arm)
222CPU := armv7
223CFG_NVRAM_SPACE := 65536
224CFG_GMAC := 1
225CFG_CFLASH := 0
226CFG_FLASH := 0   # if CFG_XIP is set then CFG_FLASH must be set to 0
227CFG_SFLASH := 1
228CFG_TEXT_START := 0x00f00000
229
230TOOLPREFIX := arm-uclibc-linux-2.6.36-
231
232ASFLAGS := -D_LANGUAGE_ASSEMBLY
233else
234CFG_NVRAM_SPACE := 32768
235endif
236
237CFLAGS += -DMAX_NVRAM_SPACE=$(CFG_NVRAM_SPACE)
238
239# handle "undefined reference to otp_read_word" problem
240ifeq ($CFG_OTPNVRAM), 1)
241CFLAGS +=  -DLOADADDR=$(CFG_TEXT_START)
242endif
243
244# define WL_CONFFILE for arch/mips/board/bcm947xx/src/Makefile
245ifeq ($(strip $(CFG_WL)),1)
246WLCONFFILE ?= wlconfig_cfe_apsta
247WLTUNEFILE ?= wltunable_cfe.h
248WLCFGDIR   := $(SRCBASE)/wl/config
249UPDATESH   := $(WLCFGDIR)/diffupdate.sh
250endif
251
252include $(TOP)/main/cfe.mk
253
254#
255# Main target for normal builds
256#
257ifneq ($(strip $(CFG_WL)),1)
258ALL: cfe.bin
259	$(MAKE)  -C compressed
260
261else # CFG_WL = 1
262
263CLEANOBJS += wlconf.h
264
265ALL: version wlconf.h cfe.bin
266	$(MAKE) -C compressed
267
268wlconf.h: $(WLCFGDIR)/$(WLTUNEFILE) FORCE
269	[ ! -f $@ ] || chmod +w $@
270	@echo "check and update config file"
271	cp $< wltemp
272	$(UPDATESH) wltemp $@
273
274FORCE:
275
276endif
277
278
279cfe1M.bin:	cfe.bin
280	dd conv=sync if=cfe.bin of=cfe1M.bin bs=1M
281
282CLEANOBJS += cfe1M.bin cfe.qt
283
284CLEAN:
285	$(MAKE) -C compressed clean
286
287clean: CLEAN
288
289
290.EXPORT_ALL_VARIABLES:
291
292#
293# Linker script
294#
295
296include $(TOP)/main/cfe_link.mk
297