bf71a29c8e
Since commit79d75d7527
(ARM: move -march=* and -mtune= options to arch/arm/Makefile), all the Tegra boards are broken because the SPL is built for ARMv7. Insert Tegra-specific code to arch/arm/Makefile to set compiler flags for an earlier ARM architecture. Note: The v1 patch for commit79d75d7527
*was* correct when it was submitted. Notice it was originally written for multi .config configuration where Kconfig set CONFIG_CPU_V7/CONFIG_CPU_ARM720T for Tegra U-Boot Main/SPL, respectively. But, until it was merged into the mainline, commite02ee2548a
(kconfig: switch to single .config configuration) had been already applied there. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reported-by: Stephen Warren <swarren@nvidia.com> Reported-by: Jan Kiszka <jan.kiszka@siemens.com> Tested-by: Jan Kiszka <jan.kiszka@siemens.com>
93 lines
2.6 KiB
Makefile
93 lines
2.6 KiB
Makefile
#
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
|
|
ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TEGRA),yy)
|
|
CONFIG_CPU_V7=
|
|
CONFIG_CPU_ARM720T=y
|
|
endif
|
|
|
|
# This selects which instruction set is used.
|
|
arch-$(CONFIG_CPU_ARM720T) =-march=armv4
|
|
arch-$(CONFIG_CPU_ARM920T) =-march=armv4
|
|
arch-$(CONFIG_CPU_ARM926EJS) =-march=armv5te
|
|
arch-$(CONFIG_CPU_ARM946ES) =-march=armv4
|
|
arch-$(CONFIG_CPU_SA1100) =-march=armv4
|
|
arch-$(CONFIG_CPU_PXA) =
|
|
arch-$(CONFIG_CPU_ARM1136) =-march=armv5
|
|
arch-$(CONFIG_CPU_ARM1176) =-march=armv5t
|
|
arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv5)
|
|
arch-$(CONFIG_ARM64) =-march=armv8-a
|
|
|
|
# Evaluate arch cc-option calls now
|
|
arch-y := $(arch-y)
|
|
|
|
# This selects how we optimise for the processor.
|
|
tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi
|
|
tune-$(CONFIG_CPU_ARM920T) =
|
|
tune-$(CONFIG_CPU_ARM926EJS) =
|
|
tune-$(CONFIG_CPU_ARM946ES) =
|
|
tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100
|
|
tune-$(CONFIG_CPU_PXA) =-mcpu=xscale
|
|
tune-$(CONFIG_CPU_ARM1136) =
|
|
tune-$(CONFIG_CPU_ARM1176) =
|
|
tune-$(CONFIG_CPU_V7) =
|
|
tune-$(CONFIG_ARM64) =
|
|
|
|
# Evaluate tune cc-option calls now
|
|
tune-y := $(tune-y)
|
|
|
|
PLATFORM_CPPFLAGS += $(arch-y) $(tune-y)
|
|
|
|
# Machine directory name. This list is sorted alphanumerically
|
|
# by CONFIG_* macro name.
|
|
machine-$(CONFIG_ARCH_AT91) += at91
|
|
machine-$(CONFIG_ARCH_BCM283X) += bcm283x
|
|
machine-$(CONFIG_ARCH_DAVINCI) += davinci
|
|
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
|
|
machine-$(CONFIG_ARCH_KEYSTONE) += keystone
|
|
# TODO: rename CONFIG_KIRKWOOD -> CONFIG_ARCH_KIRKWOOD
|
|
machine-$(CONFIG_KIRKWOOD) += kirkwood
|
|
# TODO: rename CONFIG_TEGRA -> CONFIG_ARCH_TEGRA
|
|
machine-$(CONFIG_ARCH_NOMADIK) += nomadik
|
|
# TODO: rename CONFIG_ORION5X -> CONFIG_ARCH_ORION5X
|
|
machine-$(CONFIG_ORION5X) += orion5x
|
|
machine-$(CONFIG_TEGRA) += tegra
|
|
machine-$(CONFIG_ARCH_UNIPHIER) += uniphier
|
|
machine-$(CONFIG_ARCH_VERSATILE) += versatile
|
|
|
|
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
|
|
|
|
PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
|
|
|
|
libs-y += $(machdirs)
|
|
|
|
head-y := arch/arm/cpu/$(CPU)/start.o
|
|
|
|
ifeq ($(CONFIG_SPL_BUILD),y)
|
|
ifneq ($(CONFIG_SPL_START_S_PATH),)
|
|
head-y := $(CONFIG_SPL_START_S_PATH:"%"=%)/start.o
|
|
endif
|
|
endif
|
|
|
|
libs-y += arch/arm/cpu/$(CPU)/
|
|
libs-y += arch/arm/cpu/
|
|
libs-y += arch/arm/lib/
|
|
|
|
ifeq ($(CONFIG_SPL_BUILD),y)
|
|
ifneq (,$(CONFIG_MX23)$(CONFIG_MX35)$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35))
|
|
libs-y += arch/arm/imx-common/
|
|
endif
|
|
else
|
|
ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610))
|
|
libs-y += arch/arm/imx-common/
|
|
endif
|
|
endif
|
|
|
|
ifneq (,$(filter $(SOC), armada-xp kirkwood))
|
|
libs-y += arch/arm/mvebu-common/
|
|
endif
|
|
|
|
# deprecated
|
|
-include $(machdirs)/config.mk
|