| ## | |
| # | |
| # 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 |