Adding qemuppc64
v2 cover Adding qemuppc64
From: Armin Kuster <[email protected]>
Please consider these changes to add qemuppc64 support.
Added qemu-native support (hope I did it correctly) Update kernel SRCREV
[Yocto #9778]
The following changes since commit 5c11e365e19357f721c49d076971567e7b64b61b:
lib/oeqa: add Galculator to SDK and runtime tests (2016-07-01 16:22:48 +0100)
are available in the git repository at:
http://git.yoctoproject.org/git/poky-contrib akuster/qemuppc64v2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akuster/qemuppc64v2
Armin Kuster (5):
machine: add qemuppc64 machine
linux-yocto: add qemuppc64 kernel support
runqemu: Add qemuppc64
qemu: add ppc64 to QEMU_TARGETS
qeme: add ppc64 to poky QEMU_TARGET
meta-poky/conf/distro/poky.conf | 4 +++- meta/conf/machine/qemuppc64.conf | 13 +++++++++++++ meta/recipes-devtools/qemu/qemu.inc | 2 +- meta/recipes-kernel/linux/linux-yocto_4.1.bb | 4 +++- meta/recipes-kernel/linux/linux-yocto_4.4.bb | 4 +++- scripts/runqemu | 9 ++++++--- scripts/runqemu-internal | 24 ++++++++++++++++++------ 7 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 meta/conf/machine/qemuppc64.conf
Signature · 1 line
1.9.1
PATCH v2 1/5 machine: add qemuppc64 machine
--- meta/conf/machine/qemuppc64.conf | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 meta/conf/machine/qemuppc64.conf
meta/conf/machine/qemuppc64.conf new file +13 -0
@@ -0,0 +1,13 @@ +#@TYPE: Machine +#@NAME: qemu PPC 64 Emulator setup +#@DESCRIPTION: Machine configuration for running an PPC system under qemu emulation + +require conf/machine/include/qemu.inc +DEFAULTTUNE ?= "ppc64p6" +require conf/machine/include/tune-power6.inc + +KERNEL_IMAGETYPE = "vmlinux" + +SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1" + +MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
Signature · 1 line
1.9.1
PATCH v2 2/5 linux-yocto: add qemuppc64 kernel support
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
--- meta/recipes-kernel/linux/linux-yocto_4.1.bb | 4 +++- meta/recipes-kernel/linux/linux-yocto_4.4.bb | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-)
meta/recipes-kernel/linux/linux-yocto_4.1.bb +3 -1
@@ -7,6 +7,7 @@ KBRANCH_qemuarm ?= "standard/arm-versatile-926ejs" KBRANCH_qemuarm64 ?= "standard/qemuarm64" KBRANCH_qemumips ?= "standard/mti-malta32" KBRANCH_qemuppc ?= "standard/qemuppc" +KBRANCH_qemuppc64 ?= "standard/qemuppc" KBRANCH_qemux86 ?= "standard/base" KBRANCH_qemux86-64 ?= "standard/base" KBRANCH_qemumips64 ?= "standard/mti-malta64"
@@ -15,6 +16,7 @@ SRCREV_machine_qemuarm ?= "df8f2bd306f5e22590991faee46e28f671fa19b3" SRCREV_machine_qemuarm64 ?= "9f166e918f63dd7214ad0388d64709d33f2a14a3" SRCREV_machine_qemumips ?= "1bb60e693b913dacad698bec1cc08b350785e3d1" SRCREV_machine_qemuppc ?= "9f166e918f63dd7214ad0388d64709d33f2a14a3" +SRCREV_machine_qemuppc64 ?= "9f166e918f63dd7214ad0388d64709d33f2a14a3" SRCREV_machine_qemux86 ?= "9f166e918f63dd7214ad0388d64709d33f2a14a3" SRCREV_machine_qemux86-64 ?= "9f166e918f63dd7214ad0388d64709d33f2a14a3" SRCREV_machine_qemumips64 ?= "b0e7bb69566a922a661c4902e496dce98cefeab9"
@@ -31,7 +33,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" +COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
meta/recipes-kernel/linux/linux-yocto_4.4.bb +3 -1
@@ -7,6 +7,7 @@ KBRANCH_qemuarm ?= "standard/arm-versatile-926ejs" KBRANCH_qemuarm64 ?= "standard/qemuarm64" KBRANCH_qemumips ?= "standard/mti-malta32" KBRANCH_qemuppc ?= "standard/qemuppc" +KBRANCH_qemuppc64 ?= "standard/qemuppc" KBRANCH_qemux86 ?= "standard/base" KBRANCH_qemux86-64 ?= "standard/base" KBRANCH_qemumips64 ?= "standard/mti-malta64"
@@ -15,6 +16,7 @@ SRCREV_machine_qemuarm ?= "6f2317f8a00a3eb6a2b28ca51f336f61eb6fe160" SRCREV_machine_qemuarm64 ?= "13852755ecbf491848afbe40e66fc152bc70915b" SRCREV_machine_qemumips ?= "9fc8fc49e5065f1ee76e964a4c0257291ab3e62a" SRCREV_machine_qemuppc ?= "13852755ecbf491848afbe40e66fc152bc70915b" +SRCREV_machine_qemuppc64 ?= "13852755ecbf491848afbe40e66fc152bc70915b" SRCREV_machine_qemux86 ?= "13852755ecbf491848afbe40e66fc152bc70915b" SRCREV_machine_qemux86-64 ?= "13852755ecbf491848afbe40e66fc152bc70915b" SRCREV_machine_qemumips64 ?= "d1c1f36412d196b560ed9f19392e291b5492b94c"
@@ -31,7 +33,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" -COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" +COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
Signature · 1 line
1.9.1
PATCH v2 3/5 runqemu: Add qemuppc64
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
--- scripts/runqemu | 9 ++++++--- scripts/runqemu-internal | 24 ++++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-)
scripts/runqemu +6 -3
@@ -121,7 +121,7 @@ while true; do arg=${1} case "$arg" in "qemux86" | "qemux86-64" | "qemuarm" | "qemuarm64" | "qemumips" | "qemumipsel" | \ - "qemumips64" | "qemush4" | "qemuppc" | "qemumicroblaze" | "qemuzynq" | "qemuzynqmp") + "qemumips64" | "qemush4" | "qemuppc" | "qemuppc64" | "qemumicroblaze" | "qemuzynq" | "qemuzynqmp") [ -z "$MACHINE" -o "$MACHINE" = "$arg" ] && MACHINE=$arg || \ error "conflicting MACHINE types [$MACHINE] and [$arg]" ;;
@@ -251,13 +251,13 @@ fi if [ -z "$MACHINE" ]; then if [ "$IS_VM" = "true" ]; then [ "x$FSTYPE" = "xwic" ] && filename=$ROOTFS || filename=$VM - MACHINE=`basename $filename | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` + MACHINE=`basename $filename | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemuppc64\|qemush4\).*/\1/p'` if [ -z "$MACHINE" ]; then error "Unable to set MACHINE from image filename [$VM]" fi echo "Set MACHINE to [$MACHINE] based on image [$VM]" else - MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'` + MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemuppc64\|qemush4\).*/\1/p'` if [ -z "$MACHINE" ]; then error "Unable to set MACHINE from kernel filename [$KERNEL]" fi
@@ -344,6 +344,9 @@ QEMUSH4_DEFAULT_FSTYPE=ext4 QEMUPPC_DEFAULT_KERNEL=vmlinux-qemuppc.bin QEMUPPC_DEFAULT_FSTYPE=ext4 +QEMUPPC64_DEFAULT_KERNEL=vmlinux-qemuppc64.bin +QEMUPPC64_DEFAULT_FSTYPE=ext4 + QEMUMICROBLAZE_DEFAULT_KERNEL=linux.bin.ub QEMUMICROBLAZE_DEFAULT_FSTYPE=cpio
scripts/runqemu-internal +18 -6
@@ -438,15 +438,27 @@ config_qemumips() { } config_qemuppc() { - set_mem_size 256 - QEMU=qemu-system-ppc - MACHINE_SUBTYPE=mac99 - CPU_SUBTYPE=G4 + case "$MACHINE" in + qemuppc) + set_mem_size 256 + QEMU=qemu-system-ppc + MACHINE_SUBTYPE=mac99 + CPU_SUBTYPE=G4 + MODEL=pcnet + ;; + qemuppc64) + set_mem_size 1024 + QEMU=qemu-system-ppc64 + MACHINE_SUBTYPE=pseries + CPU_SUBTYPE=POWER7 + MODEL=e1000 + ;; + esac QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS" if [ "$SLIRP_ENABLED" = "yes" ]; then QEMU_NETWORK_CMD="" else - QEMU_NETWORK_CMD="-net nic,model=pcnet $QEMU_TAP_CMD" + QEMU_NETWORK_CMD="-net nic,model=$MODEL $QEMU_TAP_CMD" fi if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" -o "$FSTYPE" = "wic" ]; then KERNCMDLINE="root=$DROOT rw console=ttyS0 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
@@ -543,7 +555,7 @@ case "$MACHINE" in "qemumips" | "qemumipsel" | "qemumips64") config_qemumips ;; - "qemuppc") + "qemuppc" | "qemuppc64") config_qemuppc ;; "qemush4")
Signature · 1 line
1.9.1
PATCH v2 4/5 qemu: add ppc64 to QEMU_TARGETS
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
--- meta/recipes-devtools/qemu/qemu.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/qemu/qemu.inc +1 -1
@@ -12,7 +12,7 @@ BBCLASSEXTEND = "native nativesdk" PR = "r1" # QEMU_TARGETS is overridable variable -QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc sh4 x86_64" +QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc ppc64 sh4 x86_64" SRC_URI = "\ file://powerpc_rom.bin \
Signature · 1 line
1.9.1
Re: [PATCH 4/5] qemu: add ppc64 to QEMU_TARGETS
Quoted 5 lines · Armin Kuster
-QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc sh4
x86_64"
+QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 mips64el ppc ppc64 sh4x86_64"
Is this series meant to support user-mode qemu yet?
NOTE: Running intercept scripts:
NOTE: > Executing update_font_cache intercept ...
Invalid data memory access: 0x00000041bc926008
NIP 000000400084055c LR 00000040008404ac CTR 0000000000000000 XER
0000000000000000 CPU#0
MSR 8000000102806000 HID0 0000000000000000 HF 8000000002806000 idx 0 TB 00005165 22187490268086
GPR00 0000004000840480 000000400081e8b0 0000004000869e00 00000043789e6010 GPR04 0000004000849478 000000000000000b 0000000000000002 0000000000000003 GPR08 0000004000849482 00000041bc925ff4 0000000000000000 000000400086600a GPR12 0000000022242442 0000000000000000 00000040008634c0 0000004000847c18 GPR16 0000004000863188 0000000000000000 000000400081ed60 000000400081ed68 GPR20 000000400081ea10 0000000000000013 0000000000000000 0000000000000000 GPR24 0000000000000001 0000004000000821 000000004a01ffff 0000000087e8d51f GPR28 00000043789e6010 000000002500ffff 0000004000866000 000000400081e8b0
CR 22242444 [ E E E G E G G G ] RES ffffffffffffffff
FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 0000000000000000
qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault
Ross
PATCH v2 5/5 qeme: add ppc64 to poky QEMU_TARGET
In reply to Armin KusterFrom: Armin Kuster <[email protected]>
--- meta-poky/conf/distro/poky.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
meta-poky/conf/distro/poky.conf +3 -1
@@ -28,6 +28,7 @@ PREFERRED_VERSION_linux-yocto_qemuarm ?= "4.4%" PREFERRED_VERSION_linux-yocto_qemumips ?= "4.4%" PREFERRED_VERSION_linux-yocto_qemumips64 ?= "4.4%" PREFERRED_VERSION_linux-yocto_qemuppc ?= "4.4%" +PREFERRED_VERSION_linux-yocto_qemuppc64 ?= "4.4%" SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}" SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
@@ -40,12 +41,13 @@ DISTRO_EXTRA_RDEPENDS_append_qemuarm = " ${POKYQEMUDEPS}" DISTRO_EXTRA_RDEPENDS_append_qemuarm64 = " ${POKYQEMUDEPS}" DISTRO_EXTRA_RDEPENDS_append_qemumips = " ${POKYQEMUDEPS}" DISTRO_EXTRA_RDEPENDS_append_qemuppc = " ${POKYQEMUDEPS}" +DISTRO_EXTRA_RDEPENDS_append_qemuppc64 = " ${POKYQEMUDEPS}" DISTRO_EXTRA_RDEPENDS_append_qemux86 = " ${POKYQEMUDEPS}" DISTRO_EXTRA_RDEPENDS_append_qemux86-64 = " ${POKYQEMUDEPS}" TCLIBCAPPEND = "" -QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 ppc x86_64" +QEMU_TARGETS ?= "arm aarch64 i386 mips mipsel mips64 ppc ppc64 x86_64" # Other QEMU_TARGETS "mips64el sh4" PREMIRRORS ??= "\
Signature · 1 line
1.9.1