2005-04-17 02:20:36 +04:00
#
# arch/arm/Makefile
#
2006-03-06 01:14:10 +03:00
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
2005-04-17 02:20:36 +04: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
2012-03-13 18:34:17 +04:00
# Ensure linker flags are correct
LDFLAGS :=
ARM: 8323/1: force linker to use PIC veneers
When building a very large kernel, it is up to the linker to decide
when and where to insert stubs to allow calls to functions that are
out of range for the ordinary b/bl instructions.
However, since the kernel is built as a position dependent binary,
these stubs (aka veneers) may contain absolute addresses, which will
break far calls performed with the MMU off.
For instance, the call from __enable_mmu() in the .head.text section
to __turn_mmu_on() in the .idmap.text section may be turned into
something like this:
c0008168 <__enable_mmu>:
c0008168: f020 0002 bic.w r0, r0, #2
c000816c: f420 5080 bic.w r0, r0, #4096
c0008170: f000 b846 b.w c0008200 <____turn_mmu_on_veneer>
[...]
c0008200 <____turn_mmu_on_veneer>:
c0008200: 4778 bx pc
c0008202: 46c0 nop
c0008204: e59fc000 ldr ip, [pc]
c0008208: e12fff1c bx ip
c000820c: c13dfae1 teqgt sp, r1, ror #21
[...]
c13dfae0 <__turn_mmu_on>:
c13dfae0: 4600 mov r0, r0
[...]
After adding --pic-veneer to the LDFLAGS, the veneer is emitted like
this instead:
c0008200 <____turn_mmu_on_veneer>:
c0008200: 4778 bx pc
c0008202: 46c0 nop
c0008204: e59fc004 ldr ip, [pc, #4]
c0008208: e08fc00c add ip, pc, ip
c000820c: e12fff1c bx ip
c0008210: 013d7d31 teqeq sp, r1, lsr sp
c0008214: 00000000 andeq r0, r0, r0
Note that this particular example is best addressed by moving
.head.text and .idmap.text closer together, but this issue could
potentially affect any code that needs to execute with the
MMU off.
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-03-25 09:37:57 +03:00
LDFLAGS_vmlinux := -p --no-undefined -X --pic-veneer
2009-05-30 17:00:18 +04:00
i f e q ( $( CONFIG_CPU_ENDIAN_BE 8) , y )
LDFLAGS_vmlinux += --be8
2013-07-22 19:32:19 +04:00
LDFLAGS_MODULE += --be8
2009-05-30 17:00:18 +04:00
e n d i f
2009-09-20 14:28:22 +04:00
2014-11-24 18:54:35 +03:00
i f e q ( $( CONFIG_ARM_MODULE_PLTS ) , y )
LDFLAGS_MODULE += -T $( srctree) /arch/arm/kernel/module.lds
e n d i f
2011-02-16 20:54:01 +03:00
OBJCOPYFLAGS := -O binary -R .comment -S
2005-04-17 02:20:36 +04:00
GZFLAGS := -9
2007-10-15 00:21:35 +04:00
#KBUILD_CFLAGS +=-pipe
2005-04-17 02:20:36 +04:00
2010-08-15 02:56:21 +04:00
# Never generate .eh_frame
KBUILD_CFLAGS += $( call cc-option,-fno-dwarf2-cfi-asm)
2005-04-17 02:20:36 +04:00
# Do not use arch/arm/defconfig - it's always outdated.
# Select a platform tht is kept up-to-date
KBUILD_DEFCONFIG := versatile_defconfig
2009-07-23 10:31:31 +04:00
# defines filename extension depending memory management type.
2006-03-27 18:14:19 +04:00
i f e q ( $( CONFIG_MMU ) , )
MMUEXT := -nommu
2012-12-04 15:56:44 +04:00
KBUILD_CFLAGS += $( call cc-option,-mno-unaligned-access)
2006-03-27 18:14:19 +04:00
e n d i f
2005-04-17 02:20:36 +04:00
i f e q ( $( CONFIG_FRAME_POINTER ) , y )
2007-10-15 00:21:35 +04:00
KBUILD_CFLAGS += -fno-omit-frame-pointer -mapcs -mno-sched-prolog
2005-04-17 02:20:36 +04:00
e n d i f
i f e q ( $( CONFIG_CPU_BIG_ENDIAN ) , y )
2007-10-16 00:17:25 +04:00
KBUILD_CPPFLAGS += -mbig-endian
2005-04-17 02:20:36 +04:00
AS += -EB
LD += -EB
e l s e
2007-10-16 00:17:25 +04:00
KBUILD_CPPFLAGS += -mlittle-endian
2005-04-17 02:20:36 +04:00
AS += -EL
LD += -EL
e n d i f
# 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 14:44:43 +04:00
arch-$(CONFIG_CPU_32v7M) = -D__LINUX_ARM_ARCH__= 7 -march= armv7-m -Wa,-march= armv7-m
2013-06-27 07:32:06 +04: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 01:45:26 +04:00
# Only override the compiler option if ARMv6. The ARMv6K extensions are
# always available in ARMv7
i f e q ( $( CONFIG_CPU_ 32v 6) , y )
2013-06-27 07:32:06 +04:00
arch-$(CONFIG_CPU_32v6K) = -D__LINUX_ARM_ARCH__= 6 $( call cc-option,-march= armv6k,-march= armv5t -Wa$( comma) -march= armv6k)
2007-05-09 01:45:26 +04:00
e n d i f
2013-06-27 07:32:06 +04: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
arch-$(CONFIG_CPU_32v3) = -D__LINUX_ARM_ARCH__= 3 -march= armv3
# Evaluate arch cc-option calls now
arch-y := $( arch-y)
2005-04-17 02:20:36 +04:00
# This selects how we optimise for the processor.
2013-06-27 07:32:06 +04: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 02:20:36 +04:00
2006-01-14 19:33:50 +03:00
i f e q ( $( CONFIG_AEABI ) , y )
2014-01-28 22:31:17 +04:00
CFLAGS_ABI := -mabi= aapcs-linux -mno-thumb-interwork -mfpu= vfp
2006-01-14 19:33:50 +03:00
e l s e
2005-06-30 20:04:14 +04:00
CFLAGS_ABI := $( call cc-option,-mapcs-32,-mabi= apcs-gnu) $( call cc-option,-mno-thumb-interwork,)
2006-01-14 19:33:50 +03:00
e n d i f
2009-02-12 15:56:34 +03:00
i f e q ( $( CONFIG_ARM_UNWIND ) , y )
CFLAGS_ABI += -funwind-tables
e n d i f
2009-07-24 15:33:02 +04:00
i f e q ( $( CONFIG_THUMB 2_KERNEL ) , y )
2010-01-26 21:09:48 +03:00
AFLAGS_AUTOIT := $( call as-option,-Wa$( comma) -mimplicit-it= always,-Wa$( comma) -mauto-it)
2009-07-24 15:33:02 +04:00
AFLAGS_NOWARN := $( call as-option,-Wa$( comma) -mno-warn-deprecated,-Wa$( comma) -W)
2012-08-10 15:12:20 +04:00
CFLAGS_ISA := -mthumb $( AFLAGS_AUTOIT) $( AFLAGS_NOWARN)
AFLAGS_ISA := $( CFLAGS_ISA) -Wa$( comma) -mthumb
2011-03-03 13:41:12 +03:00
# Work around buggy relocation from gas if requested:
i f e q ( $( CONFIG_THUMB 2_AVOID_R_ARM_THM_JUMP 11) , y )
CFLAGS_MODULE += -fno-optimize-sibling-calls
e n d i f
2012-08-10 15:12:20 +04:00
e l s e
CFLAGS_ISA := $( call cc-option,-marm,)
AFLAGS_ISA := $( CFLAGS_ISA)
2009-07-24 15:33:02 +04:00
e n d i f
2006-01-14 19:33:50 +03:00
# Need -Uarm for gcc < 3.x
2012-08-10 15:12:20 +04: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 02:20:36 +04:00
CHECKFLAGS += -D__arm__
#Default value
2012-05-03 13:02:50 +04:00
head-y := arch/arm/kernel/head$( MMUEXT) .o
2014-07-08 16:50:50 +04: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-03 20:28:33 +03:00
textofs-y := 0x00008000
2009-04-26 17:22:29 +04:00
textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
2010-05-11 10:55:09 +04:00
# We don't want the htc bootloader to corrupt kernel during resume
textofs-$(CONFIG_PM_H1940) := 0x00108000
2005-04-17 02:20:36 +04:00
# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
2009-04-26 17:22:29 +04:00
i f e q ( $( CONFIG_ARCH_SA 1100) , y )
textofs-$(CONFIG_SA1111) := 0x00208000
2005-04-17 02:20:36 +04:00
e n d i f
2011-08-12 03:14:28 +04:00
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
2014-05-23 13:08:35 +04:00
textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
2009-04-26 17:22:29 +04:00
# Machine directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
2015-03-12 14:53:00 +03:00
machine-$(CONFIG_ARCH_ALPINE) += alpine
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_AT91) += at91
2014-05-23 13:08:35 +04:00
machine-$(CONFIG_ARCH_AXXIA) += axxia
2012-11-19 21:46:10 +04:00
machine-$(CONFIG_ARCH_BCM) += bcm
2013-09-09 16:36:19 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
machine-$(CONFIG_ARCH_DAVINCI) += davinci
2015-03-09 12:05:14 +03: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_DOVE) += dove
machine-$(CONFIG_ARCH_EBSA110) += ebsa110
2011-11-17 17:36:23 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_EP93XX) += ep93xx
2013-07-27 03:45:45 +04:00
machine-$(CONFIG_ARCH_EXYNOS) += exynos
2014-09-24 12:01:19 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_GEMINI) += gemini
machine-$(CONFIG_ARCH_HIGHBANK) += highbank
2014-04-01 07:01:09 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_INTEGRATOR) += integrator
machine-$(CONFIG_ARCH_IOP13XX) += iop13xx
machine-$(CONFIG_ARCH_IOP32X) += iop32x
machine-$(CONFIG_ARCH_IOP33X) += iop33x
machine-$(CONFIG_ARCH_IXP4XX) += ixp4xx
2013-07-27 03:45:45 +04:00
machine-$(CONFIG_ARCH_KEYSTONE) += keystone
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_KS8695) += ks8695
2015-05-12 01:00:47 +03: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_LPC32XX) += lpc32xx
2014-09-11 00:16:59 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_MMP) += mmp
2013-12-18 16:58:45 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_MV78XX0) += mv78xx0
2013-07-27 03:45:45 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_MXC) += imx
2014-05-13 03:06:13 +04:00
machine-$(CONFIG_ARCH_MEDIATEK) += mediatek
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_MXS) += mxs
machine-$(CONFIG_ARCH_NETX) += netx
machine-$(CONFIG_ARCH_NOMADIK) += nomadik
2013-06-11 12:40:17 +04:00
machine-$(CONFIG_ARCH_NSPIRE) += nspire
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-06 22:41:12 +04: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 03:14:10 +04:00
machine-$(CONFIG_ARCH_QCOM) += qcom
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_REALVIEW) += realview
2013-06-03 01:09:41 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_RPC) += rpc
2013-01-22 03:39:09 +04: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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_S3C64XX) += s3c64xx
machine-$(CONFIG_ARCH_S5PV210) += s5pv210
machine-$(CONFIG_ARCH_SA1100) += sa1100
machine-$(CONFIG_ARCH_SHMOBILE) += shmobile
2013-07-27 03:45:45 +04:00
machine-$(CONFIG_ARCH_SIRF) += prima2
machine-$(CONFIG_ARCH_SOCFPGA) += socfpga
machine-$(CONFIG_ARCH_STI) += sti
2015-05-09 10:53:54 +03:00
machine-$(CONFIG_ARCH_STM32) += stm32
2013-07-27 03:45:45 +04:00
machine-$(CONFIG_ARCH_SUNXI) += sunxi
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_TEGRA) += tegra
machine-$(CONFIG_ARCH_U300) += u300
machine-$(CONFIG_ARCH_U8500) += ux500
2015-05-08 07:07:11 +03:00
machine-$(CONFIG_ARCH_UNIPHIER) += uniphier
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-06 22:41:12 +04:00
machine-$(CONFIG_ARCH_VERSATILE) += versatile
machine-$(CONFIG_ARCH_VEXPRESS) += vexpress
machine-$(CONFIG_ARCH_VT8500) += vt8500
machine-$(CONFIG_ARCH_W90X900) += w90x900
2015-04-28 12:18:05 +03:00
machine-$(CONFIG_ARCH_ZX) += zx
2013-07-27 03:45:45 +04:00
machine-$(CONFIG_ARCH_ZYNQ) += zynq
2012-12-02 18:12:47 +04:00
machine-$(CONFIG_PLAT_SPEAR) += spear
2009-04-26 17:22:29 +04:00
# Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name.
2013-06-18 20:26:42 +04: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-06 22:41:12 +04:00
plat-$(CONFIG_ARCH_OMAP) += omap
plat-$(CONFIG_ARCH_S3C64XX) += samsung
2014-07-03 15:17:12 +04: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-06 22:41:12 +04:00
plat-$(CONFIG_PLAT_IOP) += iop
plat-$(CONFIG_PLAT_ORION) += orion
plat-$(CONFIG_PLAT_PXA) += pxa
2013-02-01 04:54:38 +04: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-06 22:41:12 +04:00
plat-$(CONFIG_PLAT_VERSATILE) += versatile
2005-04-17 02:20:36 +04:00
i f e q ( $( CONFIG_ARCH_EBSA 110) , y )
# This is what happens if you forget the IOCS16 line.
# PCMCIA cards stop working.
CFLAGS_3c589_cs.o := -DISA_SIXTEEN_BIT_PERIPHERAL
export C F L A G S _ 3 c 5 8 9 _ c s . o
e n d i f
2006-01-03 20:28:33 +03:00
# The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $( textofs-y)
2005-04-17 02:20:36 +04:00
2008-08-02 22:36:14 +04:00
# The first directory contains additional information for the boot setup code
2005-04-17 02:20:36 +04:00
i f n e q ( $( machine -y ) , )
2008-08-02 22:36:14 +04:00
MACHINE := arch/arm/mach-$( word 1,$( machine-y) ) /
2005-04-17 02:20:36 +04:00
e l s e
MACHINE :=
e n d i f
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-06 22:41:12 +04:00
i f e q ( $( CONFIG_ARCH_MULTIPLATFORM ) , y )
MACHINE :=
e n d i f
2007-02-11 20:31:01 +03:00
2008-08-02 22:36:14 +04:00
machdirs := $( patsubst %,arch/arm/mach-%/,$( machine-y) )
2014-07-03 15:17:12 +04:00
platdirs := $( patsubst %,arch/arm/plat-%/,$( sort $( plat-y) ) )
2008-08-02 22:36:14 +04: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-06 22:41:12 +04:00
i f n e q ( $( CONFIG_ARCH_MULTIPLATFORM ) , y )
2008-08-02 22:36:14 +04:00
i f e q ( $( KBUILD_SRC ) , )
KBUILD_CPPFLAGS += $( patsubst %,-I%include,$( machdirs) $( platdirs) )
e l s e
KBUILD_CPPFLAGS += $( patsubst %,-I$( srctree) /%include,$( machdirs) $( platdirs) )
e n d i f
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-06 22:41:12 +04:00
e n d i f
2008-08-02 22:36:14 +04:00
2006-03-27 18:14:19 +04:00
export TEXT_OFFSET GZFLAGS MMUEXT
2005-04-17 02:20:36 +04:00
# Do we have FASTFPE?
FASTFPE := arch/arm/fastfpe
i f e q ( $( FASTFPE ) , $( wildcard $ ( FASTFPE ) ) )
FASTFPE_OBJ := $( FASTFPE) /
e n d i f
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
core-$(CONFIG_FPE_FASTFPE) += $( FASTFPE_OBJ)
core-$(CONFIG_VFP) += arch/arm/vfp/
2012-09-14 17:53:39 +04:00
core-$(CONFIG_XEN) += arch/arm/xen/
2013-01-21 03:28:06 +04:00
core-$(CONFIG_KVM_ARM_HOST) += arch/arm/kvm/
2015-03-25 21:16:05 +03:00
core-$(CONFIG_VDSO) += arch/arm/vdso/
2005-04-17 02:20:36 +04:00
2010-09-01 17:37:05 +04: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 05:19:49 +03:00
core-y += arch/arm/probes/
2012-03-16 16:37:12 +04:00
core-y += arch/arm/net/
2012-09-07 00:17:02 +04:00
core-y += arch/arm/crypto/
2013-11-24 10:30:46 +04:00
core-y += arch/arm/firmware/
2010-09-01 17:37:05 +04:00
core-y += $( machdirs) $( platdirs)
2005-04-17 02:20:36 +04:00
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
2005-11-04 20:17:30 +03:00
libs-y := arch/arm/lib/ $( libs-y)
2005-04-17 02:20:36 +04:00
# Default target when executing plain make
i f e q ( $( CONFIG_XIP_KERNEL ) , y )
2006-10-29 15:51:05 +03:00
KBUILD_IMAGE := xipImage
2005-04-17 02:20:36 +04:00
e l s e
2006-10-29 15:51:05 +03:00
KBUILD_IMAGE := zImage
2005-04-17 02:20:36 +04:00
e n d i f
2012-09-06 21:09:33 +04:00
# Build the DT binary blobs if we have OF configured
i f e q ( $( CONFIG_USE_OF ) , y )
KBUILD_DTBS := dtbs
e n d i f
all : $( KBUILD_IMAGE ) $( KBUILD_DTBS )
2006-10-29 15:51:05 +03:00
2005-04-17 02:20:36 +04:00
boot := arch/arm/boot
2009-04-20 21:59:58 +04:00
archprepare :
$( Q) $( MAKE) $( build) = arch/arm/tools include/generated/mach-types.h
2005-04-17 02:20:36 +04:00
# Convert bzImage to zImage
bzImage : zImage
2013-07-17 20:05:06 +04:00
BOOT_TARGETS = zImage Image xipImage bootpImage uImage
INSTALL_TARGETS = zinstall uinstall install
PHONY += bzImage $( BOOT_TARGETS) $( INSTALL_TARGETS)
$(BOOT_TARGETS) : vmlinux
2005-04-17 02:20:36 +04:00
$( Q) $( MAKE) $( build) = $( boot) MACHINE = $( MACHINE) $( boot) /$@
2013-07-17 20:05:06 +04:00
$(INSTALL_TARGETS) :
2005-04-17 02:20:36 +04:00
$( Q) $( MAKE) $( build) = $( boot) MACHINE = $( MACHINE) $@
2013-06-25 01:03:50 +04:00
%.dtb : | scripts
2012-11-28 03:29:11 +04:00
$( Q) $( MAKE) $( build) = $( boot) /dts MACHINE = $( MACHINE) $( boot) /dts/$@
2011-07-25 19:52:12 +04:00
2013-12-02 03:56:28 +04:00
PHONY += dtbs dtbs_install
2014-09-03 17:29:24 +04:00
dtbs : prepare scripts
2014-09-03 19:07:23 +04:00
$( Q) $( MAKE) $( build) = $( boot) /dts
2011-07-25 19:52:12 +04:00
2014-09-03 17:29:24 +04:00
dtbs_install :
2014-09-03 19:07:23 +04:00
$( Q) $( MAKE) $( dtbinst) = $( boot) /dts
2014-09-03 17:29:24 +04:00
2015-03-25 21:16:05 +03:00
PHONY += vdso_install
vdso_install :
i f e q ( $( CONFIG_VDSO ) , y )
$( Q) $( MAKE) $( build) = arch/arm/vdso $@
e n d i f
2005-04-17 02:20:36 +04: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
i zi : ; $( Q ) $( MAKE ) $( build ) =$( boot ) MACHINE =$( MACHINE ) $@
d e f i n e a r c h h e l p
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 18:22:17 +03:00
echo ' uImage - U-Boot wrapped zImage'
2013-05-03 11:13:55 +04:00
echo ' bootpImage - Combined zImage and initial RAM disk'
2005-04-17 02:20:36 +04:00
echo ' (supply initrd image via make variable INITRD=<path>)'
2012-09-06 21:09:33 +04:00
echo '* dtbs - Build device tree blobs for enabled boards'
2013-12-02 03:56:28 +04:00
echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'
2005-04-17 02:20:36 +04:00
echo ' install - Install uncompressed kernel'
echo ' zinstall - Install compressed kernel'
2011-01-08 19:18:51 +03:00
echo ' uinstall - Install U-Boot wrapped compressed kernel'
2009-07-20 23:37:11 +04:00
echo ' Install using (your) ~/bin/$(INSTALLKERNEL) or'
echo ' (distribution) /sbin/$(INSTALLKERNEL) or'
2005-04-17 02:20:36 +04:00
echo ' install to $$(INSTALL_PATH) and run lilo'
2015-03-25 21:16:05 +03:00
echo ' vdso_install - Install unstripped vdso.so to $$(INSTALL_MOD_PATH)/vdso'
2005-04-17 02:20:36 +04:00
e n d e f