If a guest currently only requests PowerISA 2.07 compatiblity mode with the "ibm,client-architecture-support" firmware call, but does not specify a matching real PVR for the host CPU on a POWER8 host, it ends up in POWER7 / PowerISA 2.06 compatibility mode since QEMU does not support 2.07 compatibility mode yet. This currently happens when running a Linux guest on a POWER8NVL host, since Linux guests do not use the PVR for these CPUs for the "ibm,client-architecture- support" call yet (but I submitted a patch for the kernel to fix this issue there last week, so the support should soon be there, too).
Anyway, QEMU should also support a proper 2.07 compatibility mode if the host CPU can do it. So this patch series introduces such a mode and does some clean-ups and other fixes along the way (e.g. it splits the ambiguous pcr_mask setting into two variables, one for defining the valid bits in the PCR register, and one for storing the valid ISA levels). Thomas Huth (5): ppc/spapr: Refactor h_client_architecture_support() CPU parsing code ppc: Split pcr_mask settings into supported bits and the register mask ppc: Provide function to get CPU class of the host CPU ppc: Improve PCR bit selection in ppc_set_compat() ppc: Add PowerISA 2.07 compatibility mode hw/ppc/spapr_hcall.c | 63 +++++++++++++++++++++++++++------------------ target-ppc/cpu-qom.h | 3 ++- target-ppc/cpu.h | 1 + target-ppc/kvm.c | 19 ++++++++++---- target-ppc/kvm_ppc.h | 7 +++++ target-ppc/translate_init.c | 22 +++++++++++----- 6 files changed, 78 insertions(+), 37 deletions(-) -- 1.8.3.1