VirtualBox

Changeset 14771 in vbox for trunk/src/VBox/VMM/VMMSwitcher


Ignore:
Timestamp:
Nov 28, 2008 11:07:18 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
40088
Message:

Fixed 64 bits switcher loading

Location:
trunk/src/VBox/VMM/VMMSwitcher
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac

    r14767 r14771  
    171171    ;; Jump to identity mapped location
    172172    ;;
    173     FIXUP FIX_GC_2_ID_NEAR_REL, 1, NAME(IDEnterTarget) - NAME(Start)
     173    FIXUP FIX_HC_2_ID_NEAR_REL, 1, NAME(IDEnterTarget) - NAME(Start)
    174174    jmp near NAME(IDEnterTarget)
    175175
     
    225225; 64-bit jump target
    226226NAME(pICEnterTarget):
    227 FIXUP FIX_HC_64BIT, 0, NAME(ICEnterTarget) - NAME(Start)
     227FIXUP FIX_HC_64BIT_NOCHECK, 0, NAME(ICEnterTarget) - NAME(Start)
    228228dq 0ffffffffffffffffh
    229229
     
    327327    mov     cr3, rax
    328328    ;; We're now in the intermediate memory context!
     329
     330    ;;
     331    ;; Switch to compatibility mode, placing ourselves in identity mapped code.
     332    ;;
     333    jmp far [NAME(fpIDEnterTarget) wrt rip]
     334
     335; 16:32 Pointer to IDEnterTarget.
     336NAME(fpIDEnterTarget):
     337    FIXUP FIX_ID_32BIT, 0, NAME(IDExitTarget) - NAME(Start)
     338dd  0
     339    FIXUP FIX_HYPER_CS, 0
     340dd  0
    329341       
    330     ;;
    331     ;; Jump to identity mapped location
    332     ;;
    333     FIXUP FIX_GC_2_ID_NEAR_REL, 1, NAME(IDExitTarget) - NAME(Start)
    334     jmp near NAME(IDExitTarget)
    335 
    336342    ; We're now on identity mapped pages!
    337343ALIGNCODE(16)
     
    378384    ;; 5. Jump to guest code mapping of the code and load the Hypervisor CS.
    379385    ;;
    380     FIXUP FIX_ID_2_GC_NEAR_REL, 1, NAME(ICExitTarget) - NAME(Start)
     386    FIXUP FIX_ID_2_HC_NEAR_REL, 1, NAME(ICExitTarget) - NAME(Start)
    381387    jmp near NAME(ICExitTarget)
    382388   
     
    589595        at VMMSWITCHERDEF.cbIDCode0,                    dd NAME(ICEnterTarget)              - NAME(IDEnterTarget)
    590596        at VMMSWITCHERDEF.offIDCode1,                   dd NAME(IDExitTarget)               - NAME(Start)
    591         at VMMSWITCHERDEF.cbIDCode1,                    dd NAME(ICExitTarget)               - NAME(IDExitTarget)
    592         at VMMSWITCHERDEF.offGCCode,                    dd NAME(ICEnterTarget)              - NAME(Start)
    593         at VMMSWITCHERDEF.cbGCCode,                     dd NAME(IDExitTarget)               - NAME(ICEnterTarget)
     597        at VMMSWITCHERDEF.cbIDCode1,                    dd NAME(ICExitTarget)               - NAME(Start)
     598        at VMMSWITCHERDEF.offGCCode,                    dd 0
     599        at VMMSWITCHERDEF.cbGCCode,                     dd 0
    594600
    595601    iend
  • trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h

    r14167 r14771  
    6363#define FIX_ID_FAR32_TO_64BIT_MODE 33
    6464#define FIX_GC_APIC_BASE_32BIT  34
     65#define FIX_HC_64BIT_NOCHECK    35
    6566#define FIX_THE_END             255
    6667/** @} */
  • trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.mac

    r14167 r14771  
    107107%define FIX_ID_FAR32_TO_64BIT_MODE 33
    108108%define FIX_GC_APIC_BASE_32BIT  34
     109%define FIX_HC_64BIT_NOCHECK    35
    109110%define FIX_THE_END             255
    110111;/** @} */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette