From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43937) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bASP8-0007lB-7V for qemu-devel@nongnu.org; Tue, 07 Jun 2016 21:35:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bASP2-0004ke-So for qemu-devel@nongnu.org; Tue, 07 Jun 2016 21:35:33 -0400 Date: Wed, 8 Jun 2016 11:12:05 +1000 From: David Gibson Message-ID: <20160608011205.GR9226@voom.fritz.box> References: <1465313980-31281-1-git-send-email-thuth@redhat.com> <1465313980-31281-5-git-send-email-thuth@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Ep5m4srWGXPl6O+g" Content-Disposition: inline In-Reply-To: <1465313980-31281-5-git-send-email-thuth@redhat.com> Subject: Re: [Qemu-devel] [PATCH 4/5] ppc: Improve PCR bit selection in ppc_set_compat() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Thomas Huth Cc: qemu-ppc@nongnu.org, agraf@suse.de, qemu-devel@nongnu.org, Alexey Kardashevskiy --Ep5m4srWGXPl6O+g Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jun 07, 2016 at 05:39:39PM +0200, Thomas Huth wrote: > When using an olderr PowerISA level, all the upper compatibility > bits have to be enabled, too. For example when we want to run > something in PowerISA 2.05 compatibility mode on POWER8, the bit > for 2.06 has to be set beside the bit for 2.05. > Additionally, to make sure that we do not set bits that are not > supported by the host, we apply a mask with the known-to-be-good > bits here, too. >=20 > Signed-off-by: Thomas Huth This one confused me a bit until I realised that, roughly speaking, bits in the PCR turn features off, rather than turning features on. Does that sound correct? > --- > target-ppc/translate_init.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) >=20 > diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c > index fa09183..ee2bc14 100644 > --- a/target-ppc/translate_init.c > +++ b/target-ppc/translate_init.c > @@ -9519,24 +9519,29 @@ void ppc_set_compat(PowerPCCPU *cpu, uint32_t cpu= _version, Error **errp) > { > int ret =3D 0; > CPUPPCState *env =3D &cpu->env; > + PowerPCCPUClass *host_pcc; > =20 > cpu->cpu_version =3D cpu_version; > =20 > switch (cpu_version) { > case CPU_POWERPC_LOGICAL_2_05: > - env->spr[SPR_PCR] =3D PCR_COMPAT_2_05; > + env->spr[SPR_PCR] =3D PCR_TM_DIS | PCR_VSX_DIS | PCR_COMPAT_2_07= | > + PCR_COMPAT_2_06 | PCR_COMPAT_2_05; > break; > case CPU_POWERPC_LOGICAL_2_06: > - env->spr[SPR_PCR] =3D PCR_COMPAT_2_06; > - break; > case CPU_POWERPC_LOGICAL_2_06_PLUS: > - env->spr[SPR_PCR] =3D PCR_COMPAT_2_06; > + env->spr[SPR_PCR] =3D PCR_TM_DIS | PCR_COMPAT_2_07 | PCR_COMPAT_= 2_06; > break; > default: > env->spr[SPR_PCR] =3D 0; > break; > } > =20 > + host_pcc =3D kvm_ppc_get_host_cpu_class(); > + if (host_pcc) { > + env->spr[SPR_PCR] &=3D host_pcc->pcr_mask; > + } > + > if (kvm_enabled()) { > ret =3D kvmppc_set_compat(cpu, cpu->cpu_version); > if (ret < 0) { --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --Ep5m4srWGXPl6O+g Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXV3DlAAoJEGw4ysog2bOSyM0QAKpOjtr6yQh5Bs4SVoiMeut+ CN5B/GtexPzx01lfgZ0ceYZdlM/zhRMaX5FTgDvsQ0zetbE9oGxFlrfD986ggWEP mtiiwVxnhfAsN1CqMksSSiW9y3cJpEIivHnHHCOFhvt6hZHZJOP9nCYwfN+vIapo U769/D9rCYMjf6snkaTac+cwTo84pMvyhJml6/9vPt4QAC0yxLWKMoySizOeLh4x PlHzC9B9uVVVjHfQGgmjowiM/bswHN162Ss3SYMXfhY8H/kc9GmBrA8oljKcwJMi OK7jsAwxQJyzE4RP6LbBvzWK9lsllUWjpZEWIpWMo3pb6L4KfuvQ5YV54vUxP5wA PABtYXAaCHEL8BjQmQiC4haA353eEThBR/tXuIMMQ4QdHhIAt5e131a7Ags8y4tO i1Vs36TCHw65K2JPC3hxGUbqRlo3K7e+PabReiq2Bcj9i/CKm+07zjuEqJSoMj3p F+qDcdQAAlfPd7WHEE/ccUYFcIy1K4k6tHEBcl6kuYlyXD8mGbyRTMKWNxUTiUE+ 6MLeUkoKNsVXbC7V9wPNajMPtQBoB+Piq+Bsvhdq69oaycTbE9DzwDtVubyA2UIc tKFRcORCptqhKhifilsevMGDwKGjZo9uM0G50ftYGerVyvlZYgFCCbZdapl81XMU 7rK1kN2L/JT4uWK135RL =Fn5P -----END PGP SIGNATURE----- --Ep5m4srWGXPl6O+g--