From 28eb3d08402e0845e927e3cd5422b12025cab253 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 1 Oct 2018 21:24:18 +0200 Subject: qemu: support powerpc64le This uses ELFv2 ABI, which is the only ppc64 ABI musl supports. Big endian uses ELFv1 ABI, which musl doesn't support. --- src/tests/qemu/Makefile | 14 ++++++++++++-- src/tests/qemu/arch/powerpc64le.config | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/tests/qemu/arch/powerpc64le.config (limited to 'src/tests/qemu') diff --git a/src/tests/qemu/Makefile b/src/tests/qemu/Makefile index f00f6dd..0c4bca3 100644 --- a/src/tests/qemu/Makefile +++ b/src/tests/qemu/Makefile @@ -182,6 +182,16 @@ else QEMU_MACHINE := -cpu 24Kf -machine malta -smp 1 CFLAGS += -march=mips32r2 -EL endif +else ifeq ($(ARCH),powerpc64le) +QEMU_ARCH := ppc64 +KERNEL_ARCH := powerpc +KERNEL_BZIMAGE := $(KERNEL_PATH)/vmlinux +ifeq ($(CHOST),$(CBUILD)) +QEMU_MACHINE := -cpu host,accel=kvm -machine pseries +else +QEMU_MACHINE := -machine pseries +endif +CFLAGS += -mcpu=powerpc64le -mlong-double-64 else ifeq ($(ARCH),powerpc) QEMU_ARCH := ppc KERNEL_ARCH := powerpc @@ -202,7 +212,7 @@ else QEMU_MACHINE := -machine q800 endif else -$(error I only build: x86_64, i686, arm, armeb, aarch64, aarch64_be, mips, mipsel, mips64, mips64el, powerpc, m68k) +$(error I only build: x86_64, i686, arm, armeb, aarch64, aarch64_be, mips, mipsel, mips64, mips64el, powerpc64le, powerpc, m68k) endif REAL_CC := $(CBUILD)-gcc @@ -218,7 +228,7 @@ qemu: $(KERNEL_BZIMAGE) -nographic \ -smp $(NR_CPUS) \ $(QEMU_MACHINE) \ - -m $$(grep -q CONFIG_DEBUG_KMEMLEAK=y $(KERNEL_PATH)/.config && echo 1G || echo 192M) \ + -m $$(grep -q CONFIG_DEBUG_KMEMLEAK=y $(KERNEL_PATH)/.config && echo 1G || echo 256M) \ -serial stdio \ -serial file:$(BUILD_PATH)/result \ -no-reboot \ diff --git a/src/tests/qemu/arch/powerpc64le.config b/src/tests/qemu/arch/powerpc64le.config new file mode 100644 index 0000000..a43926c --- /dev/null +++ b/src/tests/qemu/arch/powerpc64le.config @@ -0,0 +1,10 @@ +CONFIG_PPC64=y +CONFIG_PPC_PSERIES=y +CONFIG_ALTIVEC=y +CONFIG_VSX=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +CONFIG_HVC_CONSOLE=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="console=hvc0 wg.success=hvc1" +CONFIG_SECTION_MISMATCH_WARN_ONLY=y -- cgit v1.2.3-59-g8ed1b