[SeaBIOS] [Qemu-devel] [edk2] (PAM stuff) reset doesn't work on OVMF + SeaBIOS CSM

Paolo Bonzini pbonzini at redhat.com
Tue Feb 19 21:49:45 CET 2013


Il 19/02/2013 20:39, David Woodhouse ha scritto:
> We'd need to fix SeaBIOS to use the 0xcf9 reset too; currently it'll sit
> in an endless loop of keyboard-induced *soft* resets anyway, because it
> tries that before 0xcf9.
> 
> And in fact it probably shouldn't use the hard-coded 0xcf9 reset; it
> should use the one indicated by the ACPI RESET_REG field (which *is*
> 0xcf9... or should be).

We should implement this: http://mjg59.dreamwidth.org/3561.html

> A while back I did some tests with Windows running on top of qemu.
> This is a great way to evaluate OS behaviour, because you've got
> complete control of what's handed to the OS and what the OS tries to
> do to the hardware. And what I discovered was a little surprising. In
> the absence of an ACPI reboot vector, Windows will hit the keyboard
> controller, wait a while, hit it again and then give up. If an ACPI
> reboot vector is present, windows will poke it, try the keyboard
> controller, poke the ACPI vector again and try the keyboard
> controller one more time.
> 
> This turns out to be important. The first thing it means is that it
> generates two writes to the ACPI reboot vector. The second is that it
> leaves a gap between them while it's fiddling with the keyboard
> controller. And, shockingly, it turns out that on most systems the
> ACPI reboot vector points at 0xcf9 in system IO space. Even though
> most implementations nominally require two different values be
> written, it seems that this isn't a strict requirement and the ACPI
> method works.

Paolo



More information about the SeaBIOS mailing list