##
#
# Makefile
#
# GNU makefile for bootLoader object
##

USE_BCM_CMD_ARRAY?=1

CUR_DIR=$(shell readlink -f .)

ifeq ($(strip $(CPU_ARCH)),arm)
CROSS_COMPILE=$(CROSS_COMPILE_AARCH32)
else ifeq ($(strip $(CPU_ARCH)),arm64)
CROSS_COMPILE=$(CROSS_COMPILE_AARCH64)
else
$(error unsupported CPU_ARCH "$(CPU_ARCH)")
endif

ifeq ($(strip $(CROSS_COMPILE)),)
$(error CROSS_COMPILE is not set)
endif

#
# Source tree roots
#
PROJ_DIR = .

# Common GCC flags
CFLAGS = -W -Wall -Werror -g -gdwarf-2 -nostdlib -fno-builtin -fno-strict-aliasing
#CFLAGS += -mfloat-abi=hard -mfpu=neon-vfpv4 -march=armv7-a -marm

SFLAGS = -W -Wall -Werror -g -gdwarf-2 -nostdlib -fno-builtin
#SFLAGS += -mfloat-abi=hard -mfpu=neon-vfpv4 -march=armv7-a -marm

# Ensure initialized value is put in '.data' section
CFLAGS += -fno-zero-initialized-in-bss

# Speed up LZ4 decompressing
CFLAGS += -DCPU_HAS_EFFICIENT_UNALIGNED_MEMORY_ACCESS=1

HOST_CFLAGS = -W -Wall -g -gdwarf-2 -O0

CHIPVERSIONS = -DBERLIN \
		-DBERLIN_B_0=0x1000 -DBERLIN_C_0=0x2000 -DBERLIN_A_0=0x0000 -DBERLIN_A_1=0x0010 -DBERLIN_A_2=0x0020 \
		-DBERLIN_BG2=0x3000 -DBERLIN_BG2_Z1=0x3000 -DBERLIN_BG2_Z2=0x3010 -DBERLIN_BG2_A0=0x3020 -DBERLIN_BG2_A1=0x3030 \
		-DBERLIN_BG2CDP=0x3040 -DBERLIN_BG2_CT=0x3050 -DBERLIN_BG2_Q=0x3060 -DBERLIN_BG2_DTV=0x3070 \
		-DBERLIN_BG2CD_A0=0x3035
CHIPVERSIONS += -DBERLIN_BG4_CD=0x30A0
CHIPVERSIONS += -DBERLIN_BG4CDP=0x30D0 -DBERLIN_CHIP_VERSION=BERLIN_BG4CDP

CFLAGS += $(CHIPVERSIONS)
SFLAGS += $(CHIPVERSIONS)
HOST_CFLAGS += $(CHIPVERSIONS)

LDFLAGS		= -T source/arch/$(CPU_ARCH)/bootloader_64.lds -Map bootloader.map -Bstatic

#OPTIMIZE=-O0
OPTIMIZE=-Os
CFLAGS += $(OPTIMIZE) -DBOOTLOADER -DDEBUG -I$(CUR_DIR)/common/include -I$(CUR_DIR)/source
SFLAGS += $(OPTIMIZE) -DBOOTLOADER -DDEBUG -I$(CUR_DIR)/common/include -I$(CUR_DIR)/source
HOST_CFLAGS += $(OPTIMIZE)

BERLIN_CHIP_LOWCASE := $(shell echo $(BERLIN_CHIP) | tr '[A-Z]' '[a-z]')

ENABLE_USB_CONSOLE := $(shell echo $(ENABLE_USB_CONSOLE))
ifeq ($(ENABLE_USB_CONSOLE), 1)
CFLAGS += -D_ENABLE_USB_CONSOLE
endif

ifeq ($(FCT_BOOTLOADER),true)
CFLAGS += -DFCT_BOOTLOADER
endif

CHIP_INC_DIR := $(PROJ_DIR)/common/include/chip/$(BERLIN_CHIP_LOWCASE)/$(CPU_TYPE)
CHIP_SRC_DIR := $(PROJ_DIR)/common/chip/$(BERLIN_CHIP_LOWCASE)/$(CPU_TYPE)

# Determine last commit in src tree and status to add to
# bootloader version info. configure.am, sm.bin are modified
# by build scripts, so ignore them during index check.
GIT_LAST_COMMIT = $(shell git rev-parse --verify --short HEAD)
GIT_TREE_DIRTY = $(if $(shell git diff-index --name-only HEAD | \
	grep -E -v '(configure.am|sm.bin)'),-dirty)
CFLAGS += -DBOOTLOADER_VERSION=\"$(GIT_LAST_COMMIT)$(GIT_TREE_DIRTY)\"

### BG4CDP ###
ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
ifeq ($(BERLIN_CHIP), BG4CDP)
CFLAGS += -DBERLIN_SOC_BG4CDP
endif
ifeq ($(BERLIN_CHIP), AS370)
CFLAGS += -DBERLIN_SOC_AS370
endif

BOARD_DIR=customization/$(BERLIN_CHIP_LOWCASE)/$(PLATFORM)
SUPPORT_FASTLOGO = 0
SUPPORT_AVPLL_INIT = 0
INCLUDE_DIR = $(CHIP_INC_DIR)
#FASTLOGO_LIB += $(LIB_CDP_A0)
#FASTLOGO_LD += -Lboard/bg2cdp_a0/out_bg2cdp_a0 -lbg2cdp_a0
LDFLAGS += --fix-cortex-a53-843419
CFLAGS += -mfix-cortex-a53-835769

else
$(error BERLIN_CHIP "$(BERLIN_CHIP)" is not supported!)

endif

CFLAGS += -I$(BOARD_DIR) -I$(OBJDIR)
SFLAGS += -I$(BOARD_DIR) -I$(OBJDIR)

ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
FASTLOGO_DIR=customization/$(BERLIN_CHIP_LOWCASE)/FASTLOGO
DHUB_DIR=customization/$(BERLIN_CHIP_LOWCASE)/DHUB
AVPLL_DIR=customization/$(BERLIN_CHIP_LOWCASE)/AVPLL
else
DHUB=$(BOARD_DIR)/DHUB
AVPLL=$(BOARD_DIR)/AVPLL
THINVPP=$(BOARD_DIR)/THINVPP
#THINVPP_INCLUDE_DIR = $(THINVPP)/source/include/include_BG2_CDP
endif

CFLAGS += -DBERLIN_C_SERIES -I$(INCLUDE_DIR) -Icommon/drivers/nand_ctrl/include/ -Icommon/drivers/nand_ctrl/ -DCPU0_START_ADDR=$(CPU0_START_ADDR)
SFLAGS += -DBERLIN_C_SERIES -I$(INCLUDE_DIR)
HOST_CFLAGS += -I$(INCLUDE_DIR)

ifeq ($(SUPPORT_FASTLOGO),1)
SUPPORT_SHOWLOGO = 1
SUPPORT_AVPLL_INIT = 1
ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
CFLAGS += -DBOOTLOADER_FASTLOGO=1 -DLOGO_ENABLE_MAIN=1 -DLOGO_ENABLE_PIP=0 -DLOGO_ENABLE_AUX=0
else
CFLAGS += -DBOOTLOADER_FASTLOGO=1 -DLOGO_ENABLE_MAIN=1 -DLOGO_ENABLE_PIP=1 -DLOGO_ENABLE_AUX=1
endif
ifeq ($(SUPPORT_SHOWLOGO),1)
CFLAGS += -DBOOTLOADER_SHOWLOGO=1
endif

ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
#SHOW_LOGOFRAME
CFLAGS += -I$(FASTLOGO_DIR)/
CFLAGS += -I$(FASTLOGO_DIR)/include/common/
CFLAGS += -I$(FASTLOGO_DIR)/include/vpp/
CFLAGS += -I$(DHUB_DIR)/include/
CFLAGS += -I$(AVPLL_DIR)/include/
endif

###
### CFLAGS += -I$(THINVPP)/include
### CFLAGS += -I$(THINVPP)/source/include
### CFLAGS += -I$(THINVPP)/source/FE/include
### CFLAGS += -I$(THINVPP)/source/SCL/include
### CFLAGS += -I$(THINVPP)/source/CPCB/include
### CFLAGS += -I$(THINVPP)/source/BE/include
### CFLAGS += -I$(THINVPP)/source/MISC/include
### CFLAGS += -I$(AVPLL)/include
### CFLAGS += -I$(DHUB)/include
else
SUPPORT_SHOWLOGO = 0
endif

ifeq ($(SUPPORT_AVPLL_INIT),1)
ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
CFLAGS += -DBOOTLOADER_INIT_AVPLL
CFLAGS += -I$(AVPLL_DIR)/include/
endif
endif

CFLAGS += -I$(CUR_DIR)/include/
SFLAGS += -I$(CUR_DIR)/include/
HOST_CFLAGS += -I$(CUR_DIR)/include/

CFLAGS += -I$(CUR_DIR)/../../include/
CFLAGS += -I$(CUR_DIR)/common/lib/lz4/lib/
CFLAGS += -I$(CUR_DIR)/common/lib/ -DSTATIC=static
CFLAGS += -I$(CHIP_SRC_DIR)/include
#
# Common source
#
Source :=	$(PROJ_DIR)/source/arch/$(CPU_ARCH)/init_64.S \
		$(PROJ_DIR)/source/arch/$(CPU_ARCH)/mmu_64.S \
		$(PROJ_DIR)/source/arch/$(CPU_ARCH)/cache_64.S \
		$(PROJ_DIR)/source/arch/$(CPU_ARCH)/jump_64.S \
		$(PROJ_DIR)/source/util.c \
		$(PROJ_DIR)/common/lib/string.c \
		$(BOARD_DIR)/pin_init.c \
		$(BOARD_DIR)/led.c \
		$(CHIP_SRC_DIR)/board_init_common.c \
		$(CHIP_SRC_DIR)/diag_pll.c \
		$(CHIP_SRC_DIR)/pinmux.c \
		$(CHIP_SRC_DIR)/chip_init.c \
		$(CHIP_SRC_DIR)/chip_id.c \
		$(CHIP_SRC_DIR)/gpio.c \
		$(CHIP_SRC_DIR)/power_ctrl.c \
		$(PROJ_DIR)/common/lib/crc32.c \
		$(BOARD_DIR)/power_tuning.c

Source +=	$(PROJ_DIR)/common/lib/lz4/lib/lz4.c \
		$(PROJ_DIR)/common/lib/lz4/lib/lz4hc.c \
		$(PROJ_DIR)/common/lib/lz4/lib/lz4frame.c \
		$(PROJ_DIR)/common/lib/lz4/lib/xxhash.c \
		$(PROJ_DIR)/common/lib/lz4/programs/lz4cli.c \
		$(PROJ_DIR)/common/lib/xz/decompress_unxz.c

# Drivers: tz
CFLAGS += -Icommon/drivers/tz
Source +=	$(PROJ_DIR)/common/drivers/tz/tz_nw_boot.c \
		$(PROJ_DIR)/common/drivers/tz/smc_64.S

# Drivers: UART
Source += $(PROJ_DIR)/common/drivers/uart/apb_uart_driver.c $(PROJ_DIR)/common/drivers/uart/lgpl_printf.c
CFLAGS += -I$(PROJ_DIR)/common/drivers/uart \
	  -I$(PROJ_DIR)/common/drivers/i2c

#Driver: i2c_led
Source += $(PROJ_DIR)/common/drivers/i2c_led/i2c_led_driver.c $(PROJ_DIR)/common/drivers/i2c_led/rgb_led.c \
		$(PROJ_DIR)/common/drivers/i2c_led/rgb_led_lp5018.c $(PROJ_DIR)/common/drivers/i2c_led/rgb_led_aw210xx.c
CFLAGS += -I$(PROJ_DIR)/common/drivers/i2c_led

# FDT code
Source +=   $(PROJ_DIR)/source/fdt/fdt_rw.c \
			$(PROJ_DIR)/source/fdt/fdt_ro.c \
			$(PROJ_DIR)/source/fdt/fdt.c \
			$(PROJ_DIR)/source/fdt/fdt_addresses.c \
			$(PROJ_DIR)/source/fdt/fdt_empty_tree.c \
			$(PROJ_DIR)/source/fdt/fdt_mrvl.c \
			$(PROJ_DIR)/source/fdt/fdt_strerror.c \
			$(PROJ_DIR)/source/fdt/fdt_sw.c \
			$(PROJ_DIR)/source/fdt/fdt_wip.c

CFLAGS += -I$(PROJ_DIR)/source/fdt

ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
ifeq ($(SUPPORT_FASTLOGO),1)
#SHOW_LOGOFRAME
Source += $(FASTLOGO_DIR)/show_logoframe.c
Source += $(FASTLOGO_DIR)/source/vpp/vpp_api.c
Source += $(FASTLOGO_DIR)/source/vpp/vpp_mem.c
Source += $(FASTLOGO_DIR)/source/vpp/vpp_isr.c
Source += $(FASTLOGO_DIR)/source/vpp/framequeue.c
Source += $(FASTLOGO_DIR)/source/vpp/vpp_cfg.c
Source += $(FASTLOGO_DIR)/source/vpp/vpp_bcmbuf.c
Source += $(DHUB_DIR)/source/avio_dhub_drv.c
Source += $(DHUB_DIR)/source/hal_dhub.c
endif
ifeq ($(SUPPORT_AVPLL_INIT),1)
Source += $(AVPLL_DIR)/source/avpll_api.c
endif
endif
#ifeq ($(SUPPORT_FASTLOGO),1)
#Source += $(wildcard $(THINVPP)/source/*.c)
#Source += $(wildcard $(THINVPP)/source/FE/source/*.c)
#Source += $(wildcard $(THINVPP)/source/SCL/source/*.c)
#Source += $(wildcard $(THINVPP)/source/CPCB/source/*.c)
#Source += $(wildcard $(THINVPP)/source/BE/source/*.c)
#Source += $(wildcard $(THINVPP)/source/MISC/source/*.c)
#Source += $(wildcard $(AVPLL)/source/*.c)
#Source += $(wildcard $(DHUB)/source/*.c)
#ifeq ($(SUPPORT_SHOWLOGO),1)
#Source += $(PROJ_DIR)/showlogo.c
#endif
#endif

#bg4cdp irq
ifeq ($(BERLIN_CHIP), $(filter $(BERLIN_CHIP), BG4CDP AS370))
Source += $(PROJ_DIR)/source/arch/arm64/armv8_fun.c
Source += $(PROJ_DIR)/source/arch/arm64/exception.S
Source += $(PROJ_DIR)/source/arch/arm64/gic_diag.c
CFLAGS += -I$(PROJ_DIR)/source/arch/arm64/
SFLAGS += -I$(PROJ_DIR)/source/arch/arm64/
endif

ifeq ($(BOOT_TYPE),USBBOOT)
Source += $(PROJ_DIR)/source/usbboot_bootloader.c
CFLAGS += -D_ENABLE_USB_CONSOLE
endif

ifeq ($(BOOT_TYPE),NAND_BOOT)
Source += $(PROJ_DIR)/source/bootloader.c
CFLAGS += -DNAND_BOOT
SFLAGS += -DNAND_BOOT
ENABLE_NAND=y
endif

ifeq ($(BOOT_TYPE),EMMC_BOOT)
Source += $(PROJ_DIR)/source/bootloader.c
CFLAGS += -DEMMC_BOOT
SFLAGS += -DEMMC_BOOT
ENABLE_EMMC=y

ifeq ($(AB_BOOTFLOW), y)
Source += $(PROJ_DIR)/common/drivers/misc/boot_mode.c
CFLAGS += -I$(PROJ_DIR)/common/drivers/misc

CFLAGS += -DCONFIG_AB_BOOTFLOW
SFLAGS += -DCONFIG_AB_BOOTFLOW
endif

endif

Source += $(PROJ_DIR)/source/android/ctype.c \
		$(PROJ_DIR)/source/android/strtol.c

#Source += $(CHIP_DIR)/list_speed.c $(PROJ_DIR)/diag_api.c
#CustomizeFile := $(PROJ_DIR)/customization/$(PLATFORM)/bootloader_customize.c
#ifeq ($(CustomizeFile), $(wildcard $(CustomizeFile)))
	#Source += $(CustomizeFile)
#else
	#Source += $(PROJ_DIR)/customization/default/bootloader_customize.c
#endif

CFLAGS += -Icommon/drivers/pwm/
Source += common/drivers/pwm/pwm_driver.c
Source += source/led_pwm.c

ifneq ($(PV_COMP), )
CFLAGS += -DPV_COMP
Source += common/drivers/pv_comp/pv_compensation.c
Source += common/drivers/pv_comp/pmic_select.c
CFLAGS += -Icommon/drivers/pv_comp
ifeq ($(PV_COMP), I2C)
CFLAGS += -DI2C -DI2C_NEWDRIVER
ifeq ($(CPU_TYPE), A0)
Source += $(CHIP_SRC_DIR)/chip_voltage_info_A0.c
else
Source += $(CHIP_SRC_DIR)/chip_voltage_info_Z1.c
endif
Source += common/drivers/i2c/diag_i2c.c
Source += common/drivers/i2c/i2c_pvd_m88pg86x.c
Source += common/drivers/i2c/i2c_pvd_sy8824b.c
Source += common/drivers/i2c/i2c_pvd_ncp6335d.c
Source += common/drivers/i2c/i2c_pvd_sy20276.c
Source += common/drivers/i2c/i2c_pvd_sy20278.c
endif
endif

ifneq ($(CPUPLL), )
CFLAGS += -DCPUPLL=$(CPUPLL)
endif

ifeq ($(ENABLE_NAND), y)
Source += common/drivers/nand_ctrl/nand_drv.c \
	  $(PROJ_DIR)/common/drivers/flash_ts/nflash_drv.c \
	  $(PROJ_DIR)/common/drivers/flash_ts/flash_ts.c
CFLAGS += -Icommon/drivers/flash -Icommon/drivers/flash_ts
CFLAGS += -DENABLE_NAND
SFLAGS += -DENABLE_NAND
ifeq ($(RANDOMIZER), y)
CFLAGS += -DENABLE_RANDOMIZER
SFLAGS += -DENABLE_RANDOMIZER
endif
ifeq ($(ROOTFS_TYPE), SQUASHFS)
CFLAGS += -DROOTFS_SQUASHFS
endif

ifeq ($(CONFIG_SLC), y)
CFLAGS += -DCONFIG_SLC
SFLAGS += -DCONFIG_SLC
endif

ifeq ($(CONFIG_ENHANCED_SLC), y)
CFLAGS += -DCONFIG_ENHANCED_SLC
SFLAGS += -DCONFIG_ENHANCED_SLC
endif

ifeq ($(CONFIG_NAND_READ_RETRY), y)
CFLAGS += -DCONFIG_NAND_READ_RETRY
SFLAGS += -DCONFIG_NAND_READ_RETRY
endif

ifeq ($(NFCECCCLK), 400)
CFLAGS += -DNFCECCCLK_400
SFLAGS += -DNFCECCCLK_400
endif
endif

ifeq ($(ENABLE_EMMC), y)
Source += common/drivers/emmc_v5/emmcDiag.c \
	  common/drivers/emmc_v5/emmcHC.c \
	  common/drivers/flash/flash_adaptor.c \
	  common/drivers/flash/load_gpt.c \
	  $(PROJ_DIR)/common/drivers/watchdog/dw_watchdog.c \
	  $(PROJ_DIR)/common/drivers/flash_ts/flash_ts.c \
	  $(PROJ_DIR)/common/drivers/flash_ts/emmc_drv.c
CFLAGS += -Icommon/drivers/emmc_v5 -Icommon/drivers/flash -Icommon/drivers/flash_ts -Icommon/drivers/watchdog
CFLAGS += -DENABLE_EMMC -DCONFIG_DCACHE
SFLAGS += -DENABLE_EMMC -DCONFIG_DCACHE

CFLAGS += -Icommon/lib/ext4
Source += common/lib/div64.c \
	  common/lib/ext4/dev.c \
	  common/lib/ext4/ext4_common.c \
	  common/lib/ext4/ext4fs.c

ifeq ($(EXTERNAL_EMMC), y)
CFLAGS += -DEXTERNAL_EMMC
SFLAGS += -DEXTERNAL_EMMC
endif
endif
#ifeq ($(SUPPORT_SHOWLOGO),1)
#Source += $(CHIP_DIR)/irqHandler.S $(CHIP_DIR)/gicDiag.c
#CFLAGS += -I$(PROJ_DIR)/sdio_ctrl
#endif

Source += common/drivers/timer/timer.c common/drivers/timer/apb_timer.c

ifeq ($(CONFIG_USB), y)
ifeq ($(CONFIG_USB_DWC2), y)
Source += \
	common/drivers/usb_ctrl/dwc2/dwc2.c \
	common/drivers/usb_ctrl/dwc2/diag_USB.c \
	common/drivers/usb_ctrl/dwc2/usb_mass.c \
	common/drivers/usb_ctrl/dwc2/usb_hub.c \
	common/drivers/usb_ctrl/dwc2/usb_enum.c \
	common/drivers/usb_ctrl/dwc2/usb2_debug.c \
	common/drivers/usb_ctrl/dwc2/usb2_util.c \
	common/drivers/usb_ctrl/dwc2/usb2_phy.c \
	common/drivers/usb_ctrl/dwc2/diag_buffpool.c \
	common/drivers/usb_ctrl/dwc2/diag_armv8.S \
	common/drivers/usb_ctrl/dwc2/usb_interface.c \
	common/drivers/usb_ctrl/dwc2/diag_misc.c
CFLAGS += -Icommon/drivers/timer -Icommon/drivers/usb_ctrl/dwc2/include
SFLAGS += -Icommon/drivers/timer -Icommon/drivers/usb_ctrl/dwc2/include

CFLAGS += -DCONFIG_USB
SFLAGS += -DCONFIG_USB
else
Source += common/drivers/usb_ctrl/usb.c common/drivers/usb_ctrl/ehci-hcd.c \
	  common/drivers/usb_ctrl/ehci-berlin.c common/drivers/usb_ctrl/usb_storage.c
CFLAGS += -Icommon/drivers/timer -Icommon/drivers/usb_ctrl
SFLAGS += -Icommon/drivers/timer -Icommon/drivers/usb_ctrl
HOST_CFLAGS += -Icommon/drivers/timer -Icommon/drivers/usb_ctrl
CFLAGS += -DCONFIG_USB
SFLAGS += -DCONFIG_USB

ifeq ($(CONFIG_USB0_STORAGE), y)
CFLAGS += -DCONFIG_USB0_STORAGE
SFLAGS += -DCONFIG_USB0_STORAGE
endif

ifeq ($(CONFIG_USB1_STORAGE), y)
CFLAGS += -DCONFIG_USB1_STORAGE
SFLAGS += -DCONFIG_USB1_STORAGE
endif

endif
endif

ifeq ($(CONNECT_BUTTON_ENABLE), y)
CFLAGS += -DENABLE_CONNECT_BTN
SFLAGS += -DENABLE_CONNECT_BTN
endif

ifeq ($(CONFIG_GPT), y)
CFLAGS += -DCONFIG_GPT
SFLAGS += -DCONFIG_GPT
endif

ifeq ($(DISABLE_CRASH_COUNTER), y)
CFLAGS += -DDISABLE_CRASH_COUNTER
SFLAGS += -DDISABLE_CRASH_COUNTER
endif

ifeq ($(ENABLE_EMMC)_$(ENABLE_NAND), y_y)
$(error "NAND and EMMC could not be enabled at the same time !")
endif

#
# Common objects
#
#Object :=	$(patsubst %.S,%.o,$(Source))
#Object :=	$(patsubst %.c,%.o,$(Object))
TMPDIR=.tmp_$(BOOT_TYPE)
OBJDIR=$(TMPDIR)/$(BOOT_TYPE)
Object := $(Source)
Object := $(patsubst %.c,$(OBJDIR)/%.o,$(Object))
Object := $(patsubst %.S,$(OBJDIR)/%.o,$(Object))
Objtree := $(abspath $(dir $(Object)))

#
# Include the make variables (CC, etc...)
#
AS		= $(CROSS_COMPILE)as
# TODO(wzhong): use default gold linker.
LD		= $(CROSS_COMPILE)ld.bfd
CC		= $(CROSS_COMPILE)gcc
CPP		= $(CROSS_COMPILE)g++
AR		= $(CROSS_COMPILE)ar
NM		= $(CROSS_COMPILE)nm
STRIP		= $(CROSS_COMPILE)strip
OBJCOPY		= $(CROSS_COMPILE)objcopy
OBJDUMP		= $(CROSS_COMPILE)objdump
GCCINCDIR	= $(shell $(CC) -print-file-name=include)
PLATFORM_LIBS	= -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc


#
# Common rule
#
$(OBJDIR)/%.o: %.c
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $(PROJ_DIR)/$<
$(OBJDIR)/%.o: %.S
	$(CC) $(SFLAGS) $(EXTRA_CFLAGS) -c -o $@ $(PROJ_DIR)/$<

#
# Common Make targets
#
.PHONY: all init clean fresh
all:	bootloader
#	@./addheader.sh $<.elf $<.img
#	@./encryption.sh $<.img $<.img.en

init:
	#############################################################################
	## Source = $(Source)
	## Object = $(Object)
	#############################################################################
	@mkdir -p $(Objtree)

bootloader:	header $(Object) $(FASTLOGO_LIB)
	#############################################################################
	## SUPPORT_FASTLOGO = $(SUPPORT_FASTLOGO)
	## SUPPORT_SHOWLOGO = $(SUPPORT_SHOWLOGO)
	#############################################################################
	$(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@.elf $(Object) $(FASTLOGO_LD) $(PLATFORM_LIBS)
	$(OBJCOPY) -O binary $@.elf $@.bin
	$(OBJDUMP) -D $@.elf > $@.S
	cp bootloader.elf bootloader_en.elf

.PHONY: header
header:	init $(INCLUDE_DIR)/Galois_memmap.h $(INCLUDE_DIR)/global.h
	@./script/header.sh $(INCLUDE_DIR)/Galois_memmap.h $(OBJDIR)/memmap.h MEMMAP_
	@./script/header.sh $(INCLUDE_DIR)/global.h $(OBJDIR)/ra_gbl.h RA_Gbl_
	@./script/header.sh $(INCLUDE_DIR)/MctrlSS.h $(OBJDIR)/mem_ctrl.h RA_MctrlSS_
	@./script/header.sh $(INCLUDE_DIR)/drmdmx.h $(OBJDIR)/figo_drm.h Figo_Drm_
	@#./script/header.sh $(INCLUDE_DIR)/drm_sw_spec.h $(OBJDIR)/drm.h DRM_
	@./script/header.sh $(INCLUDE_DIR)/soc.h $(OBJDIR)/Berlin_SoC.h System

clean:
	@rm -rf board/bg2cdp_a0/.tmp_*
	@rm -rf board/bg2cdp_a0/out_*
	@rm -rf board/bg2cdp_z1/.tmp_*
	@rm -rf board/bg2cdp_z1/out_*
	@rm -rf .tmp_*
	@rm -rf $(Object) $(FIGO_Object) bootloader.elf bootloader.map bootloader.bin configure.ame
	@rm -rf memmap.h ra_gbl.h mem_ctrl.h figo_drm.h drm.h
	@rm -rf flash.bin encrypt
	@rm -rf debug.log
	@rm -rf figo_sram.bin figo_sram.elf figo_sram_bin.c
	@rm -rf code echobin flash_en.bin
	@rm -rf cold_cmd_table.bin warm_cmd_table.bin
	@rm -rf	loader.bin loader_en.bin sm.en.bin
	@rm -rf global.h Galois_memmap.h
	@rm -rf gen_uboot_scr

fresh: clean
	@rm -rf linux_param.h customer_key_store.h Berlin_SoC.h
	@rm -rf *.bin *.log *.img *.info
	@rm -rf version layout.*
	@rm -rf *.o */*.o

.PHONY: regen
regen: clean all

.PHONY: bg2cdp_a0
bg2cdp_a0:
	CC="$(CC)" \
	AR="$(AR)" \
	PROJ_DIR="$(CUR_DIR)" \
	CFLAGS="$(CFLAGS)" \
	make -C board/bg2cdp_a0 -f fastlogo.mak

.PHONY: bg2cdp_z1
bg2cdp_z1:
	CC="$(CC)" \
	AR="$(AR)" \
	PROJ_DIR="$(CUR_DIR)" \
	CFLAGS="$(CFLAGS)" \
	make -C board/bg2cdp_z1 -f fastlogo.mak
