2 # Samsung Universal(S5PC100/S5PC110) board MMC IPL
4 # Copyright (C) 2009 Samsung Electronics
5 # Minkyu Kang <mk7.kang@samsung.com>
6 # Kyungmin Park <kyungmin.park@samsung.com>
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public License as
10 # published by the Free Software Foundation; either version 2 of
11 # the License, or (at your option) any later version.
14 include $(TOPDIR)/config.mk
15 # S5PC110 loads at 0x20010 (EVT1)
16 # BL2 loads at 0x21000 (EVT1)
17 TEXT_BASE = 0xD0021000
18 TEXT_BASE8K_EVT1_SEC = 0xD0023000
20 LDSCRIPT= $(TOPDIR)/mmc_ipl/board/$(BOARDDIR)/u-boot-mmc.lds
21 LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
22 AFLAGS += -DCONFIG_PRELOADER -DCONFIG_MMC_IPL -g -UTEXT_BASE -DTEXT_BASE=$(TEXT_BASE)
23 CFLAGS += -DCONFIG_PRELOADER -DCONFIG_MMC_IPL -g -D__HAVE_ARCH_MEMCPY32
24 OBJCFLAGS += --gap-fill=0x00
26 SOBJS := lowlevel_init.o mem_setup.o
27 SOBJS += start.o _memcpy32.o
33 SRCS := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
34 OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
35 __OBJS := $(SOBJS) $(COBJS)
36 LNDIR := $(OBJTREE)/mmc_ipl/board/$(BOARDDIR)
38 mmcobj := $(OBJTREE)/mmc_ipl/
40 ALL = $(mmcobj)mmc-ipl $(mmcobj)mmc-ipl.bin $(mmcobj)mmc-ipl-fused.bin
42 all: $(obj).depend $(ALL)
44 $(mmcobj)mmc-ipl-fused.bin: $(mmcobj)mmc-ipl
45 $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE8K_EVT1_SEC) -O binary $< $@
46 cat $(mmcobj)/board/$(BOARDDIR)/bl1.img $@ > $(mmcobj)mmc-ipl-12k-fused.bin
48 $(mmcobj)mmc-ipl.bin: $(mmcobj)mmc-ipl
49 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
51 $(mmcobj)mmc-ipl: $(OBJS)
52 cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
55 # create symbolic links from common files
60 ln -s $(SRCTREE)/$(CPUDIR)/start.S $@
65 ln -s $(SRCTREE)/$(CPUDIR)/$(SOC)/cache.S $@
68 ln -sf $(SRCTREE)/board/$(BOARDDIR)/mem_setup.S $@
70 $(obj)lowlevel_init.S:
71 ln -sf $(SRCTREE)/board/$(BOARDDIR)/lowlevel_init.S $@
75 ln -sf $(SRCTREE)/arch/$(ARCH)/lib/_memcpy32.S $@
77 # from mmc_ipl directory
80 ln -s $(SRCTREE)/mmc_ipl/mmc_ipl.h $@
82 $(obj)mmc_boot.c: $(obj)mmc_ipl.h
84 ln -s $(SRCTREE)/mmc_ipl/mmc_boot.c $@
86 $(obj)mmc.c: $(obj)mmc_ipl.h
88 ln -s $(SRCTREE)/mmc_ipl/mmc.c $@
90 #########################################################################
93 $(CC) $(AFLAGS) -c -o $@ $<
96 $(CC) $(CFLAGS) -c -o $@ $<
98 # defines $(obj).depend target
99 include $(SRCTREE)/rules.mk
101 sinclude $(obj).depend
106 #########################################################################