32351a28a7
This adds preliminary support for the SH7785-based Highlander board. Some of the Highlander support code is reordered so that most of it can be reused directly. This also plugs in missing SH7785 checks in the places that need it, as this is the first board to support the CPU. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
196 lines
6.1 KiB
Makefile
196 lines
6.1 KiB
Makefile
# $Id: Makefile,v 1.35 2004/04/15 03:39:20 sugioka Exp $
|
|
#
|
|
# 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) 1999 Kaz Kojima
|
|
# Copyright (C) 2002, 2003, 2004 Paul Mundt
|
|
# Copyright (C) 2002 M. R. Brown
|
|
#
|
|
# This file is included by the global makefile so that you can add your own
|
|
# architecture-specific flags and dependencies. Remember to do have actions
|
|
# for "archclean" and "archdep" for cleaning up and making dependencies for
|
|
# this architecture
|
|
#
|
|
isa-y := any
|
|
isa-$(CONFIG_SH_DSP) := sh
|
|
isa-$(CONFIG_CPU_SH2) := sh2
|
|
isa-$(CONFIG_CPU_SH2A) := sh2a
|
|
isa-$(CONFIG_CPU_SH3) := sh3
|
|
isa-$(CONFIG_CPU_SH4) := sh4
|
|
isa-$(CONFIG_CPU_SH4A) := sh4a
|
|
isa-$(CONFIG_CPU_SH4AL_DSP) := sh4al
|
|
|
|
isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp
|
|
|
|
ifndef CONFIG_MMU
|
|
isa-y := $(isa-y)-nommu
|
|
endif
|
|
|
|
ifndef CONFIG_SH_DSP
|
|
ifndef CONFIG_SH_FPU
|
|
isa-y := $(isa-y)-nofpu
|
|
endif
|
|
endif
|
|
|
|
cflags-$(CONFIG_CPU_SH2) := -m2
|
|
cflags-$(CONFIG_CPU_SH2A) := -m2a $(call cc-option,-m2a-nofpu,)
|
|
cflags-$(CONFIG_CPU_SH3) := -m3
|
|
cflags-$(CONFIG_CPU_SH4) := -m4 \
|
|
$(call cc-option,-mno-implicit-fp,-m4-nofpu)
|
|
cflags-$(CONFIG_CPU_SH4A) := -m4a $(call cc-option,-m4a-nofpu,)
|
|
|
|
cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb
|
|
cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml
|
|
|
|
cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding
|
|
|
|
cflags-$(CONFIG_SH_DSP) += -Wa,-dsp
|
|
|
|
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
|
|
|
|
#
|
|
# arch/sh/defconfig doesn't reflect any real hardware, and as such should
|
|
# never be used by anyone. Use a board-specific defconfig that has a
|
|
# reasonable chance of being current instead.
|
|
#
|
|
KBUILD_DEFCONFIG := r7780rp_defconfig
|
|
|
|
KBUILD_IMAGE := arch/sh/boot/zImage
|
|
|
|
#
|
|
# Choosing incompatible machines durings configuration will result in
|
|
# error messages during linking.
|
|
#
|
|
LDFLAGS_vmlinux += -e _stext
|
|
|
|
ifdef CONFIG_CPU_LITTLE_ENDIAN
|
|
LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64'
|
|
LDFLAGS += -EL
|
|
else
|
|
LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4'
|
|
LDFLAGS += -EB
|
|
endif
|
|
|
|
CFLAGS += -pipe $(cflags-y)
|
|
AFLAGS += $(cflags-y)
|
|
|
|
head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o
|
|
|
|
LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
|
|
|
core-y += arch/sh/kernel/ arch/sh/mm/
|
|
core-$(CONFIG_SH_FPU_EMU) += arch/sh/math-emu/
|
|
|
|
# Boards
|
|
machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x
|
|
machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se/7751
|
|
machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se/7300
|
|
machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE) := se/7343
|
|
machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180
|
|
machdir-$(CONFIG_SH_HP6XX) := hp6xx
|
|
machdir-$(CONFIG_SH_SATURN) := saturn
|
|
machdir-$(CONFIG_SH_DREAMCAST) := dreamcast
|
|
machdir-$(CONFIG_SH_MPC1211) := mpc1211
|
|
machdir-$(CONFIG_SH_SH03) := sh03
|
|
machdir-$(CONFIG_SH_SECUREEDGE5410) := snapgear
|
|
machdir-$(CONFIG_SH_HS7751RVOIP) := renesas/hs7751rvoip
|
|
machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d
|
|
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_SH4202_MICRODEV) := superh/microdev
|
|
machdir-$(CONFIG_SH_LANDISK) := landisk
|
|
machdir-$(CONFIG_SH_TITAN) := titan
|
|
machdir-$(CONFIG_SH_SHMIN) := shmin
|
|
machdir-$(CONFIG_SH_7206_SOLUTION_ENGINE) := se/7206
|
|
machdir-$(CONFIG_SH_7619_SOLUTION_ENGINE) := se/7619
|
|
machdir-$(CONFIG_SH_UNKNOWN) := unknown
|
|
|
|
incdir-y := $(notdir $(machdir-y))
|
|
incdir-$(CONFIG_SH_HP6XX) := hp6xx
|
|
|
|
ifneq ($(machdir-y),)
|
|
core-y += arch/sh/boards/$(machdir-y)/
|
|
endif
|
|
|
|
# Companion chips
|
|
core-$(CONFIG_HD64461) += arch/sh/cchips/hd6446x/hd64461/
|
|
core-$(CONFIG_HD64465) += arch/sh/cchips/hd6446x/hd64465/
|
|
core-$(CONFIG_VOYAGERGX) += 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
|
|
|
|
libs-y := arch/sh/lib/ $(libs-y) $(LIBGCC)
|
|
|
|
drivers-y += arch/sh/drivers/
|
|
drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/
|
|
|
|
boot := arch/sh/boot
|
|
|
|
CPPFLAGS_vmlinux.lds := -traditional
|
|
|
|
incdir-prefix := $(srctree)/include/asm-sh/
|
|
|
|
# Update machine arch and proc symlinks if something which affects
|
|
# them changed. We use .arch and .mach to indicate when they were
|
|
# updated last, otherwise make uses the target directory mtime.
|
|
|
|
include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) \
|
|
include/config/auto.conf FORCE
|
|
@echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)'
|
|
$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
|
|
$(Q)ln -fsn $(incdir-prefix)$(cpuincdir-y) include/asm-sh/cpu
|
|
@touch $@
|
|
|
|
# Most boards have their own mach directories. For the ones that
|
|
# don't, just reference the parent directory so the semantics are
|
|
# kept roughly the same.
|
|
|
|
include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \
|
|
include/config/auto.conf FORCE
|
|
@echo -n ' SYMLINK include/asm-sh/mach -> '
|
|
$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
|
|
$(Q)if [ -d $(incdir-prefix)$(incdir-y) ]; then \
|
|
echo -e 'include/asm-sh/$(incdir-y)'; \
|
|
ln -fsn $(incdir-prefix)$(incdir-y) \
|
|
include/asm-sh/mach; \
|
|
else \
|
|
echo -e 'include/asm-sh'; \
|
|
ln -fsn $(incdir-prefix) include/asm-sh/mach; \
|
|
fi
|
|
@touch $@
|
|
|
|
archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools
|
|
|
|
PHONY += maketools FORCE
|
|
maketools: include/linux/version.h FORCE
|
|
$(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
|
|
|
|
all: zImage
|
|
|
|
zImage uImage uImage.srec vmlinux.srec: vmlinux
|
|
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
|
|
|
|
compressed: zImage
|
|
|
|
archclean:
|
|
$(Q)$(MAKE) $(clean)=$(boot)
|
|
|
|
CLEAN_FILES += include/asm-sh/machtypes.h
|
|
|
|
define archhelp
|
|
@echo '* zImage - Compressed kernel image'
|
|
@echo ' vmlinux.srec - Create an ELF S-record'
|
|
@echo ' uImage - Create a bootable image for U-Boot'
|
|
@echo ' uImage.srec - Create an S-record for U-Boot'
|
|
endef
|