This is a bug in the debian package that you mention. The 2MB firmware
executable (QEMU_EFI.fd) and the 768KB varstore template (QEMU_VARS.fd)
that the edk2 ArmVirtQemu platform build produces cannot be passed
directly to QEMU. Both files have to be padded to 64MB first. The
padding is generally done in the distro-specific package (RPM, DEB etc)
build script.

(If this report mentioned Ubuntu, we could simply re-classify the bug
within Launchpad. However, Debian is tracked at bugs.debian.org, so I'll
have to close the present issue as Invalid. Please open a bug at
bugs.debian.org.)

Note that starting with version 4.1, upstream QEMU too will bundle
firmware binaries from the edk2 project. See
https://wiki.qemu.org/ChangeLog/4.1#Miscellaneous


** Changed in: qemu
       Status: New => Invalid

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1831115

Title:
  qemu 4.0.0 on aarch64: uefi firmware oversize

Status in QEMU:
  Invalid

Bug description:
  I'd like to enable uefi in my virtual machine, however qemu is always showing 
the same error:   qemu-system-aarch64: Initialization of device cfi.pflash01 
failed: device requires 67108864 bytes, block backend provides 786432 bytes  
  It's clearly impossible to fit a uefi firmware into 786432 bytes.  

  Environment: qemu-system-aarch64 with kvm on an amlogic s905d aarch64
  dev board, running archlinuxarm, qemu in the repository is compiled
  with https://download.qemu.org/qemu-4.0.0.tar.xz

  (My AAVMF_CODE.fd and AAVMF_VARS.fd are extracted from debian package
  qemu-efi-aarch64 0~20181115.85588389-3)

  Below is my libvirt log.

  2019-05-30 15:07:44.216+0000: starting up libvirt version: 5.3.0, qemu 
version: 4.0.0, kernel: 4.19.46-1-ARCH, hostname: jerry-n1.localdomain
  LC_ALL=C \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/bin \
  HOME=/var/lib/libvirt/qemu/domain-2-debiantesting \
  XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-2-debiantesting/.local/share \
  XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-2-debiantesting/.cache \
  XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-2-debiantesting/.config \
  QEMU_AUDIO_DRV=none \
  /usr/bin/qemu-system-aarch64 \
  -name guest=debiantesting,debug-threads=on \
  -S \
  -object 
secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-2-debiantesting/master-key.aes
 \
  -machine virt-4.0,accel=kvm,usb=off,dump-guest-core=off,gic-version=2 \
  -cpu host \
  -drive 
file=/opt/ovmf/aarch64/AAVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on \
  -drive 
file=/var/lib/libvirt/qemu/nvram/debiantesting_VARS.fd,if=pflash,format=raw,unit=1
 \
  -m 1024 \
  -overcommit mem-lock=off \
  -smp 4,sockets=4,cores=1,threads=1 \
  -uuid 508d100a-b4e5-4199-9ff9-ac6d40fe2896 \
  -display none \
  -no-user-config \
  -nodefaults \
  -chardev socket,id=charmonitor,fd=25,server,nowait \
  -mon chardev=charmonitor,id=monitor,mode=control \
  -rtc base=utc \
  -no-reboot \
  -boot strict=on \
  -device 
pcie-root-port,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1 
\
  -device pcie-root-port,port=0x9,chassis=2,id=pci.2,bus=pcie.0,addr=0x1.0x1 \
  -device pcie-root-port,port=0xa,chassis=3,id=pci.3,bus=pcie.0,addr=0x1.0x2 \
  -device pcie-root-port,port=0xb,chassis=4,id=pci.4,bus=pcie.0,addr=0x1.0x3 \
  -device pcie-root-port,port=0xc,chassis=5,id=pci.5,bus=pcie.0,addr=0x1.0x4 \
  -device pcie-root-port,port=0xd,chassis=6,id=pci.6,bus=pcie.0,addr=0x1.0x5 \
  -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.2,addr=0x0 \
  -device virtio-scsi-pci,id=scsi0,bus=pci.3,addr=0x0 \
  -device virtio-serial-pci,id=virtio-serial0,bus=pci.4,addr=0x0 \
  -drive 
file=/mnt/hddp1/jerry/libvirt/aarch64-images/debiantesting.qcow2,format=qcow2,if=none,id=drive-scsi0-0-0-0
 \
  -device 
scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2
 \
  -drive 
file=/mnt/hddp1/jerry/libvirt/aarch64-iso/debian-testing-arm64-netinst.iso,format=raw,if=none,id=drive-scsi0-0-0-1,readonly=on
 \
  -device 
scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=1,device_id=drive-scsi0-0-0-1,drive=drive-scsi0-0-0-1,id=scsi0-0-0-1,bootindex=1
 \
  -netdev tap,fd=27,id=hostnet0 \
  -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:d5:28:6d,bus=pci.1,addr=0x0 
\
  -chardev pty,id=charserial0 \
  -serial chardev:charserial0 \
  -chardev socket,id=charchannel0,fd=28,server,nowait \
  -device 
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0
 \
  -object rng-random,id=objrng0,filename=/dev/urandom \
  -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.5,addr=0x0 \
  -sandbox 
on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
  -msg timestamp=on
  2019-05-30 15:07:44.216+0000: Domain id=2 is tainted: host-cpu
  char device redirected to /dev/pts/2 (label charserial0)
  2019-05-30T15:07:46.701125Z qemu-system-aarch64: Initialization of device 
cfi.pflash01 failed: device requires 67108864 bytes, block backend provides 
786432 bytes
  2019-05-30 15:07:46.779+0000: shutting down, reason=failed
  (END)

  # /etc/libvirt/qemu.conf  
  nvram = [
          "/opt/ovmf/aarch64/AAVMF_CODE.fd:/opt/ovmf/aarch64/AAVMF_VARS.fd"
  ]

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1831115/+subscriptions

Reply via email to