2 # (C) Copyright 2009 DENX Software Engineering
4 # See file CREDITS for list of people who contributed to this
7 # This program is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License as
9 # published by the Free Software Foundatio; either version 2 of
10 # the License, or (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23 include $(TOPDIR)/config.mk
24 include $(TOPDIR)/nand_fdl/board/$(VENDOR)/$(SOC)/config.mk
25 include $(TOPDIR)/board/$(BOARDDIR)/config.mk
26 sinclude $(TOPDIR)/include/idh_config.mk
28 gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
30 LDSCRIPT = $(TOPDIR)/nand_fdl/board/$(VENDOR)/$(SOC)/u-boot.lds
31 FDL2_LDFLAGS = -Bstatic -T $(LDSCRIPT) $(PLATFORM_LDFLAGS)
32 AFLAGS += -I $(OBJTREE)/include/asm/arch
33 CFLAGS += -D CONFIG_FRMCHECK -DCONFIG_FDL2_BUILD -I $(OBJTREE)/include/asm/arch
35 FDL2_PATH = $(TOPDIR)/nand_fdl/fdl-2
36 COM_PATH = $(TOPDIR)/nand_fdl/common
38 EMMC_PATH = $(TOPDIR)/drivers/mmc
40 ifdef CONFIG_EMMC_BOOT
41 UEFI_LIB = $(OBJTREE)/disk/libdisk.o
42 EMMC_LIB = $(OBJTREE)/drivers/mmc/libmmc.o
45 FDL2_SOBJS_LIST = init.o
47 COM_COBJS = dl_engine.o fdl_crc.o packet.o fdl_channel.o fdl_stdio.o mcu_command.o usb_boot.o drv_usb.o virtual_com.o
48 COM_OBJS = $(addprefix $(obj),$(COM_COBJS))
50 FDL2_COBJS_LIST = migrate.o fdl2_signature.o fdl_main.o fdl_cmd_proc.o fdl_ldo.o fdl_common.o
51 ifdef CONFIG_EMMC_BOOT
52 FDL2_COBJS_LIST += newfs_msdos.o fdl_emmc_operate.o
54 FDL2_COBJS_LIST += fdl_nand_operate.o parsemtdparts.o fdl_mtdparts.o fdl_ubi.o
57 ifdef FPGA_TRACE_DOWNLOAD
58 FDL2_COBJS_LIST += fdl_ram_dl.o
61 FDL2_COBJS = $(addprefix $(obj),$(FDL2_COBJS_LIST))
62 FDL2_SOBJS = $(addprefix $(obj),$(FDL2_SOBJS_LIST))
63 FDL2_OBJS = $(FDL2_COBJS) $(FDL2_SOBJS)
65 MTD_LIB = $(OBJTREE)/drivers/mtd/libmtd.o
66 NAND_LIB = $(OBJTREE)/drivers/mtd/nand/libnand.o
67 COMMON_OBJ = dlmalloc.o idh_layout.o
68 COMMON_LIB = $(addprefix $(OBJTREE)/common/,$(COMMON_OBJ))
69 DRIVERS_LIB = $(OBJTREE)/drivers/serial/serial_sc8800x.o
72 CPU_OBJ = timer.o chip_cfg.o chip_phy_v3.o boot_mode.o watchdog_hal.o watchdog_phy_v3.o mmu.o mmu_asm.o rtc-sprd.o sec_boot.o
73 ifneq ($(CONFIG_SC8830)$(CONFIG_SC9630),)
74 CPU_OBJ+= gpio.o gpio_phy.o adi.o adc.o
76 ifdef CONFIG_ADIE_SC2713S
77 CPU_OBJ+= sprd_battery_2713.o
79 CPU_OBJ+= sprd_battery.o
82 ifneq ($(CONFIG_SPX30G)$(CONFIG_SC9630)$(CONFIG_ADIE_SC2723)$(CONFIG_ADIE_SC2723S),)
83 CPU_OBJ += glb.o otp-helper.o efuse.o
84 ifneq ($(CONFIG_ADIE_SC2723)$(CONFIG_ADIE_SC2723S),)
85 CPU_OBJ += ana_efuse.o
88 CPU_OBJ += efuse_drv.o
92 ifneq ($(strip $(CONFIG_ADIE_SC2723)$(CONFIG_ADIE_SC2723S)),)
93 CPU_OBJ += dcdc_cal_sc2723.o
96 ifdef CONFIG_ADIE_SC2713S
97 CPU_OBJ += dcdc_cal_sc2713s.o
98 ifdef CONFIG_ADIE_SC2713
104 CPU_OBJ += dcdc_cal_x15.o
106 CPU_OBJ += dcdc_cal.o
108 endif # CONFIG_ADIE_SC2713S
110 endif # CONFIG_ADIE_SC2723
117 CPU_LIB = $(addprefix $(obj),$(CPU_OBJ))
119 ifdef CONFIG_SECURE_BOOT
120 SECURE_LIB = $(OBJTREE)/property/secure_verify.o
123 GENERIC_LIB = $(OBJTREE)/lib/libgeneric.o
124 ifdef CONFIG_EMMC_BOOT
125 UBOOT_LIBS = $(MTD_LIB) $(ARM_LIB) $(NAND_LIB) $(YAFFS2_LIB) $(COMMON_LIB) $(CPU_LIB) $(GENERIC_LIB) $(DRIVERS_LIB) $(ARCH_LIB) $(EMMC_LIB) $(UEFI_LIB) $(EXT4_LIB) $(SECURE_LIB)
127 UBOOT_LIBS = $(MTD_LIB) $(ARM_LIB) $(NAND_LIB) $(COMMON_LIB) $(CPU_LIB) $(GENERIC_LIB) $(DRIVERS_LIB) $(ARCH_LIB) $(SECURE_LIB)
131 UBOOT_LIBS += $(OBJTREE)/drivers/mtd/ubi/libubi.o
135 EXT4FS_LIB = $(OBJTREE)/fs/ext4/libext4fs.o
136 UBOOT_LIBS += $(EXT4FS_LIB)
139 FDL2_LNDIR := $(OBJTREE)/nand_fdl/fdl-2
141 fdlobj := $(OBJTREE)/nand_fdl/
142 fdl2_obj := $(fdlobj)fdl-2/src/
144 ALL = $(fdlobj)fdl2.bin
148 fdl2: $(fdlobj)fdl2.bin
150 $(fdlobj)fdl2.bin: $(fdlobj)fdl2
151 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
153 $(fdlobj)fdl2: $(FDL2_OBJS) $(COM_OBJS) $(UBOOT_LIBS)
154 @mkdir -p $(FDL2_LNDIR)
155 cd $(FDL2_LNDIR) && $(LD) $(FDL2_LDFLAGS) -Ttext $(FDL2_TEXT_BASE) \
156 --start-group $(FDL2_COBJS_LIST) $(FDL2_SOBJS_LIST) $(COM_OBJS) \
157 $(UBOOT_LIBS) --end-group \
158 -Map $(fdlobj)fdl2.map \
159 -o $@ $(PLATFORM_LIBS)
161 #########################################################################
163 ifndef CONFIG_IDH_BUILD
164 $(obj)%.o:$(SRCTREE)/nand_fdl/common/src/%.c
165 $(CC) $(CFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -c -o $@ $<
166 $(obj)%.o:$(SRCTREE)/nand_fdl/fdl-2/src/%.c
167 $(CC) $(CFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -I $(EMMC_PATH) -c -o $@ $<
168 $(obj)%.o:$(SRCTREE)/nand_fdl/fdl-2/src/%.S
169 $(CC) $(AFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -c -o $@ $<
170 $(obj)%.o:$(SRCTREE)/$(CPUDIR)/$(SOC)/%.S
171 $(CC) $(AFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -c -o $@ $<
172 $(obj)%.o:$(SRCTREE)/$(CPUDIR)/$(SOC)/%.c
173 $(CC) $(CFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -c -o $@ $<
174 $(obj)%.o:$(SRCTREE)/drivers/power/%.c
175 $(CC) $(CFLAGS) -I $(FDL2_PATH)/inc -I $(COM_PATH)/inc -c -o $@ $<
177 # defines $(obj).depend target
178 include $(SRCTREE)/rules.mk
180 sinclude $(obj).depend
184 rm -f *.bin *.map fdl2
186 #########################################################################