diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2013-09-27 18:05:03 +1000 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-12-20 01:57:45 +0100 |
commit | 3bc9ccc054574820190f0e6bbfd299bc2d42323d (patch) | |
tree | 72b355239e9721023bd3deadb802494ab5cc97e8 /target-ppc/kvm.c | |
parent | c65f9a07a78afa3c98712f6192962ffd6babe339 (diff) | |
download | hqemu-3bc9ccc054574820190f0e6bbfd299bc2d42323d.zip hqemu-3bc9ccc054574820190f0e6bbfd299bc2d42323d.tar.gz |
powerpc: add PVR mask support
IBM POWERPC processors encode PVR as a CPU family in higher 16 bits and
a CPU version in lower 16 bits. Since there is no significant change
in behavior between versions, there is no point to add every single CPU
version in QEMU's CPU list. Also, new CPU versions of already supported
CPU won't break the existing code.
This adds PVR value/mask support for KVM, i.e. for -cpu host option.
As CPU family class name for POWER7 is "POWER7-family", there is no need
to touch aliases.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-ppc/kvm.c')
-rw-r--r-- | target-ppc/kvm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c index 29a8ded..781b72f 100644 --- a/target-ppc/kvm.c +++ b/target-ppc/kvm.c @@ -1745,6 +1745,7 @@ static void kvmppc_host_cpu_class_init(ObjectClass *oc, void *data) uint32_t icache_size = kvmppc_read_int_cpu_dt("i-cache-size"); /* Now fix up the class with information we can query from the host */ + pcc->pvr = mfpvr(); if (vmx != -1) { /* Only override when we know what the host supports */ @@ -1795,6 +1796,9 @@ static int kvm_ppc_register_host_cpu_type(void) pvr_pcc = ppc_cpu_class_by_pvr(host_pvr); if (pvr_pcc == NULL) { + pvr_pcc = ppc_cpu_class_by_pvr_mask(host_pvr); + } + if (pvr_pcc == NULL) { return -1; } type_info.parent = object_class_get_name(OBJECT_CLASS(pvr_pcc)); |