From: Hua Zhang <hua.zhang1...@hotmail.com> 1. add support for MIPS64R6 in target.mk 2. add support for MIPS64R6 in target malta 3. add support for MIPS64R6 in gcc configuration
Signed-off-by: Hua Zhang <hua.zhang1...@hotmail.com> --- include/target.mk | 1 + target/linux/malta/Makefile | 2 +- target/linux/malta/README | 6 ++++ target/linux/malta/be64r6/config-default | 38 ++++++++++++++++++++++++ target/linux/malta/be64r6/target.mk | 10 +++++++ target/linux/malta/le64r6/config-default | 38 ++++++++++++++++++++++++ target/linux/malta/le64r6/target.mk | 10 +++++++ toolchain/gcc/common.mk | 10 +++++-- 8 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 target/linux/malta/be64r6/config-default create mode 100644 target/linux/malta/be64r6/target.mk create mode 100644 target/linux/malta/le64r6/config-default create mode 100644 target/linux/malta/le64r6/target.mk diff --git a/include/target.mk b/include/target.mk index 1d6888fde3..181aba9b3a 100644 --- a/include/target.mk +++ b/include/target.mk @@ -174,6 +174,7 @@ ifeq ($(DUMP),1) CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64 CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc + CPU_CFLAGS_mips64r6 = -mips64r6 -mtune=mips64r6 -mabi=64 CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64 endif ifeq ($(ARCH),i386) diff --git a/target/linux/malta/Makefile b/target/linux/malta/Makefile index c71f34d109..5e1e745ba5 100644 --- a/target/linux/malta/Makefile +++ b/target/linux/malta/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk BOARD:=malta BOARDNAME:=MIPS Malta CoreLV board (qemu) CPU_TYPE:=24kc -SUBTARGETS:=le be le64 be64 +SUBTARGETS:=le be le64 be64 le64r6 be64r6 INITRAMFS_EXTRA_FILES:= MAINTAINER:=Florian Fainelli <flor...@openwrt.org> FEATURES:=ramdisk diff --git a/target/linux/malta/README b/target/linux/malta/README index 0bb1a1e35a..f631007fcb 100644 --- a/target/linux/malta/README +++ b/target/linux/malta/README @@ -16,4 +16,10 @@ qemu-system-mips64el -kernel bin/targets/malta/le64/openwrt-malta-le64-vmlinux-i For the 64 bit big-endian image: qemu-system-mips64 -kernel bin/targets/malta/be64/openwrt-malta-be64-vmlinux-initramfs.elf -nographic -m 256 +For the 64 bit r6 little-endian image: +qemu-system-mips64el -cpu I6400-kernel bin/targets/malta/le64r6/openwrt-malta-le64r6-vmlinux-initramfs.elf -nographic -m 256 + +For the 64 bit r6 big-endian image: +qemu-system-mips64 -cpu I6400 -kernel bin/targets/malta/be64r6/openwrt-malta-be64r6-vmlinux-initramfs.elf -nographic -m 256 + and enjoy the system bootin. diff --git a/target/linux/malta/be64r6/config-default b/target/linux/malta/be64r6/config-default new file mode 100644 index 0000000000..3097d15cbf --- /dev/null +++ b/target/linux/malta/be64r6/config-default @@ -0,0 +1,38 @@ +# CONFIG_32BIT is not set +CONFIG_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_MMAP_RND_BITS=12 +CONFIG_ARCH_MMAP_RND_BITS_MAX=18 +CONFIG_ARCH_MMAP_RND_BITS_MIN=12 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_BINFMT_ELF32=y +CONFIG_BLOCK_COMPAT=y +CONFIG_COMPAT=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_CPU_MIPS64=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_CPU_MIPSR1=y +CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_HUGEPAGES=y +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +# CONFIG_HUGETLBFS is not set +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_N32=y +CONFIG_MIPS32_O32=y +# CONFIG_MIPS_VA_BITS_48 is not set +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_PCI_BUS_ADDR_T_64BIT=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_ZONE_DMA32=y diff --git a/target/linux/malta/be64r6/target.mk b/target/linux/malta/be64r6/target.mk new file mode 100644 index 0000000000..a645d01de3 --- /dev/null +++ b/target/linux/malta/be64r6/target.mk @@ -0,0 +1,10 @@ +ARCH:=mips64 +CPU_TYPE:=mips64r6 +SUBTARGET:=be64r6 +FEATURES+=source-only +BOARDNAME:=Big Endian R6 (64-bits-r6) + +define Target/Description + Build BE firmware images for MIPS Malta CoreLV board running in + big-endian and 64-bits-r6 mode +endef diff --git a/target/linux/malta/le64r6/config-default b/target/linux/malta/le64r6/config-default new file mode 100644 index 0000000000..37de98817e --- /dev/null +++ b/target/linux/malta/le64r6/config-default @@ -0,0 +1,38 @@ +# CONFIG_32BIT is not set +CONFIG_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_MMAP_RND_BITS=12 +CONFIG_ARCH_MMAP_RND_BITS_MAX=18 +CONFIG_ARCH_MMAP_RND_BITS_MIN=12 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_BINFMT_ELF32=y +CONFIG_BLOCK_COMPAT=y +CONFIG_COMPAT=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CPU_MIPS64=y +CONFIG_CPU_MIPS64_R6=y +CONFIG_CPU_MIPSR1=y +CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y +CONFIG_CPU_SUPPORTS_HUGEPAGES=y +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +# CONFIG_HUGETLBFS is not set +CONFIG_MIPS32_COMPAT=y +CONFIG_MIPS32_N32=y +CONFIG_MIPS32_O32=y +# CONFIG_MIPS_VA_BITS_48 is not set +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_PCI_BUS_ADDR_T_64BIT=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_ZONE_DMA32=y diff --git a/target/linux/malta/le64r6/target.mk b/target/linux/malta/le64r6/target.mk new file mode 100644 index 0000000000..392c46dbdd --- /dev/null +++ b/target/linux/malta/le64r6/target.mk @@ -0,0 +1,10 @@ +ARCH:=mips64el +CPU_TYPE:=mips64r6 +SUBTARGET:=le64r6 +FEATURES+=source-only +BOARDNAME:=Little Endian R6 (64-bits-r6) + +define Target/Description + Build LE firmware images for MIPS Malta CoreLV board running in + little-endian and 64-bits-r6 mode +endef diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index b75fce57ef..225bf27de0 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -117,13 +117,19 @@ GCC_CONFIGURE:= \ --with-host-libstdcxx=-lstdc++ \ $(SOFT_FLOAT_CONFIG_OPTION) \ $(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 \ --disable-decimal-float +ifneq ($(CONFIG_mips64)$(CONFIG_mips64el),) + ifeq ($(CONFIG_CPU_TYPE), "mips64r6") + GCC_CONFIGURE += --with-arch=mips64r6 --with-abi=$(call qstrip,$(CONFIG_MIPS64_ABI)) + else + GCC_CONFIGURE += --with-arch=mips64 --with-abi=$(call qstrip,$(CONFIG_MIPS64_ABI)) + endif +endif + ifneq ($(CONFIG_mips)$(CONFIG_mipsel),) GCC_CONFIGURE += --with-mips-plt endif -- 2.17.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel