Commit 7fd08ca5 authored by Leonid Yegoshin's avatar Leonid Yegoshin Committed by Markos Chandras

MIPS: Add build support for the MIPS R6 ISA

Add build support for the latest revision (R6) of the MIPS ISA.
microMIPS is not yet supported.

Link: http://www.linux-mips.org/archives/linux-mips/2015-01/msg00386.html
Cc: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: default avatarLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
parent b2498af5
...@@ -1305,6 +1305,21 @@ config CPU_MIPS32_R2 ...@@ -1305,6 +1305,21 @@ config CPU_MIPS32_R2
specific type of processor in your system, choose those that one specific type of processor in your system, choose those that one
otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
config CPU_MIPS32_R6
bool "MIPS32 Release 6 (EXPERIMENTAL)"
depends on SYS_HAS_CPU_MIPS32_R6
select CPU_HAS_PREFETCH
select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA
select HAVE_KVM
select MIPS_O32_FP64_SUPPORT
help
Choose this option to build a kernel for release 6 or later of the
MIPS32 architecture. New MIPS processors, starting with the Warrior
family, are based on a MIPS32r6 processor. If you own an older
processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
config CPU_MIPS64_R1 config CPU_MIPS64_R1
bool "MIPS64 Release 1" bool "MIPS64 Release 1"
depends on SYS_HAS_CPU_MIPS64_R1 depends on SYS_HAS_CPU_MIPS64_R1
...@@ -1340,6 +1355,20 @@ config CPU_MIPS64_R2 ...@@ -1340,6 +1355,20 @@ config CPU_MIPS64_R2
specific type of processor in your system, choose those that one specific type of processor in your system, choose those that one
otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
config CPU_MIPS64_R6
bool "MIPS64 Release 6 (EXPERIMENTAL)"
depends on SYS_HAS_CPU_MIPS64_R6
select CPU_HAS_PREFETCH
select CPU_SUPPORTS_32BIT_KERNEL
select CPU_SUPPORTS_64BIT_KERNEL
select CPU_SUPPORTS_HIGHMEM
select CPU_SUPPORTS_MSA
help
Choose this option to build a kernel for release 6 or later of the
MIPS64 architecture. New MIPS processors, starting with the Warrior
family, are based on a MIPS64r6 processor. If you own an older
processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
config CPU_R3000 config CPU_R3000
bool "R3000" bool "R3000"
depends on SYS_HAS_CPU_R3000 depends on SYS_HAS_CPU_R3000
...@@ -1540,7 +1569,7 @@ endchoice ...@@ -1540,7 +1569,7 @@ endchoice
config CPU_MIPS32_3_5_FEATURES config CPU_MIPS32_3_5_FEATURES
bool "MIPS32 Release 3.5 Features" bool "MIPS32 Release 3.5 Features"
depends on SYS_HAS_CPU_MIPS32_R3_5 depends on SYS_HAS_CPU_MIPS32_R3_5
depends on CPU_MIPS32_R2 depends on CPU_MIPS32_R2 || CPU_MIPS32_R6
help help
Choose this option to build a kernel for release 2 or later of the Choose this option to build a kernel for release 2 or later of the
MIPS32 architecture including features from the 3.5 release such as MIPS32 architecture including features from the 3.5 release such as
...@@ -1660,12 +1689,18 @@ config SYS_HAS_CPU_MIPS32_R2 ...@@ -1660,12 +1689,18 @@ config SYS_HAS_CPU_MIPS32_R2
config SYS_HAS_CPU_MIPS32_R3_5 config SYS_HAS_CPU_MIPS32_R3_5
bool bool
config SYS_HAS_CPU_MIPS32_R6
bool
config SYS_HAS_CPU_MIPS64_R1 config SYS_HAS_CPU_MIPS64_R1
bool bool
config SYS_HAS_CPU_MIPS64_R2 config SYS_HAS_CPU_MIPS64_R2
bool bool
config SYS_HAS_CPU_MIPS64_R6
bool
config SYS_HAS_CPU_R3000 config SYS_HAS_CPU_R3000
bool bool
...@@ -1765,11 +1800,11 @@ endmenu ...@@ -1765,11 +1800,11 @@ endmenu
# #
config CPU_MIPS32 config CPU_MIPS32
bool bool
default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
config CPU_MIPS64 config CPU_MIPS64
bool bool
default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
# #
# These two indicate the revision of the architecture, either Release 1 or Release 2 # These two indicate the revision of the architecture, either Release 1 or Release 2
...@@ -1782,6 +1817,10 @@ config CPU_MIPSR2 ...@@ -1782,6 +1817,10 @@ config CPU_MIPSR2
bool bool
default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
config CPU_MIPSR6
bool
default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
config EVA config EVA
bool bool
...@@ -2149,7 +2188,7 @@ config CPU_HAS_SMARTMIPS ...@@ -2149,7 +2188,7 @@ config CPU_HAS_SMARTMIPS
here. here.
config CPU_MICROMIPS config CPU_MICROMIPS
depends on 32BIT && SYS_SUPPORTS_MICROMIPS depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
bool "microMIPS" bool "microMIPS"
help help
When this option is enabled the kernel will be built using the When this option is enabled the kernel will be built using the
......
...@@ -138,10 +138,12 @@ cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS ...@@ -138,10 +138,12 @@ cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS
-Wa,-mips32 -Wa,--trap -Wa,-mips32 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
-Wa,-mips32r2 -Wa,--trap -Wa,-mips32r2 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
-Wa,-mips64 -Wa,--trap -Wa,-mips64 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
-Wa,-mips64r2 -Wa,--trap -Wa,-mips64r2 -Wa,--trap
cflags-$(CONFIG_CPU_MIPS64_R6) += -march=mips64r6 -Wa,--trap
cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap
cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \
-Wa,--trap -Wa,--trap
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment