From nobody Mon May 6 11:41:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1571068335; cv=none; d=zoho.com; s=zohoarc; b=jFEonGawfYiQ2DYhIx9T6I05ArUmfBULZjqdY9TRCj9HZJeL/DkGUm6Re4C/CSVwf0kQEnVrmEGaJBO30QOwNxEkbAVW3uBdLFeMIiU08Uvin5mNlpMuwrbueL6SiLkHq3Vyy11npj52PrI1JE1nc7Y4mLQuT0wNR4RaBY/D/qQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571068335; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mKfdVcMnjwr/PCEUJrPeGUjvWyXL5CqobGQSV80LBhI=; b=MEtcQpMbL5/MotBzxjQC1Bcrf1Gs12+hkAzBVOM4UVKX9/QqI8RmkrDBwwXSYHkR5Zs+eknF1C6emGuX9qSTBSJ3hCOWkjaB0QZGEoPqpA5PdleuJB9L29ZUSw1nq4POoLPPg2Sxj9y0AHnYdwx1PQuRuaYC+5SBQbG/v50psiE= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1571068335163975.9584664364693; Mon, 14 Oct 2019 08:52:15 -0700 (PDT) Received: from localhost ([::1]:51888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2do-00026f-ML for importer@patchew.org; Mon, 14 Oct 2019 11:52:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33807) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2Yf-0005Eh-7a for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iK2Yd-00083a-7p for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:53 -0400 Received: from rs224.mailgun.us ([209.61.151.224]:10123) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iK2YK-0007o1-3S for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:49 -0400 Received: from jonathan-ThinkPad-X1-Carbon.pdos.lcs.mit.edu (26-5-211.dynamic.csail.mit.edu [18.26.5.211]) by mxa.mailgun.org with ESMTP id 5da49851.7f705dace450-smtp-out-n01; Mon, 14 Oct 2019 15:46:25 -0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=fintelia.io; q=dns/txt; s=pic; t=1571067989; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=mKfdVcMnjwr/PCEUJrPeGUjvWyXL5CqobGQSV80LBhI=; b=2+TsIVlW9qVqiYooExvIi5uQyk9mqulUBOB+gUwDuoJkYZifnpeVIbDNN2D0u5k2q9sqPIgh YgBUtiXIDPSaGboAuuxxFSl3HARSSFqm7gph/424fzX7w5EBt2sFvIFLRFaNFHT+LqIqvYWH 7l6lcZo3dd+Q68qEtcgwQDHIZMGAGUqn6krFny0V+dYFIGMa+wHMaAkXM05L1QQkxU/QjJzB eK+A8Tw8zab76yrfzsblL39773XfkY/UFyMwDA9oXekHs8RjSUvQp0tztC5JIeumLaGAH6fe y6q1s2yd4guokLOcG8fHEXwxr2xmcQztV6d5wIJJxTVNzcdSdi6Ojw== X-Mailgun-Sending-Ip: 209.61.151.224 X-Mailgun-Sid: WyJlMGM5NSIsICJxZW11LWRldmVsQG5vbmdudS5vcmciLCAiOWI0ZTc2Il0= From: Jonathan Behrens To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v4 1/3] target/riscv: Tell gdbstub the correct number of CSRs Date: Mon, 14 Oct 2019 11:45:27 -0400 Message-Id: <20191014154529.287048-2-jonathan@fintelia.io> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014154529.287048-1-jonathan@fintelia.io> References: <20191014154529.287048-1-jonathan@fintelia.io> MIME-Version: 1.0 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: 209.61.151.224 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sagar Karandikar , Jonathan Behrens , Palmer Dabbelt , Alistair Francis , Bastian Koppelmann , Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" If the number of registers reported to the gdbstub code does not match the number in the associated XML file, then the register numbers used by the st= ub may get out of sync with a remote GDB instance. Signed-off-by: Jonathan Behrens Reviewed-by: Bin Meng Reviewed-by: Alistair Francis --- target/riscv/gdbstub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index ded140e8d8..cb5bfd3d50 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -384,7 +384,7 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs) } =20 gdb_register_coprocessor(cs, riscv_gdb_get_csr, riscv_gdb_set_csr, - 4096, "riscv-32bit-csr.xml", 0); + 240, "riscv-32bit-csr.xml", 0); #elif defined(TARGET_RISCV64) if (env->misa & RVF) { gdb_register_coprocessor(cs, riscv_gdb_get_fpu, riscv_gdb_set_fpu, @@ -392,6 +392,6 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs) } =20 gdb_register_coprocessor(cs, riscv_gdb_get_csr, riscv_gdb_set_csr, - 4096, "riscv-64bit-csr.xml", 0); + 240, "riscv-64bit-csr.xml", 0); #endif } --=20 2.23.0 From nobody Mon May 6 11:41:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1571068369; cv=none; d=zoho.com; s=zohoarc; b=nq7tdlPzgjViu22Uh8NVZQKA2hUC4CoXj4H3+88UUi4HQ+u7Ce2xTajw1ghJYGlDTd/lY0FfB7PxK96oXualBrGHDyCVATDuOKvPz8YveEPka3LbC99AHX/K/eAgYnmX/FwYe5FaclkHsAYdOR89uV9l84snzS8NSxDo3/zeH6U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571068369; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4uh4XYKZoSn8NOfnf5km4QH3rcQLS4UNihTw7pl8V1k=; b=ADuxhlaPPgcDfdlxwMdIaC7IIiZew21BgL3cAHIYFXgyx8qRDJzr9rJT8JhyUkRRPsca/+YQfXqd65iL9MEgCPa8qmyjz2oC06jVonY4rXZ/3RdExa6yV6a/gcUndJMwhSOvqdoIKKStpNEWiOBrPN0gJzLWd4sJc7nYNs38RQo= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1571068369061590.6986889166095; Mon, 14 Oct 2019 08:52:49 -0700 (PDT) Received: from localhost ([::1]:51896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2eN-0002P3-FF for importer@patchew.org; Mon, 14 Oct 2019 11:52:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33806) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2Yf-0005Eg-7A for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iK2Yd-00083Z-7d for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:53 -0400 Received: from rs224.mailgun.us ([209.61.151.224]:50623) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iK2YK-0007ql-5d for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:49 -0400 Received: from jonathan-ThinkPad-X1-Carbon.pdos.lcs.mit.edu (26-5-211.dynamic.csail.mit.edu [18.26.5.211]) by mxa.mailgun.org with ESMTP id 5da49853.7f705dace450-smtp-out-n01; Mon, 14 Oct 2019 15:46:27 -0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=fintelia.io; q=dns/txt; s=pic; t=1571067991; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=4uh4XYKZoSn8NOfnf5km4QH3rcQLS4UNihTw7pl8V1k=; b=frIcUwHlBZM0BOQ9ZwujlGfhDuepoGKyXSnUHWO1guGwkAyinv8KKc12syUIOxHUU7DKyxZH b8DdxpzLRzkffdY0imZVEa2X3Jgherseya3qgCmknjQB9AAhYtu0tNXKno+3yns8rwzAktTG MOkYPkFbOPs5D9A7l2I2SCVI5GQg7UxgDYNh6B33i83cFQT2GV1UKwaLRf0mZ5qMx5ixLZOZ JxbrmeuKvPhZbIInXe85IkVO+MQWNpEzUxCKcPfMTOKLbSLjsLn8v/OCnNdaGuHyKWitFiKi K7AvPywyO1tcBD3eS7z/+C3rlqeSvB9rxKBdy3S+X+O+QMxb2MGdWA== X-Mailgun-Sending-Ip: 209.61.151.224 X-Mailgun-Sid: WyJlMGM5NSIsICJxZW11LWRldmVsQG5vbmdudS5vcmciLCAiOWI0ZTc2Il0= From: Jonathan Behrens To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v4 2/3] target/riscv: Expose "priv" register for GDB for reads Date: Mon, 14 Oct 2019 11:45:28 -0400 Message-Id: <20191014154529.287048-3-jonathan@fintelia.io> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014154529.287048-1-jonathan@fintelia.io> References: <20191014154529.287048-1-jonathan@fintelia.io> MIME-Version: 1.0 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: 209.61.151.224 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sagar Karandikar , Jonathan Behrens , Palmer Dabbelt , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , Bastian Koppelmann , =?UTF-8?q?Alex=20Benn=C3=A9e?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This patch enables a debugger to read the current privilege level via a vir= tual "priv" register. When compiled with CONFIG_USER_ONLY the register is still visible but always reports the value zero. Signed-off-by: Jonathan Behrens Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Tested-by: Bin Meng --- configure | 4 ++-- gdb-xml/riscv-32bit-virtual.xml | 11 +++++++++++ gdb-xml/riscv-64bit-virtual.xml | 11 +++++++++++ target/riscv/gdbstub.c | 23 +++++++++++++++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 gdb-xml/riscv-32bit-virtual.xml create mode 100644 gdb-xml/riscv-64bit-virtual.xml diff --git a/configure b/configure index 30544f52e6..6118a6a045 100755 --- a/configure +++ b/configure @@ -7520,13 +7520,13 @@ case "$target_name" in TARGET_BASE_ARCH=3Driscv TARGET_ABI_DIR=3Driscv mttcg=3Dyes - gdb_xml_files=3D"riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-32bit-c= sr.xml" + gdb_xml_files=3D"riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-32bit-c= sr.xml riscv-32bit-virtual.xml" ;; riscv64) TARGET_BASE_ARCH=3Driscv TARGET_ABI_DIR=3Driscv mttcg=3Dyes - gdb_xml_files=3D"riscv-64bit-cpu.xml riscv-64bit-fpu.xml riscv-64bit-c= sr.xml" + gdb_xml_files=3D"riscv-64bit-cpu.xml riscv-64bit-fpu.xml riscv-64bit-c= sr.xml riscv-64bit-virtual.xml" ;; sh4|sh4eb) TARGET_ARCH=3Dsh4 diff --git a/gdb-xml/riscv-32bit-virtual.xml b/gdb-xml/riscv-32bit-virtual.= xml new file mode 100644 index 0000000000..905f1c555d --- /dev/null +++ b/gdb-xml/riscv-32bit-virtual.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/gdb-xml/riscv-64bit-virtual.xml b/gdb-xml/riscv-64bit-virtual.= xml new file mode 100644 index 0000000000..62d86c237b --- /dev/null +++ b/gdb-xml/riscv-64bit-virtual.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index cb5bfd3d50..1f71604b78 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -373,6 +373,23 @@ static int riscv_gdb_set_csr(CPURISCVState *env, uint8= _t *mem_buf, int n) return 0; } =20 +static int riscv_gdb_get_virtual(CPURISCVState *cs, uint8_t *mem_buf, int = n) +{ + if (n =3D=3D 0) { +#ifdef CONFIG_USER_ONLY + return gdb_get_regl(mem_buf, 0); +#else + return gdb_get_regl(mem_buf, cs->priv); +#endif + } + return 0; +} + +static int riscv_gdb_set_virtual(CPURISCVState *cs, uint8_t *mem_buf, int = n) +{ + return 0; +} + void riscv_cpu_register_gdb_regs_for_features(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); @@ -385,6 +402,9 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs) =20 gdb_register_coprocessor(cs, riscv_gdb_get_csr, riscv_gdb_set_csr, 240, "riscv-32bit-csr.xml", 0); + + gdb_register_coprocessor(cs, riscv_gdb_get_virtual, riscv_gdb_set_virt= ual, + 1, "riscv-32bit-virtual.xml", 0); #elif defined(TARGET_RISCV64) if (env->misa & RVF) { gdb_register_coprocessor(cs, riscv_gdb_get_fpu, riscv_gdb_set_fpu, @@ -393,5 +413,8 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs) =20 gdb_register_coprocessor(cs, riscv_gdb_get_csr, riscv_gdb_set_csr, 240, "riscv-64bit-csr.xml", 0); + + gdb_register_coprocessor(cs, riscv_gdb_get_virtual, riscv_gdb_set_virt= ual, + 1, "riscv-64bit-virtual.xml", 0); #endif } --=20 2.23.0 From nobody Mon May 6 11:41:20 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1571068187; cv=none; d=zoho.com; s=zohoarc; b=i6MKZcUXGjNkEOi0t+Yk2QjG5RGQiew9wvMz0UQy9E40djTsctcO/gNZh1I8HQwPmi87Oh16AqEvDGTp9J/P1a30SNc+ds/7dbHOGKlLCtPuLg/Bqol/uTRPr+vnR8J1EsoEV5pZEwyhNPHFXND34QVMQ5SvHcbThWZ3nyUe5rg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1571068187; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=us11dJP4tYiWCt+M3OJ3tptc3yO5a5+8OevvcFXza3A=; b=fKMK94n2B/mpDyo+9L1CBrGj5OzFXDVZouIx45x8EBtdn9R3ISQ4J2y+4yBDWPY7tcnheyUr6JwWPnRMSIGBuBtMkn5vmwSKV49uuPVx5jkRsh0M4paNxXjI+Ig+PvBws7+U0UJ4wgUFMd8uyuVbkH2Wd2cKIKVrw5U035SEE2Y= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1571068187508366.8317856885526; Mon, 14 Oct 2019 08:49:47 -0700 (PDT) Received: from localhost ([::1]:51830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2bS-00071g-04 for importer@patchew.org; Mon, 14 Oct 2019 11:49:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33748) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iK2YX-0005DS-HO for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iK2YV-00080b-3P for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:45 -0400 Received: from rs224.mailgun.us ([209.61.151.224]:22930) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iK2YP-0007ma-Di for qemu-devel@nongnu.org; Mon, 14 Oct 2019 11:46:42 -0400 Received: from jonathan-ThinkPad-X1-Carbon.pdos.lcs.mit.edu (26-5-211.dynamic.csail.mit.edu [18.26.5.211]) by mxa.mailgun.org with ESMTP id 5da49856.7f705dace450-smtp-out-n01; Mon, 14 Oct 2019 15:46:30 -0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=fintelia.io; q=dns/txt; s=pic; t=1571067998; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=us11dJP4tYiWCt+M3OJ3tptc3yO5a5+8OevvcFXza3A=; b=XGRwGyV3YhA8N1XDkNkIG5iwcjbuHMtD2FP1CeGFEDauoAKinVupJ52dt1ZasSsHvmB+EzNw AxWDK1XxEEsF/5+gD4h+ZMsF+fkQ+tWLNm4mm7fsLSPOT542sfzAT+acBThTrNtJsvxlt6B4 aClgMOuDMTP/wgNUNJmccFuHCvyH8viTwaPZ4i848Xv3n9zuhjfJko/dsyfjybDS03J2yPAP xaRdFFkIqQwd+EkR/v5iAQtTlJ36MomTvUMHc2vwQ9HD4tYBmumeWXky/T3OWmYFiPX5KqrD B4cenLfMXd5mXeFQ4hJWvWFzJFCweJArg0Zn8/0MXpuuQiQ3a3jQhw== X-Mailgun-Sending-Ip: 209.61.151.224 X-Mailgun-Sid: WyJlMGM5NSIsICJxZW11LWRldmVsQG5vbmdudS5vcmciLCAiOWI0ZTc2Il0= From: Jonathan Behrens To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v4 3/3] target/riscv: Make the priv register writable by GDB Date: Mon, 14 Oct 2019 11:45:29 -0400 Message-Id: <20191014154529.287048-4-jonathan@fintelia.io> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191014154529.287048-1-jonathan@fintelia.io> References: <20191014154529.287048-1-jonathan@fintelia.io> MIME-Version: 1.0 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: 209.61.151.224 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sagar Karandikar , Jonathan Behrens , Palmer Dabbelt , Alistair Francis , Bastian Koppelmann , Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Currently only PRV_U, PRV_S and PRV_M are supported, so this patch ensures = that the privilege mode is set to one of them. Once support for the H-extension = is added, this code will also need to properly update the virtualization status when switching between VU/VS-modes and M-mode. Signed-off-by: Jonathan Behrens Reviewed-by: Bin Meng Tested-by: Bin Meng Reviewed-by: Alistair Francis --- target/riscv/gdbstub.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index 1f71604b78..1a7947e019 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -387,6 +387,15 @@ static int riscv_gdb_get_virtual(CPURISCVState *cs, ui= nt8_t *mem_buf, int n) =20 static int riscv_gdb_set_virtual(CPURISCVState *cs, uint8_t *mem_buf, int = n) { + if (n =3D=3D 0) { +#ifndef CONFIG_USER_ONLY + cs->priv =3D ldtul_p(mem_buf) & 0x3; + if (cs->priv =3D=3D PRV_H) { + cs->priv =3D PRV_S; + } +#endif + return sizeof(target_ulong); + } return 0; } =20 --=20 2.23.0