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.


Added CONFIG_V3VEE to kernel config file
Trammell Hudson [Tue, 21 Oct 2008 20:09:58 +0000 (15:09 -0500)]
Added rombios and vgabios to kitten kernel if CONFIG_V3VEE is defined.
Link in libv3vee, xed and xed32e if CONFIG_V3VEE is defined.

kitten/Makefile
kitten/arch/x86_64/Kconfig
kitten/arch/x86_64/kernel/Makefile
kitten/arch/x86_64/kernel/bios.S [new file with mode: 0644]
kitten/init/main.c

index 1ec0bb5..e108ed0 100644 (file)
@@ -548,6 +548,10 @@ libs-y1            := $(patsubst %/, %/lib.a, $(libs-y))
 libs-y2                := $(patsubst %/, %/built-in.o, $(libs-y))
 libs-y         := $(libs-y1) $(libs-y2)
 
+libs-$(CONFIG_V3VEE) += ../palacios/build/libv3vee.a
+libs-$(CONFIG_V3VEE) += ../palacios/lib/xed/libxed32e.a
+libs-$(CONFIG_V3VEE) += ../palacios/lib/xed/libxed.a
+
 # Build vmlwk
 # ---------------------------------------------------------------------------
 # vmlwk is build from the objects selected by $(vmlwk-init) and
index deed59c..ba47c68 100644 (file)
@@ -48,6 +48,11 @@ config GENERIC_CPU
 
 endchoice
 
+config V3VEE
+       bool "V3Vee abstraction layer"
+       default "n"
+       help
+         V3Vee guest OS instead of ELF image
 
 #
 # Define implied options from the CPU selection
@@ -87,23 +92,26 @@ config NR_CPUS
 # Physical address where the kernel is loaded
 #
 config PHYSICAL_START
-       hex
+       hex "Physical address for kernel load"
        default "0x200000"
 
-endmenu
 
 
 config VGA_CONSOLE
-       bool
+       bool "VGA console"
        default "y" if PC
 
 config SERIAL_CONSOLE
-       bool
+       bool "Serial console support"
        default "y" if PC
 
 config RCAL0_CONSOLE
-       bool
+       bool "Cray XT3 L0 console support"
        default "y" if CRAY_XT
        default "n"
 
+
+
+endmenu
+
 source "arch/x86_64/Kconfig.debug"
index f5cd09b..0956d06 100644 (file)
@@ -7,3 +7,6 @@ obj-y           := percpu.o setup.o e820.o cpuinfo.o resource.o \
                   task.o sched.o
 
 obj-$(CONFIG_CRAY_XT) += rca/
+obj-$(CONFIG_V3VEE) += bios.o
+
+
diff --git a/kitten/arch/x86_64/kernel/bios.S b/kitten/arch/x86_64/kernel/bios.S
new file mode 100644 (file)
index 0000000..c753467
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+ *  ROM Bios images for V3Vee emulator
+ */
+
+.data
+.globl rombios_start
+rombios_start:
+.incbin "../palacios/build/rombios"
+.globl rombios_end
+rombios_end:
+
+.globl vgabios_start
+vgabios_start:
+.incbin "../palacios/build/vgabios"
+.globl vgabios_end
+vgabios_end:
index 49a2c04..790ef1e 100644 (file)
@@ -116,12 +116,19 @@ start_kernel()
                        panic("Failed to boot CPU %d.\n", cpu);
        }
 
+#ifdef CONFIG_V3VEE
+       /*
+        * Start up the V3Vee subsystem
+        */
+       Init_V3( 0, 0 );
+#else
        /*
         * Start up user-space...
         */
        printk(KERN_INFO "Loading initial user-level task (init_task)...\n");
        if ((status = create_init_task()) != 0)
                panic("Failed to create init_task (status=%d).", status);
+#endif
 
        schedule();  /* This should not return */
        BUG();