From nobody Tue Apr 30 16:21:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516088665676217.67033620295797; Mon, 15 Jan 2018 23:44:25 -0800 (PST) Received: from localhost ([::1]:45221 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLuu-0003EM-Gq for importer@patchew.org; Tue, 16 Jan 2018 02:44:20 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56701) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLt1-00028q-Lk for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebLsw-0007jN-LF for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:23 -0500 Received: from 1.mo179.mail-out.ovh.net ([178.33.111.220]:59855) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebLsw-0007iC-En for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:18 -0500 Received: from player168.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo179.mail-out.ovh.net (Postfix) with ESMTP id D5553916DD for ; Tue, 16 Jan 2018 08:42:16 +0100 (CET) Received: from zorba.kaod.org (LFbn-1-2226-150.w90-76.abo.wanadoo.fr [90.76.48.150]) (Authenticated sender: clg@kaod.org) by player168.ha.ovh.net (Postfix) with ESMTPSA id 838434200AB; Tue, 16 Jan 2018 08:42:11 +0100 (CET) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, David Gibson Date: Tue, 16 Jan 2018 08:41:55 +0100 Message-Id: <20180116074157.16886-2-clg@kaod.org> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180116074157.16886-1-clg@kaod.org> References: <20180116074157.16886-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 12454704773225024339 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtuddrleelgdduudduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 178.33.111.220 Subject: [Qemu-devel] [PATCH 1/3] target/ppc: fix doorbell and hypervisor doorbell definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" commit f03a1af581b9 ("ppc: Fix POWER7 and POWER8 exception definitions") introduced definitions for the server doorbell exceptions by reusing the embedded definitions but this adds complexity in the powerpc_excp() routine. Let's introduce specific definitions for the Server doorbells exception. Signed-off-by: C=C3=A9dric Le Goater --- target/ppc/cpu.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index 14aaa87fe825..b8f4dfc1084a 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -140,9 +140,6 @@ enum { POWERPC_EXCP_HYPPRIV =3D 41, /* Embedded hypervisor priv instruction = */ /* Vectors 42 to 63 are reserved = */ /* Exceptions defined in the PowerPC server specification = */ - /* Server doorbell variants */ -#define POWERPC_EXCP_SDOOR POWERPC_EXCP_GDOORI -#define POWERPC_EXCP_SDOOR_HV POWERPC_EXCP_DOORI POWERPC_EXCP_RESET =3D 64, /* System reset exception = */ POWERPC_EXCP_DSEG =3D 65, /* Data segment exception = */ POWERPC_EXCP_ISEG =3D 66, /* Instruction segment exception = */ @@ -189,8 +186,11 @@ enum { POWERPC_EXCP_HV_EMU =3D 96, /* HV emulation assistance = */ POWERPC_EXCP_HV_MAINT =3D 97, /* HMI = */ POWERPC_EXCP_HV_FU =3D 98, /* Hypervisor Facility unavailable = */ + /* Server doorbell variants */ + POWERPC_EXCP_SDOOR =3D 99, + POWERPC_EXCP_SDOOR_HV =3D 100, /* EOL = */ - POWERPC_EXCP_NB =3D 99, + POWERPC_EXCP_NB =3D 101, /* QEMU exceptions: used internally during code translation = */ POWERPC_EXCP_STOP =3D 0x200, /* stop translation = */ POWERPC_EXCP_BRANCH =3D 0x201, /* branch instruction = */ --=20 2.13.6 From nobody Tue Apr 30 16:21:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151608881674621.557403670106396; Mon, 15 Jan 2018 23:46:56 -0800 (PST) Received: from localhost ([::1]:45375 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLxQ-0005GX-03 for importer@patchew.org; Tue, 16 Jan 2018 02:46:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56727) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLt6-0002Bj-8a for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebLt1-0007m1-RK for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:28 -0500 Received: from 3.mo179.mail-out.ovh.net ([178.33.251.175]:47118) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebLt1-0007l8-M5 for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:23 -0500 Received: from player168.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo179.mail-out.ovh.net (Postfix) with ESMTP id F1B28916F0 for ; Tue, 16 Jan 2018 08:42:21 +0100 (CET) Received: from zorba.kaod.org (LFbn-1-2226-150.w90-76.abo.wanadoo.fr [90.76.48.150]) (Authenticated sender: clg@kaod.org) by player168.ha.ovh.net (Postfix) with ESMTPSA id AD7514200AB; Tue, 16 Jan 2018 08:42:16 +0100 (CET) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, David Gibson Date: Tue, 16 Jan 2018 08:41:56 +0100 Message-Id: <20180116074157.16886-3-clg@kaod.org> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180116074157.16886-1-clg@kaod.org> References: <20180116074157.16886-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 12456112146666851155 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtuddrleelgdduudduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 178.33.251.175 Subject: [Qemu-devel] [PATCH 2/3] target/ppc: msgsnd and msgclr instructions need hypervisor privilege X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: C=C3=A9dric Le Goater --- target/ppc/translate.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 6d16a0b22d44..bcd36d53537f 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -6169,7 +6169,7 @@ static void gen_msgclr(DisasContext *ctx) #if defined(CONFIG_USER_ONLY) GEN_PRIV; #else - CHK_SV; + CHK_HV; gen_helper_msgclr(cpu_env, cpu_gpr[rB(ctx->opcode)]); #endif /* defined(CONFIG_USER_ONLY) */ } @@ -6179,7 +6179,7 @@ static void gen_msgsnd(DisasContext *ctx) #if defined(CONFIG_USER_ONLY) GEN_PRIV; #else - CHK_SV; + CHK_HV; gen_helper_msgsnd(cpu_gpr[rB(ctx->opcode)]); #endif /* defined(CONFIG_USER_ONLY) */ } --=20 2.13.6 From nobody Tue Apr 30 16:21:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1516088689186191.31352233507164; Mon, 15 Jan 2018 23:44:49 -0800 (PST) Received: from localhost ([::1]:45229 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLvM-0003d6-B4 for importer@patchew.org; Tue, 16 Jan 2018 02:44:48 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56755) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ebLtB-0002Eo-Gk for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ebLt7-0007tI-18 for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:33 -0500 Received: from 5.mo179.mail-out.ovh.net ([46.105.43.140]:57276) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ebLt6-0007rG-OV for qemu-devel@nongnu.org; Tue, 16 Jan 2018 02:42:28 -0500 Received: from player168.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo179.mail-out.ovh.net (Postfix) with ESMTP id 1F9C9916C2 for ; Tue, 16 Jan 2018 08:42:27 +0100 (CET) Received: from zorba.kaod.org (LFbn-1-2226-150.w90-76.abo.wanadoo.fr [90.76.48.150]) (Authenticated sender: clg@kaod.org) by player168.ha.ovh.net (Postfix) with ESMTPSA id D69A742007B; Tue, 16 Jan 2018 08:42:21 +0100 (CET) From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, David Gibson Date: Tue, 16 Jan 2018 08:41:57 +0100 Message-Id: <20180116074157.16886-4-clg@kaod.org> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180116074157.16886-1-clg@kaod.org> References: <20180116074157.16886-1-clg@kaod.org> MIME-Version: 1.0 X-Ovh-Tracer-Id: 12457800996066986835 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtuddrleelgdduudduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 46.105.43.140 Subject: [Qemu-devel] [PATCH 3/3] target/ppc: add support for hypervisor doorbells on book3s CPUs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The hypervisor doorbells are used by skiboot and Linux on POWER9 processors to wake up secondaries. This adds processor control support to the Server architecture by reusing the Embedded support. They are very similar, only the bits definition of the CPU identifier differ. Still to be done is message broadcast to all threads of the same processor. Signed-off-by: C=C3=A9dric Le Goater --- target/ppc/cpu.h | 8 ++++++-- target/ppc/excp_helper.c | 39 ++++++++++++++++++++++++++++++++------- target/ppc/helper.h | 2 +- target/ppc/translate.c | 13 ++++++++++++- target/ppc/translate_init.c | 2 +- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h index b8f4dfc1084a..603a38cae83f 100644 --- a/target/ppc/cpu.h +++ b/target/ppc/cpu.h @@ -930,7 +930,7 @@ enum { #define BOOKE206_MAX_TLBN 4 =20 /*************************************************************************= ****/ -/* Embedded.Processor Control */ +/* Server and Embedded Processor Control */ =20 #define DBELL_TYPE_SHIFT 27 #define DBELL_TYPE_MASK (0x1f << DBELL_TYPE_SHIFT) @@ -940,11 +940,15 @@ enum { #define DBELL_TYPE_G_DBELL_CRIT (0x03 << DBELL_TYPE_SHIFT) #define DBELL_TYPE_G_DBELL_MC (0x04 << DBELL_TYPE_SHIFT) =20 -#define DBELL_BRDCAST (1 << 26) +#define DBELL_TYPE_DBELL_SERVER (0x05 << DBELL_TYPE_SHIFT) + +#define DBELL_BRDCAST PPC_BIT(37) #define DBELL_LPIDTAG_SHIFT 14 #define DBELL_LPIDTAG_MASK (0xfff << DBELL_LPIDTAG_SHIFT) #define DBELL_PIRTAG_MASK 0x3fff =20 +#define DBELL_PROCIDTAG_MASK PPC_BITMASK(44, 63) + /*************************************************************************= ****/ /* Segment page size information, used by recent hash MMUs * The format of this structure mirrors kvm_ppc_smmu_info diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index 4e548a448747..0f32cab1ff57 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c @@ -417,6 +417,7 @@ static inline void powerpc_excp(PowerPCCPU *cpu, int ex= cp_model, int excp) case POWERPC_EXCP_HISI: /* Hypervisor instruction storage excepti= on */ case POWERPC_EXCP_HDSEG: /* Hypervisor data segment exception = */ case POWERPC_EXCP_HISEG: /* Hypervisor instruction segment excepti= on */ + case POWERPC_EXCP_SDOOR_HV: /* Hypervisor Doorbell interrupt = */ case POWERPC_EXCP_HV_EMU: srr0 =3D SPR_HSRR0; srr1 =3D SPR_HSRR1; @@ -846,6 +847,11 @@ static void ppc_hw_interrupt(CPUPPCState *env) powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_DOORI); return; } + if (env->pending_interrupts & (1 << PPC_INTERRUPT_HDOORBELL)) { + env->pending_interrupts &=3D ~(1 << PPC_INTERRUPT_HDOORBELL); + powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_SDOOR_HV); + return; + } if (env->pending_interrupts & (1 << PPC_INTERRUPT_PERFM)) { env->pending_interrupts &=3D ~(1 << PPC_INTERRUPT_PERFM); powerpc_excp(cpu, env->excp_model, POWERPC_EXCP_PERFM); @@ -1088,8 +1094,8 @@ void helper_rfsvc(CPUPPCState *env) do_rfi(env, env->lr, env->ctr & 0x0000FFFF); } =20 -/* Embedded.Processor Control */ -static int dbell2irq(target_ulong rb) +/* Server and Embedded Processor Control */ +static int dbell2irq(target_ulong rb, bool book3s) { int msg =3D rb & DBELL_TYPE_MASK; int irq =3D -1; @@ -1109,12 +1115,21 @@ static int dbell2irq(target_ulong rb) break; } =20 + /* A Directed Hypervisor Doorbell message is sent only if the + * message type is 5. All other types are reserved and the + * instruction is a no-op */ + if (book3s && msg =3D=3D DBELL_TYPE_DBELL_SERVER) { + irq =3D PPC_INTERRUPT_HDOORBELL; + } + return irq; } =20 void helper_msgclr(CPUPPCState *env, target_ulong rb) { - int irq =3D dbell2irq(rb); + /* 64-bit server processors compliant with arch 2.x */ + bool book3s =3D (env->insns_flags & PPC_SEGMENT_64B); + int irq =3D dbell2irq(rb, book3s); =20 if (irq < 0) { return; @@ -1123,10 +1138,11 @@ void helper_msgclr(CPUPPCState *env, target_ulong r= b) env->pending_interrupts &=3D ~(1 << irq); } =20 -void helper_msgsnd(target_ulong rb) +void helper_msgsnd(CPUPPCState *env, target_ulong rb) { - int irq =3D dbell2irq(rb); - int pir =3D rb & DBELL_PIRTAG_MASK; + /* 64-bit server processors compliant with arch 2.x */ + bool book3s =3D (env->insns_flags & PPC_SEGMENT_64B); + int irq =3D dbell2irq(rb, book3s); CPUState *cs; =20 if (irq < 0) { @@ -1137,8 +1153,17 @@ void helper_msgsnd(target_ulong rb) CPU_FOREACH(cs) { PowerPCCPU *cpu =3D POWERPC_CPU(cs); CPUPPCState *cenv =3D &cpu->env; + bool send; =20 - if ((rb & DBELL_BRDCAST) || (cenv->spr[SPR_BOOKE_PIR] =3D=3D pir))= { + /* TODO: broadcast message to all threads of the same processor */ + if (book3s) { + int pir =3D rb & DBELL_PROCIDTAG_MASK; + send =3D (cenv->spr_cb[SPR_PIR].default_value =3D=3D pir); + } else { + int pir =3D rb & DBELL_PROCIDTAG_MASK; + send =3D (rb & DBELL_BRDCAST) || (cenv->spr[SPR_BOOKE_PIR] =3D= =3D pir); + } + if (send) { cenv->pending_interrupts |=3D 1 << irq; cpu_interrupt(cs, CPU_INTERRUPT_HARD); } diff --git a/target/ppc/helper.h b/target/ppc/helper.h index bb6a94a8b390..3e98bd9eecb8 100644 --- a/target/ppc/helper.h +++ b/target/ppc/helper.h @@ -677,7 +677,7 @@ DEF_HELPER_FLAGS_2(load_sr, TCG_CALL_NO_RWG, tl, env, t= l) DEF_HELPER_FLAGS_3(store_sr, TCG_CALL_NO_RWG, void, env, tl, tl) =20 DEF_HELPER_FLAGS_1(602_mfrom, TCG_CALL_NO_RWG_SE, tl, tl) -DEF_HELPER_1(msgsnd, void, tl) +DEF_HELPER_2(msgsnd, void, env, tl) DEF_HELPER_2(msgclr, void, env, tl) #endif =20 diff --git a/target/ppc/translate.c b/target/ppc/translate.c index bcd36d53537f..1ad7e0fd4efd 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -6180,10 +6180,19 @@ static void gen_msgsnd(DisasContext *ctx) GEN_PRIV; #else CHK_HV; - gen_helper_msgsnd(cpu_gpr[rB(ctx->opcode)]); + gen_helper_msgsnd(cpu_env, cpu_gpr[rB(ctx->opcode)]); #endif /* defined(CONFIG_USER_ONLY) */ } =20 +static void gen_msgsync(DisasContext *ctx) +{ +#if defined(CONFIG_USER_ONLY) + GEN_PRIV; +#else + CHK_HV; +#endif /* defined(CONFIG_USER_ONLY) */ + /* interpreted as no-op */ +} =20 #if defined(TARGET_PPC64) static void gen_maddld(DisasContext *ctx) @@ -6664,6 +6673,8 @@ GEN_HANDLER2_E(msgsnd, "msgsnd", 0x1F, 0x0E, 0x06, 0x= 03ff0001, PPC_NONE, PPC2_PRCNTL), GEN_HANDLER2_E(msgclr, "msgclr", 0x1F, 0x0E, 0x07, 0x03ff0001, PPC_NONE, PPC2_PRCNTL), +GEN_HANDLER2_E(msgsync, "msgsync", 0x1F, 0x16, 0x1B, 0x00000000, + PPC_NONE, PPC2_PRCNTL), GEN_HANDLER(wrtee, 0x1F, 0x03, 0x04, 0x000FFC01, PPC_WRTEE), GEN_HANDLER(wrteei, 0x1F, 0x03, 0x05, 0x000E7C01, PPC_WRTEE), GEN_HANDLER(dlmzb, 0x1F, 0x0E, 0x02, 0x00000000, PPC_440_SPEC), diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 70ff15a51a6b..55c99c97e377 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -8866,7 +8866,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data) PPC2_FP_TST_ISA206 | PPC2_BCTAR_ISA207 | PPC2_LSQ_ISA207 | PPC2_ALTIVEC_207 | PPC2_ISA205 | PPC2_ISA207S | PPC2_FP_CVT_S64 | - PPC2_TM | PPC2_PM_ISA206 | PPC2_ISA300; + PPC2_TM | PPC2_PM_ISA206 | PPC2_ISA300 | PPC2_PRCN= TL; pcc->msr_mask =3D (1ull << MSR_SF) | (1ull << MSR_TM) | (1ull << MSR_VR) | --=20 2.13.6