aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-11-10 15:19:04 +0100
committerGerd Hoffmann <kraxel@redhat.com>2017-11-14 16:03:18 +0100
commit67fdf406c4f36b35b5e3e03f4f518b35efb2feb0 (patch)
tree1e48d3fc1f550caf2f2137366630f4d8e840c4f8
parent1761de60f0468d93a0f218f021e6e0e309ba0007 (diff)
downloadqemu-firmware-67fdf406c4f36b35b5e3e03f4f518b35efb2feb0.tar.gz
Add wrapper script to start qemu with edk2 firmware
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--.gitignore1
l---------scripts/qemu-edk2-aarch641
l---------scripts/qemu-edk2-arm1
l---------scripts/qemu-edk2-i3861
-rwxr-xr-xscripts/qemu-edk2-wrapper.sh59
l---------scripts/qemu-edk2-x86_641
6 files changed, 64 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a9a5aec
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+tmp
diff --git a/scripts/qemu-edk2-aarch64 b/scripts/qemu-edk2-aarch64
new file mode 120000
index 0000000..13d0fb7
--- /dev/null
+++ b/scripts/qemu-edk2-aarch64
@@ -0,0 +1 @@
+qemu-edk2-wrapper.sh \ No newline at end of file
diff --git a/scripts/qemu-edk2-arm b/scripts/qemu-edk2-arm
new file mode 120000
index 0000000..13d0fb7
--- /dev/null
+++ b/scripts/qemu-edk2-arm
@@ -0,0 +1 @@
+qemu-edk2-wrapper.sh \ No newline at end of file
diff --git a/scripts/qemu-edk2-i386 b/scripts/qemu-edk2-i386
new file mode 120000
index 0000000..13d0fb7
--- /dev/null
+++ b/scripts/qemu-edk2-i386
@@ -0,0 +1 @@
+qemu-edk2-wrapper.sh \ No newline at end of file
diff --git a/scripts/qemu-edk2-wrapper.sh b/scripts/qemu-edk2-wrapper.sh
new file mode 100755
index 0000000..1eef670
--- /dev/null
+++ b/scripts/qemu-edk2-wrapper.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+arch="${0##*-}"
+base="$(cd $(dirname $0); cd ..; pwd)"
+data="${base}/tmp"
+
+# arch specific config
+case "$arch" in
+i386)
+ qemu="qemu-system-x86_64"
+ craw="blobs/edk2-i386/OVMF_CODE.fd"
+ vraw="blobs/edk2-i386/OVMF_VARS.fd"
+ size=""
+ ;;
+x86_64)
+ qemu="qemu-system-x86_64"
+ craw="blobs/edk2-x86_64/OVMF_CODE.fd"
+ vraw="blobs/edk2-x86_64/OVMF_VARS.fd"
+ size=""
+ ;;
+arm)
+ qemu="qemu-system-arm -M virt"
+ craw="blobs/edk2-arm/QEMU_EFI.fd"
+ vraw="blobs/edk2-arm/QEMU_VARS.fd"
+ size="64M"
+ ;;
+aarch64)
+ qemu="qemu-system-aarch64 -M virt"
+ craw="blobs/edk2-aarch64/QEMU_EFI.fd"
+ vraw="blobs/edk2-aarch64/QEMU_VARS.fd"
+ size="64M"
+ ;;
+*)
+ echo "unknown arch: $arch"
+ exit 1
+ ;;
+esac
+
+# create qcow2 images for the firmware
+code="$data/$arch/efi-code.qcow2"
+vars="$data/$arch/efi-vars.qcow2"
+
+mkdir -p "$data/$arch"
+if test -f "$code" -a "$craw" -nt "$code"; then
+ # remove stale files
+ rm -f "$code" "$vars"
+fi
+if test ! -f "$code"; then
+ qemu-img create -f qcow2 -b "$base/$craw" -F raw "$code" $size
+fi
+if test ! -f "$vars"; then
+ qemu-img create -f qcow2 -b "$base/$vraw" -F raw "$vars" $size
+fi
+
+# run qemu
+exec $qemu \
+ -drive file="$code",format=qcow2,if=pflash,readonly=on \
+ -drive file="$vars",format=qcow2,if=pflash \
+ "$@"
diff --git a/scripts/qemu-edk2-x86_64 b/scripts/qemu-edk2-x86_64
new file mode 120000
index 0000000..13d0fb7
--- /dev/null
+++ b/scripts/qemu-edk2-x86_64
@@ -0,0 +1 @@
+qemu-edk2-wrapper.sh \ No newline at end of file