[OE-core] [PATCH] scripts: add qemuppc64 qemu scripts

Armin Kuster akuster808 at gmail.com
Sat Sep 13 02:52:21 UTC 2014


Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 scripts/runqemu          | 10 +++++++---
 scripts/runqemu-internal | 30 ++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index ff64a1d..71cd798 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -109,7 +109,8 @@ while true; do
     arg=${1}
     case "$arg" in
         "qemux86" | "qemux86-64" | "qemuarm" | "qemumips" | "qemumipsel" | \
-        "qemumips64" | "qemush4"  | "qemuppc" | "qemumicroblaze" | "qemuzynq")
+        "qemumips64" | "qemush4"  | "qemuppc" | "qemuppc64" | \
+        "qemumicroblaze" | "qemuzynq")
             [ -z "$MACHINE" ] && MACHINE=$arg || \
                 error "conflicting MACHINE types [$MACHINE] and [$arg]"
             ;;
@@ -229,13 +230,13 @@ fi
 
 if [ -z "$MACHINE" ]; then
     if [ "x$FSTYPE" = "xvmdk" ]; then
-        MACHINE=`basename $VM | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
+        MACHINE=`basename $VM | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\|qemuppc64).*/\1/p'`
         if [ -z "$MACHINE" ]; then
             error "Unable to set MACHINE from vmdk filename [$VM]"
         fi
         echo "Set MACHINE to [$MACHINE] based on vmdk [$VM]"
     else
-        MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
+        MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\qemuppc64).*/\1/p'`
         if [ -z "$MACHINE" ]; then
             error "Unable to set MACHINE from kernel filename [$KERNEL]"
         fi
@@ -316,6 +317,9 @@ QEMUSH4_DEFAULT_FSTYPE=ext3
 QEMUPPC_DEFAULT_KERNEL=vmlinux-qemuppc.bin
 QEMUPPC_DEFAULT_FSTYPE=ext3
 
+QEMUPPC64_DEFAULT_KERNEL=vmlinux-qemuppc64.bin
+QEMUPPC64_DEFAULT_FSTYPE=ext3
+
 QEMUMICROBLAZE_DEFAULT_KERNEL=linux.bin.ub
 QEMUMICROBLAZE_DEFAULT_FSTYPE=cpio
 
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 38745dd..800ab69 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -59,6 +59,9 @@ else
         "qemuppc")
             mem_size=256
             ;;
+        "qemuppc64")
+            mem_size=1024
+            ;;
         "qemush4")
             mem_size=1024
             ;;
@@ -280,6 +283,7 @@ case "$MACHINE" in
     "qemumips64") ;;
     "qemush4") ;;
     "qemuppc") ;;
+    "qemuppc64") ;;
     "qemuarmv6") ;;
     "qemuarmv7") ;;
     "qemux86") ;;
@@ -548,6 +552,32 @@ if [ "$MACHINE" = "qemuzynq" ]; then
     fi
 fi
 
+if [ "$MACHINE" = "qemuppc64" ]; then
+    QEMU=qemu-system-ppc64
+    MACHINE_SUBTYPE=pseries
+    CPU_SUBTYPE=POWER7
+    QEMU_UI_OPTIONS="$QEMU_UI_OPTIONS"
+    if [ "$SLIRP_ENABLED" = "yes" ]; then
+        QEMU_NETWORK_CMD=""
+    else
+        QEMU_NETWORK_CMD="-net nic,model=e1000 $QEMU_TAP_CMD"
+    fi
+    if [ "${FSTYPE:0:3}" = "ext" -o "$FSTYPE" = "btrfs" ]; then
+        KERNCMDLINE="root=/dev/sda rw console=ttyS0 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE -M $MACHINE_SUBTYPE -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS"
+    fi
+    if [ "$FSTYPE" = "nfs" ]; then
+        if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
+            echo "Error: NFS mount point $ROOTFS doesn't exist"
+            cleanup
+            return 1
+        fi
+        KERNCMDLINE="root=/dev/nfs console=ttyS0 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
+        QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS"
+    fi
+fi
+
+
 if [ "x$RAMFS" = "xtrue" ]; then
     QEMUOPTIONS="-initrd $ROOTFS -nographic"
     KERNCMDLINE="root=/dev/ram0 console=ttyS0 debugshell"
-- 
1.9.1




More information about the Openembedded-core mailing list