[SeaBIOS] WinXP 32 installation failure with new SeaBIOS in QEMU
Avi Kivity
avi at redhat.com
Sun Aug 19 17:29:46 CEST 2012
On 08/19/2012 06:20 PM, Kevin O'Connor wrote:
> On Sun, Aug 19, 2012 at 02:39:04PM +0300, Avi Kivity wrote:
>> On 08/19/2012 12:27 PM, Avi Kivity wrote:
>> > On 08/17/2012 08:53 AM, Gerd Hoffmann wrote:
>> >> This looks suspious. vcpu migration issue? Or just something missing
>> >> in the trace?
>> > Looks like tracing with a too-small buffer size. I generally trace using
>> >
>> > trace-cmd record -e kvm -b 100000
>> >
>> > and with fingers crossed.
>> >
>> > The RET FAR instruction failure (which trace-cmd report decodes) is
>> > probably not the original failure.
>>
>> In fact it is, we mis-emulated stack operations when SS.B=0 but the
>> address size was 32-bits, and there are bits set in the top 16 bits of ESP.
>>
>> Why ESP has bits set in the top 16 bits is another question. Is seabios
>> polluting those bits?
>
> During the WinXP install/boot, when it makes 16bit calls it only
> resets the lower bits of %esp. It expects the 16bit code to only use
> %sp. Quite spectacularly, WinXP requires the top bits of %esp to not
> be mangled by the 16bit code.
>
> SeaBIOS is very careful to not spuriously alter calling state. This
> includes backing up the top bits of %esp and restoring them on return.
Okay, I'll try to track down where this came from.
--
error compiling committee.c: too many arguments to function
More information about the SeaBIOS
mailing list