summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9f92438)
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>
CPU_CFLAGS += -mno-branch-likely
CPU_CFLAGS_mips32 = -mips32 -mtune=mips32
CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64
CPU_CFLAGS += -mno-branch-likely
CPU_CFLAGS_mips32 = -mips32 -mtune=mips32
CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64
+ CPU_CFLAGS_mips64r2 = -mips64r2 -mtune=mips64r2 -mabi=64
CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc
CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc
CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64
CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc
CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc
CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64
qemu-system-mips -kernel bin/targets/malta/be/openwrt-malta-be-vmlinux-initramfs.elf -nographic -m 256
For the 64 bit little-endian image:
qemu-system-mips -kernel bin/targets/malta/be/openwrt-malta-be-vmlinux-initramfs.elf -nographic -m 256
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.
CONFIG_ARCH_MMAP_RND_BITS_MIN=12
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_CPU_BIG_ENDIAN=y
CONFIG_ARCH_MMAP_RND_BITS_MIN=12
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_CPU_BIG_ENDIAN=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_CPU_MIPS64=y
# CONFIG_CPU_LITTLE_ENDIAN is not set
CONFIG_CPU_MIPS64=y
+CONFIG_CPU_MIPS64_R2=y
+CONFIG_CPU_MIPSR2=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_HUGEPAGES=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=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_MIPS32_N32 is not set
# CONFIG_MIPS32_O32 is not set
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_MIPS32_N32 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_MODULES_USE_ELF_RELA=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
# CONFIG_MIPS_VA_BITS_48 is not set
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
SUBTARGET:=be64
FEATURES+=source-only
BOARDNAME:=Big Endian (64-bits)
SUBTARGET:=be64
FEATURES+=source-only
BOARDNAME:=Big Endian (64-bits)
CONFIG_ARCH_MMAP_RND_BITS_MAX=18
CONFIG_ARCH_MMAP_RND_BITS_MIN=12
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_MMAP_RND_BITS_MAX=18
CONFIG_ARCH_MMAP_RND_BITS_MIN=12
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS64=y
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS64=y
+CONFIG_CPU_MIPS64_R2=y
+CONFIG_CPU_MIPSR2=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_HUGEPAGES=y
CONFIG_CPU_SUPPORTS_64BIT_KERNEL=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_MIPS32_N32 is not set
# CONFIG_MIPS32_O32 is not set
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_MIPS32_N32 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_MODULES_USE_ELF_RELA=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
# CONFIG_MIPS_VA_BITS_48 is not set
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_PGTABLE_LEVELS=3
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
SUBTARGET:=le64
FEATURES+=source-only
BOARDNAME:=Little Endian (64-bits)
SUBTARGET:=le64
FEATURES+=source-only
BOARDNAME:=Little Endian (64-bits)