start_qemu.sh: enable OVMF CODE and VARS usage

Currently, we use the traditional BIOS flag "-bios" to specify the OVMF
firmware device file. Ken proposes changing to pflash type BIOS and separate
BIOS code and variable.

-drive file=OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=OVMF_VARS.fd,if=pflash,format=raw,unit=1 \

Ken has following reasons:
  1. -bios can only support single flash binary, but the actual BIOS binary
      is consisted by many parts like SEC, PEI(Boot Block), DXE(Main Block)
      and Variable area as non-volatile storage for BIOS settings. During
      OMVF booting, a file called NvVars.bin will be created at
      <Disk>/<ESP Partition>/NvVars.bin for BIOS variable storage.
      This will pollute original Clearlinux-xxx.img.

  2. In future, we can add secure signed SEC BIOS part to enable full
      secure boot for Clear Linux via pflash.

  3. Some version of open stack, it requires separate Var Store NV instead
      of OVMF.fd. Ken meet with this issue recently. So if can show the separate
      pflash BIOS file via start_qemu.sh as example.

Suggested-by: "Lu, Ken" <ken.lu@intel.com>
This commit is contained in:
Miguel Bernal Marin
2018-10-25 16:35:00 -05:00
parent 04022fb765
commit 9008cbccba

View File

@@ -43,11 +43,19 @@ if [ ! -f "$IMAGE" ]; then
fi
rm -f debug.log
# 10/25/2018: keep back compatibility for a while
UEFI_BIOS="-bios OVMF.fd"
if [ -f OVMF_VARS.fd -a -f OVMF_CODE.fd ]; then
UEFI_BIOS=" -drive file=OVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on "
UEFI_BIOS+=" -drive file=OVMF_VARS.fd,if=pflash,format=raw,unit=1 "
fi
VMN=${VMN:=1}
qemu-system-x86_64 \
-enable-kvm \
-bios OVMF.fd \
${UEFI_BIOS} \
-smp sockets=1,cpus=4,cores=2 -cpu host \
-m 1024 \
-vga none -nographic \