On 01/13/16 16:49, Roman Kagan wrote: > On Wed, Jan 13, 2016 at 03:36:18PM +0100, Laszlo Ersek wrote: >> On 12/30/15 21:11, Roman Kagan wrote: >>> Windows on UEFI systems is only capable of detecting the presence and >>> the type of floppy drives via corresponding ACPI objects. >> >> I'm late to the party, but please allow me a question: >> >> how did you figure out that UEFI Windows requires this? >> >> In general, what the ACPI specification says is at best a "guideline" >> for Windows. So how did you prove this was a requirement for Windows? > > Well, my statement above that Windows on UEFI can detect floppies *only* > via ACPI is probably a bit stronger than I can actually prove but > > - Windows on OVMF didn't see floppies before the patch, while Linux did > (by querying CMOS)
Indeed. https://bugzilla.redhat.com/show_bug.cgi?id=1212317 > > - a number of sources on the internet hinted that Windows needed ACPI > assistance for that, e.g.: > > https://www.reactos.org/wiki/UEFI#Floppy > > https://social.technet.microsoft.com/Forums/windows/en-US/f17db175-d146-4518-b2e9-c12a15031222/legacy-floppy-compatibility-with-uefi-boot?forum=w7itprohardware > > https://social.technet.microsoft.com/Forums/windows/en-US/e91ec27b-0c2d-44a3-b949-e77fa810a4c0/windows-7-uefi-fdd-how-to?forum=w7itprohardware Right, I found these. (The last two anyway.) I also found technet comments that plainly stated "it would never work". (Under your first link, I can read as well: "There have been reports that Windows does not properly support motherboard floppy controllers when booting from UEFI. The cause is not definitively known though a couple of pieces of data have emerged, one pointing to an issue with ACPI".) > - the links mentioned the need in _FDE object but indicated it only > allowed for successful enumeration of floppies, not the actual access; > I proved that experimentally > > - the ACPI spec stated that _FDE went in concert with _FDI so I tried it > and it worked out Thank you for confirming. So, improving Windows compat in QEMU remains trial-and-error-based, and occasionally reverse-engineering-based. Deplorable. > Voila. Besides, I later discovered that a similar research had been > carried out for Parallels proprietary hypervisor, with a similar > outcome. That is, large amounts of work are being duplicated between participants in this industry segment, because Microsoft doesn't give a flying fsck about documenting their exact platform requirements. (The fact that _FDE and _FDI are described in the ACPI spec means exactly zilch, because Microsoft have ignored e.g. DataTableRegion from the same spec, since ACPI 2.0 -- the year 2000.) I'm quite sure this obscurity is intentional, and meant to spread uncertainty and waste competitors' resources. Whereas they are having a field day whenever they look at open source components in a hybrid virt stack. Nothing to see here, move along. Thanks again. Laszlo