From: Trammell Hudson Date: Tue, 21 Oct 2008 20:09:58 +0000 (-0500) Subject: Added CONFIG_V3VEE to kernel config file X-Git-Tag: 1.0^2~34^2~1 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios-OLD.git;a=commitdiff_plain;h=160530e310bb5ea55b2a248e23ff38abf7bb5f47 Added CONFIG_V3VEE to kernel config file Added rombios and vgabios to kitten kernel if CONFIG_V3VEE is defined. Link in libv3vee, xed and xed32e if CONFIG_V3VEE is defined. --- diff --git a/kitten/Makefile b/kitten/Makefile index 1ec0bb5..e108ed0 100644 --- a/kitten/Makefile +++ b/kitten/Makefile @@ -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 diff --git a/kitten/arch/x86_64/Kconfig b/kitten/arch/x86_64/Kconfig index deed59c..ba47c68 100644 --- a/kitten/arch/x86_64/Kconfig +++ b/kitten/arch/x86_64/Kconfig @@ -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" diff --git a/kitten/arch/x86_64/kernel/Makefile b/kitten/arch/x86_64/kernel/Makefile index f5cd09b..0956d06 100644 --- a/kitten/arch/x86_64/kernel/Makefile +++ b/kitten/arch/x86_64/kernel/Makefile @@ -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 index 0000000..c753467 --- /dev/null +++ b/kitten/arch/x86_64/kernel/bios.S @@ -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: diff --git a/kitten/init/main.c b/kitten/init/main.c index 49a2c04..790ef1e 100644 --- a/kitten/init/main.c +++ b/kitten/init/main.c @@ -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();