diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2017-11-10 15:19:04 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2017-11-14 16:03:18 +0100 |
commit | 67fdf406c4f36b35b5e3e03f4f518b35efb2feb0 (patch) | |
tree | 1e48d3fc1f550caf2f2137366630f4d8e840c4f8 | |
parent | 1761de60f0468d93a0f218f021e6e0e309ba0007 (diff) | |
download | qemu-firmware-67fdf406c4f36b35b5e3e03f4f518b35efb2feb0.tar.gz |
Add wrapper script to start qemu with edk2 firmware
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | .gitignore | 1 | ||||
l--------- | scripts/qemu-edk2-aarch64 | 1 | ||||
l--------- | scripts/qemu-edk2-arm | 1 | ||||
l--------- | scripts/qemu-edk2-i386 | 1 | ||||
-rwxr-xr-x | scripts/qemu-edk2-wrapper.sh | 59 | ||||
l--------- | scripts/qemu-edk2-x86_64 | 1 |
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 |