Ah, I see. One first step here might be to add support for HVM booting of normal guests. The HVM mode is very similar to PV boot, except:
- you need to configure a hardware timer - the boot process goes through normal 16-bit bootstrap instead of direct PV boot - page table manipulation is direct instead of via hypercalls. - you can interact with emulated device drivers for block/net.
The last point is most important -- it would be easiest to get the scaffolding for device drivers working by being able to evaluate the rest of the system against the PV equivalents.
There's another approach which doesn't involve Xen at all -- have you considered taking one of the Raspberry Pi ARM mini operating systems and porting the Mirage libraries to it? They compile in ARM fine, and it should be possible to adapt Dave's VNC library to rasterise onto HDMI. The advantage of this is that there's a fairly small hardware HDL to port, vs the incredible number of x86 drivers that would need to be supported. (this isn't relevant if you have a specific x86 hardware set to support, but in general there's no easy way out of x86 support except for re-using kernel drivers in interesting ways).
Finally, you should also check out rump kernels: it should be easy to re-use portions of the NetBSD rump infrastructure to interface with Mirage management -- http://www.netbsd.org/docs/rump/.
cheers Anil
" Got it -- so you want to interface with hardware drivers via passthrough to a driver domain, I think."
No! I do not have any domains with drivers or kernels - only dom0 with mirage. So I have to implement hardware interaction all by myself with a thin layer of xen.
For now I've got working baremetal ocaml runtime and I teared off xenstore support from mirage to run it on dom0. You can think of it as a true baremetal mirage since xen does not offer anything but some debug io and timer support.
Therefore I'm interested in deploying hardware drivers separately from mirage kernel and I'd prefer to have in theese drivers as less C code as possible. Will you give me any suggestions about such mirage configuration?
|