2005-04-17 06:20:36 +08:00
|
|
|
#
|
|
|
|
# arch/arm/Makefile
|
|
|
|
#
|
2006-03-06 06:14:10 +08:00
|
|
|
# This file is included by the global makefile so that you can add your own
|
|
|
|
# architecture-specific flags and dependencies.
|
|
|
|
#
|
2005-04-17 06:20:36 +08:00
|
|
|
# This file is subject to the terms and conditions of the GNU General Public
|
|
|
|
# License. See the file "COPYING" in the main directory of this archive
|
|
|
|
# for more details.
|
|
|
|
#
|
|
|
|
# Copyright (C) 1995-2001 by Russell King
|
|
|
|
|
2019-01-06 02:35:25 +08:00
|
|
|
LDFLAGS_vmlinux := --no-undefined -X --pic-veneer
|
2009-05-30 21:00:18 +08:00
|
|
|
ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
|
|
|
|
LDFLAGS_vmlinux += --be8
|
2017-10-09 15:11:45 +08:00
|
|
|
KBUILD_LDFLAGS_MODULE += --be8
|
2009-05-30 21:00:18 +08:00
|
|
|
endif
|
2009-09-20 18:28:22 +08:00
|
|
|
|
2014-11-24 23:54:35 +08:00
|
|
|
ifeq ($(CONFIG_ARM_MODULE_PLTS),y)
|
2019-08-15 00:06:22 +08:00
|
|
|
KBUILD_LDS_MODULE += $(srctree)/arch/arm/kernel/module.lds
|
2014-11-24 23:54:35 +08:00
|
|
|
endif
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
GZFLAGS :=-9
|
2007-10-15 04:21:35 +08:00
|
|
|
#KBUILD_CFLAGS +=-pipe
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2010-08-15 06:56:21 +08:00
|
|
|
# Never generate .eh_frame
|
|
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-dwarf2-cfi-asm)
|
|
|
|
|
2015-12-19 06:44:23 +08:00
|
|
|
# This should work on most of the modern platforms
|
|
|
|
KBUILD_DEFCONFIG := multi_v7_defconfig
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2009-07-23 14:31:31 +08:00
|
|
|
# defines filename extension depending memory management type.
|
2006-03-27 22:14:19 +08:00
|
|
|
ifeq ($(CONFIG_MMU),)
|
|
|
|
MMUEXT := -nommu
|
2012-12-04 19:56:44 +08:00
|
|
|
KBUILD_CFLAGS += $(call cc-option,-mno-unaligned-access)
|
2006-03-27 22:14:19 +08:00
|
|
|
endif
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
ifeq ($(CONFIG_FRAME_POINTER),y)
|
2019-08-23 04:26:53 +08:00
|
|
|
KBUILD_CFLAGS +=-fno-omit-frame-pointer
|
|
|
|
ifeq ($(CONFIG_CC_IS_GCC),y)
|
|
|
|
KBUILD_CFLAGS += -mapcs -mno-sched-prolog
|
|
|
|
endif
|
2005-04-17 06:20:36 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
|
2007-10-16 04:17:25 +08:00
|
|
|
KBUILD_CPPFLAGS += -mbig-endian
|
2017-11-01 01:19:15 +08:00
|
|
|
CHECKFLAGS += -D__ARMEB__
|
2005-04-17 06:20:36 +08:00
|
|
|
AS += -EB
|
2018-08-24 07:20:39 +08:00
|
|
|
KBUILD_LDFLAGS += -EB
|
2005-04-17 06:20:36 +08:00
|
|
|
else
|
2007-10-16 04:17:25 +08:00
|
|
|
KBUILD_CPPFLAGS += -mlittle-endian
|
2017-11-01 01:19:15 +08:00
|
|
|
CHECKFLAGS += -D__ARMEL__
|
2005-04-17 06:20:36 +08:00
|
|
|
AS += -EL
|
2018-08-24 07:20:39 +08:00
|
|
|
KBUILD_LDFLAGS += -EL
|
2005-04-17 06:20:36 +08:00
|
|
|
endif
|
|
|
|
|
2015-09-03 20:24:40 +08:00
|
|
|
#
|
|
|
|
# The Scalar Replacement of Aggregates (SRA) optimization pass in GCC 4.9 and
|
|
|
|
# later may result in code being generated that handles signed short and signed
|
|
|
|
# char struct members incorrectly. So disable it.
|
|
|
|
# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932)
|
|
|
|
#
|
|
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra)
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
# This selects which instruction set is used.
|
|
|
|
# Note that GCC does not numerically define an architecture version
|
|
|
|
# macro, but instead defines a whole series of macros which makes
|
|
|
|
# testing for a specific architecture or later rather impossible.
|
2013-06-29 18:44:43 +08:00
|
|
|
arch-$(CONFIG_CPU_32v7M) =-D__LINUX_ARM_ARCH__=7 -march=armv7-m -Wa,-march=armv7-m
|
2013-06-27 11:32:06 +08:00
|
|
|
arch-$(CONFIG_CPU_32v7) =-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
|
|
|
|
arch-$(CONFIG_CPU_32v6) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
|
2007-05-09 05:45:26 +08:00
|
|
|
# Only override the compiler option if ARMv6. The ARMv6K extensions are
|
|
|
|
# always available in ARMv7
|
|
|
|
ifeq ($(CONFIG_CPU_32v6),y)
|
2013-06-27 11:32:06 +08:00
|
|
|
arch-$(CONFIG_CPU_32v6K) =-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
|
2007-05-09 05:45:26 +08:00
|
|
|
endif
|
2013-06-27 11:32:06 +08:00
|
|
|
arch-$(CONFIG_CPU_32v5) =-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4t)
|
|
|
|
arch-$(CONFIG_CPU_32v4T) =-D__LINUX_ARM_ARCH__=4 -march=armv4t
|
|
|
|
arch-$(CONFIG_CPU_32v4) =-D__LINUX_ARM_ARCH__=4 -march=armv4
|
2018-10-02 22:01:24 +08:00
|
|
|
arch-$(CONFIG_CPU_32v3) =-D__LINUX_ARM_ARCH__=3 -march=armv3m
|
2013-06-27 11:32:06 +08:00
|
|
|
|
|
|
|
# Evaluate arch cc-option calls now
|
|
|
|
arch-y := $(arch-y)
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
# This selects how we optimise for the processor.
|
2013-06-27 11:32:06 +08:00
|
|
|
tune-$(CONFIG_CPU_ARM7TDMI) =-mtune=arm7tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM720T) =-mtune=arm7tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM740T) =-mtune=arm7tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM9TDMI) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM940T) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM946E) =$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
|
|
|
|
tune-$(CONFIG_CPU_ARM920T) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM922T) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM925T) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_ARM926T) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_FA526) =-mtune=arm9tdmi
|
|
|
|
tune-$(CONFIG_CPU_SA110) =-mtune=strongarm110
|
|
|
|
tune-$(CONFIG_CPU_SA1100) =-mtune=strongarm1100
|
|
|
|
tune-$(CONFIG_CPU_XSCALE) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
|
|
|
tune-$(CONFIG_CPU_XSC3) =$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
|
|
|
tune-$(CONFIG_CPU_FEROCEON) =$(call cc-option,-mtune=marvell-f,-mtune=xscale)
|
|
|
|
tune-$(CONFIG_CPU_V6) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
|
|
|
tune-$(CONFIG_CPU_V6K) =$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
|
|
|
|
|
|
|
# Evaluate tune cc-option calls now
|
|
|
|
tune-y := $(tune-y)
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-01-15 00:33:50 +08:00
|
|
|
ifeq ($(CONFIG_AEABI),y)
|
2018-05-09 05:49:49 +08:00
|
|
|
CFLAGS_ABI :=-mabi=aapcs-linux -mfpu=vfp
|
2006-01-15 00:33:50 +08:00
|
|
|
else
|
2005-07-01 00:04:14 +08:00
|
|
|
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
2006-01-15 00:33:50 +08:00
|
|
|
endif
|
|
|
|
|
2009-02-12 20:56:34 +08:00
|
|
|
ifeq ($(CONFIG_ARM_UNWIND),y)
|
|
|
|
CFLAGS_ABI +=-funwind-tables
|
|
|
|
endif
|
|
|
|
|
2019-09-04 08:13:15 +08:00
|
|
|
ifeq ($(CONFIG_CC_IS_CLANG),y)
|
|
|
|
CFLAGS_ABI += -meabi gnu
|
|
|
|
endif
|
|
|
|
|
2017-11-29 14:52:52 +08:00
|
|
|
# Accept old syntax despite ".syntax unified"
|
|
|
|
AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W)
|
|
|
|
|
2009-07-24 19:33:02 +08:00
|
|
|
ifeq ($(CONFIG_THUMB2_KERNEL),y)
|
2019-05-16 06:17:17 +08:00
|
|
|
CFLAGS_ISA :=-mthumb -Wa,-mimplicit-it=always $(AFLAGS_NOWARN)
|
2012-08-10 19:12:20 +08:00
|
|
|
AFLAGS_ISA :=$(CFLAGS_ISA) -Wa$(comma)-mthumb
|
2011-03-03 18:41:12 +08:00
|
|
|
# Work around buggy relocation from gas if requested:
|
|
|
|
ifeq ($(CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11),y)
|
2017-10-09 15:11:45 +08:00
|
|
|
KBUILD_CFLAGS_MODULE +=-fno-optimize-sibling-calls
|
2011-03-03 18:41:12 +08:00
|
|
|
endif
|
2012-08-10 19:12:20 +08:00
|
|
|
else
|
2017-11-29 14:52:52 +08:00
|
|
|
CFLAGS_ISA :=$(call cc-option,-marm,) $(AFLAGS_NOWARN)
|
2012-08-10 19:12:20 +08:00
|
|
|
AFLAGS_ISA :=$(CFLAGS_ISA)
|
2009-07-24 19:33:02 +08:00
|
|
|
endif
|
|
|
|
|
2006-01-15 00:33:50 +08:00
|
|
|
# Need -Uarm for gcc < 3.x
|
2012-08-10 19:12:20 +08:00
|
|
|
KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
|
|
|
|
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2018-05-31 04:48:38 +08:00
|
|
|
CHECKFLAGS += -D__arm__
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#Default value
|
2012-05-03 17:02:50 +08:00
|
|
|
head-y := arch/arm/kernel/head$(MMUEXT).o
|
2014-07-08 20:50:50 +08:00
|
|
|
|
|
|
|
# Text offset. This list is sorted numerically by address in order to
|
|
|
|
# provide a means to avoid/resolve conflicts in multi-arch kernels.
|
2006-01-04 01:28:33 +08:00
|
|
|
textofs-y := 0x00008000
|
2010-05-11 14:55:09 +08:00
|
|
|
# We don't want the htc bootloader to corrupt kernel during resume
|
|
|
|
textofs-$(CONFIG_PM_H1940) := 0x00108000
|
2005-04-17 06:20:36 +08:00
|
|
|
# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
|
2009-04-26 21:22:29 +08:00
|
|
|
ifeq ($(CONFIG_ARCH_SA1100),y)
|
|
|
|
textofs-$(CONFIG_SA1111) := 0x00208000
|
2005-04-17 06:20:36 +08:00
|
|
|
endif
|
2011-08-12 07:14:28 +08:00
|
|
|
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
|
|
|
|
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
|
2017-09-18 00:45:21 +08:00
|
|
|
textofs-$(CONFIG_ARCH_MESON) := 0x00208000
|
2014-05-23 17:08:35 +08:00
|
|
|
textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
|
2009-04-26 21:22:29 +08:00
|
|
|
|
|
|
|
# Machine directory name. This list is sorted alphanumerically
|
|
|
|
# by CONFIG_* macro name.
|
2017-02-15 18:03:22 +08:00
|
|
|
machine-$(CONFIG_ARCH_ACTIONS) += actions
|
2015-03-12 19:53:00 +08:00
|
|
|
machine-$(CONFIG_ARCH_ALPINE) += alpine
|
2016-02-12 00:06:19 +08:00
|
|
|
machine-$(CONFIG_ARCH_ARTPEC) += artpec
|
2019-08-21 13:55:27 +08:00
|
|
|
machine-$(CONFIG_ARCH_ASPEED) += aspeed
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_AT91) += at91
|
2014-05-23 17:08:35 +08:00
|
|
|
machine-$(CONFIG_ARCH_AXXIA) += axxia
|
2012-11-20 01:46:10 +08:00
|
|
|
machine-$(CONFIG_ARCH_BCM) += bcm
|
2013-09-09 20:36:19 +08:00
|
|
|
machine-$(CONFIG_ARCH_BERLIN) += berlin
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
|
|
|
|
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
|
|
|
|
machine-$(CONFIG_ARCH_DAVINCI) += davinci
|
2015-03-09 17:05:14 +08:00
|
|
|
machine-$(CONFIG_ARCH_DIGICOLOR) += digicolor
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_DOVE) += dove
|
|
|
|
machine-$(CONFIG_ARCH_EBSA110) += ebsa110
|
2011-11-17 21:36:23 +08:00
|
|
|
machine-$(CONFIG_ARCH_EFM32) += efm32
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_EP93XX) += ep93xx
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_EXYNOS) += exynos
|
2014-09-24 16:01:19 +08:00
|
|
|
machine-$(CONFIG_ARCH_FOOTBRIDGE) += footbridge
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_GEMINI) += gemini
|
|
|
|
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
|
2014-04-01 11:01:09 +08:00
|
|
|
machine-$(CONFIG_ARCH_HISI) += hisi
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
|
|
|
|
machine-$(CONFIG_ARCH_IOP32X) += iop32x
|
|
|
|
machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_KEYSTONE) += keystone
|
2015-05-12 06:00:47 +08:00
|
|
|
machine-$(CONFIG_ARCH_LPC18XX) += lpc18xx
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
|
2014-09-11 04:16:59 +08:00
|
|
|
machine-$(CONFIG_ARCH_MESON) += meson
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_MMP) += mmp
|
2016-04-25 16:49:13 +08:00
|
|
|
machine-$(CONFIG_ARCH_MPS2) += vexpress
|
2013-12-18 20:58:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_MOXART) += moxart
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_MVEBU) += mvebu
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_MXC) += imx
|
2014-05-13 07:06:13 +08:00
|
|
|
machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
|
2019-02-27 12:52:33 +08:00
|
|
|
machine-$(CONFIG_ARCH_MILBEAUT) += milbeaut
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_MXS) += mxs
|
|
|
|
machine-$(CONFIG_ARCH_NOMADIK) += nomadik
|
2017-08-17 03:18:39 +08:00
|
|
|
machine-$(CONFIG_ARCH_NPCM) += npcm
|
2013-06-11 16:40:17 +08:00
|
|
|
machine-$(CONFIG_ARCH_NSPIRE) += nspire
|
2016-09-09 18:23:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_OXNAS) += oxnas
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_OMAP1) += omap1
|
|
|
|
machine-$(CONFIG_ARCH_OMAP2PLUS) += omap2
|
|
|
|
machine-$(CONFIG_ARCH_ORION5X) += orion5x
|
|
|
|
machine-$(CONFIG_ARCH_PICOXCELL) += picoxcell
|
|
|
|
machine-$(CONFIG_ARCH_PXA) += pxa
|
2014-01-22 07:14:10 +08:00
|
|
|
machine-$(CONFIG_ARCH_QCOM) += qcom
|
2018-12-18 23:02:30 +08:00
|
|
|
machine-$(CONFIG_ARCH_RDA) += rda
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_REALVIEW) += realview
|
2013-06-03 05:09:41 +08:00
|
|
|
machine-$(CONFIG_ARCH_ROCKCHIP) += rockchip
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_RPC) += rpc
|
2013-01-22 07:39:09 +08:00
|
|
|
machine-$(CONFIG_ARCH_S3C24XX) += s3c24xx
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx
|
|
|
|
machine-$(CONFIG_ARCH_S5PV210) += s5pv210
|
|
|
|
machine-$(CONFIG_ARCH_SA1100) += sa1100
|
2018-04-20 21:28:27 +08:00
|
|
|
machine-$(CONFIG_ARCH_RENESAS) += shmobile
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_SIRF) += prima2
|
|
|
|
machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
|
|
|
|
machine-$(CONFIG_ARCH_STI) += sti
|
2015-05-09 15:53:54 +08:00
|
|
|
machine-$(CONFIG_ARCH_STM32) += stm32
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_SUNXI) += sunxi
|
2015-12-15 17:41:13 +08:00
|
|
|
machine-$(CONFIG_ARCH_TANGO) += tango
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
machine-$(CONFIG_ARCH_TEGRA) += tegra
|
|
|
|
machine-$(CONFIG_ARCH_U300) += u300
|
|
|
|
machine-$(CONFIG_ARCH_U8500) += ux500
|
|
|
|
machine-$(CONFIG_ARCH_VERSATILE) += versatile
|
|
|
|
machine-$(CONFIG_ARCH_VEXPRESS) += vexpress
|
|
|
|
machine-$(CONFIG_ARCH_VT8500) += vt8500
|
2015-04-28 17:18:05 +08:00
|
|
|
machine-$(CONFIG_ARCH_ZX) += zx
|
2013-07-27 07:45:45 +08:00
|
|
|
machine-$(CONFIG_ARCH_ZYNQ) += zynq
|
2012-12-02 22:12:47 +08:00
|
|
|
machine-$(CONFIG_PLAT_SPEAR) += spear
|
2009-04-26 21:22:29 +08:00
|
|
|
|
|
|
|
# Platform directory name. This list is sorted alphanumerically
|
|
|
|
# by CONFIG_* macro name.
|
2013-06-19 00:26:42 +08:00
|
|
|
plat-$(CONFIG_ARCH_EXYNOS) += samsung
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
plat-$(CONFIG_ARCH_OMAP) += omap
|
|
|
|
plat-$(CONFIG_ARCH_S3C64XX) += samsung
|
2014-07-03 19:17:12 +08:00
|
|
|
plat-$(CONFIG_ARCH_S5PV210) += samsung
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
plat-$(CONFIG_PLAT_ORION) += orion
|
|
|
|
plat-$(CONFIG_PLAT_PXA) += pxa
|
2013-02-01 08:54:38 +08:00
|
|
|
plat-$(CONFIG_PLAT_S3C24XX) += samsung
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
plat-$(CONFIG_PLAT_VERSATILE) += versatile
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
ifeq ($(CONFIG_ARCH_EBSA110),y)
|
|
|
|
# This is what happens if you forget the IOCS16 line.
|
|
|
|
# PCMCIA cards stop working.
|
|
|
|
CFLAGS_3c589_cs.o :=-DISA_SIXTEEN_BIT_PERIPHERAL
|
|
|
|
export CFLAGS_3c589_cs.o
|
|
|
|
endif
|
|
|
|
|
2006-01-04 01:28:33 +08:00
|
|
|
# The byte offset of the kernel image in RAM from the start of RAM.
|
|
|
|
TEXT_OFFSET := $(textofs-y)
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2008-08-03 02:36:14 +08:00
|
|
|
# The first directory contains additional information for the boot setup code
|
2005-04-17 06:20:36 +08:00
|
|
|
ifneq ($(machine-y),)
|
2008-08-03 02:36:14 +08:00
|
|
|
MACHINE := arch/arm/mach-$(word 1,$(machine-y))/
|
2005-04-17 06:20:36 +08:00
|
|
|
else
|
|
|
|
MACHINE :=
|
|
|
|
endif
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
ifeq ($(CONFIG_ARCH_MULTIPLATFORM),y)
|
|
|
|
MACHINE :=
|
|
|
|
endif
|
2007-02-12 01:31:01 +08:00
|
|
|
|
2008-08-03 02:36:14 +08:00
|
|
|
machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
|
2014-07-03 19:17:12 +08:00
|
|
|
platdirs := $(patsubst %,arch/arm/plat-%/,$(sort $(plat-y)))
|
2008-08-03 02:36:14 +08:00
|
|
|
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
ifneq ($(CONFIG_ARCH_MULTIPLATFORM),y)
|
2016-06-09 15:50:28 +08:00
|
|
|
ifneq ($(CONFIG_ARM_SINGLE_ARMV7M),y)
|
2008-08-03 02:36:14 +08:00
|
|
|
KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs) $(platdirs))
|
|
|
|
endif
|
ARM: initial multiplatform support
This lets us build a multiplatform kernel for experimental purposes.
However, it will not be useful for any real work, because it relies
on a number of useful things to be disabled for now:
* SMP support must be turned off because of conflicting symbols.
Marc Zyngier has proposed a solution by adding a new SOC
operations structure to hold indirect function pointers
for these, but that work is currently stalled
* We turn on SPARSE_IRQ unconditionally, which is not supported
on most platforms. Each of them is currently in a different
state, but most are being worked on.
* A common clock framework is in place since v3.4 but not yet
being used. Work on this is on its way.
* DEBUG_LL for early debugging is currently disabled.
* THUMB2_KERNEL does not work with allyesconfig because the
kernel gets too big
[Rob Herring]: Rebased to not be dependent on the mass mach header rename.
As a result, omap2plus, imx, mxs and ux500 are not converted. Highbank,
picoxcell, mvebu, and socfpga are converted.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Jamie Iles <jamie@jamieiles.com>
Cc: Dinh Nguyen <dinguyen@altera.com>
2012-09-07 02:41:12 +08:00
|
|
|
endif
|
2008-08-03 02:36:14 +08:00
|
|
|
|
2006-03-27 22:14:19 +08:00
|
|
|
export TEXT_OFFSET GZFLAGS MMUEXT
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
|
2019-07-11 11:07:56 +08:00
|
|
|
# Put arch/arm/fastfpe/ to use this.
|
|
|
|
core-$(CONFIG_FPE_FASTFPE) += $(patsubst $(srctree)/%,%,$(wildcard $(srctree)/arch/arm/fastfpe/))
|
2005-04-17 06:20:36 +08:00
|
|
|
core-$(CONFIG_VFP) += arch/arm/vfp/
|
2012-09-14 21:53:39 +08:00
|
|
|
core-$(CONFIG_XEN) += arch/arm/xen/
|
2013-01-21 07:28:06 +08:00
|
|
|
core-$(CONFIG_KVM_ARM_HOST) += arch/arm/kvm/
|
2015-03-26 02:16:05 +08:00
|
|
|
core-$(CONFIG_VDSO) += arch/arm/vdso/
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2010-09-01 21:37:05 +08:00
|
|
|
# If we have a machine-specific directory, then include it in the build.
|
|
|
|
core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
|
2015-01-09 10:19:49 +08:00
|
|
|
core-y += arch/arm/probes/
|
2012-03-16 20:37:12 +08:00
|
|
|
core-y += arch/arm/net/
|
2012-09-07 04:17:02 +08:00
|
|
|
core-y += arch/arm/crypto/
|
2010-09-01 21:37:05 +08:00
|
|
|
core-y += $(machdirs) $(platdirs)
|
|
|
|
|
2019-07-19 00:35:23 +08:00
|
|
|
# For cleaning
|
|
|
|
core- += $(patsubst %,arch/arm/mach-%/, $(machine-))
|
|
|
|
core- += $(patsubst %,arch/arm/plat-%/, $(plat-))
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
|
|
|
|
|
2005-11-05 01:17:30 +08:00
|
|
|
libs-y := arch/arm/lib/ $(libs-y)
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
# Default target when executing plain make
|
2016-11-23 05:34:30 +08:00
|
|
|
boot := arch/arm/boot
|
2005-04-17 06:20:36 +08:00
|
|
|
ifeq ($(CONFIG_XIP_KERNEL),y)
|
2016-11-23 05:34:30 +08:00
|
|
|
KBUILD_IMAGE := $(boot)/xipImage
|
2005-04-17 06:20:36 +08:00
|
|
|
else
|
2016-11-23 05:34:30 +08:00
|
|
|
KBUILD_IMAGE := $(boot)/zImage
|
2005-04-17 06:20:36 +08:00
|
|
|
endif
|
|
|
|
|
2018-12-06 16:32:57 +08:00
|
|
|
ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y)
|
|
|
|
prepare: stack_protector_prepare
|
|
|
|
stack_protector_prepare: prepare0
|
2024-06-11 20:08:33 +08:00
|
|
|
$(eval SSP_PLUGIN_CFLAGS := \
|
2018-12-06 16:32:57 +08:00
|
|
|
-fplugin-arg-arm_ssp_per_task_plugin-tso=$(shell \
|
|
|
|
awk '{if ($$2 == "THREAD_SZ_ORDER") print $$3;}'\
|
|
|
|
include/generated/asm-offsets.h) \
|
|
|
|
-fplugin-arg-arm_ssp_per_task_plugin-offset=$(shell \
|
|
|
|
awk '{if ($$2 == "TI_STACK_CANARY") print $$3;}'\
|
|
|
|
include/generated/asm-offsets.h))
|
2024-06-11 20:08:33 +08:00
|
|
|
$(eval KBUILD_CFLAGS += $(SSP_PLUGIN_CFLAGS))
|
|
|
|
$(eval GCC_PLUGINS_CFLAGS += $(SSP_PLUGIN_CFLAGS))
|
2018-12-06 16:32:57 +08:00
|
|
|
endif
|
|
|
|
|
2018-01-11 05:19:37 +08:00
|
|
|
all: $(notdir $(KBUILD_IMAGE))
|
2006-10-29 20:51:05 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2016-10-19 02:57:01 +08:00
|
|
|
archheaders:
|
|
|
|
$(Q)$(MAKE) $(build)=arch/arm/tools uapi
|
|
|
|
|
2009-04-21 01:59:58 +08:00
|
|
|
archprepare:
|
2016-10-19 03:11:23 +08:00
|
|
|
$(Q)$(MAKE) $(build)=arch/arm/tools kapi
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
# Convert bzImage to zImage
|
|
|
|
bzImage: zImage
|
|
|
|
|
2013-07-18 00:05:06 +08:00
|
|
|
BOOT_TARGETS = zImage Image xipImage bootpImage uImage
|
|
|
|
INSTALL_TARGETS = zinstall uinstall install
|
|
|
|
|
|
|
|
PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS)
|
|
|
|
|
ARM: 8418/1: add boot image dependencies to not generate invalid images
U-Boot is often used to boot the kernel on ARM boards, but uImage
is not built by "make all", so we are often inclined to do
"make all uImage" to generate DTBs, modules and uImage in a single
command, but we should notice a pitfall behind it. In fact,
"make all uImage" could generate an invalid uImage if it is run with
the parallel option (-j).
You can reproduce this problem with the following procedure:
[1] First, build "all" and "uImage" separately.
You will get a valid uImage
$ git clean -f -x -d
$ export CROSS_COMPILE=<your-tools-prefix>
$ make -s -j8 ARCH=arm multi_v7_defconfig
$ make -s -j8 ARCH=arm all
$ make -j8 ARCH=arm UIMAGE_LOADADDR=0x80208000 uImage
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-4.2.0-rc5-00156-gdd2384a-d
Created: Sat Aug 8 23:21:35 2015
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 6138648 Bytes = 5994.77 kB = 5.85 MB
Load Address: 80208000
Entry Point: 80208000
Image arch/arm/boot/uImage is ready
$ ls -l arch/arm/boot/*Image
-rwxrwxr-x 1 masahiro masahiro 13766656 Aug 8 23:20 arch/arm/boot/Image
-rw-rw-r-- 1 masahiro masahiro 6138712 Aug 8 23:21 arch/arm/boot/uImage
-rwxrwxr-x 1 masahiro masahiro 6138648 Aug 8 23:20 arch/arm/boot/zImage
[2] Update some source file(s)
$ touch init/main.c
[3] Then, re-build "all" and "uImage" simultaneously.
You will get an invalid uImage at random.
$ make -j8 ARCH=arm UIMAGE_LOADADDR=0x80208000 all uImage
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
CC init/main.o
CHK include/generated/compile.h
LD init/built-in.o
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
OBJCOPY arch/arm/boot/Image
Building modules, stage 2.
Kernel: arch/arm/boot/Image is ready
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
Kernel: arch/arm/boot/Image is ready
LD arch/arm/boot/compressed/vmlinux
GZIP arch/arm/boot/compressed/piggy.gzip
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage
Image Name: Linux-4.2.0-rc5-00156-gdd2384a-d
Created: Sat Aug 8 23:23:14 2015
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 26472 Bytes = 25.85 kB = 0.03 MB
Load Address: 80208000
Entry Point: 80208000
Image arch/arm/boot/uImage is ready
MODPOST 192 modules
AS arch/arm/boot/compressed/piggy.gzip.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
$ ls -l arch/arm/boot/*Image
-rwxrwxr-x 1 masahiro masahiro 13766656 Aug 8 23:23 arch/arm/boot/Image
-rw-rw-r-- 1 masahiro masahiro 26536 Aug 8 23:23 arch/arm/boot/uImage
-rwxrwxr-x 1 masahiro masahiro 6138648 Aug 8 23:23 arch/arm/boot/zImage
Please notice the uImage is extremely small when this issue is
encountered. Besides, "Kernel: arch/arm/boot/zImage is ready" is
displayed twice, before and after the uImage log.
The root cause of this is the race condition between zImage and
uImage. Actually, uImage depends on zImage, but the dependency
between the two is only described in arch/arm/boot/Makefile.
Because arch/arm/boot/Makefile is not included from the top-level
Makefile, it cannot know the dependency between zImage and uImage.
Consequently, when we run make with the parallel option, Kbuild
updates vmlinux first, and then two different threads descends into
the arch/arm/boot/Makefile almost at the same time, one for updating
zImage and the other for uImage. While one thread is re-generating
zImage, the other also tries to update zImage before creating uImage
on top of that. zImage is overwritten by the slower thread and then
uImage is created based on the half-written zImage.
This is the reason why "Kernel: arch/arm/boot/zImage is ready" is
displayed twice, and a broken uImage is created.
The same problem could happen on bootpImage.
This commit adds dependencies among Image, zImage, uImage, and
bootpImage to arch/arm/Makefile, which is included from the
top-level Makefile.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-08-17 11:03:33 +08:00
|
|
|
bootpImage uImage: zImage
|
|
|
|
zImage: Image
|
|
|
|
|
2013-07-18 00:05:06 +08:00
|
|
|
$(BOOT_TARGETS): vmlinux
|
2005-04-17 06:20:36 +08:00
|
|
|
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
|
2016-05-30 10:01:23 +08:00
|
|
|
@$(kecho) ' Kernel: $(boot)/$@ is ready'
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2013-07-18 00:05:06 +08:00
|
|
|
$(INSTALL_TARGETS):
|
2005-04-17 06:20:36 +08:00
|
|
|
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
|
|
|
|
|
2015-03-26 02:16:05 +08:00
|
|
|
PHONY += vdso_install
|
|
|
|
vdso_install:
|
|
|
|
ifeq ($(CONFIG_VDSO),y)
|
|
|
|
$(Q)$(MAKE) $(build)=arch/arm/vdso $@
|
|
|
|
endif
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
# We use MRPROPER_FILES and CLEAN_FILES now
|
|
|
|
archclean:
|
|
|
|
$(Q)$(MAKE) $(clean)=$(boot)
|
|
|
|
|
|
|
|
# My testing targets (bypasses dependencies)
|
|
|
|
bp:; $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/bootpImage
|
|
|
|
|
|
|
|
|
|
|
|
define archhelp
|
|
|
|
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
|
|
|
|
echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
|
|
|
|
echo '* xipImage - XIP kernel image, if configured (arch/$(ARCH)/boot/xipImage)'
|
2008-03-06 23:22:17 +08:00
|
|
|
echo ' uImage - U-Boot wrapped zImage'
|
2013-05-03 15:13:55 +08:00
|
|
|
echo ' bootpImage - Combined zImage and initial RAM disk'
|
2005-04-17 06:20:36 +08:00
|
|
|
echo ' (supply initrd image via make variable INITRD=<path>)'
|
|
|
|
echo ' install - Install uncompressed kernel'
|
|
|
|
echo ' zinstall - Install compressed kernel'
|
2011-01-09 00:18:51 +08:00
|
|
|
echo ' uinstall - Install U-Boot wrapped compressed kernel'
|
2009-07-21 03:37:11 +08:00
|
|
|
echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or'
|
|
|
|
echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
|
2005-04-17 06:20:36 +08:00
|
|
|
echo ' install to $$(INSTALL_PATH) and run lilo'
|
2015-03-26 02:16:05 +08:00
|
|
|
echo ' vdso_install - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso'
|
2005-04-17 06:20:36 +08:00
|
|
|
endef
|