summaryrefslogtreecommitdiff
path: root/OvmfPkg/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/build.sh')
-rwxr-xr-xOvmfPkg/build.sh54
1 files changed, 40 insertions, 14 deletions
diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
index f64ea9159..f3eb97c1d 100755
--- a/OvmfPkg/build.sh
+++ b/OvmfPkg/build.sh
@@ -48,6 +48,7 @@ PLATFORMFILE=
THREADNUMBER=1
LAST_ARG=
RUN_QEMU=no
+ENABLE_FLASH=no
#
# Pick a default tool type for a given OS
@@ -106,6 +107,9 @@ do
shift
break
;;
+ --enable-flash)
+ ENABLE_FLASH=yes
+ ;;
*)
BUILD_OPTIONS="$BUILD_OPTIONS $arg"
;;
@@ -139,7 +143,12 @@ done
case $PROCESSOR in
IA32)
Processor=Ia32
- if [ -x `which qemu-system-i386` ]; then
+ if [ -n "$QEMU_COMMAND" ]; then
+ #
+ # The user set the QEMU_COMMAND variable. We'll use it to run QEMU.
+ #
+ :
+ elif [ -x `which qemu-system-i386` ]; then
QEMU_COMMAND=qemu-system-i386
elif [ -x `which qemu-system-x86_64` ]; then
QEMU_COMMAND=qemu-system-x86_64
@@ -152,7 +161,12 @@ case $PROCESSOR in
;;
X64)
Processor=X64
- QEMU_COMMAND=qemu-system-x86_64
+ if [ -z "$QEMU_COMMAND" ]; then
+ #
+ # The user didn't set the QEMU_COMMAND variable.
+ #
+ QEMU_COMMAND=qemu-system-x86_64
+ fi
;;
*)
echo Unsupported processor architecture: $PROCESSOR
@@ -165,16 +179,25 @@ if [ -z "$PLATFORMFILE" ]; then
PLATFORMFILE=$WORKSPACE/OvmfPkg/OvmfPkg$Processor.dsc
fi
-ADD_QEMU_HDA=yes
-for arg in "$@"
-do
- case $arg in
- -hd[a-d]|-fd[ab]|-cdrom)
- ADD_QEMU_HDA=no
- break
+if [[ "$RUN_QEMU" == "yes" ]]; then
+ qemu_version=$($QEMU_COMMAND -version 2>&1 | tail -1 | awk '{print $4}')
+ case $qemu_version in
+ 1.[6-9].*|1.[1-9][0-9].*|2.*.*)
+ ENABLE_FLASH=yes
;;
esac
-done
+
+ ADD_QEMU_HDA=yes
+ for arg in "$@"
+ do
+ case $arg in
+ -hd[a-d]|-fd[ab]|-cdrom)
+ ADD_QEMU_HDA=no
+ break
+ ;;
+ esac
+ done
+fi
#
# Uncomment this block for parameter parsing debug
@@ -212,12 +235,15 @@ if [[ "$RUN_QEMU" == "yes" ]]; then
mkdir $QEMU_FIRMWARE_DIR
fi
ln -sf $FV_DIR/OVMF.fd $QEMU_FIRMWARE_DIR/bios.bin
- if [[ "$ADD_QEMU_HDA" == "yes" ]]; then
- AUTO_QEMU_HDA="-hda fat:$BUILD_ROOT_ARCH"
+ if [[ "$ENABLE_FLASH" == "yes" ]]; then
+ QEMU_COMMAND="$QEMU_COMMAND -pflash $QEMU_FIRMWARE_DIR/bios.bin"
else
- AUTO_QEMU_HDA=
+ QEMU_COMMAND="$QEMU_COMMAND -L $QEMU_FIRMWARE_DIR"
+ fi
+ if [[ "$ADD_QEMU_HDA" == "yes" ]]; then
+ QEMU_COMMAND="$QEMU_COMMAND -hda fat:$BUILD_ROOT_ARCH"
fi
- QEMU_COMMAND="$QEMU_COMMAND -L $QEMU_FIRMWARE_DIR $AUTO_QEMU_HDA $*"
+ QEMU_COMMAND="$QEMU_COMMAND $*"
echo Running: $QEMU_COMMAND
$QEMU_COMMAND
exit $?