James Jacobsson wrote:
> I've gotten a fair bit on my device emulation code. The linux kernel
> is actually booting all the way to mounting the root FS right now.
>   

Very impressive.  I keep saying how kvm isn't tied to qemu, but I never 
thought someone would go and actually do it.

> Currently I'm working on sorting out some bugs in the ATA irq
> handling, so there's definitely some progress.
> Thanks for your help, Avi and Dor. I wouldn't gotten this far this
> fast without your help.
>
> However, I'm currently "cheating" by loading 32 bit ELF binaries and
> executing them, instead of doing a complete boot sequence starting
> with a BIOS. This will of course stop me dead in the tracks if I
> wanted to launch anything but OSS *NIX systems.
>
> So, my question is:
> What's needed to get the x86_emulate.c code in a better state (the
> TODO page says something needs to be done), and how would I go about
> starting KVM in real-mode?
> Will it do everything right if I just set cr0 to indicate that we're
> not executing in 32bit more?
>   

The vcpu creation ioctl() creates a vcpu just after a reset - that is, 
ready to run the first bios instruction.

You will need to load your bios to physical address 0xf0000, but that's it.

> Will KVM spit out some kind of debug information when it encounters an
> instruction it cannot handle ?
>
>   

It will say 'emulation failed but !something' and the instruction opcodes.


x86_emulate.c does need an overhaul.  It can boot Windows and some 
Linuces but some boot loaders confuse it.

The following needs to be done:
- get rid of the dependency on cr2.  I did most of this work by adding 
mod r/m decoding, however a bit more needs to be done for absolute 
address references.
- add support for reg/reg instructions.  For example, mov reg, mem is 
supported but mov reg, reg is not.
- add support for more instructions - branches, stack operations, etc.

I see that Xen has been doing much the same for their x86_emulate.c, so 
we can probably pick up some of the changes from them.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to