toolchain: add support of ARCv2 architecture
authorJohn Crispin <john@openwrt.org>
Thu, 18 Feb 2016 08:22:17 +0000 (08:22 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 18 Feb 2016 08:22:17 +0000 (08:22 +0000)
This change adds support of ARC ISAv2 processors in
OpenWRT toolchain.

In general gcc for ARC may compile code for both ISA versions
simultaneously but libgcc will be built only for default
architecture that's why it's necessary to specify --with-cpu
on gcc configuration.

As for uClibc we need to use different configurations for
different ARC ISAs.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 48739

toolchain/gcc/common.mk
toolchain/uClibc/common.mk
toolchain/uClibc/config/archs [new file with mode: 0644]

index 2912f8f6120e649e1f73ee700b28ed48630ff1ee..6ac5a46f2d83178ef418791724cea56343244ffa 100644 (file)
@@ -111,6 +111,7 @@ GCC_CONFIGURE:= \
                $(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \
                $(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 \
                        --with-abi=$(call qstrip,$(CONFIG_MIPS64_ABI))) \
+               $(if $(CONFIG_arc),--with-cpu=$(CONFIG_CPU_TYPE)) \
                --with-gmp=$(TOPDIR)/staging_dir/host \
                --with-mpfr=$(TOPDIR)/staging_dir/host \
                --with-mpc=$(TOPDIR)/staging_dir/host \
index ad6ff0242104e1acb92b284eee666daa09e51f7c..2828156237fa39c201e082c1f766eb40274318bf 100644 (file)
@@ -41,8 +41,9 @@ GEN_CONFIG=$(SCRIPT_DIR)/kconfig.pl -n \
        $(if $(CONFIG_UCLIBC_ENABLE_DEBUG),$(if $(wildcard $(CONFIG_DIR)/debug),'+' $(CONFIG_DIR)/debug)) \
        $(CONFIG_DIR)/$(ARCH)$(strip \
                $(if $(wildcard $(CONFIG_DIR)/$(ARCH).$(BOARD)),.$(BOARD), \
+                       $(if $(filter archs,$(subst ",,$(CONFIG_CPU_TYPE))),hs, \
                        $(if $(CONFIG_MIPS64_ABI),.$(subst ",,$(CONFIG_MIPS64_ABI)), \
-                       $(if $(CONFIG_HAS_SPE_FPU),$(if $(wildcard $(CONFIG_DIR)/$(ARCH).e500),.e500)))))
+                       $(if $(CONFIG_HAS_SPE_FPU),$(if $(wildcard $(CONFIG_DIR)/$(ARCH).e500),.e500))))))
 
 CPU_CFLAGS = \
        -funsigned-char -fno-builtin -fno-asm \
diff --git a/toolchain/uClibc/config/archs b/toolchain/uClibc/config/archs
new file mode 100644 (file)
index 0000000..961628e
--- /dev/null
@@ -0,0 +1,10 @@
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+ARCH_WANTS_LITTLE_ENDIAN=y
+TARGET_ARCH="arc"
+TARGET_arc=y
+# CONFIG_ARC_CPU_700 is not set
+CONFIG_ARC_CPU_HS=y
+CONFIG_ARC_PAGE_SIZE_8K=y
+# CONFIG_ARC_PAGE_SIZE_16K is not set
+# CONFIG_ARC_PAGE_SIZE_4K is not set