Comment 23 for bug 1725560

Revision history for this message
Laszlo Ersek (Red Hat) (lersek) wrote : Re: OVMF UEFI firmware causes Windows 10 w/ GPU passthrough to not boot after upgrade

In comment 17, Krupp confirmed that even current-ish upstream
(d8e36289cef7, "EmbeddedPkg: add driver to set graphical/serial console
preference", 2017-10-20) was broken for them; so I was definitely off
with my LP#1715700 parallel. Sorry about that.

The bisection thus far has narrowed down the introduction of the issue
to the following commits:

  git log --oneline --reverse --no-decorate c50596a70143..5659ec3fa913 \
  | cat -n

     1 3d4361663276 MMC : Added missing __FUNCTION__ macro.
     2 ea21f1d98dcc SD : Updated CMD 6 implememtation.
     3 3281ebb4ae7d Nt32Pkg: Clean up DSC to remove unnecessary build
                     option in SecMain
     4 eed3f7130522 MdeModulePkg/AtaAtapiPassThru: cache
                     EnabledPciAttributes
     5 509daa658b79 MdeModulePkg/AtaAtapiPassThru: unmap DMA buffers
                     after disabling BM DMA
     6 6fb8ddd36bde MdeModulePkg/AtaAtapiPassThru: disable the device
                     at ExitBootServices()
     7 5659ec3fa913 OvmfPkg/VirtioBlkDxe: don't unmap VRING at
                     ExitBootServices()

I don't see how patches #1 through #3 could be relevant.

Patch #7 is a no-op in non-SEV guests.

Patches #4 through #6 are also from yours truly. I wonder if patch #6:

  https://github.com/tianocore/edk2/commit/6fb8ddd36bde

tickles something in QEMU 2.10 that makes the IDE controller unusable to
Windows.

I don't think that edk2 commit 6fb8ddd36bde is broken; disabling bus
master DMA at ExitBootServices() is valid. The commit been used on
physical ATA controllers as well, since its introduction.

Given that I can't see anything suspicious and/or invalid in the above
edk2 commit range, I suggest that -- after the current edk2 bisection is
completed -- we bisect QEMU between 2.8 and 2.10, using the package

  ovmf_0-20170911.5dfba97c-1_all.deb

In comment #1 Dann stated he could *not* reproduce the issue. Was that
perhaps because Krupp used IDE but Dann used virtio? Krupp, can you
please provide your exact QEMU command line and/or libvirt domain XML?
Thanks.