xref: /rk3399_rockchip-uboot/config.mk (revision fea1ca8e3418bac4b55f4cc8b66a6ae0d41e91e4)
1e2211743Swdenk#
2eca3aeb3SWolfgang Denk# (C) Copyright 2000-2013
3e2211743Swdenk# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4e2211743Swdenk#
5eca3aeb3SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
6e2211743Swdenk#
7e2211743Swdenk#########################################################################
8e2211743Swdenk
9f9328639SMarian Balakowiczifeq ($(CURDIR),$(SRCTREE))
10f9328639SMarian Balakowiczdir :=
11f9328639SMarian Balakowiczelse
12f9328639SMarian Balakowiczdir := $(subst $(SRCTREE)/,,$(CURDIR))
13f9328639SMarian Balakowiczendif
14f9328639SMarian Balakowicz
15c8f9c302SDaniel Schwierzeckifneq ($(OBJTREE),$(SRCTREE))
16c8f9c302SDaniel Schwierzeck# Create object files for SPL in a separate directory
17c8f9c302SDaniel Schwierzeckifeq ($(CONFIG_SPL_BUILD),y)
183aa29de0SYing Zhangifeq ($(CONFIG_TPL_BUILD),y)
193aa29de0SYing Zhangobj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/)
203aa29de0SYing Zhangelse
21c8f9c302SDaniel Schwierzeckobj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/)
223aa29de0SYing Zhangendif
23c8f9c302SDaniel Schwierzeckelse
24f9328639SMarian Balakowiczobj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/)
25c8f9c302SDaniel Schwierzeckendif
26f9328639SMarian Balakowiczsrc := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/)
27f9328639SMarian Balakowicz
28f9328639SMarian Balakowicz$(shell mkdir -p $(obj))
29f9328639SMarian Balakowiczelse
30c8f9c302SDaniel Schwierzeck# Create object files for SPL in a separate directory
31c8f9c302SDaniel Schwierzeckifeq ($(CONFIG_SPL_BUILD),y)
323aa29de0SYing Zhangifeq ($(CONFIG_TPL_BUILD),y)
333aa29de0SYing Zhangobj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/)
343aa29de0SYing Zhangelse
35c8f9c302SDaniel Schwierzeckobj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/)
36c8f9c302SDaniel Schwierzeck
373aa29de0SYing Zhangendif
38c8f9c302SDaniel Schwierzeck$(shell mkdir -p $(obj))
39c8f9c302SDaniel Schwierzeckelse
40f9328639SMarian Balakowiczobj :=
41c8f9c302SDaniel Schwierzeckendif
42f9328639SMarian Balakowiczsrc :=
43f9328639SMarian Balakowiczendif
44f9328639SMarian Balakowicz
45592c5cabSwdenk# clean the slate ...
46592c5cabSwdenkPLATFORM_RELFLAGS =
47592c5cabSwdenkPLATFORM_CPPFLAGS =
48592c5cabSwdenkPLATFORM_LDFLAGS =
49592c5cabSwdenk
50e2211743Swdenk#########################################################################
51c4e5f52aSWolfgang Denk
52c4e5f52aSWolfgang Denk# Load generated board configuration
533aa29de0SYing Zhangifeq ($(CONFIG_TPL_BUILD),y)
543aa29de0SYing Zhang# Include TPL autoconf
553aa29de0SYing Zhangsinclude $(OBJTREE)/include/tpl-autoconf.mk
563aa29de0SYing Zhangelse
5739bc12ddSJoel Fernandesifeq ($(CONFIG_SPL_BUILD),y)
5839bc12ddSJoel Fernandes# Include SPL autoconf
5939bc12ddSJoel Fernandessinclude $(OBJTREE)/include/spl-autoconf.mk
6039bc12ddSJoel Fernandeselse
6139bc12ddSJoel Fernandes# Include normal autoconf
62c4e5f52aSWolfgang Denksinclude $(OBJTREE)/include/autoconf.mk
6339bc12ddSJoel Fernandesendif
643aa29de0SYing Zhangendif
655e987ddfSJoakim Tjernlundsinclude $(OBJTREE)/include/config.mk
66c4e5f52aSWolfgang Denk
6703b7004dSPeter Tyser# Some architecture config.mk files need to know what CPUDIR is set to,
6803b7004dSPeter Tyser# so calculate CPUDIR before including ARCH/SOC/CPU config.mk files.
698d1f2682SPeter Tyser# Check if arch/$ARCH/cpu/$CPU exists, otherwise assume arch/$ARCH/cpu contains
708d1f2682SPeter Tyser# CPU-specific code.
718d1f2682SPeter TyserCPUDIR=arch/$(ARCH)/cpu/$(CPU)
728d1f2682SPeter Tyserifneq ($(SRCTREE)/$(CPUDIR),$(wildcard $(SRCTREE)/$(CPUDIR)))
738d1f2682SPeter TyserCPUDIR=arch/$(ARCH)/cpu
748d1f2682SPeter Tyserendif
7503b7004dSPeter Tyser
76ea0364f1SPeter Tysersinclude $(TOPDIR)/arch/$(ARCH)/config.mk	# include architecture dependend rules
7703b7004dSPeter Tysersinclude $(TOPDIR)/$(CPUDIR)/config.mk		# include  CPU	specific rules
7803b7004dSPeter Tyser
79c4e5f52aSWolfgang Denkifdef	SOC
8003b7004dSPeter Tysersinclude $(TOPDIR)/$(CPUDIR)/$(SOC)/config.mk	# include  SoC	specific rules
81c4e5f52aSWolfgang Denkendif
82c4e5f52aSWolfgang Denkifdef	VENDOR
83c4e5f52aSWolfgang DenkBOARDDIR = $(VENDOR)/$(BOARD)
84c4e5f52aSWolfgang Denkelse
85c4e5f52aSWolfgang DenkBOARDDIR = $(BOARD)
86c4e5f52aSWolfgang Denkendif
87c4e5f52aSWolfgang Denkifdef	BOARD
88c4e5f52aSWolfgang Denksinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk	# include board specific rules
89c4e5f52aSWolfgang Denkendif
90c4e5f52aSWolfgang Denk
91c4e5f52aSWolfgang Denk#########################################################################
92c4e5f52aSWolfgang Denk
93e2211743SwdenkRELFLAGS= $(PLATFORM_RELFLAGS)
9483b7e2a7SScott Wood
956dd652faSwdenkOBJCFLAGS += --gap-fill=0xff
96e2211743Swdenk
972b3c9d3dSMasahiro YamadaCPPFLAGS = $(KBUILD_CPPFLAGS) $(RELFLAGS)
98c8f9c302SDaniel Schwierzeck
99c8f9c302SDaniel Schwierzeck# Enable garbage collection of un-used sections for SPL
100c8f9c302SDaniel Schwierzeckifeq ($(CONFIG_SPL_BUILD),y)
101c8f9c302SDaniel SchwierzeckCPPFLAGS += -ffunction-sections -fdata-sections
102c8f9c302SDaniel SchwierzeckLDFLAGS_FINAL += --gc-sections
103c8f9c302SDaniel Schwierzeckendif
104c8f9c302SDaniel Schwierzeck
10514d0a02aSWolfgang Denkifneq ($(CONFIG_SYS_TEXT_BASE),)
10614d0a02aSWolfgang DenkCPPFLAGS += -DCONFIG_SYS_TEXT_BASE=$(CONFIG_SYS_TEXT_BASE)
107161b2af4SMike Frysingerendif
108f9328639SMarian Balakowicz
109c8f9c302SDaniel Schwierzeckifeq ($(CONFIG_SPL_BUILD),y)
110c8f9c302SDaniel SchwierzeckCPPFLAGS += -DCONFIG_SPL_BUILD
1113aa29de0SYing Zhangifeq ($(CONFIG_TPL_BUILD),y)
1123aa29de0SYing ZhangCPPFLAGS += -DCONFIG_TPL_BUILD
1133aa29de0SYing Zhangendif
114c8f9c302SDaniel Schwierzeckendif
115c8f9c302SDaniel Schwierzeck
1165c1a7ea6SSimon Glass# Does this architecture support generic board init?
1175c1a7ea6SSimon Glassifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
1185c1a7ea6SSimon Glassifneq ($(CONFIG_SYS_GENERIC_BOARD),)
119fada9e20SSimon GlassCHECK_GENERIC_BOARD = $(error Your architecture does not support generic board. \
120fada9e20SSimon GlassPlease undefined CONFIG_SYS_GENERIC_BOARD in your board config file)
1215c1a7ea6SSimon Glassendif
1225c1a7ea6SSimon Glassendif
1235c1a7ea6SSimon Glass
124*fea1ca8eSMasahiro YamadaCPPFLAGS += $(UBOOTINCLUDE)
125*fea1ca8eSMasahiro YamadaCPPFLAGS += $(NOSTDINC_FLAGS) -pipe $(PLATFORM_CPPFLAGS)
126e2211743Swdenk
1272b3c9d3dSMasahiro YamadaCFLAGS := $(KBUILD_CFLAGS) $(CPPFLAGS)
1284a30f1e8STom Rini
1295c2aeac5SSimon GlassBCURDIR = $(subst $(SRCTREE)/,,$(CURDIR:$(obj)%=%))
1305c2aeac5SSimon Glass
1315c2aeac5SSimon Glassifeq ($(findstring examples/,$(BCURDIR)),)
1325c2aeac5SSimon Glassifeq ($(CONFIG_SPL_BUILD),)
1335c2aeac5SSimon Glassifdef FTRACE
1345c2aeac5SSimon GlassCFLAGS += -finstrument-functions -DFTRACE
1355c2aeac5SSimon Glassendif
1365c2aeac5SSimon Glassendif
1375c2aeac5SSimon Glassendif
1385c2aeac5SSimon Glass
1392b3c9d3dSMasahiro YamadaAFLAGS := $(KBUILD_AFLAGS) $(CPPFLAGS)
140e2211743Swdenk
1418aba9dceSNobuhiro IwamatsuLDFLAGS += $(PLATFORM_LDFLAGS)
1426dc1ecebSHaiying WangLDFLAGS_FINAL += -Bstatic
1438aba9dceSNobuhiro Iwamatsu
1446dc1ecebSHaiying WangLDFLAGS_u-boot += -T $(obj)u-boot.lds $(LDFLAGS_FINAL)
14514d0a02aSWolfgang Denkifneq ($(CONFIG_SYS_TEXT_BASE),)
1468aba9dceSNobuhiro IwamatsuLDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
147161b2af4SMike Frysingerendif
148e2211743Swdenk
1493aa29de0SYing ZhangLDFLAGS_$(SPL_BIN) += -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
150c8f9c302SDaniel Schwierzeckifneq ($(CONFIG_SPL_TEXT_BASE),)
1513aa29de0SYing ZhangLDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE)
152c8f9c302SDaniel Schwierzeckendif
153c8f9c302SDaniel Schwierzeck
154e2211743Swdenk#########################################################################
155e2211743Swdenk
15614d0a02aSWolfgang Denkexport	CONFIG_SYS_TEXT_BASE PLATFORM_CPPFLAGS PLATFORM_RELFLAGS CPPFLAGS CFLAGS AFLAGS
157