[SeaBIOS] about [SeaBIOS PATCH] Try to hard-reboot on rerun of post even on emulators.

Paolo Bonzini pbonzini at redhat.com
Tue Apr 21 10:30:00 CEST 2015



On 21/04/2015 02:29, Kevin O'Connor wrote:
> On a typical x86 machine, the BIOS image is located in read-only
> memory at 0xffff0000.  The chipsets typically also support shadowing
> that image to ram (or as a read-only copy) at 0xf0000.  However,
> neither qemu nor kvm fully support all the shadowing capabilities of a
> typical x86 chipset.  So, seabios will copy itself from the image at
> 0xffff0000 to ram at 0xf0000.  Unfortunately, kvm had a bug where the
> resulting ram image at 0xf0000 was actually mapped to the same ram at
> 0xffff0000 and changes to the memory copy at 0xf0000 would also change
> the copy at 0xffff0000.  This made it impossible for reboots to
> redeploy the original pristine copy of seabios.

Nowadays QEMU and KVM can emulate this correctly, but any version of
QEMU before the introduction of the memory API (before 1.1 roughly) was
not able to support this.

Paolo



More information about the SeaBIOS mailing list