bfe9c49125
Why I did it Update Broadcom SAI to version 6.0.0.13, SDK 6.5.24, saibcm-modules to 6.5.24.gpl How I did it Brcm SAI 6.0 EA with fixes for CS00012203367, CS00012219613, CS00012213974, CS00012218290, CS00012217169, CS00012211718, CS00012213944, CS00012215529, CS00012218100, CS00012214196, CS00012212681, CS00012205138, CS00012208537, CS00012185316, CS00012208524, CS00012203367, CS00012197364.
140 lines
5.4 KiB
Makefile
140 lines
5.4 KiB
Makefile
#
|
|
# Copyright 2007-2020 Broadcom Inc. All rights reserved.
|
|
#
|
|
# Permission is granted to use, copy, modify and/or distribute this
|
|
# software under either one of the licenses below.
|
|
#
|
|
# License Option 1: GPL
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License, version 2, as
|
|
# published by the Free Software Foundation (the "GPL").
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License version 2 (GPLv2) for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# version 2 (GPLv2) along with this source code.
|
|
#
|
|
#
|
|
# License Option 2: Broadcom Open Network Switch APIs (OpenNSA) license
|
|
#
|
|
# This software is governed by the Broadcom Open Network Switch APIs license:
|
|
# https://www.broadcom.com/products/ethernet-connectivity/software/opennsa
|
|
#
|
|
# $Id: Makefile.linux-iproc Exp $
|
|
# $Copyright: (c) 2007 Broadcom Corp.
|
|
# All Rights Reserved.$
|
|
# Makefile for iproc-CMICd
|
|
|
|
# User must select one platform from below.By default ARM_LINUX is selected. .
|
|
ifeq (,$(BUILD_PLATFORM))
|
|
BUILD_PLATFORM=ARM_LINUX
|
|
endif
|
|
|
|
# TOOLCHAIN_BASE_DIR Toolchain base directory for iPROC-CMICd devices
|
|
# TARGET_ARCHITECTURE Compiler for target architecture
|
|
# KERNDIR Kernel directory for iPROC-CMICd devices
|
|
ifeq (BE,$(ENDIAN_MODE))
|
|
#While BE mode is supported, it's use is very limited. We had a specific customer
|
|
#request for BE support but don't currently mainstream it. So a 5.1.0 version
|
|
#has not been built. Continue using 5.0.3 for any BE support
|
|
TOOLCHAIN_BASE_DIR ?= /projects/ntsw-tools/linux/iproc_ldks/xldk61-be/XLDK32
|
|
KERN_BASE_DIR ?= $(TOOLCHAIN_BASE_DIR)
|
|
TARGET_ARCHITECTURE:=armeb-broadcom-linux-uclibcgnueabi
|
|
KERNDIR ?= $(TOOLCHAIN_BASE_DIR)/kernel/linux
|
|
else
|
|
TOOLCHAIN_BASE_DIR ?= /projects/ntsw-tools/linux/iproc_ldks/XLDK_GCC10/XLDK32
|
|
KERN_BASE_DIR ?= /projects/ntsw-tools/linux/iproc_ldks/xldk61/XLDK32
|
|
TARGET_ARCHITECTURE:= arm-broadcom-linux-uclibcgnueabi
|
|
KERNDIR ?= $(KERN_BASE_DIR)/kernel/linux
|
|
endif
|
|
|
|
ifeq (,$(CROSS_COMPILE))
|
|
CROSS_COMPILE:= $(TARGET_ARCHITECTURE)-
|
|
endif
|
|
|
|
# arm9tools
|
|
TOOLCHAIN_BIN_DIR=$(TOOLCHAIN_BASE_DIR)/buildroot/host/usr/bin
|
|
override PATH:=$(TOOLCHAIN_BASE_DIR)/buildroot/host/usr/$(TARGET_ARCHITECTURE)/bin:$(TOOLCHAIN_BIN_DIR):$(PATH)
|
|
LD_LIBRARY_PATH=$(TOOLCHAIN_BASE_DIR)/buildroot/host/usr/lib
|
|
export TOOLCHAIN_BIN_DIR LD_LIBRARY_PATH
|
|
|
|
CROSS_GCC_VER ?= $(shell $(TOOLCHAIN_BIN_DIR)/$(CROSS_COMPILE)gcc -dumpversion)
|
|
CROSS_GCC_VER_MAJOR := $(shell echo $(CROSS_GCC_VER) | cut -f1 -d.)
|
|
|
|
# Default Linux include directory
|
|
ifeq (,$(LINUX_INCLUDE))
|
|
LINUX_INCLUDE := $(KERNDIR)/include
|
|
endif
|
|
|
|
ifeq (BE,$(ENDIAN_MODE))
|
|
CFGFLAGS += -DSYS_BE_PIO=1 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=1
|
|
ENDIAN = BE_HOST=1
|
|
else
|
|
CFGFLAGS += -DSYS_BE_PIO=0 -DSYS_BE_PACKET=0 -DSYS_BE_OTHER=0
|
|
ENDIAN = LE_HOST=1
|
|
endif
|
|
|
|
CFLAGS += -fno-aggressive-loop-optimizations
|
|
CFLAGS += -Wno-error=maybe-uninitialized
|
|
CFLAGS += -Wno-error=array-bounds
|
|
CFLAGS += -fgnu89-inline
|
|
ifeq "$(shell expr $(CROSS_GCC_VER_MAJOR) \>= 8)" "1"
|
|
CFLAGS += -Wno-stringop-overflow
|
|
CFLAGS += -Wno-stringop-truncation
|
|
CFLAGS += -Wno-error=restrict
|
|
endif
|
|
ifeq "$(shell expr $(CROSS_GCC_VER_MAJOR) \>= 9)" "1"
|
|
CFLAGS += -Wno-address-of-packed-member
|
|
endif
|
|
ifeq "$(shell expr $(CROSS_GCC_VER_MAJOR) \== 10)" "1"
|
|
#There might be a bug in GCC10 that cannot detect initialization correctly.
|
|
CFLAGS += -Wno-error=uninitialized
|
|
CFLAGS += -Wno-error=format-overflow
|
|
CFLAGS += -fcommon
|
|
endif
|
|
|
|
CFGFLAGS += -D$(ENDIAN) -DIPROC_CMICD
|
|
CFGFLAGS += -DBCM_PLATFORM_STRING=\"IPROC_CMICD\"
|
|
|
|
#XLR-54
|
|
CFLAGS += -Wno-error=memset-elt-size #SDK-232626
|
|
CFLAGS += -Wno-error=unused-function
|
|
CFLAGS += -Wno-error=unused-variable
|
|
CFLAGS += -Wno-error=unused-const-variable
|
|
ARCH = arm
|
|
KBUILD_VERBOSE = 1
|
|
|
|
export ARCH KBUILD_VERBOSE
|
|
|
|
comma = ,
|
|
basetarget = $(basename $(notdir $@))
|
|
modname = $(basetarget)
|
|
|
|
# Extra variables.
|
|
EXTRA_CFLAGS = -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags)
|
|
|
|
name-fix = $(subst $(comma),_,$(subst -,_,$1))
|
|
basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))"
|
|
modname_flags = $(if $(filter 1,$(words $(modname))),\
|
|
-D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))")
|
|
|
|
KFLAG_INCLD ?= $(LD_LIBRARY_PATH)/gcc/$(TARGET_ARCHITECTURE)/$(CROSS_GCC_VER)/include
|
|
|
|
ifeq (,$(KFLAGS))
|
|
KFLAGS := -D__LINUX_ARM_ARCH__=7 -D__KERNEL__ -nostdinc -isystem $(KFLAG_INCLD) -I$(LINUX_INCLUDE) -include $(LINUX_INCLUDE)/generated/autoconf.h -I$(KERNDIR)/arch/arm/include -I$(KERNDIR)/arch/arm/include/generated -I$(KERNDIR)/arch/arm/mach-iproc/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -marm -mabi=aapcs-linux -fno-pic -pipe -msoft-float -ffreestanding -march=armv7-a -mfpu=vfp -mfloat-abi=softfp -fomit-frame-pointer -g -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign -mlong-calls
|
|
KFLAGS += -I$(LINUX_INCLUDE)/uapi -I$(LINUX_INCLUDE)/generated/uapi -I$(KERNDIR)/arch/arm/include/uapi -I$(KERNDIR)/arch/arm/include/generated/uapi
|
|
|
|
ifeq "$(shell expr $(CROSS_GCC_VER_MAJOR) \== 10)" "1"
|
|
# WAR: Disable the following optimizations because they will fail the installation of kernel modules
|
|
KFLAGS += -fno-expensive-optimizations -fno-gcse
|
|
endif
|
|
endif
|
|
|
|
ifneq ($(targetplat),user)
|
|
include ${SDK}/make/Makefile.linux-kernel-3_6
|
|
endif
|