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
LDFLAGS_vmlinux := -p --no-undefined -X
2006-01-03 20:28:33 +03:00
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET= $( TEXT_OFFSET)
2005-04-17 02:20:36 +04:00
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
GZFLAGS := -9
#CFLAGS +=-pipe
# Do not use arch/arm/defconfig - it's always outdated.
# Select a platform tht is kept up-to-date
KBUILD_DEFCONFIG := versatile_defconfig
2006-03-27 18:14:19 +04:00
# defines filename extension depending memory manement type.
i f e q ( $( CONFIG_MMU ) , )
MMUEXT := -nommu
e n d i f
2005-04-17 02:20:36 +04:00
i f e q ( $( CONFIG_FRAME_POINTER ) , y )
CFLAGS += -fno-omit-frame-pointer -mapcs -mno-sched-prolog
e n d i f
i f e q ( $( CONFIG_CPU_BIG_ENDIAN ) , y )
CPPFLAGS += -mbig-endian
AS += -EB
LD += -EB
e l s e
CPPFLAGS += -mlittle-endian
AS += -EL
LD += -EL
e n d i f
comma = ,
# 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.
arch-$(CONFIG_CPU_32v6) := -D__LINUX_ARM_ARCH__= 6 $( call cc-option,-march= armv6,-march= armv5t -Wa$( comma) -march= armv6)
2005-11-03 18:48:21 +03:00
arch-$(CONFIG_CPU_32v6K) := -D__LINUX_ARM_ARCH__= 6 $( call cc-option,-march= armv6k,-march= armv5t -Wa$( comma) -march= armv6k)
2005-04-17 02:20:36 +04:00
arch-$(CONFIG_CPU_32v5) := -D__LINUX_ARM_ARCH__= 5 $( call cc-option,-march= armv5te,-march= armv4)
arch-$(CONFIG_CPU_32v4) := -D__LINUX_ARM_ARCH__= 4 -march= armv4
arch-$(CONFIG_CPU_32v3) := -D__LINUX_ARM_ARCH__= 3 -march= armv3
# This selects how we optimise for the processor.
tune-$(CONFIG_CPU_ARM610) := -mtune= arm610
tune-$(CONFIG_CPU_ARM710) := -mtune= arm710
tune-$(CONFIG_CPU_ARM720T) := -mtune= arm7tdmi
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_SA110) := -mtune= strongarm110
tune-$(CONFIG_CPU_SA1100) := -mtune= strongarm1100
tune-$(CONFIG_CPU_XSCALE) := $( call cc-option,-mtune= xscale,-mtune= strongarm110) -Wa,-mcpu= xscale
2006-03-29 00:00:40 +04:00
tune-$(CONFIG_CPU_XSC3) := $( call cc-option,-mtune= xscale,-mtune= strongarm110) -Wa,-mcpu= xscale
2005-10-12 22:58:09 +04:00
tune-$(CONFIG_CPU_V6) := $( call cc-option,-mtune= arm1136j-s,-mtune= strongarm)
2005-04-17 02:20:36 +04:00
2006-01-14 19:33:50 +03:00
i f e q ( $( CONFIG_AEABI ) , y )
CFLAGS_ABI := -mabi= aapcs -mno-thumb-interwork
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
# Need -Uarm for gcc < 3.x
2005-04-17 02:20:36 +04:00
CFLAGS += $( CFLAGS_ABI) $( arch-y) $( tune-y) $( call cc-option,-mshort-load-bytes,$( call cc-option,-malignment-traps,) ) -msoft-float -Uarm
AFLAGS += $( CFLAGS_ABI) $( arch-y) $( tune-y) -msoft-float
CHECKFLAGS += -D__arm__
#Default value
2006-03-27 17:58:25 +04:00
head-y := arch/arm/kernel/head$( MMUEXT) .o arch/arm/kernel/init_task.o
2006-01-03 20:28:33 +03:00
textofs-y := 0x00008000
2005-04-17 02:20:36 +04:00
machine-$( CONFIG_ARCH_RPC) := rpc
machine-$( CONFIG_ARCH_EBSA110) := ebsa110
machine-$( CONFIG_ARCH_CLPS7500) := clps7500
incdir-$( CONFIG_ARCH_CLPS7500) := cl7500
machine-$( CONFIG_FOOTBRIDGE) := footbridge
incdir-$( CONFIG_FOOTBRIDGE) := ebsa285
machine-$( CONFIG_ARCH_CO285) := footbridge
incdir-$( CONFIG_ARCH_CO285) := ebsa285
machine-$( CONFIG_ARCH_SHARK) := shark
machine-$( CONFIG_ARCH_SA1100) := sa1100
i f e q ( $( CONFIG_ARCH_SA 1100) , y )
# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
2006-01-03 20:28:33 +03:00
textofs-$( CONFIG_SA1111) := 0x00208000
2005-04-17 02:20:36 +04:00
e n d i f
machine-$( CONFIG_ARCH_PXA) := pxa
machine-$( CONFIG_ARCH_L7200) := l7200
machine-$( CONFIG_ARCH_INTEGRATOR) := integrator
2006-01-03 20:28:33 +03:00
textofs-$( CONFIG_ARCH_CLPS711X) := 0x00028000
2005-04-17 02:20:36 +04:00
machine-$( CONFIG_ARCH_CLPS711X) := clps711x
machine-$( CONFIG_ARCH_IOP3XX) := iop3xx
machine-$( CONFIG_ARCH_IXP4XX) := ixp4xx
machine-$( CONFIG_ARCH_IXP2000) := ixp2000
[ARM] 3388/1: ixp23xx: add core ixp23xx support
Patch from Lennert Buytenhek
This patch adds support for the Intel ixp23xx series of CPUs. The
ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI
interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit
MACs, two 10/100 MACs, expansion bus, four microengines, a Media and
Switch Fabric unit almost identical to the one on the ixp2400, two
xscale (8250ish) UARTs and a bunch of other stuff.
This patch adds the core ixp23xx support code, and support for the
ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double
Espresso platforms.
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-29 00:18:54 +04:00
machine-$( CONFIG_ARCH_IXP23XX) := ixp23xx
2005-07-10 22:58:17 +04:00
machine-$( CONFIG_ARCH_OMAP1) := omap1
2005-11-10 17:26:51 +03:00
machine-$( CONFIG_ARCH_OMAP2) := omap2
2005-07-10 22:58:17 +04:00
incdir-$( CONFIG_ARCH_OMAP) := omap
2005-04-17 02:20:36 +04:00
machine-$( CONFIG_ARCH_S3C2410) := s3c2410
machine-$( CONFIG_ARCH_LH7A40X) := lh7a40x
machine-$( CONFIG_ARCH_VERSATILE) := versatile
machine-$( CONFIG_ARCH_IMX) := imx
machine-$( CONFIG_ARCH_H720X) := h720x
2005-06-20 21:51:05 +04:00
machine-$( CONFIG_ARCH_AAEC2000) := aaec2000
2005-10-31 17:25:02 +03:00
machine-$( CONFIG_ARCH_REALVIEW) := realview
2006-01-09 20:05:41 +03:00
machine-$( CONFIG_ARCH_AT91RM9200) := at91rm9200
[ARM] 3369/1: ep93xx: add core cirrus ep93xx support
Patch from Lennert Buytenhek
This patch adds support for the Cirrus ep93xx series of CPUs. The
ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs,
IrDA, MaverickCrunch floating point coprocessor, between 24 and 64
GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster
engine, graphics accelerator, IDE controller and a bunch of other
stuff.
This patch adds the core ep93xx support code, and support for the
Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2006-03-20 20:10:13 +03:00
machine-$( CONFIG_ARCH_EP93XX) := ep93xx
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
i f e q ( $( incdir -y ) , )
incdir-y := $( machine-y)
e n d i f
INCDIR := arch-$( incdir-y)
2005-10-30 00:44:56 +04:00
2005-04-17 02:20:36 +04:00
i f n e q ( $( machine -y ) , )
MACHINE := arch/arm/mach-$( machine-y) /
e l s e
MACHINE :=
e n d i f
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
# If we have a machine-specific directory, then include it in the build.
core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
core-y += $( MACHINE)
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
core-$(CONFIG_FPE_FASTFPE) += $( FASTFPE_OBJ)
core-$(CONFIG_VFP) += arch/arm/vfp/
2005-07-10 22:58:17 +04:00
# If we have a common platform directory, then include it in the build.
core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
2005-04-17 02:20:36 +04:00
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/
drivers-$(CONFIG_ARCH_L7200) += drivers/acorn/char/
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 )
all : xipImage
e l s e
all : zImage
e n d i f
boot := arch/arm/boot
# Update machine arch and proc symlinks if something which affects
# them changed. We use .arch to indicate when they were updated
# last, otherwise make uses the target directory mtime.
include/asm-arm/.arch : $( wildcard include /config /arch /*.h ) include /config /MARKER
@echo ' SYMLINK include/asm-arm/arch -> include/asm-arm/$(INCDIR)'
i f n e q ( $( KBUILD_SRC ) , )
$( Q) mkdir -p include/asm-arm
$( Q) ln -fsn $( srctree) /include/asm-arm/$( INCDIR) include/asm-arm/arch
e l s e
$( Q) ln -fsn $( INCDIR) include/asm-arm/arch
e n d i f
@touch $@
2005-09-26 10:49:27 +04:00
archprepare : maketools
2005-04-17 02:20:36 +04:00
2006-03-06 01:14:10 +03:00
PHONY += maketools FORCE
2005-09-26 10:49:27 +04:00
maketools : include /linux /version .h include /asm -arm /.arch FORCE
2005-04-17 02:20:36 +04:00
$( Q) $( MAKE) $( build) = arch/arm/tools include/asm-arm/mach-types.h
# Convert bzImage to zImage
bzImage : zImage
zImage Image xipImage bootpImage uImage : vmlinux
$( Q) $( MAKE) $( build) = $( boot) MACHINE = $( MACHINE) $( boot) /$@
zinstall install : vmlinux
$( Q) $( MAKE) $( build) = $( boot) MACHINE = $( MACHINE) $@
2005-09-09 23:08:59 +04:00
CLEAN_FILES += include/asm-arm/mach-types.h \
2005-04-17 02:20:36 +04:00
include/asm-arm/arch include/asm-arm/.arch
# 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)'
echo ' bootpImage - Combined zImage and initial RAM disk'
echo ' (supply initrd image via make variable INITRD=<path>)'
echo ' install - Install uncompressed kernel'
echo ' zinstall - Install compressed kernel'
echo ' Install using (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or'
echo ' install to $$(INSTALL_PATH) and run lilo'
e n d e f