This adds initial support for the Renesas R0P7785LC0011RL board. This patch supports 29bit address mode only. Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
8.5 KiB
arch/sh/Makefile
Copyright (C) 1999 Kaz Kojima
Copyright (C) 2002, 2003, 2004 Paul Mundt
Copyright (C) 2002 M. R. Brown
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.
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_CPU_SH5) := shmedia isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp
ifndef CONFIG_SH_DSP ifndef CONFIG_SH_FPU 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,)
cflags-$(CONFIG_CPU_SH3) := $(call cc-option,-m3,)
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 cc-option,-mno-fdpic)
-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 .note.gnu.build-id -R .comment
-R .stab -R .stabstr -S
Give the various platforms the opportunity to set default image types
defaultimage-$(CONFIG_SUPERH32) := zImage
Set some sensible Kbuild defaults
KBUILD_DEFCONFIG := r7780mp_defconfig KBUILD_IMAGE := $(defaultimage-y)
Choosing incompatible machines durings configuration will result in
error messages during linking.
ifdef CONFIG_SUPERH32
LDFLAGS_vmlinux += -e _stext
else
LDFLAGS_vmlinux += --defsym phys_stext=_stext-$(CONFIG_PAGE_OFFSET)
--defsym phys_stext_shmedia=phys_stext+1
-e phys_stext_shmedia
endif
ifdef CONFIG_CPU_LITTLE_ENDIAN LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64' LDFLAGS += -EL else LDFLAGS_vmlinux += --defsym 'jiffies=jiffies_64+4' LDFLAGS += -EB endif
KBUILD_CFLAGS += -pipe $(cflags-y) KBUILD_AFLAGS += $(cflags-y)
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) $(KBUILD_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_7722_SOLUTION_ENGINE) += se/7722 machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) += se/7751 machdir-$(CONFIG_SH_7780_SOLUTION_ENGINE) += se/7780 machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE) += se/7343 machdir-$(CONFIG_SH_7721_SOLUTION_ENGINE) += se/7721 machdir-$(CONFIG_SH_HP6XX) += hp6xx machdir-$(CONFIG_SH_DREAMCAST) += dreamcast machdir-$(CONFIG_SH_SH03) += sh03 machdir-$(CONFIG_SH_SECUREEDGE5410) += snapgear 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_MIGOR) += renesas/migor machdir-$(CONFIG_SH_SDK7780) += renesas/sdk7780 machdir-$(CONFIG_SH_X3PROTO) += renesas/x3proto machdir-$(CONFIG_SH_RSK7203) += renesas/rsk7203 machdir-$(CONFIG_SH_AP325RXA) += renesas/ap325rxa machdir-$(CONFIG_SH_SH7763RDP) += renesas/sh7763rdp machdir-$(CONFIG_SH_SH7785LCR) += renesas/sh7785lcr 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_LBOX_RE2) += lboxre2 machdir-$(CONFIG_SH_MAGIC_PANEL_R2) += magicpanelr2 machdir-$(CONFIG_SH_CAYMAN) += cayman
incdir-y := $(notdir $(machdir-y))
ifneq ($(machdir-y),)
core-y += $(addprefix arch/sh/boards/,
$(filter-out ., $(patsubst %,%/,$(machdir-y))))
endif
Companion chips
core-$(CONFIG_HD6446X_SERIES) += arch/sh/cchips/hd6446x/
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-$(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/
boot := arch/sh/boot
ifneq ($(KBUILD_SRC),) incdir-prefix := $(srctree)/include/asm-sh/ else incdir-prefix := endif
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.
When multiple boards are compiled in at the same time, preference
for the mach link is given to whichever has a directory for its
headers. However, this is only a workaround until platforms that
can live in the same kernel image back away from relying on the
mach link.
include/asm-sh/.mach: $(wildcard include/config/sh/*.h)
include/config/auto.conf FORCE
$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
$(Q)rm -f include/asm-sh/mach
$(Q)for i in $(incdir-y); do
if [ -d $(srctree)/include/asm-sh/$$i ]; then
echo -n ' SYMLINK include/asm-sh/mach -> ';
echo -e "include/asm-sh/$$i";
ln -fsn $(incdir-prefix)$$i
include/asm-sh/mach;
else
if [ ! -d include/asm-sh/mach ]; then
echo -n ' SYMLINK include/asm-sh/mach -> ';
echo -e 'include/asm-sh';
ln -fsn $(incdir-prefix)../asm-sh include/asm-sh/mach;
fi;
fi;
done
@touch $@
PHONY += maketools FORCE
maketools: include/linux/version.h FORCE $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
all: $(KBUILD_IMAGE)
zImage uImage uImage.srec vmlinux.srec: vmlinux $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
compressed: zImage
archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools
arch/sh/lib64/syscalltab.h
archclean: $(Q)$(MAKE) $(clean)=$(boot)
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
define filechk_gen-syscalltab
(set -e;
echo "/";
echo " * DO NOT MODIFY.";
echo " ";
echo " * This file was generated by arch/sh/Makefile";
echo " * Any changes will be reverted at build time.";
echo " /";
echo "";
echo "#ifndef __SYSCALLTAB_H";
echo "#define __SYSCALLTAB_H";
echo "";
echo "#include <linux/kernel.h>";
echo "";
echo "struct syscall_info {";
echo " const char name;";
echo "} syscall_info_table[] = {";
sed -e '/^..long /!d;s// { "/;s/(([^/])/){1}./\2/;
s/[ \t]$$//g;s/$$/" },/;s/(")sys_/\1/g';
echo "};";
echo "";
echo "#define NUM_SYSCALL_INFO_ENTRIES ARRAY_SIZE(syscall_info_table)";
echo "";
echo "#endif /* __SYSCALLTAB_H */" )
endef
arch/sh/lib64/syscalltab.h: arch/sh/kernel/syscalls_64.S $(call filechk,gen-syscalltab)
CLEAN_FILES += arch/sh/lib64/syscalltab.h
include/asm-sh/machtypes.h
include/asm-sh/cpu include/asm-sh/.cpu
include/asm-sh/mach include/asm-sh/.mach