Blame view

spl/Makefile 6.13 KB
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
1
2
3
4
5
6
7
8
9
10
11
  #
  # (C) Copyright 2000-2011
  # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  #
  # (C) Copyright 2011
  # Daniel Schwierzeck, daniel.schwierzeck@googlemail.com.
  #
  # (C) Copyright 2011
  # Texas Instruments Incorporated - http://www.ti.com/
  # Aneesh V <aneesh@ti.com>
  #
1a4596601   Wolfgang Denk   Add GPL-2.0+ SPDX...
12
  # SPDX-License-Identifier:	GPL-2.0+
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
13
14
15
  #
  # Based on top-level Makefile.
  #
9e4140329   Masahiro Yamada   kbuild: change ou...
16
17
18
19
  src := $(obj)
  
  # Create output directory if not already present
  _dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
bf4b3de10   Masahiro Yamada   kbuild: Use Kbuil...
20
  include $(srctree)/scripts/Kbuild.include
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
21
22
  CONFIG_SPL_BUILD := y
  export CONFIG_SPL_BUILD
e0d5d9f88   Masahiro Yamada   Makefile: move so...
23
24
25
26
27
28
29
30
  KBUILD_CPPFLAGS += -DCONFIG_SPL_BUILD
  ifeq ($(CONFIG_TPL_BUILD),y)
  KBUILD_CPPFLAGS += -DCONFIG_TPL_BUILD
  endif
  
  # Enable garbage collection of un-used sections for SPL
  KBUILD_CFLAGS += -ffunction-sections -fdata-sections
  LDFLAGS_FINAL += --gc-sections
3aa29de0b   Ying Zhang   TPL : introduce t...
31
32
33
34
35
36
  ifeq ($(CONFIG_TPL_BUILD),y)
  export CONFIG_TPL_BUILD
  SPL_BIN := u-boot-tpl
  else
  SPL_BIN := u-boot-spl
  endif
01072b44d   Masahiro Yamada   kbuild: move incl...
37
38
39
40
41
42
43
  include include/config.mk
  
  ifeq ($(CONFIG_TPL_BUILD),y)
    -include include/tpl-autoconf.mk
  else
    -include include/spl-autoconf.mk
  endif
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
44
  include $(TOPDIR)/config.mk
e66443fdb   Scott Wood   Makefile: fix HAV...
45
  HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(SRCTREE)/board/$(VENDOR)/common/Makefile),y,n)
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
46

08e4f700a   Marek Vasut   SPL: Make path to...
47
  ifdef	CONFIG_SPL_START_S_PATH
a8c075414   Masahiro Yamada   Makefile: use two...
48
  START_PATH := $(CONFIG_SPL_START_S_PATH:"%"=%)
08e4f700a   Marek Vasut   SPL: Make path to...
49
50
51
  else
  START_PATH := $(CPUDIR)
  endif
e8a8b8246   Masahiro Yamada   Makefile: Select ...
52
53
54
55
  head-y := $(START_PATH)/start.o
  head-$(CONFIG_X86) += $(START_PATH)/start16.o $(START_PATH)/resetvec.o
  head-$(CONFIG_4xx) += $(START_PATH)/resetvec.o
  head-$(CONFIG_MPC85xx) += $(START_PATH)/resetvec.o
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
56

e2906a594   Masahiro Yamada   Makefile: rename ...
57
  LIBS-y += arch/$(ARCH)/lib/
510ed3b8f   Scott Wood   spl: include rese...
58

e2906a594   Masahiro Yamada   Makefile: rename ...
59
  LIBS-y += $(CPUDIR)/
510ed3b8f   Scott Wood   spl: include rese...
60

6a11cf48a   Daniel Schwierzeck   spl: add initial ...
61
  ifdef SOC
e2906a594   Masahiro Yamada   Makefile: rename ...
62
63
64
65
66
67
68
69
70
71
72
  LIBS-y += $(CPUDIR)/$(SOC)/
  endif
  LIBS-y += board/$(BOARDDIR)/
  LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
  
  LIBS-$(CONFIG_SPL_FRAMEWORK) += common/spl/
  LIBS-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/
  LIBS-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/
  LIBS-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/
  LIBS-$(CONFIG_SPL_GPIO_SUPPORT) += drivers/gpio/
  LIBS-$(CONFIG_SPL_MMC_SUPPORT) += drivers/mmc/
5614e71b4   York Sun   Driver/DDR: Movin...
73
  LIBS-$(CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT) += drivers/ddr/fsl/
e2906a594   Masahiro Yamada   Makefile: rename ...
74
75
76
  LIBS-$(CONFIG_SPL_SERIAL_SUPPORT) += drivers/serial/
  LIBS-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += drivers/mtd/spi/
  LIBS-$(CONFIG_SPL_SPI_SUPPORT) += drivers/spi/
57c3e5fcf   Masahiro Yamada   Makefile: move fs...
77
  LIBS-y += fs/
e2906a594   Masahiro Yamada   Makefile: rename ...
78
79
80
  LIBS-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/
  LIBS-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/ \
  	drivers/power/pmic/
392ba5256   Masahiro Yamada   drivers/mtd: desc...
81
  LIBS-$(if $(CONFIG_CMD_NAND),$(CONFIG_SPL_NAND_SUPPORT)) += drivers/mtd/nand/
6609916ef   Po Liu   powerpc:mpc85xx: ...
82
  LIBS-$(CONFIG_SPL_DRIVERS_MISC_SUPPORT) += drivers/misc/
e2906a594   Masahiro Yamada   Makefile: rename ...
83
84
85
86
87
88
89
90
91
92
  LIBS-$(CONFIG_SPL_ONENAND_SUPPORT) += drivers/mtd/onenand/
  LIBS-$(CONFIG_SPL_DMA_SUPPORT) += drivers/dma/
  LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/
  LIBS-$(CONFIG_SPL_NET_SUPPORT) += net/
  LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/
  LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/phy/
  LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/net/phy/
  LIBS-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += drivers/usb/musb-new/
  LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/
  LIBS-$(CONFIG_SPL_WATCHDOG_SUPPORT) += drivers/watchdog/
8cffe5bd0   Dan Murphy   spl: common: Supp...
93
94
  LIBS-$(CONFIG_SPL_USB_HOST_SUPPORT) += drivers/usb/host/
  LIBS-$(CONFIG_OMAP_USB_PHY) += drivers/usb/phy/
fff40a7e0   Dan Murphy   common: spl: Add ...
95
  LIBS-$(CONFIG_SPL_SATA_SUPPORT) += drivers/block/
efcc6096d   Daniel Schwierzeck   spl: Add support ...
96

ba931259b   Masahiro Yamada   spl/Makefile: mer...
97
  ifneq (,$(CONFIG_MX23)$(CONFIG_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35))
e2906a594   Masahiro Yamada   Makefile: rename ...
98
  LIBS-y += arch/$(ARCH)/imx-common/
cfb8e87a8   Marek Vasut   arm: mx5: Add SPL...
99
  endif
e2906a594   Masahiro Yamada   Makefile: rename ...
100
101
  LIBS-$(CONFIG_ARM) += arch/arm/cpu/
  LIBS-$(CONFIG_PPC) += arch/powerpc/cpu/
d9e73a87a   Allen Martin   tegra20: move teg...
102

e2906a594   Masahiro Yamada   Makefile: rename ...
103
  LIBS-y := $(patsubst %/, %/built-in.o, $(LIBS-y))
660e98f2e   Allen Martin   spl: fix SPL buil...
104
105
  # Add GCC lib
  ifeq ("$(USE_PRIVATE_LIBGCC)", "yes")
6825a95b0   Masahiro Yamada   kbuild: use Linux...
106
  PLATFORM_LIBS := $(SPLTREE)/arch/$(ARCH)/lib/lib.a
660e98f2e   Allen Martin   spl: fix SPL buil...
107
  endif
9e4140329   Masahiro Yamada   kbuild: change ou...
108
109
110
111
  LIBS-y := $(sort $(LIBS-y))
  
  __START := $(head-y)
  __LIBS := $(LIBS-y)
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
112

9e4140329   Masahiro Yamada   kbuild: change ou...
113
114
  START := $(addprefix $(obj)/,$(head-y))
  LIBS := $(addprefix $(obj)/,$(LIBS-y))
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
115
116
117
118
  
  # Linker Script
  ifdef CONFIG_SPL_LDSCRIPT
  # need to strip off double quotes
a8c075414   Masahiro Yamada   Makefile: use two...
119
  LDSCRIPT := $(addprefix $(SRCTREE)/,$(CONFIG_SPL_LDSCRIPT:"%"=%))
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
120
121
122
123
124
125
126
127
128
  endif
  
  ifeq ($(wildcard $(LDSCRIPT)),)
  	LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-spl.lds
  endif
  ifeq ($(wildcard $(LDSCRIPT)),)
  	LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-spl.lds
  endif
  ifeq ($(wildcard $(LDSCRIPT)),)
65cdd6430   Albert ARIBAUD   Remove linker lis...
129
  	LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot-spl.lds
ee60197e6   Simon Glass   Allow arch direct...
130
131
  endif
  ifeq ($(wildcard $(LDSCRIPT)),)
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
132
133
134
135
136
137
138
139
140
  $(error could not find linker script)
  endif
  
  # Special flags for CPP when processing the linker script.
  # Pass the version down so we can handle backwards compatibility
  # on the fly.
  LDPPFLAGS += \
  	-include $(TOPDIR)/include/u-boot/u-boot.lds.h \
  	-include $(OBJTREE)/include/config.h \
7e6403a66   Simon Glass   Define CPUDIR for...
141
  	-DCPUDIR=$(CPUDIR) \
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
142
143
  	$(shell $(LD) --version | \
  	  sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
9e4140329   Masahiro Yamada   kbuild: change ou...
144
  $(OBJTREE)/MLO:	$(obj)/u-boot-spl.bin
3decb14ab   John Rigby   mkimage: Add OMAP...
145
146
  	$(OBJTREE)/tools/mkimage -T omapimage \
  		-a $(CONFIG_SPL_TEXT_BASE) -d $< $@
79b9ebb70   Tom Rini   omapimage: Add su...
147

9e4140329   Masahiro Yamada   kbuild: change ou...
148
  $(OBJTREE)/MLO.byteswap: $(obj)/u-boot-spl.bin
79b9ebb70   Tom Rini   omapimage: Add su...
149
  	$(OBJTREE)/tools/mkimage -T omapimage -n byteswap \
8a8f084e4   Chandan Nath   ARM:AM33XX: Add S...
150
  		-a $(CONFIG_SPL_TEXT_BASE) -d $< $@
3decb14ab   John Rigby   mkimage: Add OMAP...
151

6825a95b0   Masahiro Yamada   kbuild: use Linux...
152
  $(objtree)/SPL : $(obj)/u-boot-spl.bin
9e4140329   Masahiro Yamada   kbuild: change ou...
153
  		$(MAKE) $(build)=spl/arch/arm/imx-common $@
a80834c06   Stefano Babic   SPL: Added SPL ta...
154

9e4140329   Masahiro Yamada   kbuild: change ou...
155
  ALL-y	+= $(obj)/$(SPL_BIN).bin
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
156

98a48c5de   Chander Kashyap   ORIGEN: Add MMC S...
157
  ifdef CONFIG_SAMSUNG
9e4140329   Masahiro Yamada   kbuild: change ou...
158
  ALL-y	+= $(obj)/$(BOARD)-spl.bin
98a48c5de   Chander Kashyap   ORIGEN: Add MMC S...
159
  endif
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
160
  all:	$(ALL-y)
98a48c5de   Chander Kashyap   ORIGEN: Add MMC S...
161
  ifdef CONFIG_SAMSUNG
0fcac1abd   Rajeshwari Birje   SPL: EXYNOS: Prep...
162
163
164
165
166
  ifdef CONFIG_VAR_SIZE_SPL
  VAR_SIZE_PARAM = --vs
  else
  VAR_SIZE_PARAM =
  endif
9e4140329   Masahiro Yamada   kbuild: change ou...
167
  $(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
e183a1745   Masahiro Yamada   board: samsung: r...
168
169
  	$(if $(wildcard $(OBJTREE)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl),\
  	$(OBJTREE)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl,\
940db16d2   Masahiro Yamada   tools: convert ma...
170
  	$(OBJTREE)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
98a48c5de   Chander Kashyap   ORIGEN: Add MMC S...
171
  endif
9e4140329   Masahiro Yamada   kbuild: change ou...
172
  $(obj)/$(SPL_BIN).bin:	$(obj)/$(SPL_BIN)
b02bfc4df   Albert ARIBAUD   arm: put .hash, ....
173
  	$(OBJCOPY) $(OBJCFLAGS) $(SPL_OBJCFLAGS) -O binary $< $@
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
174

9e4140329   Masahiro Yamada   kbuild: change ou...
175
  LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
e0d5d9f88   Masahiro Yamada   Makefile: move so...
176
177
178
  ifneq ($(CONFIG_SPL_TEXT_BASE),)
  LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE)
  endif
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
179
  GEN_UBOOT = \
be7e41efd   Tyler Olmstead   spl: remove force...
180
  	cd $(obj) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $(__START) \
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
181
  		--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
3aa29de0b   Ying Zhang   TPL : introduce t...
182
  		-Map $(SPL_BIN).map -o $(SPL_BIN)
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
183

6825a95b0   Masahiro Yamada   kbuild: use Linux...
184
  $(obj)/$(SPL_BIN): $(START) $(LIBS) $(obj)/u-boot-spl.lds
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
185
  	$(GEN_UBOOT)
3bddafaab   Masahiro Yamada   Makefile: convert...
186
187
  $(START):
  	@:
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
188

6825a95b0   Masahiro Yamada   kbuild: use Linux...
189
190
  $(LIBS):
  	$(Q)$(MAKE) $(build)=$(patsubst %/,%,$(dir $@))
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
191

6825a95b0   Masahiro Yamada   kbuild: use Linux...
192
193
  # FIX ME
  cpp_flags := $(KBUILD_CPPFLAGS) $(CPPFLAGS) $(UBOOTINCLUDE) $(NOSTDINC_FLAGS)
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
194

6825a95b0   Masahiro Yamada   kbuild: use Linux...
195
196
  $(obj)/u-boot-spl.lds: $(LDSCRIPT) FORCE
  	$(CPP) $(cpp_flags) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
6a11cf48a   Daniel Schwierzeck   spl: add initial ...
197

6825a95b0   Masahiro Yamada   kbuild: use Linux...
198
199
200
201
202
203
  PHONY += FORCE
  FORCE:
  
  # Declare the contents of the .PHONY variable as phony.  We keep that
  # information in a variable so we can use it in if_changed and friends.
  .PHONY: $(PHONY)