qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Gleb Natapov
Subject: Re: [Qemu-devel] [SeaBIOS] [edk2] (PAM stuff) reset doesn't work on OVMF + SeaBIOS CSM
Date: Tue, 19 Feb 2013 20:41:11 +0200

On Tue, Feb 19, 2013 at 06:35:03PM +0000, David Woodhouse wrote:
> On Tue, 2013-02-19 at 20:13 +0200, Gleb Natapov wrote:
> > 
> > > I take it you mean copy 0xfffe0000 to 0xe0000?  That would not be
> > fun.
> > > SeaBIOS would need to detect that it's in the state (it's definitely
> > > not correct to do that on real-hardware or on "working" kvm
> > > instances), then setup a trampoline somewhere outside of
> > > 0xe0000-0xfffff to do the memcpy, jump to that trampoline, copy the
> > > memory, restore segment registers, and then jump to 0xfffffff0.
> > > That's a lot of kvm specific code to add to seabios as a workaround
> > > and it seems fragile anyway.
> > > 
> > Isn't this exactly what qemu_prep_reset() is doing now?
> 
> No. It doesn't do the trampoline thing because it doesn't *have* to;
> it's copying an identical copy of the code back over itself.
> 
Ah, yes of course. So does CSM takes the whole 0xe0000-0xfffff segment or
it leaves OVMF code there somewhere. CSM reset code can jump into OVMF
code in 0xe0000-0xfffff range and let it do the copy.

--
                        Gleb.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]