On 12/05/2017 01:22, Xu, Anthony wrote:
SeaBIOS has a
couple of different methods to accomplish this mode
switching - it can directly switch modes (C16_BIG switch) or it can
use a helper in SMM mode to perform the switch (C16_SMM). The
preferred method is C16_SMM as C16_BIG isn't available in VM86 mode
and it also clobbers the 16bit segment registers.
Why does SeaBios use VM86 mode?
SeaBIOS doesn't, but for example old DOS extenders uses it. You can run
Windows 95 inside SeaBIOS.
vtx supports real mode long time ago.
C16_SMM is slow because it causes several extra switches between VM and QEMU.
I would prefer C16_BIG for better performance.
Does SeaBios know if it runs in real mode or VM86 mode?
Can SeaBios choose C16_SMM/C16_BIG based on VCPU mode?