xref: /OK3568_Linux_fs/u-boot/arch/arm/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#
2*4882a593Smuzhiyun# SPDX-License-Identifier:	GPL-2.0+
3*4882a593Smuzhiyun#
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TEGRA),yy)
6*4882a593SmuzhiyunCONFIG_CPU_V7=
7*4882a593SmuzhiyunCONFIG_CPU_ARM720T=y
8*4882a593Smuzhiyunendif
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun# This selects which instruction set is used.
11*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM720T)	=-march=armv4
12*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM920T)	=-march=armv4t
13*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM926EJS)	=-march=armv5te
14*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM946ES)	=-march=armv5te
15*4882a593Smuzhiyunarch-$(CONFIG_CPU_SA1100)	=-march=armv4
16*4882a593Smuzhiyunarch-$(CONFIG_CPU_PXA)		=
17*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM1136)	=-march=armv5
18*4882a593Smuzhiyunarch-$(CONFIG_CPU_ARM1176)	=-march=armv5t
19*4882a593Smuzhiyunarch-$(CONFIG_CPU_V7)		=$(call cc-option, -march=armv7-a, \
20*4882a593Smuzhiyun				 $(call cc-option, -march=armv7, -march=armv5))
21*4882a593Smuzhiyunarch-$(CONFIG_ARM64)		=-march=armv8-a+nosimd
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun# On Tegra systems we must build SPL for the armv4 core on the device
24*4882a593Smuzhiyun# but otherwise we can use the value in CONFIG_SYS_ARM_ARCH
25*4882a593Smuzhiyunifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TEGRA),yy)
26*4882a593Smuzhiyunarch-y += -D__LINUX_ARM_ARCH__=4
27*4882a593Smuzhiyunelse
28*4882a593Smuzhiyunarch-y += -D__LINUX_ARM_ARCH__=$(CONFIG_SYS_ARM_ARCH)
29*4882a593Smuzhiyunendif
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun# Evaluate arch cc-option calls now
32*4882a593Smuzhiyunarch-y := $(arch-y)
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun# This selects how we optimise for the processor.
35*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM720T)	=-mtune=arm7tdmi
36*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM920T)	=
37*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM926EJS)	=
38*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM946ES)	=
39*4882a593Smuzhiyuntune-$(CONFIG_CPU_SA1100)	=-mtune=strongarm1100
40*4882a593Smuzhiyuntune-$(CONFIG_CPU_PXA)		=-mcpu=xscale
41*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM1136)	=
42*4882a593Smuzhiyuntune-$(CONFIG_CPU_ARM1176)	=
43*4882a593Smuzhiyuntune-$(CONFIG_CPU_V7)		=
44*4882a593Smuzhiyuntune-$(CONFIG_ARM64)		=
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun# Evaluate tune cc-option calls now
47*4882a593Smuzhiyuntune-y := $(tune-y)
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunPLATFORM_CPPFLAGS += $(arch-y) $(tune-y)
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun# Machine directory name.  This list is sorted alphanumerically
52*4882a593Smuzhiyun# by CONFIG_* macro name.
53*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_ASPEED)		+= aspeed
54*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_AT91)		+= at91
55*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_BCM283X)		+= bcm283x
56*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_BCMSTB)		+= bcmstb
57*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_DAVINCI)		+= davinci
58*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_EXYNOS)		+= exynos
59*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
60*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
61*4882a593Smuzhiyun# TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
62*4882a593Smuzhiyunmachine-$(CONFIG_KIRKWOOD)		+= kirkwood
63*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_MESON)		+= meson
64*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_MVEBU)		+= mvebu
65*4882a593Smuzhiyun# TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
66*4882a593Smuzhiyun# TODO: rename CONFIG_ORION5X -> CONFIG_ARCH_ORION5X
67*4882a593Smuzhiyunmachine-$(CONFIG_ORION5X)		+= orion5x
68*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_OMAP2PLUS)	+= omap2
69*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_S5PC1XX)		+= s5pc1xx
70*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_SUNXI)		+= sunxi
71*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_SNAPDRAGON)	+= snapdragon
72*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_SOCFPGA)		+= socfpga
73*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_RMOBILE)		+= rmobile
74*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip
75*4882a593Smuzhiyunmachine-$(CONFIG_STM32)			+= stm32
76*4882a593Smuzhiyunmachine-$(CONFIG_TEGRA)			+= tegra
77*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_UNIPHIER)		+= uniphier
78*4882a593Smuzhiyunmachine-$(CONFIG_ARCH_ZYNQ)		+= zynq
79*4882a593Smuzhiyun
80*4882a593Smuzhiyunmachdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
81*4882a593Smuzhiyun
82*4882a593SmuzhiyunPLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunlibs-y += $(machdirs)
85*4882a593Smuzhiyun
86*4882a593Smuzhiyunhead-y := arch/arm/cpu/$(CPU)/start.o
87*4882a593Smuzhiyun
88*4882a593Smuzhiyunifeq ($(CONFIG_SPL_BUILD),y)
89*4882a593Smuzhiyunifneq ($(CONFIG_SPL_START_S_PATH),)
90*4882a593Smuzhiyunhead-y := $(CONFIG_SPL_START_S_PATH:"%"=%)/start.o
91*4882a593Smuzhiyunendif
92*4882a593Smuzhiyunendif
93*4882a593Smuzhiyun
94*4882a593Smuzhiyunlibs-y += arch/arm/cpu/$(CPU)/
95*4882a593Smuzhiyunlibs-y += arch/arm/cpu/
96*4882a593Smuzhiyunlibs-y += arch/arm/lib/
97*4882a593Smuzhiyun
98*4882a593Smuzhiyunifeq ($(CONFIG_SPL_BUILD),y)
99*4882a593Smuzhiyunifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35))
100*4882a593Smuzhiyunlibs-y += arch/arm/mach-imx/
101*4882a593Smuzhiyunendif
102*4882a593Smuzhiyunelse
103*4882a593Smuzhiyunifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs vf610))
104*4882a593Smuzhiyunlibs-y += arch/arm/mach-imx/
105*4882a593Smuzhiyunendif
106*4882a593Smuzhiyunendif
107*4882a593Smuzhiyun
108*4882a593Smuzhiyunifneq (,$(filter $(SOC), kirkwood))
109*4882a593Smuzhiyunlibs-y += arch/arm/mach-mvebu/
110*4882a593Smuzhiyunendif
111*4882a593Smuzhiyun
112*4882a593Smuzhiyun# deprecated
113*4882a593Smuzhiyun-include $(machdirs)/config.mk
114