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/
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
endchoice
+config V3VEE
+ bool "V3Vee abstraction layer"
+ default "n"
+ help
+ V3Vee guest OS instead of ELF image
#
# Define implied options from the CPU selection
# 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"
task.o sched.o
obj-$(CONFIG_CRAY_XT) += rca/
+obj-$(CONFIG_V3VEE) += bios.o
+
+
--- /dev/null
+/*
+ * 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:
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...
*/
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
# 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
CPP := cpp
+ifeq ($(ARCH),64)
+AS = as
+else
AS = as --32
+endif
+
# Tool to build PFAT filesystem images.
BUILDFAT := tools/builtFat.exe