1#
2# Makefile for Broadcom BCM947XX boards
3#
4# Copyright 2006, Broadcom Corporation
5# All Rights Reserved.
6# 
7# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
11#
12# $Id: Makefile,v 1.1.1.1 2008/10/15 03:25:52 james26_jang Exp $
13#
14
15# Standard options
16CFG_MLONG64 := 0
17CFG_LITTLE ?= 1
18CFG_RELOC := 0
19CFG_UNCACHED := 0
20CFG_VAPI := 0 
21CFG_BOARDNAME := "BCM947XX"
22CFG_PCI ?= 0
23CFG_ZLIB := 1
24CFG_MINIMAL_SIZE := 1
25CFG_CFLASH := 1
26CFG_XIP := 0
27CFG_ATE := 0
28
29# BCM947XX options
30CFG_EMBEDDED_NVRAM := 1
31CFG_FLASH := 1   # if CFG_XIP is set then CFG_FLASH must be set to 0
32CFG_SFLASH := 1
33CFG_ET ?= 1
34CFG_WL := 0
35CFG_WLU := 0
36CFG_SIM := 0	# build for Quickturn/Simulator
37CFG_SIM_CONSOLE := 0	# with console
38ifeq ($(strip $(CFG_PCI)),1)
39CFG_BCM57XX := 1
40endif
41CFG_BUFLOG := 0
42
43# HND source base
44SRCBASE := $(shell cd ../../../.. && pwd)
45TOP := $(SRCBASE)/cfe/cfe
46
47ifeq ($(strip $(CFG_RELOC)),0)
48
49# Link binary in RAM
50CFG_BOOTRAM := 1
51ifeq ($(strip $(CFG_XIP)),0)
52CFG_TEXT_START := 0x80300000
53else
54CFG_DATA_START := 0x80001000
55endif
56
57# To generating ATE traces
58ifeq ($(strip $(CFG_ATE)),1)
59CFLAGS += -DBCM_ATE
60endif
61
62# Toolchain prefix 
63ifeq ($(CFG_LITTLE), 1)
64TOOLPREFIX := mipsel-linux-
65else
66TOOLPREFIX := mips-wrs-vxworks-
67endif
68
69#PATH := $(PATH):/projects/hnd/tools/linux/bin:/projects/hnd/tools/linux/hndtools-mips-wrs-vxworks-3.2.3/bin
70
71CFLAGS += -Ulinux -pipe
72
73# Disable 4710A0 compiler workarounds if any
74check_gcc = $(shell if $(GCC) $(1) -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)";  fi)
75CFLAGS += $(call check_gcc, -m4710a0kern, )
76
77# Disable PIC
78CFLAGS += -G 0 -mno-abicalls -fno-pic
79
80# Discard unused sections if supported
81CFLAGS += -ffunction-sections $(call check_gcc, -fvtable-gc, )
82LDFLAGS += -static --gc-sections
83
84else
85
86# Locate data in RAM
87CFG_BOOTRAM := 0
88CFG_DATA_START := 0x80001000
89
90endif
91
92ARCH := mips
93CPU := bcmcore
94BOARD := bcm947xx
95
96
97# define WL_CONFFILE for arch/mips/board/bcm947xx/src/Makefile
98ifeq ($(strip $(CFG_WL)),1)
99WLCONFFILE ?= wlconfig_cfe_apsta
100WLTUNEFILE ?= wltunable_cfe.h
101WLCFGDIR   := $(SRCBASE)/wl/config
102UPDATESH   := $(WLCFGDIR)/diffupdate.sh
103endif
104
105include $(TOP)/main/cfe.mk
106
107#
108# Main target for normal builds
109#
110ifneq ($(strip $(CFG_WL)),1)
111ALL: cfe.bin
112	$(MAKE)  -C compressed
113
114else # CFG_WL = 1
115
116CLEANOBJS += wlconf.h
117
118ALL: wlconf.h cfe.bin
119	$(MAKE) -C compressed
120
121wlconf.h: $(WLCFGDIR)/$(WLTUNEFILE) FORCE
122	[ ! -f $@ ] || chmod +w $@
123	@echo "check and update config file"
124	cp $< wltemp
125	$(UPDATESH) wltemp $@
126
127FORCE:
128
129endif
130
131cfe1M.bin:	cfe.bin
132	dd conv=sync if=cfe.bin of=cfe1M.bin bs=1M
133
134CLEANOBJS += cfe1M.bin
135
136CLEAN:
137	$(MAKE) -C compressed clean
138
139clean: CLEAN
140
141
142.EXPORT_ALL_VARIABLES:
143
144#
145# Linker script
146#
147
148include $(TOP)/main/cfe_link.mk
149