Newer
Older
Import / research / other / WakeXBMC / Router / DGN2000_V1.1.1_src / kernel / sc.mak

# -----------------------------------------------------------------|
# sercomm add
# -----------------------------------------------------------------|


help:
	@echo "make help      --> show usage, sercomm modified"
#	@echo "make cfg_v4    --> copy kernel config for v4"
#	@echo "make cfg_v4b   --> copy kernel config for v4b"
#	@echo "make cfe_v4sp  --> copy kernel config for v4sp"
	@echo "make cfg_nr    --> copy kernel config for NUv2"
	@echo "make cfg_nrb    --> copy kernel config for NUv2"
	@echo "make cfg_n2k    --> copy kernel config for DGN2000"
	@echo "make cfg_n2kb    --> copy kernel config for DGN2000B"			
	@echo "make sc_kernel --> build vmlinux.lz"
	@echo "make clean     --> clean kernel"
	@echo "make sc_driver --> install drivers"      
	@echo "make sc_GPL    --> GPL release"  
	@echo "make bcm_fw    --> build bcm code"  
	@echo "make bcm_clean --> clean bcm code"  
	@echo "make note      --> driver change note"

##GPL_DIR=/root/fw/GPL
note:
	@cat README
	
sc_GPL:
	@echo
	@echo "<-- GPL for bcm kernel -->"
	@echo " GPL_DIR = $(GPL_DIR) "
#-- copy files --
	#make clean
	cp -ra ./  $(GPL_DIR)/kernel
#-- remove files -- 
	rm -rf $(GPL_DIR)/kernel/bin
	rm -rf $(GPL_DIR)/kernel/userapps
	rm -f $(GPL_DIR)/kernel/shared
#	cp -ra ../../BootCode/bcm963xx_cfe_src_010037_1002/shared $(GPL_DIR)/kernel/
	cp -ra ../../BootCode/bcm963xx_cfe_src_010037_1201/shared $(GPL_DIR)/kernel/
#-- remove not open bcm drivers --
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/atm
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/atmbondingeth
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/net
##	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/atmapi        
##	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/atmapi        
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/atmbonding    
##	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/bcmprocfs     
	rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/profiler      
#-- copy needed headers --
	@mkdir -p $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/softdsl
	@cp bcmdrivers/broadcom/char/adsl/impl1/AdslCoreMap.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/
	@cp bcmdrivers/broadcom/char/adsl/impl1/softdsl/AdslCoreDefs.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/softdsl/
	@cp bcmdrivers/broadcom/char/adsl/impl1/softdsl/AdslXfaceData.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/softdsl/
	@cp bcmdrivers/broadcom/char/adsl/impl1/softdsl/CircBuf.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/softdsl/
	@mkdir -p $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348 
	@cp bcmdrivers/broadcom/char/adsl/impl1/adslcore6348/adsl_defs.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348 
	@mkdir -p $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348B 
	@cp bcmdrivers/broadcom/char/adsl/impl1/adslcore6348B/adsl_defs.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348B
	@mkdir -p $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348C
#	@cp bcmdrivers/broadcom/char/adsl/impl1/adslcore6348C/adsl_defs.h $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl/impl1/adslcore6348C
#-- linux config --
	sed 's/CONFIG_BCM_ENET=m/# CONFIG_BCM_ENET is not set/' $(GPL_DIR)/kernel/kernel/linux/.config >  $(GPL_DIR)/kernel/kernel/linux/.config2
	sed 's/CONFIG_BCM_WLAN=m/# CONFIG_BCM_WLAN is not set/' $(GPL_DIR)/kernel/kernel/linux/.config2 >  $(GPL_DIR)/kernel/kernel/linux/.config3
	sed 's/CONFIG_BCM_ADSL=m/# CONFIG_BCM_ADSL is not set/' $(GPL_DIR)/kernel/kernel/linux/.config3 >       $(GPL_DIR)/kernel/kernel/linux/.config4 
	sed 's/CONFIG_BCM_ATMAPI=m/# CONFIG_BCM_ATMAPI is not set/' $(GPL_DIR)/kernel/kernel/linux/.config4 >   $(GPL_DIR)/kernel/kernel/linux/.config  

	rm -f $(GPL_DIR)/kernel/kernel/linux/.config2
	rm -f $(GPL_DIR)/kernel/kernel/linux/.config3
	rm -f $(GPL_DIR)/kernel/kernel/linux/.config4
	rm -f $(GPL_DIR)/kernel/kernel/linux/.config_4M
	rm -f $(GPL_DIR)/kernel/kernel/linux/.config_8M

	echo PROJ_DIR_KERNEL_SRC=kernel/kernel/linux >> $(GPL_DIR)/Rules.mak
	echo "export PROJ_DIR_KERNEL_SRC" >> $(GPL_DIR)/Rules.mak
	cp vmlinux.lz $(GPL_DIR)/
##only leave targets/96348W3-N2K
	#mkdir $(GPL_DIR)/kernel/temp
	#mv $(GPL_DIR)/kernel/targets/96348W3-N2K $(GPL_DIR)/kernel/temp
	#rm -rf $(GPL_DIR)/kernel/targets
	#mv $(GPL_DIR)/kernel/temp $(GPL_DIR)/kernel/targets 
##del 
	#rm -rf $(GPL_DIR)/kernel/bcm963xx_3.12L.01_combo 
	#rm -rf $(GPL_DIR)/kernel/hostTools/*.c
	#rm -rf $(GPL_DIR)/kernel/hostTools/Makefile
	#rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/bcmprocfs/impl1/*.c
	#rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/bcmprocfs/impl1/*.h
	#rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/p8021ag
	#rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/xtmcfg
	#rm -rf $(GPL_DIR)/kernel/bcmdrivers/broadcom/char/adsl
	

sc_kernel: vmlinux.lz_only  
	@echo -e "\\e[36m -- make kernel done --\e[0m"	
	@echo

sc_GPL_build2:
	cp vmlinux.lz ../vmlinux.lz
        
sc_GPL_build: vmlinux.lz_only sc_GPL_build2
	@echo -e "\\e[36m -- make kernel done --\e[0m"	
	@echo

sc_modules: profile_check create_install modbuild kernelbuildlite

ifeq ($(TARGET_HOME),)
FS_DIR = $(BUILD_DIR)/../../Source/target
else
FS_DIR = $(TARGET_HOME)/target
endif

BCM_DIR= $(BUILD_DIR)/bin

sc_driver: sc_modules sc_modules_install nas_sc wlctl_sc wl_sc adsl_sc wps_sc
	@echo BUILD_DIR=$(BUILD_DIR)
	@echo FS_DIR=$(FS_DIR)
	@echo BCM_DIR=$(BCM_DIR)                


	cp $(BCM_DIR)/adsldd.ko $(FS_DIR)/lib/modules/
	cp $(BCM_DIR)/bcm_enet.ko $(FS_DIR)/lib/modules/
#	cp $(BCM_DIR)/vnet.ko $(FS_DIR)/lib/modules/

	cp $(BCM_DIR)/atmapi.ko $(FS_DIR)/lib/modules/
	cp $(BCM_DIR)/blaa_dd.ko $(FS_DIR)/lib/modules/
	cp $(BCM_DIR)/br2684.ko $(FS_DIR)/lib/modules/

	cp $(BCM_DIR)/adsl_phy.bin $(FS_DIR)/lib/modules/
	cp $(BCM_DIR)/adslctl $(FS_DIR)/usr/sbin/
	cp $(BCM_DIR)/atmctl $(FS_DIR)/usr/sbin/

	cp $(BCM_DIR)/wlctl $(FS_DIR)/usr/sbin/
	cp $(BCM_DIR)/nas $(FS_DIR)/usr/sbin/
	cp $(BCM_DIR)/wl.ko $(FS_DIR)/lib/modules/
	cp $(BCM_DIR)/libwlctl.so $(FS_DIR)/lib/
#	cp $(BCM_DIR)/libwlbcmcrypto.so $(FS_DIR)/lib/
#	cp $(BCM_DIR)/libwlbcmshared.so $(FS_DIR)/lib/

	@if [ -e $(BCM_DIR)/libwlbcmcrypto.so ]; then\
		echo "copy libwlbcmcrypto.so from $(BCM_DIR) to $(FS_DIR)";\
		cp $(BCM_DIR)/libwlbcmcrypto.so $(FS_DIR)/lib/;\
	fi
	@if [ -e $(BCM_DIR)/libwlbcmshared.so ]; then\
		echo "copy libwlbcmshared.so from $(BCM_DIR) to $(FS_DIR)";\
		cp $(BCM_DIR)/libwlbcmshared.so $(FS_DIR)/lib/;\
	fi
	@if [ -e $(FS_DIR)/usr/etc/wlan ]; then\
		rm -rf $(FS_DIR)/usr/etc/wlan ;\
	fi
	@if [ -e $(BCM_DIR)/wsccmd ]; then\
		cp $(BCM_DIR)/wsccmd $(FS_DIR)/usr/sbin ;\
	fi

	@if [ -e $(BCM_DIR)/wsc_config_1a_ap.txt ]; then\
		cp $(BCM_DIR)/wsc_config_1a_ap.txt $(FS_DIR)/usr/etc ;\
	fi

	mkdir $(FS_DIR)/usr/etc/wlan
	cp $(BCM_DIR)/bcm4322_map.bin $(FS_DIR)/usr/etc/wlan
	@echo -e "\\e[36m -- sc_driver --\e[0m"	

vmlinux.lz_only : sanity_check profile_check create_install kernelbuild hosttools vmlinux.lz_gen

vmlinux.lz_gen:
	@rm -f ./vmlinux
	@rm -f ./vmlinux.bin
	@rm -f ./vmlinux.lz
	cp $(KERNEL_DIR)/vmlinux . ; \
	$(STRIP) --remove-section=.note --remove-section=.comment vmlinux; \
	$(OBJCOPY) -O binary vmlinux vmlinux.bin; \
	$(HOSTTOOLS_DIR)/cmplzma -k -2 vmlinux vmlinux.bin vmlinux.lz
        
nas_sc:
#	echo "nas_sc=$(BROADCOM_DIR)"
	rm -rf $(BROADCOM_DIR)/nas/*
	cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/bcm9$(BRCM_CHIP)/nas/* $(BROADCOM_DIR)/nas; 
	$(MAKE) -C $(BROADCOM_DIR)/nas sc
        
wlctl_sc:
	rm -rf $(BROADCOM_DIR)/wlctl/*
	cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/bcm9$(BRCM_CHIP)/wlctl/* $(BROADCOM_DIR)/wlctl
	$(MAKE) -C $(BROADCOM_DIR)/wlctl sc

wl_sc:
	cp  $(BRCMDRIVERS_DIR)/broadcom/net/wl/bcm9$(BRCM_CHIP)/wl.ko bin/
	#cp  $(BRCMDRIVERS_DIR)/broadcom/net/wl/bcm9$(BRCM_CHIP)/shared/bcm4318_map.bin bin/
wps_sc:
	$(MAKE) -C $(BRCMDRIVERS_DIR)/broadcom/net/wl/bcm9$(BRCM_CHIP)/wsc sc

adsl_sc:
	cp  $(BRCMDRIVERS_DIR)/broadcom/char/adsl/bcm9$(BRCM_CHIP)/adsl_phy.bin bin/
	$(MAKE) -C $(BROADCOM_DIR)/atmctl sc
	$(MAKE) -C $(BROADCOM_DIR)/adslctl sc

sc_modules_install:
	cp $(BRCMDRIVERS_DIR)/broadcom/char/adsl/bcm9$(BRCM_CHIP)/adsldd.ko bin/
	cp $(BRCMDRIVERS_DIR)/broadcom/net/enet/bcm9$(BRCM_CHIP)/bcm_enet.ko bin/
#	cp $(BRCMDRIVERS_DIR)/broadcom/net/enet/bcm9$(BRCM_CHIP)/vnet.ko bin/
	cp $(BRCMDRIVERS_DIR)/broadcom/char/atmapi/bcm9$(BRCM_CHIP)/atmapi.ko bin/
	cp $(BRCMDRIVERS_DIR)/broadcom/atm/bcm9$(BRCM_CHIP)/blaa_dd.ko bin/
	cp kernel/linux/net/atm/br2684.ko bin/

show:
	@echo Profile=$(PROFILE)  
	@echo WL=$(WL)  

sc_help:
#	@more Readme_allen.txt
	@echo
	@echo "-----------------------------------------------------------"
	@echo "make sc_adsl: display usage to change ATM driver/ adsl phy"


sc_adsl:
	@echo " CMD             ATM driver             ADSL phy"
	@echo " -------------   --------------------   -----------"
	@echo " make sc_adsl_1: 3.12.01 org            3.12.01 org"
	@echo " make sc_adsl_2: AdslDrv_Linux3_A2x020e a2pb023b (A) b2pb022l (B)"
	@echo " make sc_adsl_3: AdslDrv_Linux3_A2x020a b2pb021k"
	@echo " make sc_adsl_4: AdslDrv_Linux3_A2x020e a2pb023b (A) b2pb023h (B)"

	@echo		
	@echo	"Reference:"	
	@echo " DGN2000A    AdslDrv_Linux3_A2x020e  a2pb023b"
	@echo " DGN2000B    AdslDrv_Linux3_A2x020a  b2pb021k"
#	@echo " DGN2000B    AdslDrv_Linux3_A2x020e  b2pb022l"
	@echo " DGN2000B    AdslDrv_Linux3_A2x020e  b2pb023h"
	@echo " DG834NUv2A  AdslDrv_Linux3_A2x020e  a2pb023b"
#	@echo " DG834NUv2B  AdslDrv_Linux3_A2x020a  b2pb021k"
	@echo " DG834NUv2B  AdslDrv_Linux3_A2x020e  b2pb023h"

.PHONY: sc_adsl_rm_link
	
sc_adsl_rm_link:
	rm -rf bcmdrivers/broadcom/char/adsl/impl1
	rm -f bcmdrivers/broadcom/include/bcm963xx
	rm -f userapps/broadcom/adslctl
#	rm -f userapps/broadcom/cfm	

sc_adsl_1: sc_adsl_rm_link
	@echo " ... link to original code ... "
	ln -sf impl1_org bcmdrivers/broadcom/char/adsl/impl1
	ln -sf bcm963xx_org bcmdrivers/broadcom/include/bcm963xx
	ln -sf adslctl_org userapps/broadcom/adslctl
#	ln -sf cfm_org userapps/broadcom/cfm	
	
sc_adsl_2: sc_adsl_rm_link
	@echo " ... link to AdslDrv_Linux3_A2x020e / b2pb022l ... "
	ln -sf adslcore6348B_b2pb022l bcmdrivers/broadcom/char/adsl/impl1_A2x020e/adslcore6348B
	ln -sf impl1_A2x020e bcmdrivers/broadcom/char/adsl/impl1
	ln -sf bcm963xx_A2x020e bcmdrivers/broadcom/include/bcm963xx
	ln -sf adslctl_A2x020e userapps/broadcom/adslctl
#	ln -sf cfm_A2x020e userapps/broadcom/cfm	


sc_adsl_3: sc_adsl_rm_link
	@echo " ... link to AdslDrv_Linux3_A2x020a / b2pb021k ... "
	ln -sf impl1_A2x020a bcmdrivers/broadcom/char/adsl/impl1
	ln -sf bcm963xx_A2x020a bcmdrivers/broadcom/include/bcm963xx
	ln -sf adslctl_A2x020a userapps/broadcom/adslctl
#	ln -sf cfm_org userapps/broadcom/cfm	

sc_adsl_4: sc_adsl_rm_link
	@echo " ... link to AdslDrv_Linux3_A2x020e / b2pb023h ... "
	ln -sf adslcore6348B_b2pb023h bcmdrivers/broadcom/char/adsl/impl1_A2x020e/adslcore6348B
	ln -sf impl1_A2x020e bcmdrivers/broadcom/char/adsl/impl1
	ln -sf bcm963xx_A2x020e bcmdrivers/broadcom/include/bcm963xx
	ln -sf adslctl_A2x020e userapps/broadcom/adslctl

_chmod:
	@chmod 774 $(TARGETS_DIR)/buildFS

cfg_v4: _chmod
	rm -f targets/96348W3/96348W3
	cp  targets/96348W3/96348W3A  targets/96348W3/96348W3
	cp kernel/linux/.config_4M kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h

cfg_v4b: _chmod
	rm -f targets/96348W3/96348W3
	cp  targets/96348W3/96348W3B  targets/96348W3/96348W3
	cp kernel/linux/.config_4M kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h


cfg_v4sp: _chmod
	rm -f targets/96348W3/96348W3
	cp  targets/96348W3/96348W3A  targets/96348W3/96348W3
	cp kernel/linux/.config_8M kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_8m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h

cfg_nr: _chmod sc_adsl_2
	rm -f targets/96358GW-MIMO/96358GW-MIMO
	cp  targets/96358GW-MIMOA/96358GW-MIMOA  targets/96358GW-MIMO/96358GW-MIMO
	cp kernel/linux/.config_NR kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h

cfg_nrb: _chmod sc_adsl_4
	rm -f targets/96358GW-MIMO/96358GW-MIMO
	cp  targets/96358GW-MIMOB/96358GW-MIMOB  targets/96358GW-MIMO/96358GW-MIMO
	cp kernel/linux/.config_NR kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h

cfg_n2k: _chmod sc_adsl_2
	rm -f targets/96348W3-N2K/96348W3-N2K
	cp  targets/96348W3-N2KA/96348W3-N2KA targets/96348W3-N2K/96348W3-N2K
	cp kernel/linux/.config_n2k kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h

cfg_n2kb: _chmod sc_adsl_2
	rm -f targets/96348W3-N2K/96348W3-N2K
	cp  targets/96348W3-N2KB/96348W3-N2KB  targets/96348W3-N2K/96348W3-N2K
	cp kernel/linux/.config_n2k kernel/linux/.config
	rm -f shared/opensource/include/bcm963xx/bcm_hwdefs.h
	ln -sf bcm_hwdefs_4m.h shared/opensource/include/bcm963xx/bcm_hwdefs.h


clean_bcm_links:
	@echo -e "\\e[36m -- clean_bcm_links --\e[0m"	
	rm -f bcmdrivers/opensource/char/serial/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/opensource/char/board/bcm963xx/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/atm/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/net/wl/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/net/enet/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/char/adsl/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/char/atmapi/bcm9$(BRCM_CHIP)
	rm -f bcmdrivers/broadcom/char/bcmprocfs/bcm9$(BRCM_CHIP)