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