diff options
author | Babu Moger <babu.moger@amd.com> | 2020-03-11 17:53:55 -0500 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2020-03-31 19:13:32 -0300 |
commit | 0c1538cb1a26287c072645f4759b9872b1596d79 (patch) | |
tree | 365bb76dae518b4c9cf251c0955aa6fa9e25a633 /target/i386/cpu.c | |
parent | 6121c7fbfd98dbc3af1b00b56ff2eef66df87828 (diff) | |
download | qemu-0c1538cb1a26287c072645f4759b9872b1596d79.zip |
i386: Introduce use_epyc_apic_id_encoding in X86CPUDefinition
Add a boolean variable use_epyc_apic_id_encoding in X86CPUDefinition.
This will be set if this cpu model needs to use new EPYC based
apic id encoding.
Override the handlers with EPYC based handlers if use_epyc_apic_id_encoding
is set. This will be done in x86_cpus_init.
Signed-off-by: Babu Moger <babu.moger@amd.com>
Message-Id: <158396723514.58170.14825482171652019765.stgit@naples-babu.amd.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target/i386/cpu.c')
-rw-r--r-- | target/i386/cpu.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index c3eba567ea..50cd257a7e 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1614,6 +1614,10 @@ typedef struct X86CPUDefinition { FeatureWordArray features; const char *model_id; CPUCaches *cache_info; + + /* Use AMD EPYC encoding for apic id */ + bool use_epyc_apic_id_encoding; + /* * Definitions for alternative versions of CPU model. * List is terminated by item with version == 0. @@ -1655,6 +1659,18 @@ static const X86CPUVersionDefinition *x86_cpu_def_get_versions(X86CPUDefinition return def->versions ?: default_version_list; } +bool cpu_x86_use_epyc_apic_id_encoding(const char *cpu_type) +{ + X86CPUClass *xcc = X86_CPU_CLASS(object_class_by_name(cpu_type)); + + assert(xcc); + if (xcc->model && xcc->model->cpudef) { + return xcc->model->cpudef->use_epyc_apic_id_encoding; + } else { + return false; + } +} + static CPUCaches epyc_cache_info = { .l1d_cache = &(CPUCacheInfo) { .type = DATA_CACHE, |