From nobody Mon Sep 28 00:50:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787490975042747.2769309671347; Sun, 23 Aug 2026 06:16:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wy82O-0003zg-Th; Sun, 23 Aug 2026 09:15:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wy82D-0003uV-If; Sun, 23 Aug 2026 09:14:49 -0400 Received: from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1wy82B-0007Og-3I; Sun, 23 Aug 2026 09:14:49 -0400 Received: from DESKTOP-7FLBREN (unknown [124.16.137.194]) by APP-05 (Coremail) with SMTP id zQCowAD3Yz478opq7al2Bg--.8255S4; Sun, 23 Aug 2026 21:14:35 +0800 (CST) Message-ID: <78f6f0b01d79a18cfb3a2a64f5219ae043243dfa.1787489230.git.wangyang25@otcaix.iscas.ac.cn> In-Reply-To: References: X-Mailer: git-send-email via .NET SmtpClient MIME-Version: 1.0 From: wangyang25@otcaix.iscas.ac.cn To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, liwei1518@gmail.com, daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com, chao.liu@processmission.com Date: 23 Aug 2026 21:14:35 +0800 Subject: [PATCH 1/5] target/riscv: make mnstatus.MNPELP writable with Zicfilp Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAD3Yz478opq7al2Bg--.8255S4 X-Coremail-Antispam: 1UD129KBjvdXoW7GFWrKryfJw1xCry7AF17GFg_yoWfWwcEgF 4fWFykWa4v9ws29FWDAw1rArZ5C3409F4fK39xJFWF9ry7uF9rJas2va48Jr4Uuw1UKF1f Canxt3yxCr47AjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbG8YjsxI4VW3JwAYFVCjjxCrM7AC8VAFwI0_Xr0_Wr1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l82xGYIkIc2x26280x7 IE14v26r18M28IrcIa0xkI8VCY1x0267AKxVWUCVW8JwA2ocxC64kIII0Yj41l84x0c7CE w4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6x kF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF 7I0E14v26r4j6r4UJwAac4AC62xK8xCEY4vEwIxC4wAS0I0E0xvYzxvE52x082IY62kv04 87Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280 aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4xvF2IEb7 IF0Fy264kE64k0F24lw4CEc2x0rVAKj4xxMxkF7I0En4kS14v26r126r1DMxkIecxEwVAF wVW5GwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14 v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkG c2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4U MIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UMVCEFcxC0VAYjxAxZFUvcSsGvfC2KfnxnU UI43ZEXa7IUnUfQtUUUUU== X-Originating-IP: [124.16.137.194] X-CM-SenderInfo: 5zdqw5xdqjjk46rwut1l0ox2xfdvhtffof0/ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=159.226.251.25; envelope-from=wangyang25@otcaix.iscas.ac.cn; helo=cstnet.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1787490978886158500 Content-Type: text/plain; charset="utf-8" Zicfilp adds MNPELP to mnstatus, and MNRET consumes it when restoring ELP. Include the field in write_mnstatus() when Zicfilp is implemented. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4222 Signed-off-by: wangyang Reviewed-by: Alistair Francis --- target/riscv/tcg/csr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/riscv/tcg/csr.c b/target/riscv/tcg/csr.c index 36f2004..5ffd858 100644 --- a/target/riscv/tcg/csr.c +++ b/target/riscv/tcg/csr.c @@ -5563,6 +5563,10 @@ static RISCVException write_mnstatus(CPURISCVState *= env, int csrno, mask |=3D MNSTATUS_MNPV; } =20 + if (env_archcpu(env)->cfg.ext_zicfilp) { + mask |=3D MNSTATUS_MNPELP; + } + /* mnstatus.mnie can only be cleared by hardware. */ env->mnstatus =3D (env->mnstatus & MNSTATUS_NMIE) | (val & mask); return RISCV_EXCP_NONE; --=20 2.55.0.windows.2 From nobody Mon Sep 28 00:50:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787491025023357.03599180594165; Sun, 23 Aug 2026 06:17:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wy82P-0003zj-0G; Sun, 23 Aug 2026 09:15:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wy82F-0003vi-9C; Sun, 23 Aug 2026 09:14:51 -0400 Received: from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1wy82B-0007Oi-LB; Sun, 23 Aug 2026 09:14:50 -0400 Received: from DESKTOP-7FLBREN (unknown [124.16.137.194]) by APP-05 (Coremail) with SMTP id zQCowAD3Yz478opq7al2Bg--.8255S5; Sun, 23 Aug 2026 21:14:35 +0800 (CST) Message-ID: In-Reply-To: References: X-Mailer: git-send-email via .NET SmtpClient MIME-Version: 1.0 From: wangyang25@otcaix.iscas.ac.cn To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, liwei1518@gmail.com, daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com, chao.liu@processmission.com Date: 23 Aug 2026 21:14:35 +0800 Subject: [PATCH 2/5] target/riscv: save ELP in MPELP for RNMI exceptions Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAD3Yz478opq7al2Bg--.8255S5 X-Coremail-Antispam: 1UD129KBjvdXoW7GF18Wr1kur1fAry5CryUWrg_yoWkXrXE9a y8uFyvk3409w1vkFZ8CrnYyrWDG348ua40kw4fGr1furyxWFyakw1kXay5Ww1UZw15Xrn3 CwsrXrW3ur13ZjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbG8YjsxI4VW3JwAYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l82xGYIkIc2x26280x7 IE14v26r15M28IrcIa0xkI8VCY1x0267AKxVW8JVW5JwA2ocxC64kIII0Yj41l84x0c7CE w4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6x kF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF 7I0E14v26r4j6r4UJwAac4AC62xK8xCEY4vEwIxC4wAS0I0E0xvYzxvE52x082IY62kv04 87Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280 aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4xvF2IEb7 IF0Fy264kE64k0F24lw4CEc2x0rVAKj4xxMxkF7I0En4kS14v26r126r1DMxkIecxEwVAF wVW5GwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14 v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkG c2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4U MIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UMVCEFcxC0VAYjxAxZFUvcSsGvfC2KfnxnU UI43ZEXa7IUn6nmtUUUUU== X-Originating-IP: [124.16.137.194] X-CM-SenderInfo: 5zdqw5xdqjjk46rwut1l0ox2xfdvhtffof0/ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=159.226.251.25; envelope-from=wangyang25@otcaix.iscas.ac.cn; helo=cstnet.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1787491027490158500 Content-Type: text/plain; charset="utf-8" An M-mode exception with mnstatus.NMIE clear uses the RNMI vector, but Smrnmi otherwise specifies the normal M-mode state updates. MRET restores ELP from mstatus.MPELP, so save it there rather than in MNPELP. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4223 Signed-off-by: wangyang --- target/riscv/tcg/cpu_helper.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/riscv/tcg/cpu_helper.c b/target/riscv/tcg/cpu_helper.c index 07d9222..6337e91 100644 --- a/target/riscv/tcg/cpu_helper.c +++ b/target/riscv/tcg/cpu_helper.c @@ -2275,12 +2275,7 @@ void riscv_cpu_do_interrupt(CPUState *cs) /* handle the trap in M-mode */ /* save elp status */ if (cpu_get_fcfien(env)) { - if (nnmi_excep) { - env->mnstatus =3D set_field(env->mnstatus, MNSTATUS_MNPELP, - env->elp); - } else { - env->mstatus =3D set_field(env->mstatus, MSTATUS_MPELP, en= v->elp); - } + env->mstatus =3D set_field(env->mstatus, MSTATUS_MPELP, env->e= lp); } =20 if (riscv_has_ext(env, RVH)) { --=20 2.55.0.windows.2 From nobody Mon Sep 28 00:50:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178749093786193.09538574664896; Sun, 23 Aug 2026 06:15:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wy82L-0003yA-Vi; Sun, 23 Aug 2026 09:14:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wy82D-0003uU-Kg; Sun, 23 Aug 2026 09:14:49 -0400 Received: from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1wy82A-0007Od-PQ; Sun, 23 Aug 2026 09:14:49 -0400 Received: from DESKTOP-7FLBREN (unknown [124.16.137.194]) by APP-05 (Coremail) with SMTP id zQCowAD3Yz478opq7al2Bg--.8255S6; Sun, 23 Aug 2026 21:14:35 +0800 (CST) Message-ID: In-Reply-To: References: X-Mailer: git-send-email via .NET SmtpClient MIME-Version: 1.0 From: wangyang25@otcaix.iscas.ac.cn To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, liwei1518@gmail.com, daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com, chao.liu@processmission.com Date: 23 Aug 2026 21:14:35 +0800 Subject: [PATCH 3/5] target/riscv: mask inactive senvcfg.SSE on read Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAD3Yz478opq7al2Bg--.8255S6 X-Coremail-Antispam: 1UD129KBjvdXoWrKrW8JrWrKrWrGF48ZF17GFg_yoWfAFb_Cr 4ruFyxZ3yDZ3ZFkFWDXw1rAryFy3y8Kw1rKa4SkrZ0gryUWFyUZ3WkCFyDur15uw4UJ3Za ywn7GrWxWw17AjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbG8YjsxI4VW3JwAYFVCjjxCrM7AC8VAFwI0_Wr0E3s1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l82xGYIkIc2x26280x7 IE14v26r1rM28IrcIa0xkI8VCY1x0267AKxVW5JVCq3wA2ocxC64kIII0Yj41l84x0c7CE w4AK67xGY2AK021l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6x kF7I0E14v26r4j6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF 7I0E14v26r4j6r4UJwAac4AC62xK8xCEY4vEwIxC4wAS0I0E0xvYzxvE52x082IY62kv04 87Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280 aVAFwI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4xvF2IEb7 IF0Fy264kE64k0F24lw4CEc2x0rVAKj4xxMxkF7I0En4kS14v26r126r1DMxkIecxEwVAF wVW5GwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14 v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jw0_GFylIxkG c2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4U MIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UMVCEFcxC0VAYjxAxZFUvcSsGvfC2KfnxnU UI43ZEXa7IU0HE_tUUUUU== X-Originating-IP: [124.16.137.194] X-CM-SenderInfo: 5zdqw5xdqjjk46rwut1l0ox2xfdvhtffof0/ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=159.226.251.25; envelope-from=wangyang25@otcaix.iscas.ac.cn; helo=cstnet.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1787490944100158500 Content-Type: text/plain; charset="utf-8" The CFI rules make senvcfg.SSE read as zero when menvcfg.SSE is clear. In VU mode it also reads as zero when henvcfg.SSE is clear. Mask the readback to match those rules. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4224 Signed-off-by: wangyang --- target/riscv/tcg/csr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/target/riscv/tcg/csr.c b/target/riscv/tcg/csr.c index 5ffd858..7078736 100644 --- a/target/riscv/tcg/csr.c +++ b/target/riscv/tcg/csr.c @@ -3305,6 +3305,14 @@ static RISCVException read_senvcfg(CPURISCVState *en= v, int csrno, } =20 *val =3D env->senvcfg; + + if (env_archcpu(env)->cfg.ext_zicfiss) { + if (!(env->menvcfg & MENVCFG_SSE) || + (env->virt_enabled && !(env->henvcfg & HENVCFG_SSE))) { + *val &=3D ~SENVCFG_SSE; + } + } + return RISCV_EXCP_NONE; } =20 --=20 2.55.0.windows.2 From nobody Mon Sep 28 00:50:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787490987918387.51446420253865; Sun, 23 Aug 2026 06:16:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wy82M-0003yG-05; Sun, 23 Aug 2026 09:14:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wy82F-0003vh-AA; Sun, 23 Aug 2026 09:14:51 -0400 Received: from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1wy82B-0007Oe-AO; Sun, 23 Aug 2026 09:14:50 -0400 Received: from DESKTOP-7FLBREN (unknown [124.16.137.194]) by APP-05 (Coremail) with SMTP id zQCowAD3Yz478opq7al2Bg--.8255S7; Sun, 23 Aug 2026 21:14:35 +0800 (CST) Message-ID: <1ae52888e4d542f50a3f6e479d91d1e6d25f63c6.1787489230.git.wangyang25@otcaix.iscas.ac.cn> In-Reply-To: References: X-Mailer: git-send-email via .NET SmtpClient MIME-Version: 1.0 From: wangyang25@otcaix.iscas.ac.cn To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, liwei1518@gmail.com, daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com, chao.liu@processmission.com Date: 23 Aug 2026 21:14:35 +0800 Subject: [PATCH 4/5] target/riscv: gate envcfg CBO fields on extensions Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAD3Yz478opq7al2Bg--.8255S7 X-Coremail-Antispam: 1UD129KBjvJXoWxZw4UCw45tryfXw4xGrWfXwb_yoW5ArWfpF s8WFsxGrW8t3s7ua93Jr1UWF15Jr1kK3yv9wnruasYyFyjvrnxGFyDt343Ar1UWFy7Ar47 K3yakr1jyF4UAFDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUdSb7Iv0xC_tr1lb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI 8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28C jxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0cI 8IcVCY1x0267AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIE14v26r1j6r4UM28EF7xvwVC2z280 aVCY1x0267AKxVW8JVW8Jr1lnxkEFVAIw20F6cxK64vIFxWle2I262IYc4CY6c8Ij28IcV AaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JF0_Jw1lYx0E x4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACY4 xI67k04243AVAKzVAKj4xxM4kE6xkIj40Ew7xC0wCY1x0262kKe7AKxVWUAVWUtwCY02Av z4vE14v_Xr4l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4 xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43 MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I 0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWU JVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJwCE64xvF2IEb7IF0Fy7YxBIdaVFxh VjvjDU0xZFpf9x07jaD73UUUUU= X-Originating-IP: [124.16.137.194] X-CM-SenderInfo: 5zdqw5xdqjjk46rwut1l0ox2xfdvhtffof0/ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=159.226.251.25; envelope-from=wangyang25@otcaix.iscas.ac.cn; helo=cstnet.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1787490989258158500 Content-Type: text/plain; charset="utf-8" The envcfg CBO fields are provided by Zicbom and Zicboz. Keep them read-only zero when the corresponding extension is absent in all three envcfg CSRs. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4225 Signed-off-by: wangyang Reviewed-by: Alistair Francis --- target/riscv/tcg/csr.c | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/target/riscv/tcg/csr.c b/target/riscv/tcg/csr.c index 7078736..fd00538 100644 --- a/target/riscv/tcg/csr.c +++ b/target/riscv/tcg/csr.c @@ -3212,10 +3212,19 @@ static RISCVException write_menvcfg(CPURISCVState *= env, int csrno, target_ulong val, uintptr_t ra) { const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); - uint64_t mask =3D MENVCFG_FIOM | MENVCFG_CBIE | MENVCFG_CBCFE | - MENVCFG_CBZE; + uint64_t mask =3D MENVCFG_FIOM; bool stce_changed =3D false; =20 + /* CBIE/CBCFE are read-only zero when Zicbom is not implemented. */ + if (cfg->ext_zicbom) { + mask |=3D MENVCFG_CBIE | MENVCFG_CBCFE; + } + + /* CBZE is read-only zero when Zicboz is not implemented. */ + if (cfg->ext_zicboz) { + mask |=3D MENVCFG_CBZE; + } + if (riscv_cpu_mxl(env) =3D=3D MXL_RV64) { mask |=3D (cfg->ext_svpbmt ? MENVCFG_PBMTE : 0) | (cfg->ext_sstc ? MENVCFG_STCE : 0) | @@ -3319,8 +3328,19 @@ static RISCVException read_senvcfg(CPURISCVState *en= v, int csrno, static RISCVException write_senvcfg(CPURISCVState *env, int csrno, target_ulong val, uintptr_t ra) { - uint64_t mask =3D SENVCFG_FIOM | SENVCFG_CBIE | SENVCFG_CBCFE | SENVCF= G_CBZE; + uint64_t mask =3D SENVCFG_FIOM; RISCVException ret; + + /* CBIE/CBCFE are read-only zero when Zicbom is not implemented. */ + if (env_archcpu(env)->cfg.ext_zicbom) { + mask |=3D SENVCFG_CBIE | SENVCFG_CBCFE; + } + + /* CBZE is read-only zero when Zicboz is not implemented. */ + if (env_archcpu(env)->cfg.ext_zicboz) { + mask |=3D SENVCFG_CBZE; + } + /* Update PMM field only if the value is valid according to Zjpm v1.0 = */ if (env_archcpu(env)->cfg.ext_ssnpm && riscv_cpu_mxl(env) =3D=3D MXL_RV64 && @@ -3377,7 +3397,7 @@ static RISCVException write_henvcfg(CPURISCVState *en= v, int csrno, target_ulong val, uintptr_t ra) { const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); - uint64_t mask =3D HENVCFG_FIOM | HENVCFG_CBIE | HENVCFG_CBCFE | HENVCF= G_CBZE; + uint64_t mask =3D HENVCFG_FIOM; RISCVException ret; bool stce_changed =3D false; =20 @@ -3386,6 +3406,16 @@ static RISCVException write_henvcfg(CPURISCVState *e= nv, int csrno, return ret; } =20 + /* CBIE/CBCFE are read-only zero when Zicbom is not implemented. */ + if (cfg->ext_zicbom) { + mask |=3D HENVCFG_CBIE | HENVCFG_CBCFE; + } + + /* CBZE is read-only zero when Zicboz is not implemented. */ + if (cfg->ext_zicboz) { + mask |=3D HENVCFG_CBZE; + } + if (riscv_cpu_mxl(env) =3D=3D MXL_RV64) { mask |=3D env->menvcfg & (HENVCFG_PBMTE | HENVCFG_STCE | HENVCFG_A= DUE | HENVCFG_DTE); --=20 2.55.0.windows.2 From nobody Mon Sep 28 00:50:13 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1787490937829676.3085370212004; Sun, 23 Aug 2026 06:15:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wy82S-00041A-Ly; Sun, 23 Aug 2026 09:15:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wy82E-0003uk-Od; Sun, 23 Aug 2026 09:14:51 -0400 Received: from smtp25.cstnet.cn ([159.226.251.25] helo=cstnet.cn) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1wy82B-0007Oh-AL; Sun, 23 Aug 2026 09:14:50 -0400 Received: from DESKTOP-7FLBREN (unknown [124.16.137.194]) by APP-05 (Coremail) with SMTP id zQCowAD3Yz478opq7al2Bg--.8255S8; Sun, 23 Aug 2026 21:14:35 +0800 (CST) Message-ID: In-Reply-To: References: X-Mailer: git-send-email via .NET SmtpClient MIME-Version: 1.0 From: wangyang25@otcaix.iscas.ac.cn To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, palmer@dabbelt.com, alistair.francis@wdc.com, liwei1518@gmail.com, daniel.barboza@oss.qualcomm.com, zhiwei_liu@linux.alibaba.com, chao.liu@processmission.com Date: 23 Aug 2026 21:14:35 +0800 Subject: [PATCH 5/5] target/riscv: enforce SSE precedence for ssp CSR access Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: zQCowAD3Yz478opq7al2Bg--.8255S8 X-Coremail-Antispam: 1UD129KBjvJXoW7AryDKF17CFyxXFyrXFy5urg_yoW8WF4rpF 18G390ka9YgasIyan3Jr1DWF13Gw1rJwsrXw1xCw4jvr15ArW3GasFgFsxtFyrJFWDGr42 vr42yF4ruF4DAa7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUdSb7Iv0xC_tr1lb4IE77IF4wAFF20E14v26rWj6s0DM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28IrcIa0xkI8VA2jI 8067AKxVWUAVCq3wA2048vs2IY020Ec7CjxVAFwI0_Xr0E3s1l8cAvFVAK0II2c7xJM28C jxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWUCVW8JwA2z4x0Y4vE2Ix0cI 8IcVCY1x0267AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIE14v26r1j6r4UM28EF7xvwVC2z280 aVCY1x0267AKxVW8JVW8Jr1lnxkEFVAIw20F6cxK64vIFxWle2I262IYc4CY6c8Ij28IcV AaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JF0_Jw1lYx0E x4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwACY4 xI67k04243AVAKzVAKj4xxM4kE6xkIj40Ew7xC0wCY1x0262kKe7AKxVWUAVWUtwCY02Av z4vE14v_Xr4l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4 xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43 MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I 0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWU JVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJwCE64xvF2IEb7IF0Fy7YxBIdaVFxh VjvjDU0xZFpf9x07jaD73UUUUU= X-Originating-IP: [124.16.137.194] X-CM-SenderInfo: 5zdqw5xdqjjk46rwut1l0ox2xfdvhtffof0/ Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=159.226.251.25; envelope-from=wangyang25@otcaix.iscas.ac.cn; helo=cstnet.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1787490944108158500 Content-Type: text/plain; charset="utf-8" When menvcfg.SSE is clear, ssp access below M mode raises an illegal-instruction exception before virtual-instruction classification. Apply the henvcfg/senvcfg checks for VS/VU and preserve the user-only path. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/4226 Signed-off-by: wangyang --- target/riscv/tcg/csr.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/target/riscv/tcg/csr.c b/target/riscv/tcg/csr.c index fd00538..17a6fc1 100644 --- a/target/riscv/tcg/csr.c +++ b/target/riscv/tcg/csr.c @@ -201,15 +201,34 @@ static RISCVException cfi_ss(CPURISCVState *env, int = csrno) return RISCV_EXCP_NONE; } =20 - /* if bcfi not active for current env, access to csr is illegal */ - if (!cpu_get_bcfien(env)) { #if !defined(CONFIG_USER_ONLY) - if (env->debugger) { - return RISCV_EXCP_NONE; - } else if (env->virt_enabled) { + if (env->debugger) { + return RISCV_EXCP_NONE; + } + + /* priv < M and menvcfg.SSE =3D 0 must raise illegal-instruction */ + if (!(env->menvcfg & MENVCFG_SSE)) { + return RISCV_EXCP_ILLEGAL_INST; + } + + if (env->virt_enabled) { + if (env->priv =3D=3D PRV_S) { + if (env->henvcfg & HENVCFG_SSE) { + return RISCV_EXCP_NONE; + } + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } + if (env->priv =3D=3D PRV_U) { + if ((env->henvcfg & HENVCFG_SSE) && + (env->senvcfg & SENVCFG_SSE)) { + return RISCV_EXCP_NONE; + } return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } + } #endif + + if (!cpu_get_bcfien(env)) { return RISCV_EXCP_ILLEGAL_INST; } =20 --=20 2.55.0.windows.2