285f5fa7e9
The iop348 processor integrates an Xscale (XSC3 512KB L2 Cache) core with a Serial Attached SCSI (SAS) controller, multi-ported DDR2 memory controller, 3 Application Direct Memory Access (DMA) controllers, a 133Mhz PCI-X interface, a x8 PCI-Express interface, and other peripherals to form a system-on-a-chip RAID subsystem engine. The iop342 processor replaces the SAS controller with a second Xscale core for dual core embedded applications. The iop341 processor is the single core version of iop342. This patch supports the two Intel customer reference platforms iq81340mc for external storage and iq81340sc for direct attach (HBA) development. The developer's manual is available here: ftp://download.intel.com/design/iio/docs/31503701.pdf Changelog: * removed virtual addresses from resource definitions * cleaned up some unnecessary #include's Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
240 lines
8.4 KiB
Makefile
240 lines
8.4 KiB
Makefile
#
|
|
# arch/arm/Makefile
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies.
|
|
#
|
|
# 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
|
|
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
|
|
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
|
|
|
|
# defines filename extension depending memory manement type.
|
|
ifeq ($(CONFIG_MMU),)
|
|
MMUEXT := -nommu
|
|
endif
|
|
|
|
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.
|
|
arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
|
|
arch-$(CONFIG_CPU_32v6K) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6k,-march=armv5t -Wa$(comma)-march=armv6k)
|
|
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
|
|
|
|
# This selects how we optimise for the processor.
|
|
tune-$(CONFIG_CPU_ARM610) :=-mtune=arm610
|
|
tune-$(CONFIG_CPU_ARM710) :=-mtune=arm710
|
|
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_ARM946T) :=$(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_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_V6) :=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
|
|
|
|
ifeq ($(CONFIG_AEABI),y)
|
|
CFLAGS_ABI :=-mabi=aapcs-linux -mno-thumb-interwork
|
|
else
|
|
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
|
endif
|
|
|
|
# Need -Uarm for gcc < 3.x
|
|
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
|
|
head-y := arch/arm/kernel/head$(MMUEXT).o arch/arm/kernel/init_task.o
|
|
textofs-y := 0x00008000
|
|
|
|
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
|
|
textofs-$(CONFIG_SA1111) := 0x00208000
|
|
endif
|
|
machine-$(CONFIG_ARCH_PXA) := pxa
|
|
machine-$(CONFIG_ARCH_L7200) := l7200
|
|
machine-$(CONFIG_ARCH_INTEGRATOR) := integrator
|
|
textofs-$(CONFIG_ARCH_CLPS711X) := 0x00028000
|
|
machine-$(CONFIG_ARCH_CLPS711X) := clps711x
|
|
machine-$(CONFIG_ARCH_IOP32X) := iop32x
|
|
machine-$(CONFIG_ARCH_IOP33X) := iop33x
|
|
machine-$(CONFIG_ARCH_IOP13XX) := iop13xx
|
|
machine-$(CONFIG_ARCH_IXP4XX) := ixp4xx
|
|
machine-$(CONFIG_ARCH_IXP2000) := ixp2000
|
|
machine-$(CONFIG_ARCH_IXP23XX) := ixp23xx
|
|
machine-$(CONFIG_ARCH_OMAP1) := omap1
|
|
machine-$(CONFIG_ARCH_OMAP2) := omap2
|
|
incdir-$(CONFIG_ARCH_OMAP) := omap
|
|
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
|
|
machine-$(CONFIG_ARCH_AAEC2000) := aaec2000
|
|
machine-$(CONFIG_ARCH_REALVIEW) := realview
|
|
machine-$(CONFIG_ARCH_AT91) := at91rm9200
|
|
machine-$(CONFIG_ARCH_EP93XX) := ep93xx
|
|
machine-$(CONFIG_ARCH_PNX4008) := pnx4008
|
|
machine-$(CONFIG_ARCH_NETX) := netx
|
|
|
|
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
|
|
|
|
# The byte offset of the kernel image in RAM from the start of RAM.
|
|
TEXT_OFFSET := $(textofs-y)
|
|
|
|
ifeq ($(incdir-y),)
|
|
incdir-y := $(machine-y)
|
|
endif
|
|
INCDIR := arch-$(incdir-y)
|
|
|
|
ifneq ($(machine-y),)
|
|
MACHINE := arch/arm/mach-$(machine-y)/
|
|
else
|
|
MACHINE :=
|
|
endif
|
|
|
|
export TEXT_OFFSET GZFLAGS MMUEXT
|
|
|
|
# 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)
|
|
core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
|
|
core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
|
|
core-$(CONFIG_VFP) += arch/arm/vfp/
|
|
|
|
# If we have a common platform directory, then include it in the build.
|
|
core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/
|
|
core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
|
|
|
|
drivers-$(CONFIG_OPROFILE) += arch/arm/oprofile/
|
|
drivers-$(CONFIG_ARCH_CLPS7500) += drivers/acorn/char/
|
|
drivers-$(CONFIG_ARCH_L7200) += drivers/acorn/char/
|
|
|
|
libs-y := arch/arm/lib/ $(libs-y)
|
|
|
|
# Default target when executing plain make
|
|
ifeq ($(CONFIG_XIP_KERNEL),y)
|
|
KBUILD_IMAGE := xipImage
|
|
else
|
|
KBUILD_IMAGE := zImage
|
|
endif
|
|
|
|
all: $(KBUILD_IMAGE)
|
|
|
|
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/auto.conf
|
|
@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 $@
|
|
|
|
archprepare: maketools
|
|
|
|
PHONY += maketools FORCE
|
|
maketools: include/linux/version.h include/asm-arm/.arch FORCE
|
|
$(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) $@
|
|
|
|
CLEAN_FILES += include/asm-arm/mach-types.h \
|
|
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
|