summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-02-08 21:58:57 -0600
committerWaldemar Brodkorb <wbx@openadk.org>2015-02-08 21:59:15 -0600
commit671042b2e0a3d8811f5f018d635cc5979486d35f (patch)
tree9540aa9080fb6986d525e6f1868dce435c08d36b
parent06192043a983061e81b44536b00c89f377a1b129 (diff)
allow to select MIPSr2 ISA and Soft-Float for MIPS32
-rw-r--r--Config.in1
-rw-r--r--target/config/Config.in.cpu3
-rw-r--r--target/config/Config.in.mips5
-rw-r--r--target/config/Config.in.mips.choice30
-rw-r--r--target/config/Config.in.mips.default13
-rw-r--r--target/config/Config.in.target1
-rw-r--r--target/mips/systems/qemu-mips1
-rw-r--r--toolchain/gcc/Makefile4
8 files changed, 57 insertions, 1 deletions
diff --git a/Config.in b/Config.in
index 3b6f26955..8e36745cb 100644
--- a/Config.in
+++ b/Config.in
@@ -26,6 +26,7 @@ source "target/config/Config.in.system"
source "target/config/Config.in.endian"
source "target/config/Config.in.arm"
source "target/config/Config.in.cris"
+source "target/config/Config.in.mips"
source "target/config/Config.in.x86"
source "target/config/Config.in.qemu"
source "target/config/Config.in.qemuopts"
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index cc4d1c6bc..ca6c78afc 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -104,6 +104,9 @@ config ADK_CPU_M68K
config ADK_CPU_MIPS32
boolean
+config ADK_CPU_MIPS32R2
+ boolean
+
config ADK_CPU_MIPS64
boolean
diff --git a/target/config/Config.in.mips b/target/config/Config.in.mips
new file mode 100644
index 000000000..161a7f127
--- /dev/null
+++ b/target/config/Config.in.mips
@@ -0,0 +1,5 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+source target/config/Config.in.mips.choice
+source target/config/Config.in.mips.default
diff --git a/target/config/Config.in.mips.choice b/target/config/Config.in.mips.choice
new file mode 100644
index 000000000..0e1c80475
--- /dev/null
+++ b/target/config/Config.in.mips.choice
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+choice ADK_TARGET_MIPS_CPU_ARCH
+prompt "MIPS ISA"
+depends on ADK_TARGET_ARCH_MIPS
+
+config ADK_CPU_MIPS_MIPS32
+ bool "MIPS32"
+ select ADK_CPU_MIPS32
+
+config ADK_CPU_MIPS_MIPS32R2
+ bool "MIPS32r2"
+ select ADK_CPU_MIPS32R2
+
+endchoice
+
+choice ADK_TARGET_MIPS_FLOAT
+prompt "Float configuration"
+depends on ADK_TARGET_ARCH_MIPS
+
+config ADK_TARGET_MIPS_HARD_FLOAT
+ bool "hard-float"
+ select ADK_hard_float
+
+config ADK_TARGET_MIPS_SOFT_FLOAT
+ bool "soft-float"
+ select ADK_soft_float
+
+endchoice
diff --git a/target/config/Config.in.mips.default b/target/config/Config.in.mips.default
new file mode 100644
index 000000000..3241681ce
--- /dev/null
+++ b/target/config/Config.in.mips.default
@@ -0,0 +1,13 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+config ADK_soft_float
+ bool
+
+config ADK_hard_float
+ bool
+
+config ADK_TARGET_FLOAT
+ string
+ default "hard" if ADK_hard_float
+ default "soft" if ADK_soft_float
diff --git a/target/config/Config.in.target b/target/config/Config.in.target
index 1a6129509..6628be124 100644
--- a/target/config/Config.in.target
+++ b/target/config/Config.in.target
@@ -25,6 +25,7 @@ config ADK_TARGET_CFLAGS
default "-mcpu=ultrasparc -m64" if ADK_CPU_SPARC_V9
default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
default "-march=mips32" if ADK_CPU_MIPS32
+ default "-march=mips32r2" if ADK_CPU_MIPS32R2
default "-march=mips64" if ADK_CPU_MIPS64
default "-march=armv8-a" if ADK_CPU_ARMV8
default "-march=armv5te -mtune=iwmmxt" if ADK_CPU_XSCALE
diff --git a/target/mips/systems/qemu-mips b/target/mips/systems/qemu-mips
index abe82aa9c..2dfc09ca6 100644
--- a/target/mips/systems/qemu-mips
+++ b/target/mips/systems/qemu-mips
@@ -2,7 +2,6 @@ config ADK_TARGET_SYSTEM_QEMU_MIPS
bool "Qemu Emulator"
select ADK_mips
select ADK_qemu_mips
- select ADK_CPU_MIPS32
select ADK_TARGET_QEMU
select ADK_TARGET_KERNEL_VMLINUZ
help
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 9881ff92e..3db03b107 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -119,6 +119,10 @@ GCC_CONFOPTS+= --with-float=soft
endif
endif
+ifeq ($(ADK_TARGET_ARCH_MIPS),y)
+GCC_CONFOPTS+= --with-float=$(ADK_TARGET_FLOAT)
+endif
+
ifeq ($(ADK_TARGET_ARCH_ARM),y)
GCC_CONFOPTS+= --with-float=$(ADK_TARGET_FLOAT)
ifneq ($(ADK_TARGET_FPU),)