X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_config.c;h=7a20d99ff2102ff7fd0d5dfbcee276d21edf9896;hb=ed814ce69c64a1f24670f21950f3da646f7921df;hp=2a93ce17a94684234b6e5f164de92e6687d25384;hpb=2bfd0e9c8aa5d520e4207fd6cf50a5f50993e3ca;p=palacios.releases.git diff --git a/palacios/src/palacios/vmm_config.c b/palacios/src/palacios/vmm_config.c index 2a93ce1..7a20d99 100644 --- a/palacios/src/palacios/vmm_config.c +++ b/palacios/src/palacios/vmm_config.c @@ -25,6 +25,7 @@ #include #include + #include #include #include @@ -34,6 +35,8 @@ #include #include #include +#include +#include @@ -56,7 +59,7 @@ static struct vm_device * configure_generic(struct guest_info * info, struct v3 static int passthrough_mem_write(addr_t guest_addr, void * src, uint_t length, void * priv_data) { - return length; + // memcpy((void*)guest_addr, src, length); PrintDebug("Write of %d bytes to %p\n", length, (void *)guest_addr); PrintDebug("Write Value = %p\n", (void *)*(addr_t *)src); @@ -78,7 +81,7 @@ int v3_config_guest(struct guest_info * info, struct v3_vm_config * config_ptr) v3_init_host_events(info); v3_init_decoder(info); - + v3_init_shadow_map(info); if (v3_cpu_type == V3_SVM_REV3_CPU) { @@ -163,7 +166,7 @@ static int setup_memory_map(struct guest_info * info, struct v3_vm_config * conf // v3_add_shadow_mem(info, 0x0, 0x9ffff, (addr_t)V3_AllocPages(160)); - if (1) { + if (0) { v3_add_shadow_mem(info, 0xa0000, 0xbffff, 0xa0000); } else { v3_hook_write_mem(info, 0xa0000, 0xbffff, 0xa0000, passthrough_mem_write, NULL); @@ -195,7 +198,7 @@ static int setup_memory_map(struct guest_info * info, struct v3_vm_config * conf v3_add_shadow_mem(info, 0x1000000, 0x8000000, (addr_t)V3_AllocPages(32768)); // test - give linux accesss to PCI space - PAD - v3_add_shadow_mem(info, 0xc0000000,0xffffffff,0xc0000000); + //v3_add_shadow_mem(info, 0xc0000000,0xffffffff,0xc0000000); print_shadow_map(info); @@ -214,6 +217,8 @@ static int setup_devices(struct guest_info * info, struct v3_vm_config * config_ struct vm_device * keyboard = v3_create_keyboard(); struct vm_device * pit = v3_create_pit(); struct vm_device * bochs_debug = v3_create_bochs_debug(); + struct vm_device * os_debug = v3_create_os_debug(); + struct vm_device * apic = v3_create_apic(); //struct vm_device * serial = v3_create_serial(); struct vm_device * generic = NULL; @@ -241,6 +246,9 @@ static int setup_devices(struct guest_info * info, struct v3_vm_config * config_ v3_attach_device(info, keyboard); // v3_attach_device(info, serial); v3_attach_device(info, bochs_debug); + v3_attach_device(info, os_debug); + + v3_attach_device(info, apic); if (use_ramdisk) { v3_attach_device(info, ramdisk);