]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/mips/Makefile
Merge branch 'master' of ../linux-2.6/
[mv-sheeva.git] / arch / mips / Makefile
index ebd5d02a7d786e73d738ba3b071949ac3f1efe47..3fb7f3065c92d4a523001aba19731f36e3e76435 100644 (file)
@@ -18,15 +18,15 @@ cflags-y :=
 # Select the object file format to substitute into the linker script.
 #
 ifdef CONFIG_CPU_LITTLE_ENDIAN
-32bit-tool-prefix      = mipsel-linux-
-64bit-tool-prefix      = mips64el-linux-
+32bit-tool-archpref    = mipsel
+64bit-tool-archpref    = mips64el
 32bit-bfd              = elf32-tradlittlemips
 64bit-bfd              = elf64-tradlittlemips
 32bit-emul             = elf32ltsmip
 64bit-emul             = elf64ltsmip
 else
-32bit-tool-prefix      = mips-linux-
-64bit-tool-prefix      = mips64-linux-
+32bit-tool-archpref    = mips
+64bit-tool-archpref    = mips64
 32bit-bfd              = elf32-tradbigmips
 64bit-bfd              = elf64-tradbigmips
 32bit-emul             = elf32btsmip
@@ -34,16 +34,18 @@ else
 endif
 
 ifdef CONFIG_32BIT
-tool-prefix            = $(32bit-tool-prefix)
+tool-archpref          = $(32bit-tool-archpref)
 UTS_MACHINE            := mips
 endif
 ifdef CONFIG_64BIT
-tool-prefix            = $(64bit-tool-prefix)
+tool-archpref          = $(64bit-tool-archpref)
 UTS_MACHINE            := mips64
 endif
 
-ifdef CONFIG_CROSSCOMPILE
-CROSS_COMPILE          := $(tool-prefix)
+ifneq ($(SUBARCH),$(ARCH))
+  ifeq ($(CROSS_COMPILE),)
+    CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux-  $(tool-archpref)-linux-gnu-  $(tool-archpref)-unknown-linux-gnu-)
+  endif
 endif
 
 ifdef CONFIG_32BIT
@@ -139,6 +141,10 @@ cflags-$(CONFIG_CPU_R8000) += -march=r8000 -Wa,--trap
 cflags-$(CONFIG_CPU_R10000)    += $(call cc-option,-march=r10000,-march=r8000) \
                        -Wa,--trap
 
+cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,)
+cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,)
+cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
+
 ifdef CONFIG_CPU_SB1
 ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
 MODFLAGS       += -msb1-pass1-workarounds
@@ -150,6 +156,8 @@ endif
 #
 libs-$(CONFIG_ARC)             += arch/mips/fw/arc/
 libs-$(CONFIG_CFE)             += arch/mips/fw/cfe/
+libs-$(CONFIG_SNIPROM)         += arch/mips/fw/sni/
+libs-y                         += arch/mips/fw/lib/
 libs-$(CONFIG_SIBYTE_CFE)      += arch/mips/sibyte/cfe/
 
 #
@@ -279,7 +287,6 @@ core-$(CONFIG_MACH_DECSTATION)      += arch/mips/dec/
 cflags-$(CONFIG_MACH_DECSTATION)+= -Iinclude/asm-mips/mach-dec
 libs-$(CONFIG_MACH_DECSTATION) += arch/mips/dec/prom/
 load-$(CONFIG_MACH_DECSTATION) += 0xffffffff80040000
-CLEAN_FILES                    += drivers/tc/lk201-map.c
 
 #
 # Wind River PPMC Board (4KC + GT64120)
@@ -307,7 +314,7 @@ core-$(CONFIG_MIPS_ATLAS)   += arch/mips/mips-boards/atlas/
 cflags-$(CONFIG_MIPS_ATLAS)    += -Iinclude/asm-mips/mach-atlas
 cflags-$(CONFIG_MIPS_ATLAS)    += -Iinclude/asm-mips/mach-mips
 load-$(CONFIG_MIPS_ATLAS)      += 0xffffffff80100000
-all-$(CONFIG_MIPS_ATLAS)       := vmlinux.srec
+all-$(CONFIG_MIPS_ATLAS)       := vmlinux.bin
 
 #
 # MIPS Malta board
@@ -315,7 +322,7 @@ all-$(CONFIG_MIPS_ATLAS)    := vmlinux.srec
 core-$(CONFIG_MIPS_MALTA)      += arch/mips/mips-boards/malta/
 cflags-$(CONFIG_MIPS_MALTA)    += -Iinclude/asm-mips/mach-mips
 load-$(CONFIG_MIPS_MALTA)      += 0xffffffff80100000
-all-$(CONFIG_MIPS_MALTA)       := vmlinux.srec
+all-$(CONFIG_MIPS_MALTA)       := vmlinux.bin
 
 #
 # MIPS SEAD board
@@ -347,14 +354,6 @@ core-$(CONFIG_PMC_YOSEMITE)        += arch/mips/pmc-sierra/yosemite/
 cflags-$(CONFIG_PMC_YOSEMITE)  += -Iinclude/asm-mips/mach-yosemite
 load-$(CONFIG_PMC_YOSEMITE)    += 0xffffffff80100000
 
-#
-# Qemu simulating MIPS32 4Kc
-#
-core-$(CONFIG_QEMU)            += arch/mips/qemu/
-cflags-$(CONFIG_QEMU)          += -Iinclude/asm-mips/mach-qemu
-load-$(CONFIG_QEMU)            += 0xffffffff80010000
-all-$(CONFIG_QEMU)             := vmlinux.bin
-
 #
 # Basler eXcite
 #
@@ -473,6 +472,20 @@ OBJCOPYFLAGS                       := --change-addresses=0x57ffffff80000000
 endif
 endif
 
+#
+# SGI IP28 (Indigo2 R10k)
+#
+# Set the load address to >= 0xa800000020080000 if you want to leave space for
+# symmon, 0xa800000020004000 for production kernels ?  Note that the value must
+# be 16kb aligned or the handling of the current variable will break.
+# Simplified: what IP22 does at 128MB+ in ksegN, IP28 does at 512MB+ in xkphys
+#
+#core-$(CONFIG_SGI_IP28)               += arch/mips/sgi-ip22/ arch/mips/arc/arc_con.o
+core-$(CONFIG_SGI_IP28)                += arch/mips/sgi-ip22/
+cflags-$(CONFIG_SGI_IP28)      += -mr10k-cache-barrier=1 -Iinclude/asm-mips/mach-ip28
+#cflags-$(CONFIG_SGI_IP28)     += -Iinclude/asm-mips/mach-ip28
+load-$(CONFIG_SGI_IP28)                += 0xa800000020004000
+
 #
 # SGI-IP32 (O2)
 #
@@ -601,21 +614,23 @@ ifdef CONFIG_64BIT
     endif
   endif
 
-  ifeq ($(KBUILD_SYM32), y)
-    ifeq ($(call cc-option-yn,-msym32), y)
-      cflags-y += -msym32 -DKBUILD_64BIT_SYM32
+  ifeq ($(KBUILD_SYM32)$(call cc-option-yn,-msym32), yy)
+    cflags-y += -msym32 -DKBUILD_64BIT_SYM32
+  else
+    ifeq ($(CONFIG_CPU_DADDI_WORKAROUNDS), y)
+      $(error CONFIG_CPU_DADDI_WORKAROUNDS unsupported without -msym32)
     endif
   endif
 endif
 
-AFLAGS         += $(cflags-y)
-CFLAGS         += $(cflags-y) \
+KBUILD_AFLAGS  += $(cflags-y)
+KBUILD_CFLAGS  += $(cflags-y) \
                        -D"VMLINUX_LOAD_ADDRESS=$(load-y)"
 
 LDFLAGS                        += -m $(ld-emul)
 
 ifdef CONFIG_MIPS
-CHECKFLAGS += $(shell $(CC) $(CFLAGS) -dM -E -xc /dev/null | \
+CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -xc /dev/null | \
        egrep -vw '__GNUC_(|MINOR_|PATCHLEVEL_)_' | \
        sed -e 's/^\#define /-D/' -e "s/ /='/" -e "s/$$/'/")
 ifdef CONFIG_64BIT
@@ -632,7 +647,7 @@ OBJCOPYFLAGS                += --remove-section=.reginfo
 #
 
 CPPFLAGS_vmlinux.lds := \
-       $(CFLAGS) \
+       $(KBUILD_CFLAGS) \
        -D"LOADADDR=$(load-y)" \
        -D"JIFFIES=$(JIFFIES)" \
        -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"