Home | History | Annotate | Download | only in arm
      1 # SPDX-License-Identifier: GPL-2.0+
      2 
      3 ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TEGRA),yy)
      4 CONFIG_CPU_V7A=
      5 CONFIG_CPU_ARM720T=y
      6 endif
      7 
      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
     22 
     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
     27 else
     28 arch-y += -D__LINUX_ARM_ARCH__=$(CONFIG_SYS_ARM_ARCH)
     29 endif
     30 
     31 # Evaluate arch cc-option calls now
     32 arch-y := $(arch-y)
     33 
     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)		=
     46 
     47 # Evaluate tune cc-option calls now
     48 tune-y := $(tune-y)
     49 
     50 PLATFORM_CPPFLAGS += $(arch-y) $(tune-y)
     51 
     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_S5PC1XX)		+= s5pc1xx
     70 machine-$(CONFIG_ARCH_SUNXI)		+= sunxi
     71 machine-$(CONFIG_ARCH_SNAPDRAGON)	+= snapdragon
     72 machine-$(CONFIG_ARCH_SOCFPGA)		+= socfpga
     73 machine-$(CONFIG_ARCH_RMOBILE)		+= rmobile
     74 machine-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip
     75 machine-$(CONFIG_STM32)			+= stm32
     76 machine-$(CONFIG_ARCH_STM32MP)		+= stm32mp
     77 machine-$(CONFIG_TEGRA)			+= tegra
     78 machine-$(CONFIG_ARCH_UNIPHIER)		+= uniphier
     79 machine-$(CONFIG_ARCH_ZYNQ)		+= zynq
     80 machine-$(CONFIG_ARCH_ZYNQMP_R5)	+= zynqmp-r5
     81 
     82 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
     83 
     84 PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
     85 
     86 libs-y += $(machdirs)
     87 
     88 head-y := arch/arm/cpu/$(CPU)/start.o
     89 
     90 ifeq ($(CONFIG_SPL_BUILD),y)
     91 ifneq ($(CONFIG_SPL_START_S_PATH),)
     92 head-y := $(CONFIG_SPL_START_S_PATH:"%"=%)/start.o
     93 endif
     94 endif
     95 
     96 libs-y += arch/arm/cpu/$(CPU)/
     97 libs-y += arch/arm/cpu/
     98 libs-y += arch/arm/lib/
     99 
    100 ifeq ($(CONFIG_SPL_BUILD),y)
    101 ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 mx8m))
    102 libs-y += arch/arm/mach-imx/
    103 endif
    104 else
    105 ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs mx8m vf610))
    106 libs-y += arch/arm/mach-imx/
    107 endif
    108 endif
    109 
    110 ifneq (,$(filter $(SOC), kirkwood))
    111 libs-y += arch/arm/mach-mvebu/
    112 endif
    113 
    114 # deprecated
    115 -include $(machdirs)/config.mk
    116