From: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/cpu_map/index.xml | 1 +
src/cpu_map/meson.build | 1 +
src/cpu_map/x86_EPYC-Milan-v3.xml | 109 ++++++++++++++++++
.../x86_64-cpuid-EPYC-7713-64-Core-host.xml | 12 +-
.../qemu_10.1.0-q35.x86_64+inteltdx.xml | 17 +++
.../domaincapsdata/qemu_10.1.0-q35.x86_64.xml | 15 +++
.../qemu_10.1.0-tcg.x86_64+inteltdx.xml | 31 +++++
.../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml | 31 +++++
.../qemu_10.1.0.x86_64+inteltdx.xml | 17 +++
tests/domaincapsdata/qemu_10.1.0.x86_64.xml | 15 +++
.../domaincapsdata/qemu_10.2.0-q35.x86_64.xml | 4 +
.../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml | 31 +++++
tests/domaincapsdata/qemu_10.2.0.x86_64.xml | 4 +
13 files changed, 277 insertions(+), 11 deletions(-)
create mode 100644 src/cpu_map/x86_EPYC-Milan-v3.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 00275d0196..e73e5d5ae8 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -169,6 +169,7 @@
<include filename='x86_EPYC-Milan.xml'/>
<include filename='x86_EPYC-Milan-v1.xml'/>
<include filename='x86_EPYC-Milan-v2.xml'/>
+ <include filename='x86_EPYC-Milan-v3.xml'/>
<include filename='x86_EPYC-Genoa.xml'/>
<include filename='x86_EPYC-Genoa-v1.xml'/>
<include filename='x86_EPYC-Genoa-v2.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 12b50aa7f2..34b7bfac36 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -70,6 +70,7 @@ cpumap_data = [
'x86_EPYC-IBPB.xml',
'x86_EPYC-Milan-v1.xml',
'x86_EPYC-Milan-v2.xml',
+ 'x86_EPYC-Milan-v3.xml',
'x86_EPYC-Milan.xml',
'x86_EPYC-Rome-v1.xml',
'x86_EPYC-Rome-v2.xml',
diff --git a/src/cpu_map/x86_EPYC-Milan-v3.xml b/src/cpu_map/x86_EPYC-Milan-v3.xml
new file mode 100644
index 0000000000..53ae589b95
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Milan-v3.xml
@@ -0,0 +1,109 @@
+<cpus>
+ <model name='EPYC-Milan-v3'>
+ <decode host='on' guest='off'/>
+ <signature family='25' model='1'/>
+ <vendor name='AMD'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='abm'/>
+ <feature name='adx'/>
+ <feature name='aes'/>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='apic'/>
+ <feature name='arat'/>
+ <feature name='avx'/>
+ <feature name='avx2'/>
+ <feature name='bmi1'/>
+ <feature name='bmi2'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <feature name='clwb'/>
+ <feature name='clzero'/>
+ <feature name='cmov'/>
+ <feature name='cr8legacy'/>
+ <feature name='cx16'/>
+ <feature name='cx8'/>
+ <feature name='de'/>
+ <feature name='erms'/>
+ <feature name='f16c'/>
+ <feature name='flushbyasid'/>
+ <feature name='fma'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fsrm'/>
+ <feature name='fxsr'/>
+ <feature name='fxsr_opt'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lahf_lm'/>
+ <feature name='lbrv'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='misalignsse'/>
+ <feature name='mmx'/>
+ <feature name='mmxext'/>
+ <feature name='movbe'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='nx'/>
+ <feature name='osvw'/>
+ <feature name='overflow-recov'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pause-filter'/>
+ <feature name='pcid'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='perfctr_core'/>
+ <feature name='pfthreshold'/>
+ <feature name='pge'/>
+ <feature name='pku'/>
+ <feature name='pni'/>
+ <feature name='popcnt'/>
+ <feature name='pse'/>
+ <feature name='pse36'/>
+ <feature name='rdpid'/>
+ <feature name='rdrand'/>
+ <feature name='rdseed'/>
+ <feature name='rdtscp'/>
+ <feature name='sep'/>
+ <feature name='sha-ni'/>
+ <feature name='smap'/>
+ <feature name='smep'/>
+ <feature name='sse'/>
+ <feature name='sse2'/>
+ <feature name='sse4.1'/>
+ <feature name='sse4.2'/>
+ <feature name='sse4a'/>
+ <feature name='ssse3'/>
+ <feature name='stibp-always-on'/>
+ <feature name='succor'/>
+ <feature name='svm'/>
+ <feature name='svme-addr-chk'/>
+ <feature name='syscall'/>
+ <feature name='tsc'/>
+ <feature name='tsc-scale'/>
+ <feature name='umip'/>
+ <feature name='v-vmsave-vmload'/>
+ <feature name='vaes'/>
+ <feature name='vgif'/>
+ <feature name='vmcb-clean'/>
+ <feature name='vme'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='wbnoinvd'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveerptr'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml
index 5a8e9aaf07..8701cd41ba 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml
@@ -1,6 +1,6 @@
<cpu>
<arch>x86_64</arch>
- <model>EPYC-Milan-v2</model>
+ <model>EPYC-Milan-v3</model>
<vendor>AMD</vendor>
<signature family='25' model='1' stepping='1'/>
<feature name='monitor'/>
@@ -19,19 +19,9 @@
<feature name='tce'/>
<feature name='topoext'/>
<feature name='perfctr_nb'/>
- <feature name='overflow-recov'/>
- <feature name='succor'/>
<feature name='invtsc'/>
- <feature name='lbrv'/>
<feature name='svm-lock'/>
- <feature name='tsc-scale'/>
- <feature name='vmcb-clean'/>
- <feature name='flushbyasid'/>
<feature name='decodeassists'/>
- <feature name='pause-filter'/>
- <feature name='pfthreshold'/>
- <feature name='v-vmsave-vmload'/>
- <feature name='vgif'/>
<feature name='rdctl-no'/>
<feature name='skip-l1dfl-vmentry'/>
<feature name='mds-no'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml
index 578d2fe90a..ffee527ff4 100644
--- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml
+++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml
@@ -298,6 +298,23 @@
<feature name='stibp-always-on'/>
<feature name='xsaveerptr'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='clzero'/>
+ <feature name='cr8legacy'/>
+ <feature name='fxsr_opt'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='mmxext'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='perfctr_core'/>
+ <feature name='sse4a'/>
+ <feature name='stibp-always-on'/>
+ <feature name='xsaveerptr'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='clzero'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml
index b71ea9ba49..b5d745c4ec 100644
--- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml
@@ -561,6 +561,21 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='xsaves'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml
index e5513ea072..2d40cf5228 100644
--- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml
+++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml
@@ -650,6 +650,37 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='clzero'/>
+ <feature name='flushbyasid'/>
+ <feature name='fxsr_opt'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lbrv'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='nrip-save'/>
+ <feature name='osvw'/>
+ <feature name='overflow-recov'/>
+ <feature name='pause-filter'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='pfthreshold'/>
+ <feature name='stibp-always-on'/>
+ <feature name='succor'/>
+ <feature name='topoext'/>
+ <feature name='tsc-scale'/>
+ <feature name='v-vmsave-vmload'/>
+ <feature name='vmcb-clean'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='amd-stibp'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml
index 5ea8c50ccd..6bb394c533 100644
--- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml
@@ -650,6 +650,37 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='clzero'/>
+ <feature name='flushbyasid'/>
+ <feature name='fxsr_opt'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lbrv'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='nrip-save'/>
+ <feature name='osvw'/>
+ <feature name='overflow-recov'/>
+ <feature name='pause-filter'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='pfthreshold'/>
+ <feature name='stibp-always-on'/>
+ <feature name='succor'/>
+ <feature name='topoext'/>
+ <feature name='tsc-scale'/>
+ <feature name='v-vmsave-vmload'/>
+ <feature name='vmcb-clean'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='amd-stibp'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml
index 7efd7b9338..7e1ec7e590 100644
--- a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml
+++ b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml
@@ -297,6 +297,23 @@
<feature name='stibp-always-on'/>
<feature name='xsaveerptr'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='clzero'/>
+ <feature name='cr8legacy'/>
+ <feature name='fxsr_opt'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='mmxext'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='osvw'/>
+ <feature name='perfctr_core'/>
+ <feature name='sse4a'/>
+ <feature name='stibp-always-on'/>
+ <feature name='xsaveerptr'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='clzero'/>
diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml
index 01aeb7318b..af75d3fd36 100644
--- a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml
@@ -560,6 +560,21 @@
<feature name='vpclmulqdq'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='erms'/>
+ <feature name='fsrm'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='pcid'/>
+ <feature name='pku'/>
+ <feature name='stibp-always-on'/>
+ <feature name='vaes'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='xsaves'/>
diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml
index 7c1fd24169..39c65c061b 100644
--- a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml
@@ -292,6 +292,10 @@
<blockers model='EPYC-Milan-v2'>
<feature name='pcid'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='pcid'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-Rome-v1</model>
<model usable='yes' vendor='AMD'>EPYC-Rome-v2</model>
diff --git a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml
index 4f860aab23..4cb64e95df 100644
--- a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml
@@ -650,6 +650,37 @@
<feature name='xsavec'/>
<feature name='xsaves'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <feature name='amd-stibp'/>
+ <feature name='clzero'/>
+ <feature name='flushbyasid'/>
+ <feature name='fxsr_opt'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lbrv'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='misalignsse'/>
+ <feature name='nrip-save'/>
+ <feature name='osvw'/>
+ <feature name='overflow-recov'/>
+ <feature name='pause-filter'/>
+ <feature name='pcid'/>
+ <feature name='perfctr_core'/>
+ <feature name='pfthreshold'/>
+ <feature name='stibp-always-on'/>
+ <feature name='succor'/>
+ <feature name='topoext'/>
+ <feature name='tsc-scale'/>
+ <feature name='v-vmsave-vmload'/>
+ <feature name='vmcb-clean'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='xsavec'/>
+ <feature name='xsaves'/>
+ </blockers>
<model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<blockers model='EPYC-Rome'>
<feature name='amd-stibp'/>
diff --git a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml
index 0b3d87039d..71c1767f1b 100644
--- a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml
@@ -291,6 +291,10 @@
<blockers model='EPYC-Milan-v2'>
<feature name='pcid'/>
</blockers>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v3</model>
+ <blockers model='EPYC-Milan-v3'>
+ <feature name='pcid'/>
+ </blockers>
<model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-Rome-v1</model>
<model usable='yes' vendor='AMD'>EPYC-Rome-v2</model>
--
2.51.0
© 2016 - 2025 Red Hat, Inc.