1 # SPDX-License-Identifier: GPL-2.0+
3 ifeq ($(CONFIG_SPL_BUILD
)$(CONFIG_TEGRA
),yy
)
8 # This selects which instruction set is used.
9 arch-
$(CONFIG_CPU_ARM720T
) =-march
=armv4
10 arch-
$(CONFIG_CPU_ARM920T
) =-march
=armv4t
11 arch-
$(CONFIG_CPU_ARM926EJS
) =-march
=armv5te
12 arch-
$(CONFIG_CPU_ARM946ES
) =-march
=armv5te
13 arch-
$(CONFIG_CPU_SA1100
) =-march
=armv4
14 arch-
$(CONFIG_CPU_PXA
) =
15 arch-
$(CONFIG_CPU_ARM1136
) =-march
=armv5
16 arch-
$(CONFIG_CPU_ARM1176
) =-march
=armv5t
17 arch-
$(CONFIG_CPU_V7A
) =$(call cc-option
, -march
=armv7-a
, \
18 $(call cc-option
, -march
=armv7
, -march
=armv5
))
19 arch-
$(CONFIG_CPU_V7M
) =-march
=armv7-m
20 arch-
$(CONFIG_CPU_V7R
) =-march
=armv7-r
21 arch-
$(CONFIG_ARM64
) =-march
=armv8-a
23 # On Tegra systems we must build SPL for the armv4 core on the device
24 # but otherwise we can use the value in CONFIG_SYS_ARM_ARCH
25 ifeq ($(CONFIG_SPL_BUILD
)$(CONFIG_TEGRA
),yy
)
26 arch-y
+= -D__LINUX_ARM_ARCH__
=4
28 arch-y
+= -D__LINUX_ARM_ARCH__
=$(CONFIG_SYS_ARM_ARCH
)
31 # Evaluate arch cc-option calls now
34 # This selects how we optimise for the processor.
35 tune-
$(CONFIG_CPU_ARM720T
) =-mtune
=arm7tdmi
36 tune-
$(CONFIG_CPU_ARM920T
) =
37 tune-
$(CONFIG_CPU_ARM926EJS
) =
38 tune-
$(CONFIG_CPU_ARM946ES
) =
39 tune-
$(CONFIG_CPU_SA1100
) =-mtune
=strongarm1100
40 tune-
$(CONFIG_CPU_PXA
) =-mcpu
=xscale
41 tune-
$(CONFIG_CPU_ARM1136
) =
42 tune-
$(CONFIG_CPU_ARM1176
) =
43 tune-
$(CONFIG_CPU_V7A
) =
44 tune-
$(CONFIG_CPU_V7R
) =
45 tune-
$(CONFIG_ARM64
) =
47 # Evaluate tune cc-option calls now
50 PLATFORM_CPPFLAGS
+= $(arch-y
) $(tune-y
)
52 # Machine directory name. This list is sorted alphanumerically
53 # by CONFIG_* macro name.
54 machine-
$(CONFIG_ARCH_ASPEED
) += aspeed
55 machine-
$(CONFIG_ARCH_AT91
) += at91
56 machine-
$(CONFIG_ARCH_BCM283X
) += bcm283x
57 machine-
$(CONFIG_ARCH_DAVINCI
) += davinci
58 machine-
$(CONFIG_ARCH_EXYNOS
) += exynos
59 machine-
$(CONFIG_ARCH_HIGHBANK
) += highbank
60 machine-
$(CONFIG_ARCH_KEYSTONE
) += keystone
61 # TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
62 machine-
$(CONFIG_KIRKWOOD
) += kirkwood
63 machine-
$(CONFIG_ARCH_MESON
) += meson
64 machine-
$(CONFIG_ARCH_MVEBU
) += mvebu
65 # TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
66 # TODO: rename CONFIG_ORION5X -> CONFIG_ARCH_ORION5X
67 machine-
$(CONFIG_ORION5X
) += orion5x
68 machine-
$(CONFIG_ARCH_OMAP2PLUS
) += omap2
69 machine-
$(CONFIG_ARCH_OWL
) += owl
70 machine-
$(CONFIG_ARCH_S5PC1XX
) += s5pc1xx
71 machine-
$(CONFIG_ARCH_SUNXI
) += sunxi
72 machine-
$(CONFIG_ARCH_SNAPDRAGON
) += snapdragon
73 machine-
$(CONFIG_ARCH_SOCFPGA
) += socfpga
74 machine-
$(CONFIG_ARCH_RMOBILE
) += rmobile
75 machine-
$(CONFIG_ARCH_ROCKCHIP
) += rockchip
76 machine-
$(CONFIG_STM32
) += stm32
77 machine-
$(CONFIG_ARCH_STM32MP
) += stm32mp
78 machine-
$(CONFIG_TEGRA
) += tegra
79 machine-
$(CONFIG_ARCH_UNIPHIER
) += uniphier
80 machine-
$(CONFIG_ARCH_ZYNQ
) += zynq
81 machine-
$(CONFIG_ARCH_ZYNQMP_R5
) += zynqmp-r5
83 machdirs
:= $(patsubst %,arch
/arm
/mach-
%/,$(machine-y
))
85 PLATFORM_CPPFLAGS
+= $(patsubst %,-I
$(srctree
)/%include,$(machdirs
))
89 head-y
:= arch
/arm
/cpu
/$(CPU
)/start.o
91 ifeq ($(CONFIG_SPL_BUILD
),y
)
92 ifneq ($(CONFIG_SPL_START_S_PATH
),)
93 head-y
:= $(CONFIG_SPL_START_S_PATH
:"%"=%)/start.o
97 libs-y
+= arch
/arm
/cpu
/$(CPU
)/
98 libs-y
+= arch
/arm
/cpu
/
99 libs-y
+= arch
/arm
/lib
/
101 ifeq ($(CONFIG_SPL_BUILD
),y
)
102 ifneq (,$(CONFIG_MX23
)$(CONFIG_MX28
)$(CONFIG_MX35
)$(filter $(SOC
), mx25 mx5 mx6 mx7 mx35 mx8m
))
103 libs-y
+= arch
/arm
/mach-imx
/
106 ifneq (,$(filter $(SOC
), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs mx8m vf610
))
107 libs-y
+= arch
/arm
/mach-imx
/
111 ifneq (,$(filter $(SOC
), kirkwood
))
112 libs-y
+= arch
/arm
/mach-mvebu
/
116 -include $(machdirs
)/config.mk