1
1
Files
zyxel-vmg8825_b50b-cfw/target/linux/brcm963xx/Makefile
T
2026-04-17 18:33:03 +02:00

257 lines
9.8 KiB
Makefile
Executable File

#
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
DEVICE_TYPE=customer
BOARD:=brcm963xx
BOARDNAME:=Broadcom BCM963xx
FEATURES:=usb pci pcmcia
ifeq ($(shell grep CONFIG_BRCM963xx_SDK_VER_412L08 $(TOPDIR)/.config | cut -d'=' -f2),y)
LINUX_VERSION:=2.6.30
else
ifeq ($(shell grep CONFIG_BRCM963xx_SDK_VER_502L04 $(TOPDIR)/.config | cut -d'=' -f2),y)
LINUX_VERSION:=4.1.45
else ifeq ($(shell grep CONFIG_BRCM963xx_SDK_VER_502L05 $(TOPDIR)/.config | cut -d'=' -f2),y)
LINUX_VERSION:=4.1.51
else ifeq ($(shell grep CONFIG_BRCM963xx_SDK_VER_502L06 $(TOPDIR)/.config | cut -d'=' -f2),y)
LINUX_VERSION:=4.1.52
else ifeq ($(shell grep CONFIG_BRCM963xx_SDK_VER_502L07 $(TOPDIR)/.config | cut -d'=' -f2),y)
LINUX_VERSION:=4.1.52
else
LINUX_VERSION:=3.4.11
endif
endif
ifeq ($(CONFIG_BRCM_SDK_VERSION), "416L05")
ifeq ($(CONFIG_BCM416L05_WIFI_VER_7_14_164_23),y)
WIFI_DRIVER_VER:=7_14_164_23
else ifeq ($(CONFIG_BCM416L05_WIFI_VER_7_14_164_20),y)
WIFI_DRIVER_VER:=7_14_164_20_NEW
else ifeq ($(CONFIG_BCM416L05_WIFI_VER_7_14_164_303),y)
WIFI_DRIVER_VER:=7_14_164_303_NEW
else
WIFI_DRIVER_VER:=7_14_164_23
endif
endif
ifeq ($(CONFIG_BRCM_SDK_VERSION), "502L05")
IMPL=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BCM_WLIMPL))
ifeq ("$(IMPL)", "")
IMPL:=32
endif
ifeq ($(CONFIG_BCM502L05_WIFI_VER_7_14_170_36),y)
WIFI_DRIVER_VER:=7_14_170_36_NEW
WLAN_DHD_TARBALL_DOWNLOAD=n
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_7_14_170_42),y)
WIFI_DRIVER_VER:=7_14_170_42_Date_20191114
WLAN_DHD_TARBALL_DOWNLOAD=n
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_17_10_39_0),y)
WIFI_DRIVER_VER:=17_10_39_0
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_17_10_60_0),y)
WIFI_DRIVER_VER:=17_10_60_0
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_17_10_77_12),y)
WIFI_DRIVER_VER:=17_10_77_12_NEW
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_17_10_77_15),y)
WIFI_DRIVER_VER:=17_10_77_15
else ifeq ($(CONFIG_BCM502L05_WIFI_VER_17_10_99_1301),y)
WIFI_DRIVER_VER:=17_10_99_1301
else
WIFI_DRIVER_VER:=7_14_170_36_NEW
WLAN_DHD_TARBALL_DOWNLOAD=n
endif
endif
ifeq ($(CONFIG_BRCM_SDK_VERSION), "502L06")
IMPL=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BCM_WLIMPL))
ifeq ($(CONFIG_BCM502L06_WIFI_VER_17_10_60_0),y)
WIFI_DRIVER_VER:=17_10_60_0
else ifeq ($(CONFIG_BCM502L06_WIFI_VER_17_10_77_12),y)
WIFI_DRIVER_VER:=17_10_77_12
else
WIFI_DRIVER_VER:=17_10_60_0
endif
endif
ifeq ($(CONFIG_BRCM_SDK_VERSION), "502L07")
IMPL=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BCM_WLIMPL))
ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_99_7),y)
WIFI_DRIVER_VER:=17_10_99_7
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_99_1301),y)
WIFI_DRIVER_VER:=17_10_99_1301
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_99_17),y)
WIFI_DRIVER_VER:=17_10_99_17
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_99_27),y)
WIFI_DRIVER_VER:=17_10_99_27_DATE_20200903
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_117_0),y)
WIFI_DRIVER_VER:=17_10_117_0_Date_20191231
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_121_11),y)
WIFI_DRIVER_VER:=17_10_121_11
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_7_14_170_43),y)
WIFI_DRIVER_VER:=7_14_170_43_DATE_20200903
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_121_2004),y)
WIFI_DRIVER_VER:=17_10_121_2004
else ifeq ($(CONFIG_BCM502L07_WIFI_VER_17_10_121_37),y)
WIFI_DRIVER_VER:=17_10_121_37
else
WIFI_DRIVER_VER:=17_10_99_7
endif
endif
SUBTARGETS:=96858GWOV 96838GWOV 963158GW 963138ref 963269bhr 963178GWV 962118GWV $(filter fmg% vmg% xmg% emg% pm% px% dx% mx% ex% wx%,$(shell find * -maxdepth 0 -type d))
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES=libc libgcc busybox dropbear mtd opkg
define Target/Description
Build firmware images for Broadcom based xDSL/routers
currently supports BCM63138, BCM63168, BCM63268 BCM63169 and BCM63269 based devices.
endef
ifneq ($(call qstrip,$(CONFIG_BRCM_SDK_PATCH_VERSION)),)
BROADCOM_SDK_PACKAGE:=broadcom_sdk_$(shell echo $(CONFIG_BRCM_SDK_VERSION))$(shell echo $(CONFIG_BRCM_SDK_PATCH_VERSION))$(shell echo $(CONFIG_BRCM_SDK_PACKAGE_SUFFIX))_pkg.tar.bz2
else
BROADCOM_SDK_PACKAGE:=broadcom_sdk_$(shell echo $(CONFIG_BRCM_SDK_VERSION))$(shell echo $(CONFIG_BRCM_SDK_PACKAGE_SUFFIX))_pkg.tar.bz2
endif
BROADCOM_SDK_DIR:=$(KERNEL_BUILD_DIR)/broadcom-sdk-$(shell echo $(CONFIG_BRCM_SDK_VERSION))
# __zy_bsp__ >>>
ZYBSP_BCM_SDK_VER_CHK := $(findstring $(CONFIG_BRCM_SDK_VERSION),"502L04" "502L05" "502L06" "502L07")
ifneq ($(ZYBSP_BCM_SDK_VER_CHK),)
ZYBSP_BCM_SDK_VER=502L0X
CONFIG_BRCM963xx_SDK_VER_502L0X=y
endif
# __zy_bsp__ <<<
define genMRDinfo
mkdir -p $(BROADCOM_SDK_DIR)/shared/zyxel
echo -e "/*\n * This file is auto-generated by OpenWRT if compile BRCM963xx platform.\n * !!! Don't edit it !!!\n */\n" > $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo -e "#ifndef _ZYXEL_MRD_H_\n#define _ZYXEL_MRD_H_" >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define VENDORNAME $(CONFIG_MRD_VENDOR_NAME)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define PRODUCTNAME $(CONFIG_MRD_PRODUCT_NAME)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define SERIALNUMBER $(CONFIG_MRD_SERIAL_NO)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define MAINFEATUREBIT $(CONFIG_MRD_MAIN_FEATURE_BIT)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define ZYXEL_MODEL_ID $(CONFIG_MRD_MODEL_ID)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define DEBUGBIT $(CONFIG_MRD_DEBUG_BIT)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define COUNTRYCODE $(CONFIG_MRD_COUNTRY_CODE)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo '#define FIRMWARE_VERSION $(CONFIG_ZYXEL_FIRMWARE_VERSION)' >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
echo "#endif" >> $(BROADCOM_SDK_DIR)/shared/zyxel/MRD.h
endef
# Special action to support RTK switch
define Kernel/Prepare/RTKSW
endef
ifeq ("$(CONFIG_BRCM963xx_SDK_VER_502L0X)", "y")
INC_DIR:=include/uapi
else
INC_DIR:=include
endif
KERNEL_INCLUDE_LINK_NAME := bcm_local_kernel_include
KERNEL_MIPS_INCLUDE_LINK_NAME := bcm_local_kernel_mips_include
KERNEL_ARM_INCLUDE_LINK_NAME := bcm_local_kernel_arm_include
KERNEL_INCLUDE_LINK := $(KERNEL_BUILD_DIR)/$(KERNEL_INCLUDE_LINK_NAME)
KERNEL_MIPS_INCLUDE_LINK := $(KERNEL_BUILD_DIR)/$(KERNEL_MIPS_INCLUDE_LINK_NAME)
KERNEL_ARM_INCLUDE_LINK := $(KERNEL_BUILD_DIR)/$(KERNEL_ARM_INCLUDE_LINK_NAME)
define Kernel/Prepare/BCM
bzcat $(DL_DIR)/$(BROADCOM_SDK_PACKAGE) | /bin/tar -C $(KERNEL_BUILD_DIR)/ -xf -
endef
define Kernel/Prepare
$(call Kernel/Prepare/BCM)
$(call Kernel/Prepare/RTKSW)
if [ ! -f $(BROADCOM_SDK_DIR)/targets/$(BCM_PROFILE)/$(BCM_PROFILE) ]; then mkdir -p $(BROADCOM_SDK_DIR)/targets/$(BCM_PROFILE)/ ; fi
$(TOPDIR)/scripts/genBrcmProfile.sh $(TOPDIR)/.config $(BROADCOM_SDK_DIR)/targets/$(BCM_PROFILE)/$(BCM_PROFILE) $(CONFIG_BRCM_SDK_VERSION)
echo "$(BCM_PROFILE)" > $(BROADCOM_SDK_DIR)/.last_profile
$(call genMRDinfo)
ln -s -f $(LINUX_DIR)/$(INC_DIR) $(KERNEL_INCLUDE_LINK);
ifneq ($(CONFIG_mips),)
ln -s -f $(LINUX_DIR)/arch/mips/$(INC_DIR) $(KERNEL_MIPS_INCLUDE_LINK);
else
ln -s -f $(LINUX_DIR)/arch/arm/$(INC_DIR) $(KERNEL_ARM_INCLUDE_LINK);
endif
$(call Kernel/Prepare/Default)
endef
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
BRCM_DRIVER_WIRELESS=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BRCM_DRIVER_WIRELESS))
BCM_WL_IMPL=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BCM_WLIMPL))
VISUALIZATION=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BUILD_WLVISUALIZATION))
WBD=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BUILD_WBD))
BUILD_CPEROUTER=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BUILD_BRCM_CPEROUTER))
BUILD_HOSTAPD=$($(shell echo CONFIG_BRCMSDK$(CONFIG_BRCM_SDK_VERSION)_BUILD_BRCM_HOSTAPD))
WL_BUILD_DIR=$(BROADCOM_SDK_DIR)/bcmdrivers/broadcom/net/wl/
PERLIB_DIR=$(STAGING_DIR_HOST)/bin/$(shell echo $(CONFIG_BRCM_SDK_VERSION))/PerlLib
PROFILEDIRSTR=$(BROADCOM_SDK_DIR)/targets/$(BCM_PROFILE)/$(BCM_PROFILE)
ifeq ($(BCM_WL_IMPL), 53)
# router directory changes from wifi driver 17.10.39.0
CPE_WL_ROUTER_BUILD_DIR=$(WL_BUILD_DIR)/impl$(BCM_WL_IMPL)/main/components/router/
else ifeq ($(BCM_WL_IMPL), 61)
CPE_WL_ROUTER_BUILD_DIR=$(WL_BUILD_DIR)/impl$(BCM_WL_IMPL)/main/components/router/
else ifeq ($(BCM_WL_IMPL), 55)
CPE_WL_ROUTER_BUILD_DIR=$(WL_BUILD_DIR)/impl$(BCM_WL_IMPL)/main/components/router/
else ifeq ($(BCM_WL_IMPL), 63)
CPE_WL_ROUTER_BUILD_DIR=$(WL_BUILD_DIR)/impl$(BCM_WL_IMPL)/main/components/router/
else
#SDK 502L05p1 modify bcmdrivers\broadcom\net\wl\cperouter_init_config.pl and need to have two additional parameters.
PERLIB_DIR=$(STAGING_DIR_HOST)/bin/$(shell echo $(CONFIG_BRCM_SDK_VERSION))/PerlLib
PROFILEDIRSTR=$(BROADCOM_SDK_DIR)/targets/$(BCM_PROFILE)/$(BCM_PROFILE)
CPE_WL_ROUTER_BUILD_DIR=$(WL_BUILD_DIR)/impl$(BCM_WL_IMPL)/main/src/router/
endif
ifeq ($(BUILD_CPEROUTER),y)
CPE_ROUTER_FILE=$(CPE_WL_ROUTER_BUILD_DIR)/config/defconfig-4.1-vista-dhdap-router
CPE_ROUTER_CONF=$(CPE_WL_ROUTER_BUILD_DIR)/config/defconfig-4.1-vista-dhdap-bca-cperouter
else
CPE_ROUTER_CONF=$(CPE_WL_ROUTER_BUILD_DIR)/config/defconfig-2.6-vista-dhdap-router-atlas
endif
HOSTTOOLS_PERL_LIB = $(TOPDIR)/tools/private/broadcom/brcm-imageutil-$(shell echo $(CONFIG_BRCM_SDK_VERSION))/files/$(shell echo $(CONFIG_BRCM_SDK_VERSION))/PerlLib
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ifeq ("$(BRCM_DRIVER_WIRELESS)", "")
define prepareWlConfig
@echo "No need to config wl when wl driver disabled."
endef
else
define prepareWlConfig
ifeq ("$(BUILD_CPEROUTER)","y")
cp $(CPE_ROUTER_FILE) $(CPE_ROUTER_CONF)
endif
endef
endif
define Kernel/Configure
$(call Kernel/Configure/Default)
ifeq ("$(CONFIG_BRCM963xx_SDK_VER_502L0X)", "y")
make -C $(BROADCOM_SDK_DIR) create_install
make -C $(BROADCOM_SDK_DIR) bcmdrivers_autogen
make -C $(BROADCOM_SDK_DIR) rdp_link
make -C $(BROADCOM_SDK_DIR) generate_cms_dmp_flags_h
make -C $(BROADCOM_SDK_DIR) dtbs
$(call prepareWlConfig)
ifeq ("$(BUILD_CPEROUTER)","y")
make -C $(BROADCOM_SDK_DIR) hnd_dongle
endif
endif
endef
$(eval $(call BuildTarget))