tizen 2.3.1 release
[platform/kernel/u-boot.git] / onenand_ipl / board / samsung / universal_c100 / Makefile
1 #
2 #  Samsung Universal(S5PC100/S5PC110) board OneNAND 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 # S5PC100 loads at 0x34000
16 # S5PC110 loads at 0x30000 (EVT0)
17 # S5PC110 loads at 0x20010 (EVT1)
18 # Now it uses the S5PC100 as default
19 # If you use the S5PC110, the load address is relocated at start.S
20 # XXX Never set it S5PC110 it don't relocate it
21 # FIXME BL1 header uses 16 bytes at S5PC110 EVT1
22 TEXT_BASE               = 0xD0034000
23 TEXT_BASE16K_EVT0       = 0xD0038000
24 TEXT_BASE16K_EVT1       = 0xD0037ff0
25 TEXT_BASE16K_EVT1_SEC   = 0xD0037000
26
27 LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot-onenand.lds
28 LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 AFLAGS  += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL -g -UTEXT_BASE -DTEXT_BASE=$(TEXT_BASE)
30 CFLAGS  += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL -g -D__HAVE_ARCH_MEMCPY32
31 OBJCFLAGS += --gap-fill=0x00
32
33 SOBJS   := lowlevel_init.o mem_setup.o
34 SOBJS   += start.o _memcpy32.o
35 SOBJS   += cache.o
36 COBJS   += onenand_read.o samsung_read.o
37 COBJS   += onenand_boot.o
38
39 SRCS    := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
40 OBJS    := $(addprefix $(obj),$(SOBJS) $(COBJS))
41 __OBJS  := $(SOBJS) $(COBJS)
42 LNDIR   := $(OBJTREE)/onenand_ipl/board/$(BOARDDIR)
43
44 onenandobj      := $(OBJTREE)/onenand_ipl/
45
46 ALL     = $(onenandobj)onenand-ipl $(onenandobj)onenand-ipl.bin $(onenandobj)onenand-ipl-16k-evt0.bin $(onenandobj)onenand-ipl-16k-evt1.bin $(onenandobj)onenand-ipl-fused.bin
47
48 all:    $(obj).depend $(ALL)
49
50 $(onenandobj)onenand-ipl-16k-evt0.bin:  $(onenandobj)onenand-ipl checksum
51         $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K_EVT0) -O binary $< $@
52         $(onenandobj)/board/$(BOARDDIR)/checksum $@ 0
53
54 $(onenandobj)onenand-ipl-16k-evt1.bin:  $(onenandobj)onenand-ipl checksum
55         $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K_EVT1) -O binary $< $@
56         $(onenandobj)/board/$(BOARDDIR)/checksum $@ 1
57         cat $(onenandobj)/board/$(BOARDDIR)/header.bin $@ > $(onenandobj)onenand-ipl-16k.bin
58
59 $(onenandobj)onenand-ipl-fused.bin:     $(onenandobj)onenand-ipl checksum
60         $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(TEXT_BASE16K_EVT1_SEC) -O binary $< $@
61         cat $(onenandobj)/board/$(BOARDDIR)/bl1.img $@ > $(onenandobj)onenand-ipl-16k-fused.bin
62
63 $(onenandobj)onenand-ipl.bin:   $(onenandobj)onenand-ipl
64         $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
65
66 $(onenandobj)onenand-ipl:       $(OBJS)
67         cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
68                 -Map $@.map -o $@
69
70 checksum: checksum.c
71         $(HOSTCC) -o $@ $<
72
73 # create symbolic links from common files
74
75 # from cpu directory
76 $(obj)start.S:
77         @rm -f $@
78         ln -s $(SRCTREE)/$(CPUDIR)/start.S $@
79
80 # from SoC directory
81 $(obj)cache.S:
82         @rm -f $@
83         ln -s $(SRCTREE)/$(CPUDIR)/$(SOC)/cache.S $@
84
85 $(obj)mem_setup.S:
86         ln -sf $(SRCTREE)/board/$(BOARDDIR)/mem_setup.S $@
87
88 $(obj)lowlevel_init.S:
89         ln -sf $(SRCTREE)/board/$(BOARDDIR)/lowlevel_init.S $@
90
91 # from lib_arm
92 $(obj)_memcpy32.S:
93         ln -sf $(SRCTREE)/arch/$(ARCH)/lib/_memcpy32.S $@
94
95 # from onenand_ipl directory
96 $(obj)onenand_ipl.h:
97         @rm -f $@
98         ln -s $(SRCTREE)/onenand_ipl/onenand_ipl.h $@
99
100 $(obj)onenand_boot.c:   $(obj)onenand_ipl.h
101         @rm -f $@
102         ln -s $(SRCTREE)/onenand_ipl/onenand_boot.c $@
103
104 $(obj)onenand_read.c:   $(obj)onenand_ipl.h
105         @rm -f $@
106         ln -s $(SRCTREE)/onenand_ipl/onenand_read.c $@
107
108 $(obj)samsung_read.c:   $(obj)onenand_ipl.h
109         @rm -f $@
110         ln -s $(SRCTREE)/onenand_ipl/samsung_read.c $@
111
112 #########################################################################
113
114 $(obj)%.o:      $(obj)%.S
115         $(CC) $(AFLAGS) -c -o $@ $<
116
117 $(obj)%.o:      $(obj)$.c
118         $(CC) $(CFLAGS) -c -o $@ $<
119
120 # defines $(obj).depend target
121 include $(SRCTREE)/rules.mk
122
123 sinclude $(obj).depend
124
125 clean:
126         rm onenand_boot.c onenand_read.c samsung_read.c
127
128 #########################################################################