VirtualBox

Changeset 36315 in vbox


Ignore:
Timestamp:
Mar 18, 2011 3:49:23 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
70637
Message:

VMM: more correct MSR_IA32_MISC_ENABLE emulation

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/x86.h

    r35513 r36315  
    888888
    889889/** Enable misc. processor features (R/W). */
    890 #define MSR_IA32_MISC_ENABLE                0x1A0
     890#define MSR_IA32_MISC_ENABLE                   0x1A0
     891/* Enable fast-strings feature (for REP MOVS and REP STORS). */
     892#define MSR_IA32_MISC_ENABLE_FAST_STRINGS      RT_BIT(0)
     893/* Automatic Thermal Control Circuit Enable (R/W). */
     894#define MSR_IA32_MISC_ENABLE_TCC               RT_BIT(3)
     895/* Performance Monitoring Available (R). */
     896#define MSR_IA32_MISC_ENABLE_PERF_MON          RT_BIT(7)
     897/* Branch Trace Storage Unavailable (R/O). */
     898#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL       RT_BIT(11)
     899/* Precise Event Based Sampling (PEBS) Unavailable (R/O). */
     900#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL      RT_BIT(12)
     901/* Enhanced Intel SpeedStep Technology Enable (R/W). */
     902#define MSR_IA32_MISC_ENABLE_SST_ENABLE        RT_BIT(16)
     903/* If MONITOR/MWAIT is supported (R/W). */
     904#define MSR_IA32_MISC_ENABLE_MONITOR           RT_BIT(18)
     905/* Limit CPUID Maxval to 3 leafs (R/W). */
     906#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID       RT_BIT(22)
     907/* When set to 1, xTPR messages are disabled (R/W). */
     908#define MSR_IA32_MISC_ENABLE_XTPR_MSG_DISABLE  RT_BIT(23)
     909/* When set to 1, the Execute Disable Bit feature (XD Bit) is disabled (R/W). */
     910#define MSR_IA32_MISC_ENABLE_XD_DISABLE        RT_BIT(34)
    891911
    892912/** MTRR Default Range. */
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r35346 r36315  
    866866            *puValue = pVCpu->cpum.s.GuestMsr.msr.miscEnable;
    867867#else
    868             *puValue = 0;
     868            /* Currenty we don't allow guests to modify enable MSRs. */
     869            *puValue = MSR_IA32_MISC_ENABLE_FAST_STRINGS  /* by default */;
     870
     871            if ((pVCpu->CTX_SUFF(pVM)->cpum.s.aGuestCpuIdStd[1].ecx & X86_CPUID_FEATURE_ECX_MONITOR) != 0)
     872               
     873                *puValue |= MSR_IA32_MISC_ENABLE_MONITOR /* if mwait/monitor available */;
     874            /** @todo: add more cpuid-controlled features this way. */
    869875#endif
    870876            break;
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r36291 r36315  
    26662666        return "MSR_IA32_TSC";
    26672667    case MSR_IA32_MISC_ENABLE:
    2668         return "Unsupported MSR_IA32_MISC_ENABLE";
     2668        return "MSR_IA32_MISC_ENABLE";
    26692669    case MSR_IA32_MTRR_CAP:
    26702670        return "Unsupported MSR_IA32_MTRR_CAP";
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