bhyve: implement rdmsr for MSR_IA32_FEATURE_CONTROL
Without the -w option, Windows guests crash on boot. This is caused by a rdmsr of MSR_IA32_FEATURE_CONTROL. Windows checks this MSR to determine enabled VMX features. This MSR isn't emulated in bhyve, so a #GP exception is injected which causes Windows to crash. Fix by returning a rdmsr of MSR_IA32_FEATURE_CONTROL with Lock Bit set and VMX disabled to informWindows that VMX isn't available. Reviewed by: jhb, grehan (bhyve) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29665
This commit is contained in:
parent
14d0cd7225
commit
17d214c2ca
@ -124,6 +124,14 @@ emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t *val)
|
||||
*/
|
||||
*val = 0x000a1003;
|
||||
break;
|
||||
case MSR_IA32_FEATURE_CONTROL:
|
||||
/*
|
||||
* Windows guests check this MSR.
|
||||
* Set the lock bit to avoid writes
|
||||
* to this MSR.
|
||||
*/
|
||||
*val = IA32_FEATURE_CONTROL_LOCK;
|
||||
break;
|
||||
default:
|
||||
error = -1;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user