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.


Merge branch 'kitten' of ssh://sharedev@newskysaw.cs.northwestern.edu/home/sharedev...
Kevin Pedretti [Tue, 21 Oct 2008 20:20:06 +0000 (15:20 -0500)]
build/Makefile
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
palacios/build/Makefile

index 1cfd87d..e9f4435 100644 (file)
@@ -195,11 +195,13 @@ palacios:
 palacios-full:
        (cd $(PALACIOS_BUILD_DIR) && make $(DEBUG_SECTIONS) world)
 
+palacios-full64:
+       (cd $(PALACIOS_BUILD_DIR) && make ARCH=64 $(DEBUG_SECTIONS) world)`     
 
 palacios-lean:
        (cd $(PALACIOS_BUILD_DIR) && make LEAN_AND_MEAN=1 world)
 
-kitten: palacios-full
+kitten: palacios-full64
        cp $(PALACIOS_BUILD_DIR)/libv3vee.a $(KITTEN_TOP_DIR)/palacios/
        cp $(PALACIOS_BUILD_DIR)/../lib/xed/libxed32e.a $(KITTEN_TOP_DIR)/palacios/
        cp $(PALACIOS_BUILD_DIR)/vm_kernel $(KITTEN_TOP_DIR)/palacios/
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 953c456..49a2c04 100644 (file)
@@ -116,24 +116,6 @@ start_kernel()
                        panic("Failed to boot CPU %d.\n", cpu);
        }
 
-        {
-  struct v3_os_hooks os_hooks;
-  struct v3_ctrl_ops v3_ops;
-  struct guest_info * vm_info = 0;
-  struct v3_vm_config vm_config;
-
-  memset(&os_hooks, 0, sizeof(struct v3_os_hooks));
-  memset(&v3_ops, 0, sizeof(struct v3_ctrl_ops));
-  memset(&vm_config, 0, sizeof(struct v3_vm_config));
-
-
-
-
-  Init_V3(&os_hooks, &v3_ops);
-
-        }
-
        /*
         * Start up user-space...
         */
index ad4787f..7598685 100644 (file)
@@ -208,7 +208,11 @@ DECODER_LIBS=
 ifeq ($(DECODER),XED)
 DECODER_SRCS := vmm_xed.c
 DECODER_FLAGS :=  -L../lib/xed
+ifeq ($(ARCH),64)
+DECODER_LIBS := $(PROJECT_ROOT)/lib/xed/libxed32e.a
+else 
 DECODER_LIBS := $(PROJECT_ROOT)/lib/xed/libxed.a
+endif
 else
 # This is an error
 endif
@@ -306,16 +310,23 @@ V3LIBS := $(DECODER_LIBS)
 #   This section defines programs that are used to build GeekOS.
 # ----------------------------------------------------------------------
 
-
+ifeq ($(ARCH),64)
+V3_ARCH := __V3_64BIT__
+else 
 V3_ARCH := __V3_32BIT__
-#V3_ARCH := __V3_64BIT__
+endif
+
 
 # Uncomment if cross compiling
 #TARGET_CC_PREFIX :=  $(PROJECT_ROOT)/../devtools/i386/bin/i386-elf-
 #TARGET_CC_PREFIX :=  i386-elf-
 
 # Target C compiler.  gcc 2.95.2 or later should work.
+ifeq ($(ARCH),64)
+TARGET_CC := $(TARGET_CC_PREFIX)gcc
+else 
 TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32
+endif
 #TARGET_CC := $(TARGET_CC_PREFIX)gcc34 -m32
 
 
@@ -341,7 +352,12 @@ NASM := $(PROJECT_ROOT)/../devtools/bin/nasm
 CPP := cpp
 
 
+ifeq ($(ARCH),64)
+AS = as
+else 
 AS = as --32
+endif
+
 
 # Tool to build PFAT filesystem images.
 BUILDFAT := tools/builtFat.exe