# $Id: Make.local.template,v 1.181 Broadcom SDK $
# $Copyright: Copyright 2012 Broadcom Corporation.
# This program is the proprietary software of Broadcom Corporation
# and/or its licensors, and may only be used, duplicated, modified
# or distributed pursuant to the terms and conditions of a separate,
# written license agreement executed between you and Broadcom
# (an "Authorized License").  Except as set forth in an Authorized
# License, Broadcom grants no license (express or implied), right
# to use, or waiver of any kind with respect to the Software, and
# Broadcom expressly reserves all rights in and to the Software
# and all intellectual property rights therein.  IF YOU HAVE
# NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS SOFTWARE
# IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
# ALL USE OF THE SOFTWARE.  
#  
# Except as expressly set forth in the Authorized License,
#  
# 1.     This program, including its structure, sequence and organization,
# constitutes the valuable trade secrets of Broadcom, and you shall use
# all reasonable efforts to protect the confidentiality thereof,
# and to use this information only in connection with your use of
# Broadcom integrated circuit products.
#  
# 2.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS
# PROVIDED "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
# REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY,
# OR OTHERWISE, WITH RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY
# DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
# NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
# ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
# CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
# OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
# 
# 3.     TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL
# BROADCOM OR ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL,
# INCIDENTAL, SPECIAL, INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER
# ARISING OUT OF OR IN ANY WAY RELATING TO YOUR USE OF OR INABILITY
# TO USE THE SOFTWARE EVEN IF BROADCOM HAS BEEN ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGES; OR (ii) ANY AMOUNT IN EXCESS OF
# THE AMOUNT ACTUALLY PAID FOR THE SOFTWARE ITSELF OR USD 1.00,
# WHICHEVER IS GREATER. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING
# ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.$
#

# Usage for Make.local.template and Make.local:
#
# Make.local.template is checked into the tree, but Make.local is never
# checked in.  Copy Make.local.template to Make.local, then change
# Make.local to select the desired compilation options (mostly debugging
# features).
#
# Note on CFGFLAGS usage:
#
#   Because CFGFLAGS may be used with other source preprocessing tools,
#   please limit the values added to CFGFLAGS to -D defines.
#
#
# Table of Contents:
#
#     Compiler Related Options
#     Boot and Debug Related Options
#     Operational and Policy Options
#     System Management and Multiple CPU Options
#     Selective Device Support (Switches and PHYs)
#     Miscellaneous Options
#

################################################################
#
# Compiler Related Options
#
################################################################

# Compiling out #ifdef DEBUG code saves about 1.3% on executable size.
# It is recommended to leave debug enabled when developing applications.
#DEBUG_IFDEFS=FALSE

# SAL resource usage tracking #ifdef control
# DEBUG_IFDEFS should also be  TRUE for this switch to take effect.
#BCM_RESOURCE_USAGE_PROFILE_IFDEFS=TRUE

# Uncomment to build without debug symbols
#DEBUG_SYMBOLS=FALSE

# Uncomment to add private CFLAGS
#DEBUG_CFLAGS=

# Uncomment to turn off the optimizer when debugging (recommended)
#DEBUG_OPTIMIZE=FALSE

# Compiling out assert() saves about 1.1% on executable size,
# however do so is VERY MUCH discouraged.
#DEBUG_ASSERTS=FALSE

# Controlling GCC -pedantic flag
#DEBUG_PEDANTIC=TRUE

# compiler.h overrides, these disable various compiler
# related features even if the compiler normally supports them

# Disable use of long long for uint64
#CFGFLAGS += -DCOMPILER_OVERRIDE_NO_LONGLONG

# Disable use of doubles
#CFGFLAGS += -DCOMPILER_OVERRIDE_NO_DOUBLE

# Disable inlining of functions
#CFGFLAGS += -DCOMPILER_OVERRIDE_NO_INLINE

# Disable use of const
#CFGFLAGS += -DCOMPILER_OVERRIDE_NO_CONST

# Disable use of static functions
#CFGFLAGS += -DCOMPILER_OVERRIDE_NO_STATIC

# Disable RPC flexible (long) bitmaps.
# Warning: Disabling this changes the RPC version to 2 and
# makes systems running this code incompatible with systems
# running previous versions of BCM RPC code.
#CFGFLAGS += -DBCM_RPC_PBMP_64

#
# Define if longs are 64 bits on your compiler;
# this is typically true ONLY for 64-bit processors.
#CFGFLAGS += -DLONGS_ARE_64BITS

#
# Define if pointers are 64 bits on your compiler;
# this is typically true ONLY for 64-bit processors.
# NOTE: This support works ONLY under conditions where the
# upper 32 bits for ALL pointers are ZERO.
#CFGFLAGS += -DPTRS_ARE_64BITS


################################################################
#
# Boot and Debug Related Options
#
################################################################

# Define this to add debug code for RX pool buffer tracking
#CFGFLAGS += -DBCM_RXP_DEBUG

# Allow debugging of PCI reads/writes (debug +pci)
#CFGFLAGS += -DSOC_PCI_DEBUG

# Make default debugging settings be 0 (very very quiet)
#CFGFLAGS += -DNO_DEBUG_OUTPUT_DEFAULT

# Don't use vxMemProbe
#CFGFLAGS += -DVX_NO_MEM_PROBE

# Allow debugging of Memory Allocation/Deallocation logging
#CFGFLAGS += -DMEMLOG_SUPPORT

################################################################
################################################################
#
# Operational and Policy Options
#
################################################################

# VLAN policy control:
#	NO_DEFAULT_ETHER	do not init ether ports into vlan 1
#	NO_DEFAULT_CPU		do not init cpu ports into vlan 1
#	NO_DEFAULT_SPI_SUBPORT	do not init spi subports into vlan 1
#	NO_AUTO_STACK		do not init stack/HG ports into created vlans
#CFGFLAGS += -DBCM_VLAN_NO_DEFAULT_ETHER
#CFGFLAGS += -DBCM_VLAN_NO_DEFAULT_CPU
#CFGFLAGS += -DBCM_VLAN_NO_DEFAULT_SPI_SUBPORT
#CFGFLAGS += -DBCM_VLAN_NO_AUTO_STACK

# VLAN multicast flood Policy Control:
# BCM_VLAN_MCAST_FLOOD_ALL      Flood all multicast packets to the VLAN
# BCM_VLAN_MCAST_FLOOD_UNKNOWN  Flood unknown multicast packets to the vlan
# BCM_VLAN_MCAST_FLOOD_NONE     Forward multicast packets with known
#                               destination addresses to the appropriate ports.
#                               All packets destined to an unknown multicast
#                               address are dropped.
#CFGFLAGS += -DBCM_MCAST_FLOOD_DEFAULT=BCM_VLAN_MCAST_FLOOD_ALL
#CFGFLAGS += -DBCM_MCAST_FLOOD_DEFAULT=BCM_VLAN_MCAST_FLOOD_UNKNOWN
#CFGFLAGS += -DBCM_MCAST_FLOOD_DEFAULT=BCM_VLAN_MCAST_FLOOD_NONE

#Port Enable/Disable Policy control:
#       PORT_DEFAULT_DISABLE       disable ports during switch initialization
#CFGFLAGS += -DBCM_PORT_DEFAULT_DISABLE

# sal thread priority override (this value used for all threads if defined)
#CFGFLAGS += -DSAL_THREAD_PRIORITY=255

# disable printing of thread name in messages
#CFGFLAGS += -DSAL_THREAD_NAME_PRINT_DISABLE

# disable runtime reading of flash config.bcm file (even if !NO_FILEIO)
#CFGFLAGS += -DSAL_CONFIG_FILE_DISABLE

# disable all Application SAL dependencies
#NO_SAL_APPL=1


# Prevent scheduling in SPL locks when interrupt code is run as a thread.
# This option should not be necessary if all locks are implemented correctly,
# however, some locks may still rely on the assumption that scheduling does
# not occur when interrupts are disabled. If you experience any locking
# problems in e.g. Linux User Mode, try enabling this option.
# Please note that turning on this option will reduce performance by an
# estimated 5 to 10 %.
#CFGFLAGS += -DSAL_SPL_NO_PREEMPT

# disable mapping of higig cosq when mapping priority to cosq
# (use identity mapping instead : map prio0->cos0, prio1->cos1, ... , prio7->cos7)
#CFGFLAGS += -DBCM_COSQ_HIGIG_MAP_DISABLE

# Enable ukernel debugging module
#CFGFLAGS += -DSOC_UKERNEL_DEBUG


################################################################
#
# System Management and Multiple CPU Options
#
################################################################

# Turn on BCMX inclusion
#     INCLUDE_BCMX for any support
#INCLUDE_BCMX=1

# Telekinesis suite applications for CPU to CPU communication and discovery
#     CPUDB:         Simple CPU data base manager
#     CPUTRANS:      CPU to CPU communication mechanisms
#     DISCOVER:      Simple discovery; will also include CPUTRANS
#     STKTASK:       Stack manager application
#
#CFGFLAGS += -DINCLUDE_LIB_CPUDB
#CFGFLAGS += -DINCLUDE_LIB_CPUTRANS
#CFGFLAGS += -DINCLUDE_LIB_DISCOVER
#CFGFLAGS += -DINCLUDE_LIB_STKTASK

# Option for discovery to use the application-data field in routing
# packets for Board-ID and CPU base flag information.
#CFGFLAGS += -DDISCOVER_APP_DATA_BOARDID

# Optionally override list of included dispatch modules
# Note: including RPC automatically includes the Telekinesis suite libs
# ESW is the enterprise platforms.
# ROBO includes the managed devices.
# SBX includes API support for bcm988020QSK24X2
#DISPATCH_LIST = RPC ESW ASYNC SBX

# Define to have end-to-end flow control enabled on boards that
# support it
#CFGFLAGS += -DBCM_BOARD_AUTO_E2E

# Define the following to support per-CPU transmit pointers.
# This allows the TX setup and send functions to be defined on a
# per-CPU basis, allowing mixed in-band and out-of-band communication.
#CFGFLAGS += -DBCM_C2C_TRANSPORT_SWITCHING

# Options for feature list (INCLUDE_XXX)
# If FEATURE_LIST is defined, it is a list of features to include.
# See Make.config for the default feature list.
#
# Avaliable features:
#
#     BCMX
#     BCMX_DIAG
#     CHASSIS
#     CUSTOMER
#     DRIVERS
#     EDITLINE
#     I2C
#     L3
#     MEM_SCAN
#     ATPTRANS_SOCKET
#     TELNET
#     TEST
#     ACL
#     RCPU
#     KNET - Linux user mode kernel network support
#     BCM_SAL_PROFILE - make available an API to track SAL usage.
#     CINT - Include the C Interpreter in the diagnostic shell. 
#            Please note this cannot be used in Linux kernel mode. 
#     C_UNIT - Include the C unit testing framework.  If CINT is also included
#              then hooks will be provided for use from it.
#     PHY_SYM_DBG - PHY GUI MDIO read/write support. Socket interface
#                   to PHY GUI for Symbolic debugging.
#     APIMODE - call SDK API functions from shell, requires CINT
#     DUNE_UI - dune legacy user interface. For debug only. Tested
#               on linux-user-gto-2.6 only.
#     KBP   -   include nlm2(11K)/nlm3(12K) KBP support
#     BHH   -   Include Support for BHH Application (MPLS-TP OAM based on Y.1731) 
#               using BTE on select devices.
#     AVS   - Include AVS support
#FEATURE_LIST=ATPTRANS_SOCKET BCMX_DIAG L3 I2C BCMX MEM_SCAN EDITLINE \
#    CUSTOMER TELNET DRIVERS CHASSIS TEST ACL RCPU BCM_SAL_PROFILE CINT \
#    PTP CES FCMAP BOARD KNET REGEX MACSEC APIMODE BFD KBP AVS

FEATURE_LIST= INTR CINT BSAFE ATPTRANS_SOCKET L3 I2C MEM_SCAN EDITLINE TELNET DRIVERS CHASSIS TEST BCM_SAL_PROFILE RCPU DUNE_UI

###############################################################
#              KBP supported devices
#
#Enable this for 11K device support
#KBP_DEVICE = KBP_11K
#
#Enable this for 12K device support
#KBP_DEVICE = KBP_ALG
#
###############################################################

################################################################
#
# Selective Device Support (Switches and PHYs)
#
################################################################

# Multiple Chip Support
#
# By default, the driver supports all Strata switch and fabric chips
# included in this software release.  It checks device IDs at runtime
# to run the correct driver modules.
#
# To save space, the driver can be compiled to support just a subset of
# the chips.  To do this, uncomment the line for BCM_PTL_SPT (partial
# support) and uncomment one line for each chip to support.
#
# Note that there are a lot more chips than drivers.
# For example, the BCM5615 driver is also used for BCM5625 and BCM5645.
#

BCM_PTL_SPT = 1

#BCM_5675_A0 = 1
#BCM_56102_A0 = 1
#BCM_56112_A0 = 1
#BCM_56304_B0 = 1
#BCM_56314_A0 = 1
#BCM_56504_A0 = 1
#BCM_56504_B0 = 1
#BCM_56514_A0 = 1
#BCM_56624_A0 = 1
#BCM_56624_B0 = 1
#BCM_56680_A0 = 1
#BCM_56680_B0 = 1
#BCM_56580_A0 = 1
#BCM_56700_A0 = 1
#BCM_56800_A0 = 1
#BCM_56218_A0 = 1
#BCM_56224_A0 = 1
#BCM_56224_B0 = 1
#BCM_56725_A0 = 1
#BCM_56820_A0 = 1
#BCM_53314_A0 = 1
#BCM_53324_A0 = 1
#BCM_56634_A0 = 1
#BCM_56634_B0 = 1
#BCM_56524_A0 = 1
#BCM_56524_B0 = 1
#BCM_56685_A0 = 1
#BCM_56685_B0 = 1
#BCM_56334_A0 = 1
#BCM_56334_B0 = 1
#BCM_56840_A0 = 1
#BCM_56840_B0 = 1
#BCM_56850_A0 = 1
#BCM_56142_A0 = 1
#BCM_56150_A0 = 1
#BCM_56836_A0 = 1
#BCM_56640_A0 = 1
#BCM_56440_A0 = 1
#BCM_56440_B0 = 1
#BCM_56450_A0 = 1
#BCM_56960_A0 = 1
#BCM_56860_A0 = 1

#BCM_5338_A0 = 1
#BCM_5380_A0 = 1
#BCM_5338_B0 = 1
#BCM_5325_A1 = 1

#BCM_5324_A0 = 1
#BCM_5396_A0 = 1
#BCM_5389_A0 = 1
#BCM_5398_A0 = 1
#BCM_5324_A1 = 1
#BCM_53115_A0 = 1
#BCM_53118_A0 = 1
#BCM_53280_A0 = 1
#BCM_53280_B0 = 1
#BCM_53101_A0 = 1
#BCM_53125_A0 = 1
#BCM_53128_A0 = 1
#BCM_53600_A0 = 1
#BCM_89500_A0 = 1

#BCM_88030_A0 = 1
#BCM_QE2000_A0 = 1
#BCM_BME3200_B0 = 1
#BCM_BM9600_A0 = 1
#BCM_88230_A0 = 1
#BCM_88230_B0 = 1
#BCM_88230_C0 = 1
BCM_88640_A0=1
BCM_88650_A0=1
BCM_88650_B0=1
BCM_88660_A0=1

#BCM_TK371X_A0 = 1

# Options for multiple PHY support
# If BCM_PHY_LIST is defined, it is a list of PHYs to include.
# The default is to include all of them.
# If none of them should be included specify BCM_PHY_LIST=EMPTY
#BCM_PHY_LIST=522X 54XX 5464 5421S 5482 54616 54680 54680E 52681E 54880E 54682 54684 54640 54640E 54880 SERDES SIMUL 8703 8705 8706 8072 8040 8481 8750 8729 84740 84756 84328 EMPTY

# Options for BCM5338 5380
#CFGFLAGS += -DROBO_OLD
#ROBO_OLD = 1

# Support for phy simulation
#CFGFLAGS += -DINCLUDE_PHY_SIMUL
#CFGFLAGS += -DSIM_ALL_PHYS        # All phys use simulation driver
#CFGFLAGS += -DSIM_CMIC_LINK_STAT  # Get link status from CMIC register

# Support for BOARD library
# if BOARD_LIST is defined, it is a list of Board drivers to include.
# The default is to include all board drivers appropriate for the devices
# included in the build. If none of them should be included specify
# BOARD_LIST=EMPTY.
#BOARD_LIST=GENERIC

# Support for event logging
#CFGFLAGS += -DINCLUDE_SHARED_EVLOG

# Support for BCM API port translation
#CFGFLAGS += -DINCLUDE_BCM_API_XLATE_PORT

# Support for callback error checks and abort in traverse api's
#CFGFLAGS += -DBCM_CB_ABORT_ON_ERR
################################################################
#
# Misc Options
#
################################################################
#CFGFLAGS += -DSOC_MEM_L3_DEFIP_WAR

# Compile out Register/Table descriptive strings to generate a
# compact image
#CFGFLAGS +=-DSOC_NO_NAMES
#CFGFLAGS +=-DSOC_NO_ALIAS
#CFGFLAGS +=-DSOC_NO_DESC

# Reload/WarmBoot Support
#
CFGFLAGS += -DBCM_WARM_BOOT_SUPPORT
#
# Need this for validation using SOC scripts; Will move to tcl 
# someday
CFGFLAGS += -DBCM_WARM_BOOT_SUPPORT_SW_DUMP
#
# Adds a CRC check on scache buffer: Calculate when saving,
# and verify when loading.
# When doing ISSU, both source and destination versions should either have
# this flag enabled or disabled.
#CFGFLAGS += -DSCACHE_CRC_CHECK

################################################################
#
# Enable Easy Reload Support
#
################################################################
#CFGFLAGS += -DBCM_EASY_RELOAD_SUPPORT
# For validation purposes
#CFGFLAGS += -DBCM_EASY_RELOAD_SUPPORT_SW_DUMP

# Software Trunk failover Support
#
#CFGFLAGS += -DBCM_TRUNK_FAILOVER_SUPPORT

################################################################
#
# Override default VXWORKS thread options to make set 
# VX_UNBREAKABLE flag in task creation.
#
################################################################
#CFGFLAGS += -DVX_THREAD_OPT_UNBREAKABLE


################################################################
#
# Use default priority for BDE interrupt thread.
#
################################################################
#CFGFLAGS += -DSAL_BDE_THREAD_PRIO_DEFAULT

################################################################
#
# Use cached DMA memory when mapping kernel DMA memory to user
# mode. Should only be enabled on cache-coherent platforms.
#
################################################################
#CFGFLAGS += -DSAL_BDE_CACHE_DMA_MEM

################################################################
#
# Take the spl lock upon entering an ISR
#
################################################################
#CFGFLAGS += -DSAL_SPL_LOCK_ON_IRQ

################################################################
#
# Silently ignore NULL pointer free in sal_free API
# Default behaviour is to assert if a NULL pointer is passed to sal_free
#
################################################################
#CFGFLAGS += -DSAL_FREE_NULL_IGNORE

################################################################
# Enable SBX MPLS TP support
################################################################
#CFGFLAGS += -DBCM_SBX_MPLSTP_SUPPORT
#CFGFLAGS += -DBCM_SBX_C1_MPLSTP_SUPPORT

################################################################
# Restrict SBX C2 Fte range to C2's range
################################################################
#CFGFLAGS += -DBCM_SBX_C1_C2_INTEROP

################################################################
# For historical reasons the PCI probe function skips device 12
# by default to prevent a system hang on certain platforms.
# Set this value to zero to probe all PCI devices.
################################################################
#CFGFLAGS += -DOVERRIDE_PCI_SKIP_DEV_MASK=0

################################################################
# Override max devices supported by PLI BDE
################################################################
#CFGFLAGS += -DPLI_MAX_DEVICES

################################################################
# Track BCM API calls to avoid deinitialization while calls active
# This will incur a small time penalty for each BCM API call
################################################################
#CFGFLAGS += -DBCM_CONTROL_API_TRACKING

################################################################
# Override default retry time for detach to wait for executing
# APIs to complete.
################################################################
#CFGFLAGS += -DBCM_DETACH_POLL_INTERVAL_USECS_DEFAULT=100000
#CFGFLAGS += -DBCM_DETACH_NUM_RETRIES_DEFAULT=3000

################################################################
# Disable the RX module initialization
################################################################
#CFGFLAGS += -DBCM_RX_DISABLE

################################################################
# Enable TX callback in interrupt thread
################################################################
#CFGFLAGS += -DTX_CB_INTR

override SBX_CHIPS=
