patch-2.4.22 linux-2.4.22/arch/mips64/Makefile
Next file: linux-2.4.22/arch/mips64/boot/Makefile
Previous file: linux-2.4.22/arch/mips/vr41xx/zao-capcella/setup.c
Back to the patch index
Back to the overall index
- Lines: 279
- Date:
2003-08-25 04:44:40.000000000 -0700
- Orig file:
linux-2.4.21/arch/mips64/Makefile
- Orig date:
2002-11-28 15:53:10.000000000 -0800
diff -urN linux-2.4.21/arch/mips64/Makefile linux-2.4.22/arch/mips64/Makefile
@@ -39,9 +39,14 @@
LINKFLAGS += -G 0 -static # -N
MODFLAGS += -mlong-calls
-ifdef CONFIG_REMOTE_DEBUG
+ifdef CONFIG_KGDB
GCCFLAGS += -g
+ifdef CONFIG_SB1XXX_CORELIS
+GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer
endif
+endif
+
+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
#
# CPU-dependent compiler/assembler options for optimization.
@@ -58,6 +63,10 @@
ifdef CONFIG_CPU_NEVADA
GCCFLAGS += -mcpu=r8000 -mips3 -mmad
endif
+ifdef CONFIG_CPU_RM7000
+GCCFLAGS += $(call check_gcc, -march=rm7000, -mcpu=r5000) \
+ -mips2 -Wa,--trap
+endif
ifdef CONFIG_CPU_R8000
GCCFLAGS += -mcpu=r8000 -mips4
endif
@@ -65,7 +74,10 @@
GCCFLAGS += -mcpu=r8000 -mips4
endif
ifdef CONFIG_CPU_SB1
-GCCFLAGS += -mcpu=r8000 -mips4
+GCCFLAGS += $(call check_gcc, -mcpu=sb1, -mcpu=r5000) -mips4
+ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
+MODFLAGS += -msb1-pass1-workarounds
+endif
endif
ifdef CONFIG_CPU_MIPS64
#CFLAGS += -mips64 # Should be used then we get a MIPS64 compiler
@@ -78,12 +90,42 @@
CORE_FILES += arch/mips/math-emu/fpu_emulator.o
SUBDIRS += arch/mips/math-emu
+#
+# ramdisk/initrd support
+# You need a compressed ramdisk image, named ramdisk.gz in
+# arch/mips/ramdisk
+#
+ifdef CONFIG_EMBEDDED_RAMDISK
+CORE_FILES += arch/mips/ramdisk/ramdisk.o
+SUBDIRS += arch/mips/ramdisk
+endif
+
#
# Board-dependent options and extra files
#
#
+# DECstation family
+#
+ifdef CONFIG_DECSTATION
+CORE_FILES += arch/mips/dec/dec.o
+SUBDIRS += arch/mips/dec arch/mips/dec/prom
+LIBS += arch/mips/dec/prom/rexlib.a
+LOADADDR := 0x80040000
+endif
+
+#
+# Galileo EV64120 Board
+#
+ifdef CONFIG_MIPS_EV64120
+LIBS += arch/mips/gt64120/common/gt64120.o \
+ arch/mips/gt64120/ev64120/ev64120.o
+SUBDIRS += arch/mips/gt64120/common arch/mips/gt64120/ev64120
+LOADADDR := 0x80100000
+endif
+
+#
# MIPS Atlas board
#
ifdef CONFIG_MIPS_ATLAS
@@ -114,6 +156,45 @@
endif
#
+# Momentum Ocelot board
+#
+ifdef CONFIG_MOMENCO_OCELOT
+# The Ocelot setup.o must be linked early - it does the ioremap() for the
+# mips_io_port_base.
+CORE_FILES += arch/mips/gt64120/common/gt64120.o \
+ arch/mips/gt64120/momenco_ocelot/momenco_ocelot.o
+SUBDIRS += arch/mips/gt64120/common arch/mips/gt64120/momenco_ocelot
+LOADADDR := 0x80100000
+endif
+
+#
+# Momentum Ocelot-G board
+#
+ifdef CONFIG_MOMENCO_OCELOT_G
+# The Ocelot-G setup.o must be linked early - it does the ioremap() for the
+# mips_io_port_base.
+CORE_FILES += arch/mips/momentum/ocelot_g/ocelot_g.o
+SUBDIRS += arch/mips/momentum/ocelot_g
+LOADADDR := 0x80100000
+endif
+
+#
+# Momentum Ocelot-C and -CS boards
+#
+ifdef CONFIG_MOMENCO_OCELOT_C
+# The Ocelot-C[S] setup.o must be linked early - it does the ioremap() for the
+# mips_io_port_base.
+CORE_FILES += arch/mips/momentum/ocelot_c/ocelot_c.o
+SUBDIRS += arch/mips/momentum/ocelot_c
+LOADADDR := 0x80100000
+endif
+
+ifdef CONFIG_PCI
+CORE_FILES += arch/mips/pci/pci-core.o
+SUBDIRS += arch/mips/pci
+endif
+
+#
# SGI IP22 (Indy/Indigo2)
#
ifdef CONFIG_SGI_IP22
@@ -149,38 +230,34 @@
endif
#
-# SGI-IP32 (O2)
-#
-ifdef CONFIG_SGI_IP32
-CORE_FILES += arch/mips/sgi-ip32/ip32-kern.a
-LIBS += arch/mips/arc/arclib.a
-SUBDIRS += arch/mips/sgi-ip32 arch/mips/arc
-#
-# Set LOADADDR to >= 0x????????? if you want to leave space for symmon,
-# 0x80002000 for production kernels. Note that the value must be
-# 16kb aligned or the handling of the current variable will break.
-#
-LOADADDR := 0x80002000
-endif
-
-#
-# Sibyte SB1250 SOC
+# Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs
#
-ifdef CONFIG_SIBYTE_SB1250
+ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),)
# This is a LIB so that it links at the end, and initcalls are later
# the sequence; but it is built as an object so that modules don't get
# removed (as happens, even if they have __initcall/module_init)
LIBS += arch/mips/sibyte/sb1250/sb1250.o
SUBDIRS += arch/mips/sibyte/sb1250
+ifdef CONFIG_MIPS_UNCACHED
+LOADADDR := 0xa0100000
+else
+LOADADDR := 0x80100000
+endif
endif
#
-# Sibyte SWARM board
+# Sibyte boards:
+#
+# BCM91250A (SWARM),
+# BCM91250E (Sentosa),
+# BCM91120C (CRhine),
+# BCM91120x (Carmel),
+# BCM91125C (CRhone),
+# BCM91125E (Rhone).
#
-ifdef CONFIG_SIBYTE_SWARM
+ifdef CONFIG_SIBYTE_BOARD
LIBS += arch/mips/sibyte/swarm/sbswarm.a
SUBDIRS += arch/mips/sibyte/swarm
-LOADADDR := 0x80100000
endif
#
@@ -192,21 +269,12 @@
endif
#
-# SB1 Cache Error handler
-#
-ifdef CONFIG_SB1_CACHE_ERROR
-LIBS += arch/mips/sibyte/sb1/sb1kern.a
-SUBDIRS += arch/mips/sibyte/sb1
-endif
-
-
-#
# Some machines like the Indy need 32-bit ELF binaries for booting purposes.
# Other need ECOFF, so we build a 32-bit ELF binary for them which we then
# convert to ECOFF using elf2ecoff.
#
ifdef CONFIG_BOOT_ELF32
-GCCFLAGS += -Wa,-32
+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
LINKFLAGS += -T arch/mips64/ld.script.elf32
endif
#
@@ -214,17 +282,27 @@
# ELF files from 32-bit files by conversion.
#
ifdef CONFIG_BOOT_ELF64
-GCCFLAGS += -Wa,-32
+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
LINKFLAGS += -T arch/mips64/ld.script.elf32
#AS += -64
#LD += -m elf64bmip
#LINKFLAGS += -T arch/mips64/ld.script.elf64
endif
+ifdef CONFIG_CPU_LITTLE_ENDIAN
+32bit-bfd = elf32-tradlittlemips
+64bit-bfd = elf64-tradlittlemips
+else
+32bit-bfd = elf32-tradbigmips
+64bit-bfd = elf64-tradbigmips
+endif
+
AFLAGS += $(GCCFLAGS)
CFLAGS += $(GCCFLAGS)
+LD += --oformat $(32bit-bfd)
+
LINKFLAGS += -Ttext $(LOADADDR)
@@ -236,31 +314,20 @@
MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
-ifdef CONFIG_CPU_LITTLE_ENDIAN
-64bit-bfd = elf64-littlemips
-else
-64bit-bfd = elf64-bigmips
-endif
-
vmlinux: arch/mips64/ld.script.elf32
arch/mips64/ld.script.elf32: arch/mips64/ld.script.elf32.S
$(CPP) -C -P -I$(HPATH) -imacros $(HPATH)/asm-mips64/sn/mapped_kernel.h -Umips arch/mips64/ld.script.elf32.S > arch/mips64/ld.script.elf32
ifdef CONFIG_MAPPED_KERNEL
vmlinux.64: vmlinux
- $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xbfffffff40000000 $< $@
+ $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xbfffffff40000000 $< $@
else
vmlinux.64: vmlinux
- $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@
+ $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xa800000080000000 $< $@
endif
-zImage: vmlinux
- @$(MAKEBOOT) zImage
-
-compressed: zImage
-
-zdisk: vmlinux
- @$(MAKEBOOT) zdisk
+vmlinux.ecoff: vmlinux
+ @$(MAKEBOOT) $@
archclean:
@$(MAKEBOOT) clean
@@ -270,6 +337,7 @@
archmrproper:
@$(MAKEBOOT) mrproper
$(MAKE) -C arch/mips/tools mrproper
+ $(RM) $(TOPDIR)/include/asm-$(ARCH)/offset.h
archdep:
if [ ! -f $(TOPDIR)/include/asm-$(ARCH)/offset.h ]; then \
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)