Re: qemu oddness with isolinux vesamenu.c32

Avi Kivity
2008-07-19T07:37:17Z

> Furthermore, it is completely unnecessary. Instead of stuffing the old
> pointer in an interupt vector and using the INT instruction, stuff it in
> a variable in the local code segment, and use the following sequence:
>
> pushf
> lcallw *%cs:old_vector
>
> In order to do this it needs, of course, to be able to write to its own
> memory, which I'm not sure if qemu-kvm allows by default. If so, this

You mean, "if not"?

> is actually a defect in qemu-kvm, since modern expansion "ROMs" *do*
> expect to be able to write to their own memory areas during
> initialization; see the PnPBIOS spec, Appendix B; support for this
> specification is mandatory for PCI systems.
>

kvm allows writing into the bios; qemu does not. I thought it was a kvm
bug, but turns out that it's a qemu bug...

(though to be fair, true emulation ought to start out read-only, then be
enabled by the bios ram shadow mechanism)

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.