malta: update MIPS64 ISA to R2
Usage of current R1 ISA is inconsistent with the MIPS32 subtarget, little used and has limited utility for testing. Many distros target a minimum R2 ISA. Debian MIPS 32-bit/64-bit ports all use MIPS R2 ISA since Stretch, for example. Fedora's MIPS arch also targets the R2 ISA for 32-bit/64-bit. Widely used MIPS64 platforms like Octeon are based on the MIPS R2 ISA or later, and benefit from having a compatible test platform in OpenWRT. While Linux does support MIPS64 R1 targets, its usefulness for development and testing is limited. As an example, the modern Linux eBPF JIT requires a MIPS R2 ISA or later. Signed-off-by: Tony Ambardar <itugrok@yahoo.com> [Refresh config and fix README] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		 Tony Ambardar
					Tony Ambardar
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							9f9243887e
						
					
				
				
					commit
					1b27591ddb
				
			| @@ -198,6 +198,7 @@ ifeq ($(DUMP),1) | |||||||
|     CPU_CFLAGS += -mno-branch-likely |     CPU_CFLAGS += -mno-branch-likely | ||||||
|     CPU_CFLAGS_mips32 = -mips32 -mtune=mips32 |     CPU_CFLAGS_mips32 = -mips32 -mtune=mips32 | ||||||
|     CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64 |     CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64 | ||||||
|  |     CPU_CFLAGS_mips64r2 = -mips64r2 -mtune=mips64r2 -mabi=64 | ||||||
|     CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc |     CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc | ||||||
|     CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc |     CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc | ||||||
|     CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64 |     CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64 | ||||||
|   | |||||||
| @@ -11,9 +11,9 @@ For the 32 bit big-endian image: | |||||||
| qemu-system-mips -kernel bin/targets/malta/be/openwrt-malta-be-vmlinux-initramfs.elf -nographic -m 256 | qemu-system-mips -kernel bin/targets/malta/be/openwrt-malta-be-vmlinux-initramfs.elf -nographic -m 256 | ||||||
|  |  | ||||||
| For the 64 bit little-endian image: | For the 64 bit little-endian image: | ||||||
| qemu-system-mips64el -kernel bin/targets/malta/le64/openwrt-malta-le64-vmlinux-initramfs.elf -nographic -m 256 | qemu-system-mips64el -kernel bin/targets/malta/le64/openwrt-malta-le64-vmlinux-initramfs.elf -cpu MIPS64R2-generic -nographic -m 256 | ||||||
|  |  | ||||||
| For the 64 bit big-endian image: | For the 64 bit big-endian image: | ||||||
| qemu-system-mips64 -kernel bin/targets/malta/be64/openwrt-malta-be64-vmlinux-initramfs.elf -nographic -m 256 | qemu-system-mips64 -kernel bin/targets/malta/be64/openwrt-malta-be64-vmlinux-initramfs.elf -cpu MIPS64R2-generic -nographic -m 256 | ||||||
|  |  | ||||||
| and enjoy the system bootin. | and enjoy the system bootin. | ||||||
|   | |||||||
| @@ -6,18 +6,27 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=18 | |||||||
| CONFIG_ARCH_MMAP_RND_BITS_MIN=12 | CONFIG_ARCH_MMAP_RND_BITS_MIN=12 | ||||||
| CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | ||||||
| CONFIG_CPU_BIG_ENDIAN=y | CONFIG_CPU_BIG_ENDIAN=y | ||||||
|  | CONFIG_CPU_HAS_RIXI=y | ||||||
| # CONFIG_CPU_LITTLE_ENDIAN is not set | # CONFIG_CPU_LITTLE_ENDIAN is not set | ||||||
| CONFIG_CPU_MIPS64=y | CONFIG_CPU_MIPS64=y | ||||||
| CONFIG_CPU_MIPS64_R1=y | CONFIG_CPU_MIPS64_R2=y | ||||||
|  | CONFIG_CPU_MIPSR2=y | ||||||
| CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||||||
| CONFIG_CPU_SUPPORTS_HUGEPAGES=y | CONFIG_CPU_SUPPORTS_HUGEPAGES=y | ||||||
|  | CONFIG_CPU_SUPPORTS_MSA=y | ||||||
| CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y | CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y | ||||||
|  | CONFIG_HAVE_EBPF_JIT=y | ||||||
|  | CONFIG_HAVE_KVM=y | ||||||
| CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y | CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y | ||||||
| # CONFIG_MIPS32_N32 is not set | # CONFIG_MIPS32_N32 is not set | ||||||
| # CONFIG_MIPS32_O32 is not set | # CONFIG_MIPS32_O32 is not set | ||||||
|  | CONFIG_MIPS_EBPF_JIT=y | ||||||
|  | CONFIG_MIPS_PGD_C0_CONTEXT=y | ||||||
|  | CONFIG_MIPS_SPRAM=y | ||||||
| # CONFIG_MIPS_VA_BITS_48 is not set | # CONFIG_MIPS_VA_BITS_48 is not set | ||||||
| CONFIG_MODULES_USE_ELF_RELA=y | CONFIG_MODULES_USE_ELF_RELA=y | ||||||
| CONFIG_PGTABLE_LEVELS=3 | CONFIG_PGTABLE_LEVELS=3 | ||||||
| CONFIG_PHYS_ADDR_T_64BIT=y | CONFIG_PHYS_ADDR_T_64BIT=y | ||||||
| CONFIG_SYS_SUPPORTS_HUGETLBFS=y | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||||||
|  | CONFIG_TARGET_ISA_REV=2 | ||||||
| CONFIG_ZONE_DMA32=y | CONFIG_ZONE_DMA32=y | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| ARCH:=mips64 | ARCH:=mips64 | ||||||
| CPU_TYPE:=mips64 | CPU_TYPE:=mips64r2 | ||||||
| SUBTARGET:=be64 | SUBTARGET:=be64 | ||||||
| FEATURES+=source-only | FEATURES+=source-only | ||||||
| BOARDNAME:=Big Endian (64-bits) | BOARDNAME:=Big Endian (64-bits) | ||||||
|   | |||||||
| @@ -5,18 +5,27 @@ CONFIG_ARCH_MMAP_RND_BITS=12 | |||||||
| CONFIG_ARCH_MMAP_RND_BITS_MAX=18 | CONFIG_ARCH_MMAP_RND_BITS_MAX=18 | ||||||
| CONFIG_ARCH_MMAP_RND_BITS_MIN=12 | CONFIG_ARCH_MMAP_RND_BITS_MIN=12 | ||||||
| CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y | ||||||
|  | CONFIG_CPU_HAS_RIXI=y | ||||||
| CONFIG_CPU_LITTLE_ENDIAN=y | CONFIG_CPU_LITTLE_ENDIAN=y | ||||||
| CONFIG_CPU_MIPS64=y | CONFIG_CPU_MIPS64=y | ||||||
| CONFIG_CPU_MIPS64_R1=y | CONFIG_CPU_MIPS64_R2=y | ||||||
|  | CONFIG_CPU_MIPSR2=y | ||||||
| CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | ||||||
| CONFIG_CPU_SUPPORTS_HUGEPAGES=y | CONFIG_CPU_SUPPORTS_HUGEPAGES=y | ||||||
|  | CONFIG_CPU_SUPPORTS_MSA=y | ||||||
| CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y | CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y | ||||||
|  | CONFIG_HAVE_EBPF_JIT=y | ||||||
|  | CONFIG_HAVE_KVM=y | ||||||
| CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y | CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y | ||||||
| # CONFIG_MIPS32_N32 is not set | # CONFIG_MIPS32_N32 is not set | ||||||
| # CONFIG_MIPS32_O32 is not set | # CONFIG_MIPS32_O32 is not set | ||||||
|  | CONFIG_MIPS_EBPF_JIT=y | ||||||
|  | CONFIG_MIPS_PGD_C0_CONTEXT=y | ||||||
|  | CONFIG_MIPS_SPRAM=y | ||||||
| # CONFIG_MIPS_VA_BITS_48 is not set | # CONFIG_MIPS_VA_BITS_48 is not set | ||||||
| CONFIG_MODULES_USE_ELF_RELA=y | CONFIG_MODULES_USE_ELF_RELA=y | ||||||
| CONFIG_PGTABLE_LEVELS=3 | CONFIG_PGTABLE_LEVELS=3 | ||||||
| CONFIG_PHYS_ADDR_T_64BIT=y | CONFIG_PHYS_ADDR_T_64BIT=y | ||||||
| CONFIG_SYS_SUPPORTS_HUGETLBFS=y | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||||||
|  | CONFIG_TARGET_ISA_REV=2 | ||||||
| CONFIG_ZONE_DMA32=y | CONFIG_ZONE_DMA32=y | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| ARCH:=mips64el | ARCH:=mips64el | ||||||
| CPU_TYPE:=mips64 | CPU_TYPE:=mips64r2 | ||||||
| SUBTARGET:=le64 | SUBTARGET:=le64 | ||||||
| FEATURES+=source-only | FEATURES+=source-only | ||||||
| BOARDNAME:=Little Endian (64-bits) | BOARDNAME:=Little Endian (64-bits) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user