Changeset 873 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Feb 13, 2007 2:09:53 PM (18 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGM.cpp
r838 r873 629 629 pVM->pgm.s.apInterPaePDs[3] = (PX86PDPAE)MMR3PageAlloc(pVM); 630 630 pVM->pgm.s.pInterPaePDPTR = (PX86PDPTR)MMR3PageAllocLow(pVM); 631 #if 1632 631 pVM->pgm.s.pInterPaePDPTR64 = (PX86PDPTR)MMR3PageAllocLow(pVM); 633 #endif634 632 pVM->pgm.s.pInterPaePML4 = (PX86PML4)MMR3PageAllocLow(pVM); 635 633 if ( !pVM->pgm.s.pInterPD … … 643 641 || !pVM->pgm.s.apInterPaePDs[3] 644 642 || !pVM->pgm.s.pInterPaePDPTR 645 #if 1646 643 || !pVM->pgm.s.pInterPaePDPTR64 647 #endif648 644 || !pVM->pgm.s.pInterPaePML4) 649 645 { … … 659 655 AssertRelease(pVM->pgm.s.HCPhysInterPaePML4 != NIL_RTHCPHYS && !(pVM->pgm.s.HCPhysInterPaePML4 & PAGE_OFFSET_MASK)); 660 656 661 #if 1 /* let's see if this is the cause of the problems... */662 657 /* 663 658 * Initialize the pages, setting up the PML4 and PDPTR for repetitive 4GB action. … … 689 684 pVM->pgm.s.pInterPaePML4->a[i].u = X86_PML4E_P | X86_PML4E_RW | X86_PML4E_US | X86_PML4E_A | PGM_PLXFLAGS_PERMANENT 690 685 | HCPhysInterPaePDPTR64; 691 #else692 /*693 * Initialize the pages, setting up the PML4 and PDPTR for action below 4GB.694 */695 ASMMemZero32(pVM->pgm.s.pInterPD, PAGE_SIZE);696 ASMMemZero32(pVM->pgm.s.apInterPTs[0], PAGE_SIZE);697 ASMMemZero32(pVM->pgm.s.apInterPTs[1], PAGE_SIZE);698 699 ASMMemZero32(pVM->pgm.s.apInterPaePTs[0], PAGE_SIZE);700 ASMMemZero32(pVM->pgm.s.apInterPaePTs[1], PAGE_SIZE);701 702 ASMMemZero32(pVM->pgm.s.pInterPaePDPTR, PAGE_SIZE);703 for (unsigned i = 0; i < ELEMENTS(pVM->pgm.s.apInterPaePDs); i++)704 {705 ASMMemZero32(pVM->pgm.s.apInterPaePDs[i], PAGE_SIZE);706 pVM->pgm.s.pInterPaePDPTR->a[i].u = X86_PDPE_P | PGM_PLXFLAGS_PERMANENT707 | MMPage2Phys(pVM, pVM->pgm.s.apInterPaePDs[i]);708 }709 710 ASMMemZero32(pVM->pgm.s.pInterPaePML4, PAGE_SIZE);711 pVM->pgm.s.pInterPaePML4->a[0].u = X86_PML4E_P | X86_PML4E_RW | X86_PML4E_US | X86_PML4E_A712 | pVM->pgm.s.HCPhysInterPaePDPTR;713 #endif714 715 686 716 687 /* … … 808 779 { 809 780 LogFlow(("pgmR3InitPaging: returns successfully\n")); 781 #if HC_ARCH_BITS == 64 782 LogRel(("Debug: HCPhys32BitPD=%VHp aHCPhysPaePDs={%VHp,%VHp,%VHp,%VHp} HCPhysPaePDPTR=%VHp HCPhysPaePML4=%VHp\n", 783 pVM->pgm.s.HCPhys32BitPD, pVM->pgm.s.aHCPhysPaePDs[0], pVM->pgm.s.aHCPhysPaePDs[1], pVM->pgm.s.aHCPhysPaePDs[2], pVM->pgm.s.aHCPhysPaePDs[3], 784 pVM->pgm.s.HCPhysPaePDPTR, pVM->pgm.s.HCPhysPaePML4)); 785 LogRel(("Debug: HCPhysInterPD=%VHp HCPhysInterPaePDPTR=%VHp HCPhysInterPaePML4=%VHp\n", 786 pVM->pgm.s.HCPhysInterPD, pVM->pgm.s.HCPhysInterPaePDPTR, pVM->pgm.s.HCPhysInterPaePML4)); 787 LogRel(("Debug: apInterPTs={%VHp,%VHp} apInterPaePTs={%VHp,%VHp} apInterPaePDs={%VHp,%VHp,%VHp,%VHp} pInterPaePDPTR64=%VHp\n", 788 MMPage2Phys(pVM, pVM->pgm.s.apInterPTs[0]), MMPage2Phys(pVM, pVM->pgm.s.apInterPTs[1]), 789 MMPage2Phys(pVM, pVM->pgm.s.apInterPaePTs[0]), MMPage2Phys(pVM, pVM->pgm.s.apInterPaePTs[1]), 790 MMPage2Phys(pVM, pVM->pgm.s.apInterPaePDs[0]), MMPage2Phys(pVM, pVM->pgm.s.apInterPaePDs[1]), MMPage2Phys(pVM, pVM->pgm.s.apInterPaePDs[2]), MMPage2Phys(pVM, pVM->pgm.s.apInterPaePDs[3]), 791 MMPage2Phys(pVM, pVM->pgm.s.pInterPaePDPTR64))); 792 #endif 793 810 794 return VINF_SUCCESS; 811 795 } … … 1531 1515 { 1532 1516 AssertMsg((GCPtr >> PGDIR_SHIFT << PGDIR_SHIFT) == GCPtr, ("GCPtr=%VGv\n", GCPtr)); 1517 #if HC_ARCH_BITS == 64 1518 LogRel(("Mapping: %VGv -> %VGv %s\n", pMapping->GCPtr, GCPtr, pMapping->pszDesc)); 1519 #endif 1533 1520 pgmR3MapRelocate(pVM, pMapping, pMapping->GCPtr >> PGDIR_SHIFT, GCPtr >> PGDIR_SHIFT); 1534 1521 } -
trunk/src/VBox/VMM/VMM.cpp
r847 r873 303 303 { 304 304 MMR3HyperReserve(pVM, PAGE_SIZE, "fence", NULL); 305 LogRel(("CoreCode: R3=%VHv R0=%VHv GC=%VGv Phys=%VHp cb=%#x\n", 306 pVM->vmm.s.pvHCCoreCodeR3, pVM->vmm.s.pvHCCoreCodeR0, pVM->vmm.s.pvGCCoreCode, pVM->vmm.s.HCPhysCoreCode, pVM->vmm.s.cbCoreCode)); 307 305 308 /* 306 309 * Finally, PGM probably have selected a switcher already but we need
Note:
See TracChangeset
for help on using the changeset viewer.