aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLeonid Yegoshin <Leonid.Yegoshin@imgtec.com>2014-10-27 06:34:11 -0400
committerMarkos Chandras <markos.chandras@imgtec.com>2015-02-16 05:01:25 -0500
commit7fd08ca58ae6299e7f7efee9b9062b731de94726 (patch)
treebfdbc91a278d4a7a8c48375f60182b28fbb36655 /arch
parentb2498af56af3e0e1bd1866ce2d23cc0efe6c2f90 (diff)
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: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/Kconfig47
-rw-r--r--arch/mips/Makefile2
2 files changed, 45 insertions, 4 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b1b2de537860..c01e1d4e0db3 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1305,6 +1305,21 @@ config CPU_MIPS32_R2
1305 specific type of processor in your system, choose those that one 1305 specific type of processor in your system, choose those that one
1306 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system. 1306 otherwise CPU_MIPS32_R1 is a safe bet for any MIPS32 system.
1307 1307
1308config CPU_MIPS32_R6
1309 bool "MIPS32 Release 6 (EXPERIMENTAL)"
1310 depends on SYS_HAS_CPU_MIPS32_R6
1311 select CPU_HAS_PREFETCH
1312 select CPU_SUPPORTS_32BIT_KERNEL
1313 select CPU_SUPPORTS_HIGHMEM
1314 select CPU_SUPPORTS_MSA
1315 select HAVE_KVM
1316 select MIPS_O32_FP64_SUPPORT
1317 help
1318 Choose this option to build a kernel for release 6 or later of the
1319 MIPS32 architecture. New MIPS processors, starting with the Warrior
1320 family, are based on a MIPS32r6 processor. If you own an older
1321 processor, you probably need to select MIPS32r1 or MIPS32r2 instead.
1322
1308config CPU_MIPS64_R1 1323config CPU_MIPS64_R1
1309 bool "MIPS64 Release 1" 1324 bool "MIPS64 Release 1"
1310 depends on SYS_HAS_CPU_MIPS64_R1 1325 depends on SYS_HAS_CPU_MIPS64_R1
@@ -1340,6 +1355,20 @@ config CPU_MIPS64_R2
1340 specific type of processor in your system, choose those that one 1355 specific type of processor in your system, choose those that one
1341 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system. 1356 otherwise CPU_MIPS64_R1 is a safe bet for any MIPS64 system.
1342 1357
1358config CPU_MIPS64_R6
1359 bool "MIPS64 Release 6 (EXPERIMENTAL)"
1360 depends on SYS_HAS_CPU_MIPS64_R6
1361 select CPU_HAS_PREFETCH
1362 select CPU_SUPPORTS_32BIT_KERNEL
1363 select CPU_SUPPORTS_64BIT_KERNEL
1364 select CPU_SUPPORTS_HIGHMEM
1365 select CPU_SUPPORTS_MSA
1366 help
1367 Choose this option to build a kernel for release 6 or later of the
1368 MIPS64 architecture. New MIPS processors, starting with the Warrior
1369 family, are based on a MIPS64r6 processor. If you own an older
1370 processor, you probably need to select MIPS64r1 or MIPS64r2 instead.
1371
1343config CPU_R3000 1372config CPU_R3000
1344 bool "R3000" 1373 bool "R3000"
1345 depends on SYS_HAS_CPU_R3000 1374 depends on SYS_HAS_CPU_R3000
@@ -1540,7 +1569,7 @@ endchoice
1540config CPU_MIPS32_3_5_FEATURES 1569config CPU_MIPS32_3_5_FEATURES
1541 bool "MIPS32 Release 3.5 Features" 1570 bool "MIPS32 Release 3.5 Features"
1542 depends on SYS_HAS_CPU_MIPS32_R3_5 1571 depends on SYS_HAS_CPU_MIPS32_R3_5
1543 depends on CPU_MIPS32_R2 1572 depends on CPU_MIPS32_R2 || CPU_MIPS32_R6
1544 help 1573 help
1545 Choose this option to build a kernel for release 2 or later of the 1574 Choose this option to build a kernel for release 2 or later of the
1546 MIPS32 architecture including features from the 3.5 release such as 1575 MIPS32 architecture including features from the 3.5 release such as
@@ -1660,12 +1689,18 @@ config SYS_HAS_CPU_MIPS32_R2
1660config SYS_HAS_CPU_MIPS32_R3_5 1689config SYS_HAS_CPU_MIPS32_R3_5
1661 bool 1690 bool
1662 1691
1692config SYS_HAS_CPU_MIPS32_R6
1693 bool
1694
1663config SYS_HAS_CPU_MIPS64_R1 1695config SYS_HAS_CPU_MIPS64_R1
1664 bool 1696 bool
1665 1697
1666config SYS_HAS_CPU_MIPS64_R2 1698config SYS_HAS_CPU_MIPS64_R2
1667 bool 1699 bool
1668 1700
1701config SYS_HAS_CPU_MIPS64_R6
1702 bool
1703
1669config SYS_HAS_CPU_R3000 1704config SYS_HAS_CPU_R3000
1670 bool 1705 bool
1671 1706
@@ -1765,11 +1800,11 @@ endmenu
1765# 1800#
1766config CPU_MIPS32 1801config CPU_MIPS32
1767 bool 1802 bool
1768 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 1803 default y if CPU_MIPS32_R1 || CPU_MIPS32_R2 || CPU_MIPS32_R6
1769 1804
1770config CPU_MIPS64 1805config CPU_MIPS64
1771 bool 1806 bool
1772 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 1807 default y if CPU_MIPS64_R1 || CPU_MIPS64_R2 || CPU_MIPS64_R6
1773 1808
1774# 1809#
1775# These two indicate the revision of the architecture, either Release 1 or Release 2 1810# These two indicate the revision of the architecture, either Release 1 or Release 2
@@ -1782,6 +1817,10 @@ config CPU_MIPSR2
1782 bool 1817 bool
1783 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON 1818 default y if CPU_MIPS32_R2 || CPU_MIPS64_R2 || CPU_CAVIUM_OCTEON
1784 1819
1820config CPU_MIPSR6
1821 bool
1822 default y if CPU_MIPS32_R6 || CPU_MIPS64_R6
1823
1785config EVA 1824config EVA
1786 bool 1825 bool
1787 1826
@@ -2149,7 +2188,7 @@ config CPU_HAS_SMARTMIPS
2149 here. 2188 here.
2150 2189
2151config CPU_MICROMIPS 2190config CPU_MICROMIPS
2152 depends on 32BIT && SYS_SUPPORTS_MICROMIPS 2191 depends on 32BIT && SYS_SUPPORTS_MICROMIPS && !CPU_MIPSR6
2153 bool "microMIPS" 2192 bool "microMIPS"
2154 help 2193 help
2155 When this option is enabled the kernel will be built using the 2194 When this option is enabled the kernel will be built using the
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 61818364221d..aaee9a0b89bf 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -138,10 +138,12 @@ cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS
138 -Wa,-mips32 -Wa,--trap 138 -Wa,-mips32 -Wa,--trap
139cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 139cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
140 -Wa,-mips32r2 -Wa,--trap 140 -Wa,-mips32r2 -Wa,--trap
141cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap
141cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ 142cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
142 -Wa,-mips64 -Wa,--trap 143 -Wa,-mips64 -Wa,--trap
143cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ 144cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
144 -Wa,-mips64r2 -Wa,--trap 145 -Wa,-mips64r2 -Wa,--trap
146cflags-$(CONFIG_CPU_MIPS64_R6) += -march=mips64r6 -Wa,--trap
145cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap 147cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap
146cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ 148cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \
147 -Wa,--trap 149 -Wa,--trap