mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									b2498af56a
								
							
						
					
					
						commit
						7fd08ca58a
					
				
					 2 changed files with 45 additions and 4 deletions
				
			
		| 
						 | 
					@ -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
 | 
				
			||||||
	  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
 | 
				
			||||||
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
 | 
				
			||||||
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
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
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
 | 
				
			||||||
	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
 | 
				
			||||||
	  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
 | 
				
			||||||
			-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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue