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 382649 2013-02-03 04:37:52Z $ 19# 20 21# Max sizes for vanilla external 22CFEZ_MAXSIZE = 131072 23CFE_MAXSIZE = 262144 24 25# Max sizes for GigE/GMAC external 26ifeq ($(strip $(CFG_BCM57XX)),1) 27CFEZ_MAXSIZE = 262144 28CFE_MAXSIZE = 262144 29endif 30 31ifeq ($(strip $(CFG_GMAC)),1) 32CFEZ_MAXSIZE = 262144 33CFE_MAXSIZE = 262144 34endif 35 36# Max sizes for internal 37 38BSPOBJS += bcm947xx_init.o bcm947xx_devs.o ui_bcm947xx.o bcm947xx_machdep.o 39 40ifeq ($(strip $(CFG_MINIMAL_SIZE)), 1) 41ifeq ($(strip $(CFG_GMAC)), 0) 42ALLOBJS += sbsdram.o sbutils.o 43CFLAGS += -DBCMCHIPTYPE=0 44else 45ALLOBJS += aisdram.o aiutils.o 46CFLAGS += -DBCMCHIPTYPE=1 47endif 48else 49ALLOBJS += aisdram.o aiutils.o sbsdram.o sbutils.o 50endif 51 52ALLOBJS += sisdram.o siutils.o \ 53 hndmips.o hndpmu.o hndchipc.o sromstubs.o bcmutils.o cfe_osl.o \ 54 nvram.o nvram_rw.o bcmstdlib.o hndsoc.o 55 56CFLAGS += -DBCM4710 -DBCM4704 -DBCMDRIVER 57ifeq ($(CFG_BCMHND74K), 1) 58CFLAGS += -DBCMHND74K 59endif 60 61CFLAGS += -I$(SRCBASE)/include -I$(SRCBASE)/common/include 62CFLAGS += -I$(SRCBASE)/tools/misc/lzma_src/C 63 64vpath %.c $(SRCBASE)/shared $(SRCBASE)/shared/nvram 65vpath %.S $(SRCBASE)/shared 66 67ifeq ($(strip $(CFG_LITTLE)),0) 68CFLAGS += -DIL_BIGENDIAN -D_MIPSEB_DATA_INVARIANT_ 69endif 70 71ifeq ($(strip $(CFG_EMBEDDED_NVRAM)),1) 72CFLAGS += -DCFG_EMBEDDED_NVRAM=1 73endif 74 75ifeq ($(strip ${CFG_MINIMAL_SIZE}),1) 76CFLAGS += -DCFG_MINIMAL_SIZE=1 77else 78endif 79 80ifeq ($(strip $(CFG_FLASH)),1) 81CFLAGS += -DCFG_FLASH=1 82CFLAGS += -D_FLASH_BROKEN_BYTEREAD_ -DINCLUDE_FLASH_DRIVERS 83ALLOBJS += ui_test_flash.o 84endif 85 86ifeq ($(strip ${CFG_SFLASH}),1) 87CFLAGS += -DCFG_SFLASH=1 88ALLOBJS += dev_sflash.o hndsflash.o ccsflash.o 89endif 90 91ifeq ($(strip ${CFG_NFLASH}),1) 92CFLAGS += -DCFG_NFLASH=1 -DNFLASH_SUPPORT -DCFG_HEAP_SIZE=1024 93ALLOBJS += dev_nflash.o hndnand.o nflash.o 94ALLOBJS += hamming.o popcount32.o 95endif 96 97ifeq ($(strip $(CFG_ET)),1) 98 99ETOBJS := etc.o et_cfe.o bcmrobo.o 100CFLAGS += -DCFG_ET=1 -I$(SRCBASE)/et/sys -I$(SRCBASE)/et/include -DETROBO -DDMA 101 102ifeq ($(strip $(CFG_GMAC)),1) 103ETOBJS += etcgmac.o 104CFLAGS += -DCFG_GMAC=1 105endif 106 107ifeq ($(strip $(CFG_MINIMAL_SIZE)), 1) 108ifeq ($(strip $(CFG_GMAC)),0) 109ETOBJS += etc47xx.o 110CFLAGS += -DCFG_ETC47XX=1 -DBCMDMA32 111endif 112else 113ETOBJS += etc_adm.o etc47xx.o 114CFLAGS += -DETADM -DCFG_ETC47XX=1 -DBCMDMA32 115endif 116 117HNDDMA := 1 118 119# Search for sources under src/et/sys or objects under src/et/cfe 120ifneq ($(wildcard $(SRCBASE)/et/sys),) 121vpath %.c $(SRCBASE)/et/sys 122ALLOBJS += $(ETOBJS) 123else 124ALLOBJS += $(foreach obj,$(ETOBJS),$(SRCBASE)/et/cfe/$(obj)) 125endif 126endif 127 128ifeq ($(strip $(CFG_WL)),1) 129CFLAGS += -DCFG_WL=1 -DBCMDMA64 130 131# get wl driver source files and flags, 132# macros are defined in build/broadcom/bcm947xx/Makefile 133# WLCFE is to pick wl_cfe.c from wl.mk 134WLCFE=1 135include $(WLCFGDIR)/$(WLCONFFILE) 136include $(WLCFGDIR)/wl.mk 137 138ifneq ($(WLFILES),) 139WLOBJS := $(patsubst %.c,%.o,$(WLFILES)) 140else 141$(error WLFILES is undefined in $(CONFIG_WL_CONF)) 142endif 143WL_DFLAGS := $(WLFLAGS) 144 145ifeq ($(strip $(CFG_WLU)),1) 146WLOBJS += wlu.o wlu_common.o wlu_cmd.o wlu_iov.o bcmwifi_channels.o 147CFLAGS += -DCFG_WLU=1 148endif 149 150# add these path for WLOBJS only 151$(WLOBJS): WL_CFLAGS := -I$(SRCBASE)/wl/sys -I$(SRCBASE)/wl/phy -I$(SRCBASE)/wl/exe $(WL_DFLAGS) 152CFLAGS += $(WL_CFLAGS) 153 154# Search for sources under src/wl/sys or objects under src/wl/cfe 155ifneq ($(wildcard $(SRCBASE)/wl/sys/wlc.h),) 156vpath %.c $(SRCBASE)/wl/sys $(SRCBASE)/wl/phy $(SRCBASE)/wl/exe $(SRCBASE)/bcmcrypto $(SRCBASE)/shared 157ALLOBJS += $(WLOBJS) 158else 159ALLOBJS += $(foreach obj,$(WLOBJS),$(SRCBASE)/wl/cfe/$(obj)) 160endif 161 162HNDDMA := 1 163endif # CFG_WL 164 165 166# Search for sources under src/shared 167ifeq ($(strip $(HNDDMA)),1) 168ALLOBJS += hnddma.o 169endif 170 171ifeq ($(strip $(CFG_PCI)),1) 172BSPOBJS += bcm947xx_pci_machdep.o hndpci.o nicpci.o 173ifeq ($(strip $(CFG_BCM57XX)),1) 174CFLAGS += -DCFG_BCM57XX=1 175ALLOBJS += dev_bcm5700.o hndgige.o 176# Add robo if not already done by ET 177ifeq ($(strip $(CFG_ET)),0) 178ALLOBJS += bcmrobo.o 179endif 180endif 181else 182CFLAGS += -DBCMBUSTYPE=SI_BUS 183endif 184