target/i386: add new Intel models for MBEC enablement
Add models to expose Mode Based Execute Control (MBEC) support, which is a Skylake++ feature. Note: Future models can use VMX_SECONDARY_EXEC_MODE_BASED_EPT_EXEC to easily add default support. New models are: - Skylake-Server-v6 - Cascadelake-Server-v7 - Icelake-Server-v9 - SapphireRapids-v8 - GraniteRapids-v7 - DiamondRapids-v2 - SierraForest-v6 - ClearwaterForest-v4 Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Zhao Liu <zhao1.liu@intel.com> Signed-off-by: Jon Kohler <jon@nutanix.com> Link: https://lore.kernel.org/r/20260330193428.1663253-4-jon@nutanix.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Jon Kohler committed
Mar 30, 2026 at 12:34 UTC
4b78610e64634882dea1dd55987fef8bc4870252
1 file changed
+67
target/i386/cpu.c
+67
@@ -4767,6 +4767,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
4767
{ /* end of list */ }
4768
}
4769
},
4770
+ {
4771
+ .version = 6,
4772
+ .note = "with MBEC enabled",
4773
+ .props = (PropValue[]) {
4774
+ { "vmx-mbec", "on" },
4775
+ { /* end of list */ }
4776
+ }
4777
+ },
4778
{ /* end of list */ }
4779
}
4780
},
@@ -4912,6 +4920,13 @@ static const X86CPUDefinition builtin_x86_defs[] = {
4920
{ /* end of list */ }
4921
},
4922
},
4923
+ { .version = 7,
4924
+ .note = "with MBEC enabled",
4925
+ .props = (PropValue[]) {
4926
+ { "vmx-mbec", "on" },
4927
+ { /* end of list */ }
4928
+ },
4929
+ },
4930
{ /* end of list */ }
4931
}
4932
},
@@ -5206,6 +5221,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5221
{ /* end of list */ }
5222
},
5223
},
5224
+ {
5225
+ .version = 9,
5226
+ .note = "with MBEC enabled",
5227
+ .props = (PropValue[]) {
5228
+ { "vmx-mbec", "on" },
5229
+ { /* end of list */ }
5230
+ }
5231
+ },
5232
{ /* end of list */ }
5233
}
5234
},
@@ -5392,6 +5415,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5415
{ /* end of list */ },
5416
}
5417
},
5418
+ {
5419
+ .version = 8,
5420
+ .note = "with MBEC enabled",
5421
+ .props = (PropValue[]) {
5422
+ { "vmx-mbec", "on" },
5423
+ { /* end of list */ },
5424
+ }
5425
+ },
5426
{ /* end of list */ }
5427
}
5428
},
@@ -5582,6 +5613,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5613
{ /* end of list */ },
5614
}
5615
},
5616
+ {
5617
+ .version = 7,
5618
+ .note = "with MBEC enabled",
5619
+ .props = (PropValue[]) {
5620
+ { "vmx-mbec", "on" },
5621
+ { /* end of list */ },
5622
+ }
5623
+ },
5624
{ /* end of list */ },
5625
},
5626
},
@@ -5776,6 +5815,18 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5815
.features[FEAT_VMX_VMFUNC] = MSR_VMX_VMFUNC_EPT_SWITCHING,
5816
.xlevel = 0x80000008,
5817
.model_id = "Intel Xeon Processor (DiamondRapids)",
5818
+ .versions = (X86CPUVersionDefinition[]) {
5819
+ { .version = 1 },
5820
+ {
5821
+ .version = 2,
5822
+ .note = "with MBEC enabled",
5823
+ .props = (PropValue[]) {
5824
+ { "vmx-mbec", "on" },
5825
+ { /* end of list */ },
5826
+ }
5827
+ },
5828
+ { /* end of list */ },
5829
+ },
5830
},
5831
{
5832
.name = "SierraForest",
@@ -5947,6 +5998,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
5998
{ /* end of list */ },
5999
}
6000
},
6001
+ {
6002
+ .version = 6,
6003
+ .note = "with MBEC enabled",
6004
+ .props = (PropValue[]) {
6005
+ { "vmx-mbec", "on" },
6006
+ { /* end of list */ },
6007
+ }
6008
+ },
6009
{ /* end of list */ },
6010
},
6011
},
@@ -6103,6 +6162,14 @@ static const X86CPUDefinition builtin_x86_defs[] = {
6162
{ /* end of list */ },
6163
}
6164
},
6165
+ {
6166
+ .version = 4,
6167
+ .note = "with MBEC enabled",
6168
+ .props = (PropValue[]) {
6169
+ { "vmx-mbec", "on" },
6170
+ { /* end of list */ },
6171
+ }
6172
+ },
6173
{ /* end of list */ },
6174
},
6175
},