CFG_MLONG64 ?= 0 CFG_LITTLE ?= 0 # Mindbender CFG_RELOC ?= 0 CFG_UNCACHED ?= 0 # Mindbender CFG_NEWRELOC ?= 0 CFG_VAPI ?= 0 CFG_BOOTRAM ?= 0 CFG_RAMAPP ?= 0 # EPI CFG_BOARDNAME = "BCM9$(BRCM_CHIP)" CFG_PCI ?= 0 CFG_ZLIB ?= 0 # enable zlib CFG_SBP ?= 0 # use Single Board Parameter if defined to 1 TOP = ../../../cfe ARCH = mips CPU = bcmcore BOARD = bcm63xx_rom LINUX_KERNEL_DIR=../../../../kernel/linux HOSTTOOLS = ../../../../hostTools TARGETS_DIR = ../../../../targets SHARED_DIR = ../../../../shared INC_SHARED_PUB_PATH = $(SHARED_DIR)/opensource/include/bcm963xx INC_SHARED_PRIV_PATH = $(SHARED_DIR)/broadcom/include/bcm963xx FLASH_DIR = $(SHARED_DIR)/opensource/flash BCMSPI_DIR = $(SHARED_DIR)/opensource/spi BOOT_DIR = ${ARCH_TOP}/board/$(BOARD)/src ASM_FILE = flashimg.S RAM_BUILD = ../bcm63xx_ram #TOOLS=../../../../uclibc-crosstools-gcc-4.4.2-1/usr/bin/mips-linux- include $(TOP)/arch/mips/board/$(BOARD)/src/rom_cfe.mk VPATH += ${FLASH_DIR} $(BCMSPI_DIR) INCDIRS += -I${ARCH_TOP}/board/bcm63xx_ram/include -I${INC_SHARED_PUB_PATH} -I${INC_SHARED_PRIV_PATH} BSPOBJS_ROM := $(BSPOBJS) ifneq ($(strip $(BRCM_IKOS)),y) BSPOBJS += flashimg.o $(LZMAOBJS) endif export INC_CFI_FLASH_DRIVER INC_SPI_FLASH_DRIVER INC_NAND_FLASH_DRIVER INC_SPI_PROG_NAND ALL : sanity_check cfe$(BRCM_CHIP) ifneq ($(strip $(INC_NAND_FLASH_DRIVER)),1) gcc -o ${HOSTTOOLS}/addvtoken -I ${INC_SHARED_PUB_PATH} ${HOSTTOOLS}/addvtoken.c @if [ $(shell find . -name cfe$(BRCM_CHIP).bin -printf '%s\n') -le 65536 ] ; then \ ${HOSTTOOLS}/addvtoken cfe$(BRCM_CHIP).bin bcm9$(BRCM_CHIP)_cfe.w; \ else \ find . -name cfe$(BRCM_CHIP).bin -printf '\nERROR: cfe.bin size, %s, is greater than 65536 maximum size.\n'; \ rm cfe$(BRCM_CHIP) cfe$(BRCM_CHIP).bin; \ fi endif @echo done untar_check: @if [ ! -e $(TOP)/api ]; then \ echo Untarring original CFE source...; \ (cd ../../.. && tar xfzk cfe*.tar.gz 2> /dev/null || true); \ fi sanity_check: @if [ "$(BRCM_CHIP)" = "" ]; then \ echo You must specify chip ID using 'make BRCM_CHIP=[6328|6362|6368|6816]'; exit 1; \ fi @if [ ! -e $(TOP)/api ]; then \ echo Untarring original CFE source...; \ (cd ../../.. && tar xfzk cfe*.tar.gz 2> /dev/null || true); \ $(MAKE) BRCM_CHIP=$(BRCM_CHIP) BLD_NAND=$(BLD_NAND); \ fi mksbp: ALL @echo done sbp: ${MAKE} clean ${MAKE} CFG_SBP?=1 mksbp ifeq ($(strip $(INC_NAND_FLASH_DRIVER)),1) # Build NAND flash boot loader cfe$(BRCM_CHIP) cfe$(BRCM_CHIP).bin : $(CRT0OBJS) $(BSPOBJS_ROM) $(LIBCFE) noflashimg $(MAKE) -C $(RAM_BUILD) $(GLD) -o cfe$(BRCM_CHIP)rom -Map cfe$(BRCM_CHIP)rom.map $(LDFLAGS) $(CRT0OBJS) $(BSPOBJS_ROM) noflashimg.o -L. -lcfe $(LDLIBS) $(OBJCOPY) --output-target=binary cfe$(BRCM_CHIP)rom cfe$(BRCM_CHIP)rom.bin rm noflashimg.* noflashimg: echo "char *_binArrayStart = (char *) 0, *_binArrayEnd = (char *) 0;" > $@.c; \ echo "int decompressLZMA(unsigned char *s, unsigned int sl, unsigned char *d, unsigned int dl);" >> $@.c; \ echo "int decompressLZMA(unsigned char *s, unsigned int sl, unsigned char *d, unsigned int dl){return 0;}" >> $@.c $(GCC) $(CFLAGS) -o $@.o $@.c else # Build NOR flash boot loader cfe$(BRCM_CHIP) cfe$(BRCM_CHIP).bin : $(CRT0OBJS) $(BSPOBJS) $(LIBCFE) $(ASM_FILE) $(GLD) -o cfe$(BRCM_CHIP) -Map cfe$(BRCM_CHIP).map $(LDFLAGS) $(CRT0OBJS) $(BSPOBJS) -L. -lcfe $(LDLIBS) $(OBJDUMP) -d cfe$(BRCM_CHIP) > cfe$(BRCM_CHIP).dis $(OBJCOPY) --output-target=binary cfe$(BRCM_CHIP) cfe$(BRCM_CHIP).bin $(ASM_FILE) : $(TOP)/arch/mips/board/bcm63xx_ram/src rm -f $(ASM_FILE) $(MAKE) -C $(RAM_BUILD) endif clean : untar_check rm -f *.o *~ cfe* *.w *.srec rm -f build_date.c rm -f noflashimg.c >& /dev/null rm -f libcfe.a $(MAKE) -C $(RAM_BUILD) clean distclean : clean release : untar_check $(MAKE) clean $(MAKE) BRCM_CHIP=6328 cp -f cfe*.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6328 BLD_NAND=1 cp -f cfe*.bin $(TARGETS_DIR)/cfe cp -f $(RAM_BUILD)/cfe*ram.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6362 cp -f cfe*.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6362 BLD_NAND=1 cp -f cfe*.bin $(TARGETS_DIR)/cfe cp -f $(RAM_BUILD)/cfe*ram.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6368 cp -f cfe*.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6368 BLD_NAND=1 cp -f cfe*.bin $(TARGETS_DIR)/cfe cp -f $(RAM_BUILD)/cfe*ram.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6816 cp -f cfe*.bin $(TARGETS_DIR)/cfe $(MAKE) clean $(MAKE) BRCM_CHIP=6816 BLD_NAND=1 cp -f cfe*.bin $(TARGETS_DIR)/cfe cp -f $(RAM_BUILD)/cfe*ram.bin $(TARGETS_DIR)/cfe $(MAKE) clean CFE_RAM_START_ADDR := $(OBJDUMP) -f $(RAM_BUILD)/cfe$(BRCM_CHIP) | grep start | cut -d'x' -f2 VMLINUX_START_ADDR := $(OBJDUMP) -f $(LINUX_KERNEL_DIR)/vmlinux | grep start | cut -d'x' -f2 # Must be called from base Linux build directory. ikos_finish: @xxd -g4 cfe$(BRCM_CHIP) | sed -e "s/694b6f31/$(shell $(CFE_RAM_START_ADDR))/" | xxd -r > cfe$(BRCM_CHIP).tmp @mv cfe$(BRCM_CHIP).tmp cfe$(BRCM_CHIP) @xxd -g4 $(RAM_BUILD)/cfe$(BRCM_CHIP) | sed -e "s/694b6f32/$(shell $(VMLINUX_START_ADDR))/" | xxd -r > $(RAM_BUILD)/cfe$(BRCM_CHIP).tmp @mv $(RAM_BUILD)/cfe$(BRCM_CHIP).tmp $(RAM_BUILD)/cfe$(BRCM_CHIP) $(OBJCOPY) --output-target=binary cfe$(BRCM_CHIP) cfe$(BRCM_CHIP).bin $(OBJCOPY) --output-target=srec $(RAM_BUILD)/cfe$(BRCM_CHIP) cferam$(BRCM_CHIP).srec