This patch series adds HVMlite support for Mini-OS. Setting CONFIG_PARAVIRT to "n" (default is "y") will build mini-os as a HVMlite domain on x86. Both 32- and 64-bit builds are supported.
Tested with plain Mini-OS configuration to work in 32- and 64-bit mode either paravirtualized or as HVM domain (device-model none). Ballooning should basically work, too, but there is some support for a sparse memory map missing in HVMlite mode. Juergen Gross (22): mini-os: resync xen headers mini-os: make dump_regs() work in early boot mini-os: add CONFIG_PARAVIRT mini-os: make some memory management related macros usable from assembler mini-os: add boot code for HVMlite support mini-os: setup hypercall page for HVMlite mini-os: support hvm_op hypercall mini-os: initialize trap handling for HVMlite mini-os: support HVMlite traps mini-os: make p2m related code depend on CONFIG_PARAVIRT mini-os: add static page tables for virtual kernel area for HVMlite mini-os: add x86 native page table handling mini-os: correct wrong calculation of alloc bitmap size mini-os: add map_frame_virt() function mini-os: setup console interface parameters mini-os: setup xenbus interface parameters mini-os: add get_cmdline() function mini-os: map shared info page for HVMlite mini-os: remove using start_info in architecture independent code mini-os: print start of day messages depending on domain type mini-os: get physical memory map mini-os: support idle for HVMlite Config.mk | 6 + Makefile | 2 +- arch/arm/arm32.S | 4 +- arch/arm/balloon.c | 7 - arch/arm/mm.c | 17 +- arch/arm/setup.c | 66 +----- arch/x86/arch.mk | 4 + arch/x86/balloon.c | 26 ++- arch/x86/events.c | 4 +- arch/x86/mm.c | 347 +++++++++++++++++++++++++++----- arch/x86/setup.c | 155 ++++++++------ arch/x86/time.c | 11 +- arch/x86/traps.c | 108 +++++++++- arch/x86/x86_32.S | 50 ++++- arch/x86/x86_64.S | 66 +++++- arch/x86/x86_hvm.S | 77 +++++++ balloon.c | 12 +- console/xencons_ring.c | 38 +++- daytime.c | 2 +- events.c | 3 +- hypervisor.c | 44 ++++ include/arm/arch_mm.h | 3 - include/balloon.h | 4 - include/compiler.h | 1 + include/console.h | 3 +- include/e820.h | 48 +++++ include/hypervisor.h | 17 +- include/kernel.h | 3 + include/mm.h | 3 +- include/paravirt.h | 81 ++++++++ include/x86/arch_mm.h | 101 +++++----- include/x86/desc.h | 366 ++++++++++++++++++++++++++++++++++ include/x86/os.h | 104 +++++++++- include/x86/x86_32/hypercall-x86_32.h | 6 + include/x86/x86_64/hypercall-x86_64.h | 6 + include/xen/arch-x86/hvm/start_info.h | 98 +++++++++ include/xen/arch-x86/xen-x86_32.h | 2 + include/xen/arch-x86/xen-x86_64.h | 2 + include/xen/elfnote.h | 12 +- include/xenbus.h | 3 + kernel.c | 7 +- main.c | 11 +- minios.mk | 2 +- mm.c | 80 +++++--- test.c | 20 +- xenbus/xenbus.c | 40 +++- 46 files changed, 1697 insertions(+), 375 deletions(-) create mode 100644 arch/x86/x86_hvm.S create mode 100644 include/e820.h create mode 100644 include/paravirt.h create mode 100644 include/x86/desc.h create mode 100644 include/xen/arch-x86/hvm/start_info.h -- 2.6.6 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel