From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48817) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahoMy-0001DV-7h for qemu-devel@nongnu.org; Sun, 20 Mar 2016 21:10:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ahoMv-0000Ny-7u for qemu-devel@nongnu.org; Sun, 20 Mar 2016 21:10:56 -0400 Date: Mon, 21 Mar 2016 12:00:06 +1100 From: David Gibson Message-ID: <20160321010006.GD16352@voom.fritz.box> References: <1458134034-32500-1-git-send-email-clg@fr.ibm.com> <1458134034-32500-2-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ZARJHfwaSJQLOEUz" Content-Disposition: inline In-Reply-To: <1458134034-32500-2-git-send-email-clg@fr.ibm.com> Subject: Re: [Qemu-devel] [PATCH v2 01/10] ppc: Update SPR definitions List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?C=E9dric?= Le Goater Cc: Thomas Huth , qemu-ppc@nongnu.org, qemu-devel@nongnu.org --ZARJHfwaSJQLOEUz Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Mar 16, 2016 at 02:13:45PM +0100, C=E9dric Le Goater wrote: > From: Benjamin Herrenschmidt >=20 > Add definitions for additional SPR numbers and SPR bit definitions > that will be relevant for subsequent improvements to POWER8 emulation >=20 > Also fix the definition of LPIDR which was incorrect (and is different > for server and embedded). >=20 > Signed-off-by: Benjamin Herrenschmidt > Reviewed-by: Thomas Huth Reviewed-by: David Gibson > --- > target-ppc/cpu.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++---= ---- > 1 file changed, 47 insertions(+), 7 deletions(-) >=20 > diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h > index 8d90d862de17..9ce301f18922 100644 > --- a/target-ppc/cpu.h > +++ b/target-ppc/cpu.h > @@ -474,9 +474,17 @@ struct ppc_slb_t { > #define MSR_RI 1 /* Recoverable interrupt 1 = */ > #define MSR_LE 0 /* Little-endian mode 1 hf= lags */ > =20 > -#define LPCR_ILE (1 << (63-38)) > -#define LPCR_AIL_SHIFT (63-40) /* Alternate interrupt location */ > -#define LPCR_AIL (3 << LPCR_AIL_SHIFT) > +/* LPCR bits */ > +#define LPCR_VPM0 (1ull << (63 - 0)) > +#define LPCR_VPM1 (1ull << (63 - 1)) > +#define LPCR_ISL (1ull << (63 - 2)) > +#define LPCR_KBV (1ull << (63 - 3)) > +#define LPCR_ILE (1ull << (63 - 38)) > +#define LPCR_MER (1ull << (63 - 52)) > +#define LPCR_LPES0 (1ull << (63 - 60)) > +#define LPCR_LPES1 (1ull << (63 - 61)) > +#define LPCR_AIL_SHIFT (63 - 40) /* Alternate interrupt location= */ > +#define LPCR_AIL (3ull << LPCR_AIL_SHIFT) > =20 > #define msr_sf ((env->msr >> MSR_SF) & 1) > #define msr_isf ((env->msr >> MSR_ISF) & 1) > @@ -1381,6 +1389,10 @@ static inline int cpu_mmu_index (CPUPPCState *env,= bool ifetch) > #define SPR_MPC_ICTRL (0x09E) > #define SPR_MPC_BAR (0x09F) > #define SPR_PSPB (0x09F) > +#define SPR_DAWR (0x0B4) > +#define SPR_RPR (0x0BA) > +#define SPR_DAWRX (0x0BC) > +#define SPR_HFSCR (0x0BE) > #define SPR_VRSAVE (0x100) > #define SPR_USPRG0 (0x100) > #define SPR_USPRG1 (0x101) > @@ -1435,19 +1447,25 @@ static inline int cpu_mmu_index (CPUPPCState *env= , bool ifetch) > #define SPR_HSRR1 (0x13B) > #define SPR_BOOKE_IAC4 (0x13B) > #define SPR_BOOKE_DAC1 (0x13C) > -#define SPR_LPIDR (0x13D) > +#define SPR_MMCRH (0x13C) > #define SPR_DABR2 (0x13D) > #define SPR_BOOKE_DAC2 (0x13D) > +#define SPR_TFMR (0x13D) > #define SPR_BOOKE_DVC1 (0x13E) > #define SPR_LPCR (0x13E) > #define SPR_BOOKE_DVC2 (0x13F) > +#define SPR_LPIDR (0x13F) > #define SPR_BOOKE_TSR (0x150) > +#define SPR_HMER (0x150) > +#define SPR_HMEER (0x151) > #define SPR_PCR (0x152) > +#define SPR_BOOKE_LPIDR (0x152) > #define SPR_BOOKE_TCR (0x154) > #define SPR_BOOKE_TLB0PS (0x158) > #define SPR_BOOKE_TLB1PS (0x159) > #define SPR_BOOKE_TLB2PS (0x15A) > #define SPR_BOOKE_TLB3PS (0x15B) > +#define SPR_AMOR (0x15D) > #define SPR_BOOKE_MAS7_MAS3 (0x174) > #define SPR_BOOKE_IVOR0 (0x190) > #define SPR_BOOKE_IVOR1 (0x191) > @@ -1667,6 +1685,7 @@ static inline int cpu_mmu_index (CPUPPCState *env, = bool ifetch) > #define SPR_RCPU_L2U_RA3 (0x32B) > #define SPR_TAR (0x32F) > #define SPR_VTB (0x351) > +#define SPR_MMCRC (0x353) > #define SPR_440_INV0 (0x370) > #define SPR_440_INV1 (0x371) > #define SPR_440_INV2 (0x372) > @@ -1705,6 +1724,7 @@ static inline int cpu_mmu_index (CPUPPCState *env, = bool ifetch) > #define SPR_440_DVLIM (0x398) > #define SPR_750_WPAR (0x399) > #define SPR_440_IVLIM (0x399) > +#define SPR_TSCR (0x399) > #define SPR_750_DMAU (0x39A) > #define SPR_750_DMAL (0x39B) > #define SPR_440_RSTCFG (0x39B) > @@ -1879,9 +1899,10 @@ static inline int cpu_mmu_index (CPUPPCState *env,= bool ifetch) > #define L1CSR1_ICE 0x00000001 /* Instruction Cache Enable */ > =20 > /* HID0 bits */ > -#define HID0_DEEPNAP (1 << 24) > -#define HID0_DOZE (1 << 23) > -#define HID0_NAP (1 << 22) > +#define HID0_DEEPNAP (1 << 24) /* pre-2.06 */ > +#define HID0_DOZE (1 << 23) /* pre-2.06 */ > +#define HID0_NAP (1 << 22) /* pre-2.06 */ > +#define HID0_HILE (1ull << (63 - 19)) /* POWER8 */ > =20 > /***********************************************************************= ******/ > /* PowerPC Instructions types definitions = */ > @@ -2230,6 +2251,25 @@ enum { > PCR_TM_DIS =3D 1ull << (63-2), /* Trans. memory disable (PO= WER8) */ > }; > =20 > +/* HMER/HMEER */ > +enum { > + HMER_MALFUNCTION_ALERT =3D 1ull << (63 - 0), > + HMER_PROC_RECV_DONE =3D 1ull << (63 - 2), > + HMER_PROC_RECV_ERROR_MASKED =3D 1ull << (63 - 3), > + HMER_TFAC_ERROR =3D 1ull << (63 - 4), > + HMER_TFMR_PARITY_ERROR =3D 1ull << (63 - 5), > + HMER_XSCOM_FAIL =3D 1ull << (63 - 8), > + HMER_XSCOM_DONE =3D 1ull << (63 - 9), > + HMER_PROC_RECV_AGAIN =3D 1ull << (63 - 11), > + HMER_WARN_RISE =3D 1ull << (63 - 14), > + HMER_WARN_FALL =3D 1ull << (63 - 15), > + HMER_SCOM_FIR_HMI =3D 1ull << (63 - 16), > + HMER_TRIG_FIR_HMI =3D 1ull << (63 - 17), > + HMER_HYP_RESOURCE_ERR =3D 1ull << (63 - 20), > + HMER_XSCOM_STATUS_MASK =3D 7ull << (63 - 23), > + HMER_XSCOM_STATUS_LSH =3D (63 - 23), > +}; > + > /***********************************************************************= ******/ > =20 > static inline target_ulong cpu_read_xer(CPUPPCState *env) --=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 --ZARJHfwaSJQLOEUz Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJW70eWAAoJEGw4ysog2bOSqegP/08og5VNWSLPEY6ZToqen7XZ Im1pOR4gWfT7Gckoy1AN41Gd2gLHOLc5wCIKhN3JkmDeSjYlYx96LavcYjQFTrQs 52LzervN9qi/JzMKlfF3McLkD5xJiNXWfZicgoJ1Qv2ZnZF3yvPxao1vPNXtfvNf 2cZCMPSy+5mkYUaRV8gdmqeBbrrqyXTIjQf/l3wlvKm7pZaOYSJMwZ6sRg+wQKbZ i9Enwh4Mbb4GNY45h9R6YyyFqHduze4iQ2d/R0/kUneucuQRCMZm1OUccGVaZt5b CfcgOacVrMQog31a1jqf1anFmaoUpt81rRu6CDKymhQB56o/c/F6ubcgVqnCaj/I DkB7SctssUh+l3QInb3PuyNTeLOAngj0o9B/kM8Hb+5PA8uNuWDbVWeAZf59SBiS aTOJHFGpZLPQ97UI1t7yjwt0hWNJ3g0LJtZKn+JU1/a+9iJh8DaJAFs49CZsa/Ig hjsmXn3qNZv81O3XSnzcY3/iLTaYZwWusIxrK1Jv3V/aWdUjrlV4iiJg3hCAo+xR uAX6sm4DoL7YMK5iuFZv6A6088GYmyPuhSDWQUQVDt+0oW8GRogfV4QSXDO+gqJK Y1fWvLxQD+OHmEMhdp+FiQ9hLy7H6A+PvXPX0kVGsDDb3WkIMJf+IYCVuGkho5AF IejsFikccLERT8crPzjh =h1gi -----END PGP SIGNATURE----- --ZARJHfwaSJQLOEUz--