From: Jack Lange Date: Fri, 11 Apr 2008 19:12:50 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: working-cdboot-physical-but-not-qemu~24 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=d0be182a2424036db4bc179bc512ea7e5b0bd62f *** empty log message *** --- diff --git a/palacios/build/payload_layout.txt b/palacios/build/payload_layout.txt index 6a7982f..a4cbaa0 100644 --- a/palacios/build/payload_layout.txt +++ b/palacios/build/payload_layout.txt @@ -1,2 +1 @@ rombios:000f0000 -vgabios:000c0000 \ No newline at end of file diff --git a/palacios/build/rombios b/palacios/build/rombios index 971b982..a5d834c 100644 Binary files a/palacios/build/rombios and b/palacios/build/rombios differ diff --git a/palacios/build/vm_kernel b/palacios/build/vm_kernel index 1fbaf92..1ca259c 100755 Binary files a/palacios/build/vm_kernel and b/palacios/build/vm_kernel differ diff --git a/palacios/include/palacios/vmcb.h b/palacios/include/palacios/vmcb.h index a61cf89..5739eba 100644 --- a/palacios/include/palacios/vmcb.h +++ b/palacios/include/palacios/vmcb.h @@ -217,10 +217,13 @@ typedef struct VMCB_Control_Area { * But it does say that the EXITINTINFO field is in bits 63-1 * ALL other occurances mention a 1 bit reserved field */ - uint_t rsvd5 : 1 PACKED; - ullong_t exit_int_info : 63 PACKED; + // uint_t rsvd5 : 1 PACKED; + //ullong_t exit_int_info : 63 PACKED; /* ** */ + // AMD Manual 2, pg 391, sect: 15.19 + struct Interrupt_Info exit_int_info PACKED; + // uint_t NP_ENABLE : 1 PACKED; //ullong_t rsvd6 : 63 PACKED; // Should be 0 ullong_t NP_ENABLE PACKED; diff --git a/palacios/src/geekos/vm.c b/palacios/src/geekos/vm.c index b8e497b..abce2ac 100644 --- a/palacios/src/geekos/vm.c +++ b/palacios/src/geekos/vm.c @@ -261,9 +261,10 @@ int RunVMM(struct Boot_Info * bootInfo) { region_start += reg->length; } + add_shadow_region_passthrough(&vm_info, 0xc0000, 0xc8000, 0xc0000); add_shadow_region_passthrough(&vm_info, 0x0, 0xa0000, (addr_t)Allocate_VMM_Pages(160)); add_shadow_region_passthrough(&vm_info, 0xa0000, 0xc0000, 0xa0000); - if (add_shadow_region_passthrough(&vm_info, 0xc7000, 0xf0000, (addr_t)Allocate_VMM_Pages(41)) == -1) { + if (add_shadow_region_passthrough(&vm_info, 0xc8000, 0xf0000, (addr_t)Allocate_VMM_Pages(40)) == -1) { PrintDebug("Error adding shadow region\n"); } @@ -289,7 +290,7 @@ int RunVMM(struct Boot_Info * bootInfo) { PrintBoth("Initializing Guest (eip=0x%.8x) (esp=0x%.8x)\n", (uint_t)vm_info.rip,(uint_t)vm_info.vm_regs.rsp); (vmm_ops).init_guest(&vm_info); PrintBoth("Starting Guest\n"); - Clear_Screen(); + //Clear_Screen(); (vmm_ops).start_guest(&vm_info); return 0; diff --git a/palacios/src/palacios/vmcb.c b/palacios/src/palacios/vmcb.c index 4c31432..f317088 100644 --- a/palacios/src/palacios/vmcb.c +++ b/palacios/src/palacios/vmcb.c @@ -118,8 +118,12 @@ void PrintDebugVMCB(vmcb_t * vmcb) { tmp_reg.r_reg = ctrl_area->exit_info2; PrintDebug("exit_info2: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); - tmp_reg.r_reg = ctrl_area->exit_int_info; - PrintDebug("exit_int_info: hi: 0x%.8x, lo: 0x%.8x\n", tmp_reg.e_reg.high, tmp_reg.e_reg.low); + + PrintDebug("Exit Int Info: (at 0x%.8x)\n", &(ctrl_area->exit_int_info)); + PrintDebug("Vector: %d\n", ctrl_area->exit_int_info.vector); + PrintDebug("(type=%d) (ev=%d) (valid=%d)\n", ctrl_area->exit_int_info.type, + ctrl_area->exit_int_info.ev, ctrl_area->exit_int_info.valid); + PrintDebug("Error Code: %d\n", ctrl_area->exit_int_info.error_code); tmp_reg.r_reg = ctrl_area->NP_ENABLE; diff --git a/palacios/src/vmboot/rombios/rombios.c b/palacios/src/vmboot/rombios/rombios.c index b8322d0..05796c8 100644 --- a/palacios/src/vmboot/rombios/rombios.c +++ b/palacios/src/vmboot/rombios/rombios.c @@ -1,5 +1,6 @@ +// -*- fundamental -*- ///////////////////////////////////////////////////////////////////////// -// $Id: rombios.c,v 1.1 2007/11/29 20:26:38 pdinda Exp $ +// $Id: rombios.c,v 1.2 2008/04/11 19:12:59 jarusl Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -944,10 +945,10 @@ Bit16u cdrom_boot(); #endif // BX_ELTORITO_BOOT -static char bios_cvs_version_string[] = "$Revision: 1.1 $"; -static char bios_date_string[] = "$Date: 2007/11/29 20:26:38 $"; +static char bios_cvs_version_string[] = "$Revision: 1.2 $"; +static char bios_date_string[] = "$Date: 2008/04/11 19:12:59 $"; -static char CVSID[] = "$Id: rombios.c,v 1.1 2007/11/29 20:26:38 pdinda Exp $"; +static char CVSID[] = "$Id: rombios.c,v 1.2 2008/04/11 19:12:59 jarusl Exp $"; /* Offset to skip the CVS $Id: prefix */ #define bios_version_string (CVSID + 4) @@ -9753,6 +9754,8 @@ post_default_ints: ;; Video setup SET_INT_VECTOR(0x10, #0xF000, #int10_handler) + + ;; PIC mov al, #0x11 ; send initialisation commands out 0x20, al @@ -9784,6 +9787,19 @@ post_default_ints: call rom_scan + + ;; JRL CHANGE + ;;push ax + ;;push bx + ;;mov ah, #0x0e + ;;mov al, #0x41 + ;;xor bx,bx + ;;int #0x10 + ;;pop bx + ;;pop ax + + + call _print_bios_banner ;;