diff options
author | Leonid Yegoshin <Leonid.Yegoshin@imgtec.com> | 2014-10-27 06:34:11 -0400 |
---|---|---|
committer | Markos Chandras <markos.chandras@imgtec.com> | 2015-02-16 05:01:25 -0500 |
commit | 7fd08ca58ae6299e7f7efee9b9062b731de94726 (patch) | |
tree | bfdbc91a278d4a7a8c48375f60182b28fbb36655 /arch | |
parent | b2498af56af3e0e1bd1866ce2d23cc0efe6c2f90 (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/Kconfig | 47 | ||||
-rw-r--r-- | arch/mips/Makefile | 2 |
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 | ||
1308 | config 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 | |||
1308 | config CPU_MIPS64_R1 | 1323 | config 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 | ||
1358 | config 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 | |||
1343 | config CPU_R3000 | 1372 | config 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 | |||
1540 | config CPU_MIPS32_3_5_FEATURES | 1569 | config 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 | |||
1660 | config SYS_HAS_CPU_MIPS32_R3_5 | 1689 | config SYS_HAS_CPU_MIPS32_R3_5 |
1661 | bool | 1690 | bool |
1662 | 1691 | ||
1692 | config SYS_HAS_CPU_MIPS32_R6 | ||
1693 | bool | ||
1694 | |||
1663 | config SYS_HAS_CPU_MIPS64_R1 | 1695 | config SYS_HAS_CPU_MIPS64_R1 |
1664 | bool | 1696 | bool |
1665 | 1697 | ||
1666 | config SYS_HAS_CPU_MIPS64_R2 | 1698 | config SYS_HAS_CPU_MIPS64_R2 |
1667 | bool | 1699 | bool |
1668 | 1700 | ||
1701 | config SYS_HAS_CPU_MIPS64_R6 | ||
1702 | bool | ||
1703 | |||
1669 | config SYS_HAS_CPU_R3000 | 1704 | config SYS_HAS_CPU_R3000 |
1670 | bool | 1705 | bool |
1671 | 1706 | ||
@@ -1765,11 +1800,11 @@ endmenu | |||
1765 | # | 1800 | # |
1766 | config CPU_MIPS32 | 1801 | config 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 | ||
1770 | config CPU_MIPS64 | 1805 | config 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 | ||
1820 | config CPU_MIPSR6 | ||
1821 | bool | ||
1822 | default y if CPU_MIPS32_R6 || CPU_MIPS64_R6 | ||
1823 | |||
1785 | config EVA | 1824 | config EVA |
1786 | bool | 1825 | bool |
1787 | 1826 | ||
@@ -2149,7 +2188,7 @@ config CPU_HAS_SMARTMIPS | |||
2149 | here. | 2188 | here. |
2150 | 2189 | ||
2151 | config CPU_MICROMIPS | 2190 | config 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 |
139 | cflags-$(CONFIG_CPU_MIPS32_R2) += $(call cc-option,-march=mips32r2,-mips32r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 139 | cflags-$(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 |
141 | cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap | ||
141 | cflags-$(CONFIG_CPU_MIPS64_R1) += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ | 142 | cflags-$(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 |
143 | cflags-$(CONFIG_CPU_MIPS64_R2) += $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \ | 144 | cflags-$(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 |
146 | cflags-$(CONFIG_CPU_MIPS64_R6) += -march=mips64r6 -Wa,--trap | ||
145 | cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap | 147 | cflags-$(CONFIG_CPU_R5000) += -march=r5000 -Wa,--trap |
146 | cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ | 148 | cflags-$(CONFIG_CPU_R5432) += $(call cc-option,-march=r5400,-march=r5000) \ |
147 | -Wa,--trap | 149 | -Wa,--trap |