2005-04-16 16:20:36 -06:00
|
|
|
#
|
|
|
|
# arch/arm/Makefile
|
|
|
|
#
|
2006-03-05 15:14:10 -07:00
|
|
|
# This file is included by the global makefile so that you can add your own
|
|
|
|
# architecture-specific flags and dependencies.
|
|
|
|
#
|
2005-04-16 16:20:36 -06: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 10:28:33 -07:00
|
|
|
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
|
2007-10-12 07:38:54 -06:00
|
|
|
OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
|
2005-04-16 16:20:36 -06:00
|
|
|
GZFLAGS :=-9
|
|
|
|
#CFLAGS +=-pipe
|
2006-12-05 10:28:04 -07:00
|
|
|
# Explicitly specifiy 32-bit ARM ISA since toolchain default can be -mthumb:
|
|
|
|
CFLAGS +=$(call cc-option,-marm,)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
# 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 07:14:19 -07:00
|
|
|
# defines filename extension depending memory manement type.
|
|
|
|
ifeq ($(CONFIG_MMU),)
|
|
|
|
MMUEXT := -nommu
|
|
|
|
endif
|
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
ifeq ($(CONFIG_FRAME_POINTER),y)
|
|
|
|
CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
|
|
|
|
CPPFLAGS += -mbig-endian
|
|
|
|
AS += -EB
|
|
|
|
LD += -EB
|
|
|
|
else
|
|
|
|
CPPFLAGS += -mlittle-endian
|
|
|
|
AS += -EL
|
|
|
|
LD += -EL
|
|
|
|
endif
|
|
|
|
|
|
|
|
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.
|
2007-05-08 15:45:26 -06:00
|
|
|
arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7a,-march=armv5t -Wa$(comma)-march=armv7a)
|
2005-04-16 16:20:36 -06:00
|
|
|
arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
|
2007-05-08 15:45:26 -06:00
|
|
|
# Only override the compiler option if ARMv6. The ARMv6K extensions are
|
|
|
|
# always available in ARMv7
|
|
|
|
ifeq ($(CONFIG_CPU_32v6),y)
|
2005-11-03 08:48:21 -07:00
|
|
|
arch-$(CONFIG_CPU_32v6K) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
|
2007-05-08 15:45:26 -06:00
|
|
|
endif
|
2006-08-28 05:51:20 -06: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
|
2005-04-16 16:20:36 -06:00
|
|
|
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
|
2006-09-26 02:37:36 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM7TDMI) :=-mtune=arm7tdmi
|
2005-04-16 16:20:36 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7tdmi
|
2006-09-26 02:37:50 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7tdmi
|
2006-09-26 02:38:05 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9tdmi
|
2006-09-26 02:38:18 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9tdmi
|
2006-09-26 02:38:32 -06:00
|
|
|
tune-$(CONFIG_CPU_ARM946T) :=$(call cc-option,-mtune=arm9e,-mtune=arm9tdmi)
|
2005-04-16 16:20:36 -06:00
|
|
|
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-28 13:00:40 -07:00
|
|
|
tune-$(CONFIG_CPU_XSC3) :=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
|
2005-10-12 12:58:09 -06:00
|
|
|
tune-$(CONFIG_CPU_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
2006-01-14 09:33:50 -07:00
|
|
|
ifeq ($(CONFIG_AEABI),y)
|
2006-04-25 13:36:04 -06:00
|
|
|
CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
|
2006-01-14 09:33:50 -07:00
|
|
|
else
|
2005-06-30 10:04:14 -06:00
|
|
|
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
2006-01-14 09:33:50 -07:00
|
|
|
endif
|
|
|
|
|
|
|
|
# Need -Uarm for gcc < 3.x
|
2005-04-16 16:20:36 -06: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 06:58:25 -07:00
|
|
|
head-y := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
|
2006-01-03 10:28:33 -07:00
|
|
|
textofs-y := 0x00008000
|
2005-04-16 16:20:36 -06: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
|
|
|
|
ifeq ($(CONFIG_ARCH_SA1100),y)
|
|
|
|
# SA1111 DMA bug: we don't want the kernel to live in precious DMA-able memory
|
2006-01-03 10:28:33 -07:00
|
|
|
textofs-$(CONFIG_SA1111) := 0x00208000
|
2005-04-16 16:20:36 -06:00
|
|
|
endif
|
|
|
|
machine-$(CONFIG_ARCH_PXA) := pxa
|
|
|
|
machine-$(CONFIG_ARCH_L7200) := l7200
|
|
|
|
machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
|
2006-01-03 10:28:33 -07:00
|
|
|
textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
|
2005-04-16 16:20:36 -06:00
|
|
|
machine-$(CONFIG_ARCH_CLPS711X) := clps711x
|
2006-09-18 16:10:26 -06:00
|
|
|
machine-$(CONFIG_ARCH_IOP32X) := iop32x
|
|
|
|
machine-$(CONFIG_ARCH_IOP33X) := iop33x
|
2006-12-06 18:59:39 -07:00
|
|
|
machine-$(CONFIG_ARCH_IOP13XX) := iop13xx
|
2005-04-16 16:20:36 -06:00
|
|
|
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-28 13:18:54 -07:00
|
|
|
machine-$(CONFIG_ARCH_IXP23XX) := ixp23xx
|
2005-07-10 12:58:17 -06:00
|
|
|
machine-$(CONFIG_ARCH_OMAP1) := omap1
|
2005-11-10 07:26:51 -07:00
|
|
|
machine-$(CONFIG_ARCH_OMAP2) := omap2
|
2005-07-10 12:58:17 -06:00
|
|
|
incdir-$(CONFIG_ARCH_OMAP) := omap
|
2005-04-16 16:20:36 -06: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 11:51:05 -06:00
|
|
|
machine-$(CONFIG_ARCH_AAEC2000) := aaec2000
|
2005-10-31 07:25:02 -07:00
|
|
|
machine-$(CONFIG_ARCH_REALVIEW) := realview
|
2007-02-19 22:28:53 -07:00
|
|
|
machine-$(CONFIG_ARCH_AT91) := at91
|
2007-02-16 07:36:55 -07:00
|
|
|
machine-$(CONFIG_ARCH_EP93XX) := ep93xx
|
|
|
|
machine-$(CONFIG_ARCH_PNX4008) := pnx4008
|
|
|
|
machine-$(CONFIG_ARCH_NETX) := netx
|
|
|
|
machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
|
|
|
|
textofs-$(CONFIG_ARCH_NS9XXX) := 0x00108000
|
2007-04-30 12:37:19 -06:00
|
|
|
machine-$(CONFIG_ARCH_DAVINCI) := davinci
|
2007-05-11 14:01:28 -06:00
|
|
|
machine-$(CONFIG_ARCH_KS8695) := ks8695
|
2007-07-09 15:06:53 -06:00
|
|
|
incdir-$(CONFIG_ARCH_MXC) := mxc
|
|
|
|
machine-$(CONFIG_ARCH_MX3) := mx3
|
2005-04-16 16:20:36 -06: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-03 10:28:33 -07:00
|
|
|
# The byte offset of the kernel image in RAM from the start of RAM.
|
|
|
|
TEXT_OFFSET := $(textofs-y)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
ifeq ($(incdir-y),)
|
|
|
|
incdir-y := $(machine-y)
|
|
|
|
endif
|
|
|
|
INCDIR := arch-$(incdir-y)
|
2005-10-29 14:44:56 -06:00
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
ifneq ($(machine-y),)
|
|
|
|
MACHINE := arch/arm/mach-$(machine-y)/
|
|
|
|
else
|
|
|
|
MACHINE :=
|
|
|
|
endif
|
2007-02-11 10:31:01 -07:00
|
|
|
|
2006-03-27 07:14:19 -07:00
|
|
|
export TEXT_OFFSET GZFLAGS MMUEXT
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
# Do we have FASTFPE?
|
|
|
|
FASTFPE :=arch/arm/fastfpe
|
|
|
|
ifeq ($(FASTFPE),$(wildcard $(FASTFPE)))
|
|
|
|
FASTFPE_OBJ :=$(FASTFPE)/
|
|
|
|
endif
|
|
|
|
|
|
|
|
# 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)
|
2007-02-11 10:31:01 -07:00
|
|
|
core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2400/
|
|
|
|
core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2412/
|
|
|
|
core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2440/
|
|
|
|
core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2442/
|
2007-02-16 04:12:31 -07:00
|
|
|
core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2443/
|
2005-04-16 16:20:36 -06:00
|
|
|
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
|
|
|
|
core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
|
|
|
|
core-$(CONFIG_VFP) += arch/arm/vfp/
|
|
|
|
|
2005-07-10 12:58:17 -06:00
|
|
|
# If we have a common platform directory, then include it in the build.
|
2006-09-18 16:12:53 -06:00
|
|
|
core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/
|
2005-07-10 12:58:17 -06:00
|
|
|
core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
|
2007-02-11 10:31:01 -07:00
|
|
|
core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/
|
2007-07-09 15:06:53 -06:00
|
|
|
core-$(CONFIG_ARCH_MXC) += arch/arm/plat-mxc/
|
2005-07-10 12:58:17 -06:00
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
|
|
|
|
drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/
|
|
|
|
drivers-$(CONFIG_ARCH_L7200) += drivers/acorn/char/
|
|
|
|
|
2005-11-04 10:17:30 -07:00
|
|
|
libs-y := arch/arm/lib/ $(libs-y)
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
# Default target when executing plain make
|
|
|
|
ifeq ($(CONFIG_XIP_KERNEL),y)
|
2006-10-29 05:51:05 -07:00
|
|
|
KBUILD_IMAGE := xipImage
|
2005-04-16 16:20:36 -06:00
|
|
|
else
|
2006-10-29 05:51:05 -07:00
|
|
|
KBUILD_IMAGE := zImage
|
2005-04-16 16:20:36 -06:00
|
|
|
endif
|
|
|
|
|
2006-10-29 05:51:05 -07:00
|
|
|
all: $(KBUILD_IMAGE)
|
|
|
|
|
2005-04-16 16:20:36 -06:00
|
|
|
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.
|
|
|
|
|
2006-06-08 23:12:42 -06:00
|
|
|
include/asm-arm/.arch: $(wildcard include/config/arch/*.h) include/config/auto.conf
|
2005-04-16 16:20:36 -06:00
|
|
|
@echo ' SYMLINK include/asm-arm/arch -> include/asm-arm/$(INCDIR)'
|
|
|
|
ifneq ($(KBUILD_SRC),)
|
|
|
|
$(Q)mkdir -p include/asm-arm
|
|
|
|
$(Q)ln -fsn $(srctree)/include/asm-arm/$(INCDIR) include/asm-arm/arch
|
|
|
|
else
|
|
|
|
$(Q)ln -fsn $(INCDIR) include/asm-arm/arch
|
|
|
|
endif
|
|
|
|
@touch $@
|
|
|
|
|
2005-09-26 00:49:27 -06:00
|
|
|
archprepare: maketools
|
2005-04-16 16:20:36 -06:00
|
|
|
|
2006-03-05 15:14:10 -07:00
|
|
|
PHONY += maketools FORCE
|
2005-09-26 00:49:27 -06:00
|
|
|
maketools: include/linux/version.h include/asm-arm/.arch FORCE
|
2005-04-16 16:20:36 -06: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 13:08:59 -06:00
|
|
|
CLEAN_FILES += include/asm-arm/mach-types.h \
|
2005-04-16 16:20:36 -06: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) $@
|
|
|
|
|
|
|
|
|
|
|
|
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)'
|
|
|
|
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'
|
|
|
|
endef
|