]> err.no Git - linux-2.6/blobdiff - arch/sh/Makefile
sh: Move over and enable FPU support for SH-5.
[linux-2.6] / arch / sh / Makefile
index 3d211aa33cd8066efe02b9ffb4dd2ac9b48e5569..4da3bc696b3d846a4bb6d4203fc32cf551734530 100644 (file)
@@ -21,7 +21,7 @@ isa-$(CONFIG_CPU_SH3)                 := sh3
 isa-$(CONFIG_CPU_SH4)                  := sh4
 isa-$(CONFIG_CPU_SH4A)                 := sh4a
 isa-$(CONFIG_CPU_SH4AL_DSP)            := sh4al
-
+isa-$(CONFIG_CPU_SH5)                  := shmedia
 isa-$(CONFIG_SH_DSP)                   := $(isa-y)-dsp
 
 ifndef CONFIG_MMU
@@ -34,6 +34,8 @@ isa-y                 := $(isa-y)-nofpu
 endif
 endif
 
+isa-y                  := $(isa-y)-up
+
 cflags-$(CONFIG_CPU_SH2)               := $(call cc-option,-m2,)
 cflags-$(CONFIG_CPU_SH2A)              += $(call cc-option,-m2a,) \
                                           $(call cc-option,-m2a-nofpu,)
@@ -42,16 +44,30 @@ cflags-$(CONFIG_CPU_SH4)            := $(call cc-option,-m4,) \
        $(call cc-option,-mno-implicit-fp,-m4-nofpu)
 cflags-$(CONFIG_CPU_SH4A)              += $(call cc-option,-m4a,) \
                                           $(call cc-option,-m4a-nofpu,)
+cflags-$(CONFIG_CPU_SH5)               := $(call cc-option,-m5-32media-nofpu,)
 
 cflags-$(CONFIG_CPU_BIG_ENDIAN)                += -mb
 cflags-$(CONFIG_CPU_LITTLE_ENDIAN)     += -ml
 
-cflags-y       += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding
+#
+# -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that
+# support it, while -Wa,-dsp by itself limits the range of usable opcodes
+# on certain CPU subtypes. Try the ISA variant first, and if that fails,
+# fall back on -Wa,-dsp for the old binutils versions. Even without DSP
+# opcodes, we always want the best ISA tuning the version of binutils
+# will provide.
+#
+isaflags-y     := $(call as-option,-Wa$(comma)-isa=$(isa-y),)
+
+isaflags-$(CONFIG_SH_DSP)              := \
+       $(call as-option,-Wa$(comma)-isa=$(isa-y),-Wa$(comma)-dsp)
+
+cflags-y       += $(isaflags-y) -ffreestanding
 
 cflags-$(CONFIG_MORE_COMPILE_OPTIONS)  += \
        $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g')
 
-OBJCOPYFLAGS   := -O binary -R .note -R .comment -R .stab -R .stabstr -S
+OBJCOPYFLAGS   := -O binary -R .note -R .note.gnu.build-id -R .comment -R .stab -R .stabstr -S
 
 #
 # arch/sh/defconfig doesn't reflect any real hardware, and as such should
@@ -76,12 +92,14 @@ LDFLAGS_vmlinux             += --defsym 'jiffies=jiffies_64+4'
 LDFLAGS                        += -EB
 endif
 
-CFLAGS         += -pipe $(cflags-y)
-AFLAGS         += $(cflags-y)
+KBUILD_CFLAGS          += -pipe $(cflags-y)
+KBUILD_AFLAGS          += $(cflags-y)
 
-head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o
+head-y                 := arch/sh/kernel/init_task.o
+head-$(CONFIG_SUPERH32)        += arch/sh/kernel/head_32.o
+head-$(CONFIG_SUPERH64)        += arch/sh/kernel/head_64.o
 
-LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
+LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 
 core-y                         += arch/sh/kernel/ arch/sh/mm/
 core-$(CONFIG_SH_FPU_EMU)      += arch/sh/math-emu/
@@ -103,6 +121,7 @@ machdir-$(CONFIG_SH_7751_SYSTEMH)           += renesas/systemh
 machdir-$(CONFIG_SH_EDOSK7705)                 += renesas/edosk7705
 machdir-$(CONFIG_SH_HIGHLANDER)                        += renesas/r7780rp
 machdir-$(CONFIG_SH_7710VOIPGW)                        += renesas/sh7710voipgw
+machdir-$(CONFIG_SH_X3PROTO)                   += renesas/x3proto
 machdir-$(CONFIG_SH_SH4202_MICRODEV)           += superh/microdev
 machdir-$(CONFIG_SH_LANDISK)                   += landisk
 machdir-$(CONFIG_SH_TITAN)                     += titan
@@ -110,6 +129,7 @@ machdir-$(CONFIG_SH_SHMIN)                  += shmin
 machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE)      += se/7206
 machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE)      += se/7619
 machdir-$(CONFIG_SH_LBOX_RE2)                  += lboxre2
+machdir-$(CONFIG_SH_MAGIC_PANEL_R2)            += magicpanelr2
 
 incdir-y       := $(notdir $(machdir-y))
 
@@ -120,14 +140,17 @@ endif
 
 # Companion chips
 core-$(CONFIG_HD6446X_SERIES)  += arch/sh/cchips/hd6446x/
-core-$(CONFIG_VOYAGERGX)       += arch/sh/cchips/voyagergx/
+core-$(CONFIG_MFD_SM501)       += arch/sh/cchips/voyagergx/
 
 cpuincdir-$(CONFIG_CPU_SH2)    := cpu-sh2
 cpuincdir-$(CONFIG_CPU_SH2A)   := cpu-sh2a
 cpuincdir-$(CONFIG_CPU_SH3)    := cpu-sh3
 cpuincdir-$(CONFIG_CPU_SH4)    := cpu-sh4
+cpuincdir-$(CONFIG_CPU_SH5)    := cpu-sh5
 
-libs-y                         := arch/sh/lib/ $(libs-y) $(LIBGCC)
+libs-$(CONFIG_SUPERH32)                := arch/sh/lib/ $(libs-y)
+libs-$(CONFIG_SUPERH64)                := arch/sh/lib64/ $(libs-y)
+libs-y                         += $(LIBGCC)
 
 drivers-y                      += arch/sh/drivers/
 drivers-$(CONFIG_OPROFILE)     += arch/sh/oprofile/