diff options
Diffstat (limited to 'OvmfPkg/build.sh')
-rwxr-xr-x | OvmfPkg/build.sh | 54 |
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 $? |