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.


*** empty log message ***
Jack Lange [Fri, 11 Apr 2008 19:12:50 +0000 (19:12 +0000)]
palacios/build/payload_layout.txt
palacios/build/rombios
palacios/build/vm_kernel
palacios/include/palacios/vmcb.h
palacios/src/geekos/vm.c
palacios/src/palacios/vmcb.c
palacios/src/vmboot/rombios/rombios.c

index 6a7982f..a4cbaa0 100644 (file)
@@ -1,2 +1 @@
 rombios:000f0000
-vgabios:000c0000
\ No newline at end of file
index 971b982..a5d834c 100644 (file)
Binary files a/palacios/build/rombios and b/palacios/build/rombios differ
index 1fbaf92..1ca259c 100755 (executable)
Binary files a/palacios/build/vm_kernel and b/palacios/build/vm_kernel differ
index a61cf89..5739eba 100644 (file)
@@ -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;
index b8e497b..abce2ac 100644 (file)
@@ -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;
index 4c31432..f317088 100644 (file)
@@ -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;
index b8322d0..05796c8 100644 (file)
@@ -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 
 
   ;;