Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Minor fix
[palacios.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index c2a6762..8826535 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -3,6 +3,62 @@ mainmenu "Palacios VMM Configuration"
 menu "Target Configuration"
 
 
+choice
+       prompt "Target Host OS"
+       default KITTEN
+
+config KITTEN
+       bool "Kitten OS"
+       select BUILT_IN_STDLIB
+       select BUILT_IN_STRCASECMP
+       select BUILT_IN_ATOI
+       select ALIGNED_PG_ALLOC
+       help
+         This enables the necesary options to compile Palacios with Kitten
+
+config LINUX_BUILTIN
+       bool "OLD Linux (Built in) -- to be deprecated"
+       select BUILT_IN_STDLIB
+       select BUILT_IN_ATOI
+       select FILE
+       help
+         This enables the necessary options to compile Palacios with Linux 2.6
+          Currently, this is in development, and only 2.6.32 is verified to work
+
+
+config LINUX
+       bool "Linux Module"
+       select BUILT_IN_STDLIB
+       select BUILT_IN_STRDUP
+       select BUILT_IN_ATOI
+       select FILE
+       select V3_DECODER
+       help
+         This enables the necessary options to compile Palacios as a Linux module
+
+config LINUX_KERN
+       depends on LINUX
+       string "Linux Kernel Source directory" 
+       default "/usr/src/linux"
+       help 
+         This is the directory containing the linux source for the kernel module to be built
+
+config MINIX
+       bool "MINIX 3"
+       help
+         This enables the necesary options to compile Palacios with Kitten
+
+config OTHER_OS
+       bool "Other OS"
+       help 
+         Choose this to compile Palacios for a Generic Host OS
+          (Formerly GeekOS)
+
+endchoice
+
+source "Kconfig.stdlibs"
+
 config CRAY_XT
         bool "Red Storm (Cray XT3/XT4)"
         help
@@ -21,31 +77,120 @@ config VMX
          Compile with support for Intel VMX
 
 
-config MULTITHREAD_OS
-       bool "Compile for a multi threaded OS"
-       default y
-       help 
-         This allows Palacios to use OS thread mechanisms
 
+config FRAME_POINTER
+       bool "Compile with Frame pointers"
+       default n
+       help
+         Compiles the Palacios library with Frame pointers
+
+config DEBUG_INFO
+       bool "Compile with Debug Information"
+       default n
+       help
+         Compiles the Palacios library with debugging symbols
+
+choice 
+       prompt "X86 decoder"
+       default XED
+
+config XED
+       bool "XED decoder library"
+       depends on !LINUX
+       help
+          This uses the XED decoder library from pintools 
+
+config V3_DECODER
+       bool "Internal Palacios decoder"
+       help
+           This selects the internal V3Vee x86 decoder
+
+config QUIX86
+    bool "QUIX86 decoder"
+    help
+        This selects the QUIX86 decoder library
+
+config QUIX86_DEBUG
+    bool "QUIX86 decoder debug version"
+    help
+        This selects the QUIX86 decoder library compiled w/o optimization
+        and with debug info
+
+endchoice
+
+menu "Supported host OS features"
+
+config MEM_BLOCK_SIZE
+        int "Allocation size for underlying VM memory"
+        default 134217728
+        help 
+          This is the default size in bytes of the underlying memory allocations used for the base memory regions.
+          A good default value is 128MB (134217728 or 0x8000000 bytes).  Note that the host interface must be able
+          to provide contiguous memory of at least this size in order for VMs to typically work.   This 
+          value can be overriden via a load-time option, provided the host supports this.
+
+config ALIGNED_PG_ALLOC
+       bool "Host support for aligned page allocations"
+       default n
+       help 
+         Select this if your OS supports allocating memory pages using an alignment. This is required 
+         if you want Palacios to run with large page table pages. 
 
 config MAX_CPUS
        int "Maximum number of cpus"
        range 1 255
        default "16"
        help 
-         Specifies the maximum number of hardware cpus Palacios can support
-
+         Specifies the maximum number of hardware CPUs supported by the OS
          For uniprocessor environments, set this to 1
 
+endmenu
 
-config SOCKET
-       bool "Include Network Socket Support"
-       default y
+source "palacios/src/interfaces/Kconfig"
+
+menu "Virtual core specialization"
+
+config CUSTOM_CPUID
+       bool "Use custom CPU information (vendor, etc)"
+       default n
        help 
-         Enable networking support in Palacios
+          If set, the CPU information will be for a special V3VEE vendor.
+         This should result in identical guest kernel setup, regardless
+          of the underlying hardware, but it also means that the guest kernel
+          has no chance of employing CPU-specific bug fixes.
 
+config STRICT_MSR_SEMANTICS
+       bool "Use strict RDMSR/WRMSR semantics"
+       default n
+       help
+         Use strict MSR semantics - when an unhandled MSR is read or written,
+         a GPF is generated.  This is typically usd with CUSTOM_CPU_TYPE on.
 
+config FP_SWITCH
+       bool "Floating point context switching"
+        default n
+        help
+          If set, floating point is handled for context switches 
+          (VM1->VM2->VM1 and/or VM->HOST->VM).   This can be disabled
+          for environments where a single VM is the only user of FP.
+          Note that even if disabled, FP save/restore code is included
+          for support of checkpoint/restore.
+
+config LAZY_FP_SWITCH
+       bool "Use host-based lazy floating point context switching"
+        depends on FP_SWITCH && HOST_LAZY_FPU_SWITCH
+       default y
+       help
+         When true,  the host's lazy floating point save/restore 
+          mechanism is notified on each exit and entry.  If false,
+          the floating point state is explicitly saved on each exit
+          and restored on each entry---this save/restore is entirely
+          done in Palacios.
+          
+
+endmenu
 
+source "palacios/src/extensions/Kconfig"
 
 config TELEMETRY
        bool "Enable VMM telemetry support"
@@ -66,28 +211,21 @@ config SHADOW_PAGING_TELEMETRY
        help
          Enable telemetry information for shadow paging 
 
-config SYMBIOTIC_SWAP_TELEMETRY
-       bool "Enable Symbiotic Swap Telemetry"
-       default n
-       depends on TELEMETRY && SYMBIOTIC_SWAP
-       help 
-         Enable the telemetry information for the symbiotic swap subsystem
-
+config PMU_TELEMETRY
+      bool "Enable PMU telemetry"
+      default n
+      depends on TELEMETRY && HOST_PMU
+      help
+        Enable telemetry information for a range of PMU counters
+          This causes the currently configured PMU counts to be printed
 
-config PASSTHROUGH_VIDEO
-       bool "Enable Passthrough Video"
-       default y
-       help 
-         Configures Palacios to map a guest's framebuffer directly 
-         to the hardware framebuffer
-
-config INSTRUMENT_VMM
-       bool "Enable VMM instrumentation"
+config PWRSTAT_TELEMETRY
+       bool "Enable power statistics telemetry"
        default n
-       help 
-         Enable the instrumentation framework
-         --------
-         This is much heavier weight than profiling
+       depends on TELEMETRY && HOST_PWRSTAT
+       help
+               Enable telemetry information for power/energy counters 
+               
 
 config EXPERIMENTAL
        bool "Enable Experimental options"
@@ -101,325 +239,465 @@ config EXPERIMENTAL
          The purpose of this option is to allow features under development to be committed to the mainline
          to more easily track changes and provide access to multiple developers
 
-config VNET
-       depends on EXPERIMENTAL
-       bool "Enable Vnet in Palacios"
+config CHECKPOINT
+       bool "Enable Checkpointing"
        default n
-       help
-         Enable the Vnet in Palacios
+       help 
+         Enable checkpointing functionality (save/load VMs)
 
-config BUILT_IN_STDLIB
-       bool "Enable Built in versions of stdlib functions"
+config LIVE_MIGRATION
+       bool "Enable Live Migration"
+       depends on CHECKPOINT
        default n
-       help 
-         Not all host OSes provide link targets for stdlib functions
-         Palacios provides internal implementations of these functions, that you can select from this list
+       help
+          Enable live migration functionality (send/receive VMs)
 
-config BUILT_IN_MEMSET
-       bool "memset()"
+config DEBUG_CHECKPOINT
+       bool "Enable Checkpointing and Live Migration Debugging Output"
+       depends on CHECKPOINT
        default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of memset
+       help
+         Generate output from the debugging statements in checkpointing and live migration
 
 
-config BUILT_IN_MEMCPY
-       bool "memcpy()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of memcpy
+endmenu
 
-config BUILT_IN_MEMCMP
-       bool "memcmp()"
-       default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of memcmp
+menu "Debug Configuration"
+
+## Is unwind information useful
+
+config DEBUG_ON
+       bool "Enable Debugging"
+       default y
+       help
+         This turns on debugging support
 
-config BUILT_IN_STRLEN
-       bool "strlen()"
+
+config DEBUG_SVM
+       bool "AMD SVM"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strlen
+         This turns on debugging for the AMD SVM-specific code
 
-config BUILT_IN_STRNLEN
-       bool "strnlen()"
+config DEBUG_VMX
+       bool "Intel VT"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strnlen
+         This turns on debugging for the Intel VT-specific code
 
 
-config BUILT_IN_STRCMP
-       bool "strcmp()"
+config DEBUG_SHADOW_PAGING
+       bool "Shadow paging"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strcmp
+         This turns on debugging for the shadow paging system
+
 
-config BUILT_IN_STRNCMP
-       bool "strncmp()"
+config DEBUG_NESTED_PAGING
+       bool "Nested paging"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strncmp
+         This turns on debugging for the nested paging system
+
 
-config BUILT_IN_STRCAT
-       bool "strcat()"
+config DEBUG_CTRL_REGS
+       bool "Control registers"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strcat
+         This turns on debugging for the control register handlers
 
-config BUILT_IN_STRNCAT
-       bool "strncat()"
+
+config DEBUG_INTERRUPTS
+       bool "Interrupts"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strncat
+         This turns on debugging for the interrupt system
 
-config BUILT_IN_STRCPY
-       bool "strcpy()"
+config DEBUG_TIME
+       bool "Timing"
        default n
-       depends on BUILT_IN_STDLIB
-       help 
-         This enables Palacios' internal implementation of strcpy
+       depends on DEBUG_ON
+       help
+         This turns on debugging of system time virtualization
+
+config DEBUG_SCHEDULER
+    bool "Scheduler"
+    default n
+    depends on DEBUG_ON
+    help
+      This turns on debugging for scheduler
+
+config DEBUG_CPU_MAPPER
+    bool "CPU Mapper"
+    default n
+    depends on DEBUG_ON
+    help
+      This turns on debugging for CPU Mapper
 
-config BUILT_IN_STRNCPY
-       bool "strncpy()"
+config DEBUG_IO
+       bool "IO"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strncpy
+         This turns on debugging for the IO handlers
+
 
-config BUILT_IN_STRDUP
-       bool "strdup()"
+config DEBUG_EMULATOR
+       bool "Instruction Emulator"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strdup
+         This turns on debugging for the Instruction Emulator
 
 
-config BUILT_IN_ATOI
-       bool "atoi()"
+config DEBUG_DECODER
+       bool "Instruction Decoder"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of atoi
+         This turns on debugging for the selected instruction decoder
 
-config BUILT_IN_STRCHR
-       bool "strchr()"
+config DEBUG_HALT
+       bool "Halt"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strchr
+         This turns on debugging for the halt instruction handler
 
-config BUILT_IN_STRRCHR
-       bool "strrchr()"
+config DEBUG_MWAIT
+       bool "MWAIT/MONITOR"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strrchr
+         This turns on debugging for the mwait and monitor instruction handlers
 
-config BUILT_IN_STRPBRK
-       bool "strpbrk()"
+config DEBUG_DEV_MGR
+       bool "Device Manager"
        default n
-       depends on BUILT_IN_STDLIB
+       depends on DEBUG_ON
        help 
-         This enables Palacios' internal implementation of strpbrk
+         This turns on debugging for the device manager
 
+config DEBUG_MEM_ERRORS
+    bool "Verbose memory errors"
+    default n
+    depends on DEBUG_ON
+    help
+      This turns on debugging for memory translations and lookups
 
-config BUILT_IN_STDIO
-       bool "Enable Built in versions of stdio functions"
-       default n
-       help 
-         Not all host OSes provide link targets for stdio functions
-         Palacios provides internal implementations of these functions, that you can select from this list
+config DEBUG_LOCKS
+    bool "Lock debugging (if host supports it)"
+    default n
+    depends on DEBUG_ON
+    help
+      This turns on lock debugging for locks in Palacios and in its host-specifc glue code.  This requires host support.
 
+config DEBUG_MEM_ALLOC
+    bool "Memory allocation debugging (if host supports it)"
+    default n
+    depends on DEBUG_ON
+    help
+      This turns on memory allocation debugging in Palacios, using the mechanisms provided by the host
 
 
-config BUILT_IN_SPRINTF
-       bool "sprintf()"
-       default n
-       depends on BUILT_IN_STDIO
+endmenu
+
+
+
+
+menu "Virtual Paging"
+
+config NESTED_PAGING
+       bool "Enable nested paging"
+        default y 
+        help
+           Enable nested paging (should always be on)
+
+config SHADOW_PAGING
+       bool "Enable shadow paging"
+       default y
        help 
-         This enables Palacios' internal implementation of sprintf
+          Enables shadow paging for virtual machines
 
 
-config BUILT_IN_SNPRINTF
-       bool "snprintf()"
-       default n
-       depends on BUILT_IN_STDIO
+config SHADOW_PAGING_VTLB
+       bool "Virtual TLB"
+       default y
+       depends on SHADOW_PAGING
        help 
-         This enables Palacios' internal implementation of snprintf
+          Enables Virtual TLB implemenation for shadow paging
+           Virtual TLB now uses PAE so there are no 4 GB restrictions
 
 
-config BUILT_IN_VSPRINTF
-       bool "vsprintf()"
+config DEBUG_SHDW_PG_VTLB
+       bool "Enable VTLB debugging"
        default n
-       depends on BUILT_IN_STDIO
-       help 
-         This enables Palacios' internal implementation of vsprintf
+       depends on SHADOW_PAGING_VTLB
+       help
+         Enables debugging messages for VTLB implementation
 
-config BUILT_IN_VSNPRINTF
-       bool "vsnprintf()"
+config SHADOW_PAGING_CACHE
+       bool "Shadow Page Cache"
        default n
-       depends on BUILT_IN_STDIO
+       depends on SHADOW_PAGING && EXPERIMENTAL
        help 
-         This enables Palacios' internal implementation of vsnprintf
+          Enables caching implementation of shadow paging
+
+config DEBUG_SHADOW_PAGING_CACHE
+       bool "Enable Shadow Page Cache Debugging"
+        default n
+        depends on SHADOW_PAGING_CACHE
+        help
+           Enables debugging messages for the VTLB + Caching implementation
+
+#config SHADOW_PAGING_KVM
+#      bool "KVM-style Shadow Pager"
+#      default n
+#      depends on SHADOW_PAGING && EXPERIMENTAL
+#      help 
+#         Enables shadow pager derived from KVM 
+#           You probably do not want this and it will probably not compile!
+#
+#config DEBUG_SHADOW_PAGING_KVM 
+#      bool "Enable KVM-style Shadow Pager Debugging"
+#        default n
+#        depends on SHADOW_PAGING_KVM
+#        help
+#           Enables debugging messages for the KVM-style shadow pager
+
+
+config SWAPPING
+        bool "Enable swapping"
+        default n
+        depends on (SHADOW_PAGING || NESTED_PAGING) && FILE
+        help
+           Enables swapping of regions of guest physical memory to a file 
 
-config BUILT_IN_VSNRPRINTF
-       bool "vsnrprintf()"
+config DEBUG_SWAPPING
+        bool "Enable swapping debugging"
        default n
-       depends on BUILT_IN_STDIO
-       help 
-         This enables Palacios' internal implementation of vsnrprintf
+        depends on SWAPPING
+        help
+           Provides debugging output from the swapping system
+
+config MEM_TRACK
+        bool "Enable memory access tracking"
+       default n
+       depends on SHADOW_PAGING || NESTED_PAGING
+       help
+          Allows tracking of memory accesses on a page granularity
+
+config DEBUG_MEM_TRACK
+        bool "Enable memory access tracking debugging" 
+       default n
+       depends on MEM_TRACK
+       help
+          Provides debugging output for memory access tracking
 
 endmenu
 
 
+source "palacios/src/devices/Kconfig"
 
+menu "Boot Environments"
 
-menu "Symbiotic Functions"
 
-config SYMBIOTIC
-       bool "Enable Symbiotic Functionality"
-       default n
-       help 
-         Enable Symbiotic components of the VMM
+menu "BIOS"
 
+choice 
+       prompt "Boot Code Selection"
+       default SEABIOS
+       help
+           Select which BIOSes to map into the default PC Class Hardware Configuration
 
-config SYMBIOTIC_SWAP
-       bool "Symbiotic Swap"
-       default n
-       depends on SYMBIOTIC && EXPERIMENTAL
-       help 
-         This enables the symbiotic swap architecture
+config SEABIOS
+       bool "Use the SEABIOS and SEABIOS-VGA Boot Code"
+        help
+            Use the SEABIOS and SEABIOS-VGA Boot code
 
-endmenu
 
+config BOCHSBIOS
+       bool "Use the BOCHS BIOS and BOCHS BIOS-compatible VGA Boot Code"
+        help
+            Use the BOCHS BIOS and BOCHS-BIOS-compatible VGA Boot Code
 
 
-menu "Debug configuration"
+config OTHERBIOS
+       bool "Use a user-specified BIOS"
+        help
+            Use a user-specified BIOS
 
-config CONFIG_DEBUG_INFO
-       bool "Compile with Debug information"
-       default n
-       help 
-        This adds the -g flag to the compilation flags
 
+endchoice
 
-## Is unwind information useful
+config SEABIOS_PATH
+       string "Path to pre-built SEABIOS binary"
+        depends on SEABIOS
+       default "./bios/seabios/out/bios.bin"
+       help
+         Path to the SEABIOS binary to use
 
-config DEBUG_ON
-       bool "Enable Debugging"
-       default y
+config SEABIOSVGA_PATH
+       string "Path to pre-built SEABIOS-VGA binary"
+       depends on SEABIOS
+       default "./bios/seabios-vga/VGABIOS-lgpl-latest.bin"
+       help 
+         This is the SEABIOS-compatible vgabios that will be used for the guest
+
+config BOCHSBIOS_PATH
+       string "Path to pre-built BOCHS BIOS binary"
+        depends on BOCHSBIOS
+       default "./bios/rombios/BIOS-bochs-latest"
        help
-         This turns on debugging support
+         This is the rombios that will be used for the guests
 
+config BOCHSBIOSVGA_PATH
+       string "Path to pre-built BOCHS-compatible VGABIOS binary"
+       depends on BOCHSBIOS
+       default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
+       help
+         This is the vgabios that will be used for the guests
 
-config DEBUG_SHADOW_PAGING
-       bool "Shadow paging"
-       default n
-       depends on DEBUG_ON
-       help 
-         This turns on debugging for the shadow paging system
+config OTHERBIOS_PATH
+       string "Path to user-specified Boot Code"
+       depends on OTHERBIOS
+       help
+         This is a completely user-determined blob that will be mapped into the guest
+         No VGA BIOS will be mapped!
 
+config BIOS_START
+       hex "Starting address (linear address) of BIOS"
+       range 0xe0000 0xe0000 if SEABIOS
+       range 0xf0000 0xf0000 if BOCHSBIOS
+       help
+         This is the starting address (linear address) of the BIOS code
 
-config DEBUG_NESTED_PAGING
-       bool "Nested paging"
-       default n
-       depends on DEBUG_ON
-       help 
-         This turns on debugging for the nested paging system
 
 
-config DEBUG_CTRL_REGS
-       bool "Control registers"
-       default n
-       depends on DEBUG_ON
-       help 
-         This turns on debugging for the control register handlers
+config VMXASSIST_PATH
+       string "Path to pre-built VMXASSIST binary"
+       depends on VMX
+       default "./bios/vmxassist/vmxassist.bin"
+       help
+         This is vmxassist image to boot real mode guests on 
+         Intel VMX Platforms
 
+endmenu 
 
-config DEBUG_INTERRUPTS
-       bool "Interrupts"
-       default n
-       depends on DEBUG_ON
+menu Multiboot
+
+config MULTIBOOT
+       bool "Support Multiboot2-compliant boot"
+       default y
        help 
-         This turns on debugging for the interrupt system
+          If set, it is possible to boot a multiboot2 compliant
+          kernel directly.
 
+config DEBUG_MULTIBOOT
+        depends on MULTIBOOT
+        bool "Enable Multiboot2 debugging in Palacios"
+        default n
+        help
+          Enable Multiboot2 debugging output
 
+endmenu
 
-config DEBUG_IO
-       bool "IO"
-       default n
-       depends on DEBUG_ON
-       help 
-         This turns on debugging for the IO handlers
 
+endmenu
 
-config DEBUG_EMULATOR
-       bool "Instruction Emulator"
+menu "Symbiosis"
+
+config SYMBIOTIC
+       bool "Enable Symbiotic Functionality"
        default n
-       depends on DEBUG_ON
+        depends on BOCHSBIOS
        help 
-         This turns on debugging for the Instruction Emulator
+         Enable Symbiotic components of the VMM. 
+         This includes the SymSpy interface.
 
+config SYMCALL
+       bool "Symbiotic upcalls"
+       default n
+       depends on SYMBIOTIC && EXPERIMENTAL
+       help
+         Enables the Symbiotic upcall interface
 
-config DEBUG_XED
-       bool "XED"
+config SWAPBYPASS
+       bool "SwapBypass"
        default n
-       depends on DEBUG_ON
+       depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
        help 
-         This turns on debugging for the Xed Decoder
+         This enables the SwapBypass architecture
 
-config DEBUG_HALT
-       bool "Halt"
+config SWAPBYPASS_TELEMETRY
+       bool "Enable SwapBypass Telemetry"
        default n
-       depends on DEBUG_ON
+       depends on TELEMETRY && SWAPBYPASS
        help 
-         This turns on debugging for the halt instruction handler
+         Enable the telemetry information for the SwapBypass subsystem
 
-config DEBUG_DEV_MGR
-       bool "Device Manager"
+menuconfig SYMMOD 
+       bool "Symbiotic Modules"
        default n
-       depends on DEBUG_ON
-       help 
-         This turns on debugging for the device manager
+       depends on EXPERIMENTAL && SYMBIOTIC
+       help
+         Enable Symbiotic module loading
 
 
+endmenu
+
+menu "VNET"
+
+config VNET
+        bool "Enable Vnet in Palacios"
+        default n
+        help
+          Enable the Vnet in Palacios
+
+config DEBUG_VNET
+        depends on VNET
+        bool "Enable Vnet Debug in Palacios"
+        default n
+        help
+          Enable the Vnet debug in Palacios
 
 
 endmenu
 
+source "palacios/src/gears/Kconfig"
 
-menu "BIOS Selection"
 
-config ROMBIOS_PATH
-       string "Path to pre-built ROMBIOS binary"
-       default "./bios/rombios/BIOS-bochs-latest"
-       help
-         This is the rombios that will be used for the guests
+menu HVM
 
-config VGABIOS_PATH
-       string "Path to pre-built VGABIOS binary"
-       default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
-       help
-         This is the vgabios that will be used for the guests
+config HVM
+       bool "Support Hybrid Virtual Machines"
+       depends on MULTIBOOT
+       default n
+       help 
+          If set, it is possible to make VMs that are partitioned
+          (cores, memory, devices, hardware access, etc) into 
+          a part ("the ROS") that supports normal VM operation and
+          a part ("the HRT") that supports Hybrid Run-Times,
+          for example Nautilus-based HRTs for parallel languages.
 
-config VMXASSIST_PATH
-       string "Path to pre-built VMXASSIST binary"
-       depends on VMX
-       default "./bios/vmxassist/vmxassist.bin"
-       help
-         This is vmxassist image to boot real mode guests on 
-         Intel VMX Platforms
+config DEBUG_HVM
+        depends on HVM
+        bool "Enable HVM debugging in Palacios"
+        default n
+        help
+          Enable HVM debugging output
 
 endmenu
 
 
-source "palacios/src/devices/Kconfig"
+
+
+
+