Tizen 2.0 Release
[platform/kernel/u-boot.git] / mmc_ipl / board / samsung / universal_c110 / Makefile
1 #
2 #  Samsung Universal(S5PC100/S5PC110) board MMC IPL
3 #
4 #  Copyright (C) 2009 Samsung Electronics
5 #  Minkyu Kang <mk7.kang@samsung.com>
6 #  Kyungmin Park <kyungmin.park@samsung.com>
7 #
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.
12 #
13
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
19
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
25
26 SOBJS   := lowlevel_init.o mem_setup.o
27 SOBJS   += start.o _memcpy32.o
28 SOBJS   += cache.o
29 COBJS   += mmc.o
30 COBJS   += mmc_boot.o
31 COBJS   += universal.o
32
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)
37
38 mmcobj  := $(OBJTREE)/mmc_ipl/
39
40 ALL     = $(mmcobj)mmc-ipl $(mmcobj)mmc-ipl.bin $(mmcobj)mmc-ipl-fused.bin
41
42 all:    $(obj).depend $(ALL)
43
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
47
48 $(mmcobj)mmc-ipl.bin:   $(mmcobj)mmc-ipl
49         $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
50
51 $(mmcobj)mmc-ipl:       $(OBJS)
52         cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
53                 -Map $@.map -o $@
54
55 # create symbolic links from common files
56
57 # from cpu directory
58 $(obj)start.S:
59         @rm -f $@
60         ln -s $(SRCTREE)/$(CPUDIR)/start.S $@
61
62 # from SoC directory
63 $(obj)cache.S:
64         @rm -f $@
65         ln -s $(SRCTREE)/$(CPUDIR)/$(SOC)/cache.S $@
66
67 $(obj)mem_setup.S:
68         ln -sf $(SRCTREE)/board/$(BOARDDIR)/mem_setup.S $@
69
70 $(obj)lowlevel_init.S:
71         ln -sf $(SRCTREE)/board/$(BOARDDIR)/lowlevel_init.S $@
72
73 # from lib_arm
74 $(obj)_memcpy32.S:
75         ln -sf $(SRCTREE)/arch/$(ARCH)/lib/_memcpy32.S $@
76
77 # from mmc_ipl directory
78 $(obj)mmc_ipl.h:
79         @rm -f $@
80         ln -s $(SRCTREE)/mmc_ipl/mmc_ipl.h $@
81
82 $(obj)mmc_boot.c:       $(obj)mmc_ipl.h
83         @rm -f $@
84         ln -s $(SRCTREE)/mmc_ipl/mmc_boot.c $@
85
86 $(obj)mmc.c:    $(obj)mmc_ipl.h
87         @rm -f $@
88         ln -s $(SRCTREE)/mmc_ipl/mmc.c $@
89
90 #########################################################################
91
92 $(obj)%.o:      $(obj)%.S
93         $(CC) $(AFLAGS) -c -o $@ $<
94
95 $(obj)%.o:      $(obj)$.c
96         $(CC) $(CFLAGS) -c -o $@ $<
97
98 # defines $(obj).depend target
99 include $(SRCTREE)/rules.mk
100
101 sinclude $(obj).depend
102
103 clean:
104         rm mmc_boot.c mmc.c
105
106 #########################################################################