On 03/16/2010 01:31 PM, Antoine Leca wrote:
(qemu) info registers SS =9492 00094920 0000ffff 0000f300 DS =97ce 00097cec 0000ffff 0000f300
A ds.base of 0x97cec cannot be translated to a real mode segment.
However, it's not clear why it would make a difference.
Because when you return to real mode, if you do not clean up DS (and ES) beforehand, you end up with the previous (cached) bases and limits, the ones used for the move; the problem occurs with KVM (hardware virtualization) on Intel VT, because on that platform real mode is not really possible, so it is faked... and they have no good way to fake a mis-aligned segment (not present segment is not available in V8086, for example.)
Correct. To be clear, I regard this as a kvm bug, however fixing it will take a while, so I would appreciate a workaround in seabios.