From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262317917411.37983345657665; Tue, 27 Sep 2022 00:05:17 -0700 (PDT) Received: from localhost ([::1]:42084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4ea-0004bJ-Jc for importer@patchew.org; Tue, 27 Sep 2022 03:05:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47l-00050p-Fj for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:21 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47i-0001Eu-TK for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:20 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:11 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:08 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:11 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sB6Rggz1RwqL for ; Mon, 26 Sep 2022 23:31:10 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id iUhYyVUuZZdl for ; Mon, 26 Sep 2022 23:31:10 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8s90KY4z1RvTp; Mon, 26 Sep 2022 23:31:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260278; x=1695796278; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=p6+YXUCXUGeZxwmJkeAS3Bk65F/JmDABn0hfm3dL3wI=; b=PFTir6cITNJwtAN1+cz/WLvH0YNix9HyHk9/lbZ15O8QNUAeRbvtQqao hFGJ0QfvdtVqR18CMSjtU7e6UFpCSV5kcdK7SxLQ960QSPnnFOatdvLfN YVfWBVxCu4vcp6sv6Pl0h+XHKhucgMjYeouPGsAwl0LYyCLF1qW1NuIFt IHrKyaaxiqpfhsI14bai7DNH8W6joVlJ889yIsV4PMzb19SOJUa1ijOSv Ia6sYXvM2BB0oPME+habWbnBK4Ii8CYF/G3fUl6VdtAq3UTbTPlS+9kai KABHKgrnCBbo50jUBx8W10bWGWAWMbGKeltExxvDNhhF2z4/QbnYCwws5 A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530799" IronPort-SDR: /YuoxRtWfvJ0w4fyOpbKtATFyNHsiKi+wsX+HhLkRL888DYJccHcIcL5JTAIivbbgL0qt6x4B7 Ey+oRHyTXnJxALZajQPLJD5nDl8X7/EHl2/Jr6X3AC+j2KtNLHwz9gKmRPdr2a0M+L7FBIHzi6 xDGm9RfqZgqYbFx08nJgvyTUQTUHxjYoyBsjDqwjIUARFLckZdX+us47Tvk0ZwkJfy1rMvBCRx 5xh6bON2uswlfC16GLvAa7KOEYqTjaYbcmkFryzKju1WqJ3fqNE5CZ7LCzPF/3+W+Io5D0qWjI tSOLvZRbOr4NXOBvCcx/RSxj IronPort-SDR: yG92UJxTvB7JPXGN3WXPQg/7dSBwdaseBEfpm1e2oqsM2StjfU6ALNmRC15DQ9MPq1giAc8eap HmjN5ycBrSAGqVlKmlIzmEUvQzz0SCyd36k66d/tYRAYkEBuRrEazKqho0gMSembifoZkjYGmw /6u8yoGm8tBPQhaVYH/BmZq9lmnJzw0ypT3+d0Lmg+x1r3gaD5uiHoWWMn7Ee15DOZZKQ5QNuD ATwkcwTufvE9en1VzA9ePwiHnFk7iSpkOTaY6EFf6e+eKweDFjx+o9QxiKMmizSqhbaIB37XC5 sT8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260270; x=1666852271; bh=p6+YXUCXUGeZxwmJke AS3Bk65F/JmDABn0hfm3dL3wI=; b=qYQH1+NfCCiHGiWGfEoKUDL00CRgHXpq7q AwtS1aKjg/LFdYQ78tj5dAonuxLz/tOELEb0LchebVb+DShrfpOq/Ha3qsdBCUZ2 hMTpVhz9S6pBQ+Zm7hsVY7HQm2lrdchyHaZD3iGlCVi+OGhmYmQQevyCC0GUQPpM LKMmWvM2yIhhgyJgceaoHsaJtsyq5vEyp7yRrBQx6jnlQzv4X7n9kl+md2NMSqKe t0sRPodtci3Y/qG+GIsCDvq7vDAIKlnRTU2Y3/e1PZYSpcoEKAwVjVrgK2xYTogj 3W1REx4kw23PnPdFY1rtG+I/syERjRV3WCBQph7N88b19cpQfbJA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Alistair Francis , Andrew Jones Subject: [PULL v2 01/22] hw/ssi: ibex_spi: fixup typos in ibex_spi_host Date: Tue, 27 Sep 2022 16:30:43 +1000 Message-Id: <20220927063104.2846825-2-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262319910100001 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa This patch fixes up minor typos in ibex_spi_host Signed-off-by: Wilfred Mallawa Reviewed-by: Alistair Francis Reviewed-by: Andrew Jones Message-Id: <20220823061201.132342-2-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- hw/ssi/ibex_spi_host.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/ssi/ibex_spi_host.c b/hw/ssi/ibex_spi_host.c index d14580b409..601041d719 100644 --- a/hw/ssi/ibex_spi_host.c +++ b/hw/ssi/ibex_spi_host.c @@ -172,7 +172,7 @@ static void ibex_spi_host_irq(IbexSPIHostState *s) & R_INTR_STATE_SPI_EVENT_MASK; int err_irq =3D 0, event_irq =3D 0; =20 - /* Error IRQ enabled and Error IRQ Cleared*/ + /* Error IRQ enabled and Error IRQ Cleared */ if (error_en && !err_pending) { /* Event enabled, Interrupt Test Error */ if (s->regs[IBEX_SPI_HOST_INTR_TEST] & R_INTR_TEST_ERROR_MASK) { @@ -434,7 +434,7 @@ static void ibex_spi_host_write(void *opaque, hwaddr ad= dr, case IBEX_SPI_HOST_TXDATA: /* * This is a hardware `feature` where - * the first word written TXDATA after init is omitted entirely + * the first word written to TXDATA after init is omitted entirely */ if (s->init_status) { s->init_status =3D false; @@ -487,7 +487,7 @@ static void ibex_spi_host_write(void *opaque, hwaddr ad= dr, break; case IBEX_SPI_HOST_ERROR_STATUS: /* - * Indicates that any errors that have occurred. + * Indicates any errors that have occurred. * When an error occurs, the corresponding bit must be cleared * here before issuing any further commands */ --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664261065170920.669672632024; Mon, 26 Sep 2022 23:44:25 -0700 (PDT) Received: from localhost ([::1]:38992 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4KK-0006wO-QN for importer@patchew.org; Tue, 27 Sep 2022 02:44:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47j-0004zu-DS for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:21 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47f-0001F1-R3 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:18 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:12 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:09 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:13 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sD4mnLz1RvTp for ; Mon, 26 Sep 2022 23:31:12 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id bMM8hIDhf3PD for ; Mon, 26 Sep 2022 23:31:12 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sB6VF4z1Rwrq; Mon, 26 Sep 2022 23:31:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260275; x=1695796275; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GpWNsywmIiVnPWbPCFwnpmmYH4mspYVpr/PGb/mfhdE=; b=bu2Qj3g2G/+doJwhVnB4HBaJI8RswiUuvmYmgmq9rRkVCrGY8lA4B1ty mB+hclpAmtL4Buz6jvc/dNKngzw0+dYZVQy5RcwxPDNy+ulCkAG/uxbIT lHvRf+I5lQPXP0AExisl7igB9inVSW+oedrdpOu6Aot1X582eFN9Q9d1q ignSzxUmPnUlhcXrpgqe4YZU4GAKfVW4YbHjKY51X0Oa7nqNivOyIolDy 7FUpbYC/Kj0s9kjcHYceH2psC/pkAK4MrtLswFoVqilkICsIod8OJXlRV v69YbOJ68YGJE+B7SfLCSdQOjrEn8mtLpzhRQW178ZZlkovVfEiwfG5PU g==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530804" IronPort-SDR: d4K7jFtQ2+7DjFPuvrE5dxzMrbT93PT08iZBrKEATpxxl3fFPHQ7qTNKAPqC/CQ7VtkEXJS/EV MJDtkvhooY/E7FcdJ3FQ/Lza/PMvCFSgom4HP833jp/B5kZJfUCzBhQqCh1H+GWalLrTL0gLNb W1e5QsH9YTy5wR0Y/+2rXm4UerAfUsA1/qBAf5gN3FefNp6j4vhETSBXwCQkQ4ysnzkB/nztma c744fH52scd6HcScNnzSJfsC1v8Hnt2i+mC9AO2aeNXWSiOp/0HybAh/Idtymz6VU+gcOyC6KY n8goSqi8WCvMN7Aly+HPVjLk IronPort-SDR: FMN1ksKI+C/rF/BbT1fIPvMMu9OY+9Cv5nMeuqhbe3khDeyKBoAJMZrOuqfCwOvAv9IIgJ1tc2 wkzMlWima0ndRtJcc2LwFG2CKHQq4yXVYdhWLLbWxc5IrmBT+sX0RVCa+2TBdvnjp3PXF8S7Fa Yz6rT6MYfD2iWOWMDR7Td9UHlZmMhziBF/p+H/DOvornB3UrtrZMB4XaP01k2NBBE+CtKMyfin vGs8W613QK03n9g/ixeWRvK5yP2TUhhyWCDPCJufNY7r7l51i+REX+ls3II80Fag4yGQep86Iq HH0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260272; x=1666852273; bh=GpWNsywmIiVnPWbPCF wnpmmYH4mspYVpr/PGb/mfhdE=; b=MSi7xVf/OvgIJJNasZD18gHl3evyPtsQC7 OkqZCxPWYG6PQ6ZFli4dRHgH0COOJ6bg+xjr1uDHp5aquj0i7RBbka03zZyrtOVR 6BE8F1ysjdMiP+qC3w0Twf+dKvaojHBwJduFJFFlRqgpiOiaaxN1h2XoRkYek1oE iufYBKNCXCap/VxQ+dcLcRgP7BjVA5k9Ldxrg7fAqglAbC8YKOcwm5PTdQlgUTwR n+RK6DuZu7nGqspQhTZVLTNck+gtVdWwlCjyRam7TMPZ4JV3gVvXyVBRWQb17UOM yL0uvl8I/LVIyp/iV5gHUqH8YsCblBwgl/98xwkd/AK89bCaPgkg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Alistair Francis Subject: [PULL v2 02/22] hw/ssi: ibex_spi: update reg addr Date: Tue, 27 Sep 2022 16:30:44 +1000 Message-Id: <20220927063104.2846825-3-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664261068825100001 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa Updates the `EVENT_ENABLE` register to offset `0x34` as per OpenTitan spec [1]. [1] https://docs.opentitan.org/hw/ip/spi_host/doc/#Reg_event_enable Signed-off-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20220823061201.132342-5-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- hw/ssi/ibex_spi_host.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ssi/ibex_spi_host.c b/hw/ssi/ibex_spi_host.c index 601041d719..94d7da9cc2 100644 --- a/hw/ssi/ibex_spi_host.c +++ b/hw/ssi/ibex_spi_host.c @@ -93,7 +93,7 @@ REG32(ERROR_STATUS, 0x30) FIELD(ERROR_STATUS, CMDINVAL, 3, 1) FIELD(ERROR_STATUS, CSIDINVAL, 4, 1) FIELD(ERROR_STATUS, ACCESSINVAL, 5, 1) -REG32(EVENT_ENABLE, 0x30) +REG32(EVENT_ENABLE, 0x34) FIELD(EVENT_ENABLE, RXFULL, 0, 1) FIELD(EVENT_ENABLE, TXEMPTY, 1, 1) FIELD(EVENT_ENABLE, RXWM, 2, 1) --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262732201872.5797030828904; Tue, 27 Sep 2022 00:12:12 -0700 (PDT) Received: from localhost ([::1]:47114 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4lF-0002Sv-0B for importer@patchew.org; Tue, 27 Sep 2022 03:12:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36212) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47m-00052R-U4 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:23 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47j-0001F1-Lm for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:22 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:14 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:11 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:14 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sG11Ycz1RwqL for ; Mon, 26 Sep 2022 23:31:14 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id lE5fSWSTq7Mn for ; Mon, 26 Sep 2022 23:31:13 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sD3QDCz1RvLy; Mon, 26 Sep 2022 23:31:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260279; x=1695796279; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2aepwLmYndjeQUqiDDwWxQKp8PVopzzltTO9zBxY2SQ=; b=LLjrtoh3LfoeBO3Ypm6DDXuvM5A1pQFU8k8bSlf28if4S4e2cWbHO0GQ guKU6ATBHt+lR2iAaLTin+g+cRYrxrCGJ54AIDkTHvbTUAzJn+qLDaUYj 36cx2RQWFLdEtTyilAaZhiFhVo0OHCFk+DMusJUvC0YBSKYFstgTR0sQq Lk90Zh3TuDcaZh/pEmJ1AYBuFASw2OeZnObQsyHqOns8uHQrK4I9bhgph HsdWoncABMqOplTA9tilwu8yYousawjqc0KKRZu5F8+vASKut/+SWhHlU +bXtf1Zr9LDMcWrnExRvqK0wsdSigvZui9pyyIQ2c3X3R3uHKWi9hAFVO A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530808" IronPort-SDR: O+VlFrhXLY/Y59n1kDfYIhLrhi9spZSwM/gOs8JQOEkwBt6E+bIrB2KQgfIw0uXHQMqn//MPSX agJ8QXHYZcTtzahLj1TFHB4pUyBhxyptncqYE4FeXm6HoaJe2F6XnvvUZrAvqzvl8+crzYZLbW BUCt5GD/06RjjczdPrus8HNe4j7yJVZd4tJkRARRZDjlEjAP5+6FEeVEeFGqacNz5sXvAb3HYm TULt83YLaWLGry/scDjq3gx108QoZ9xxwlJW+zENuKHG7BlpDebrF6TQ9JSrwHUdLJQr0Mtg6h JrtX0rYG1s45/DmeQdQa+NRE IronPort-SDR: W6ghozHiRu/ECofBUz7wUmVuI6rpac4qJ0TyJcsLkM6EV4lOsDEaNiqDuaxiB0cFdHKRyWTcbz 6TzmdaTH8nZNrNr6/M3VBsWzCeSIgqIBl/DUea5bP08wcSZQGBgpGyPKg3erDmjPULGmQhWCrP wC4eNL4NckiP7luFCs5n2bfeb9pSW8pVaLtPUr3VCoaZM5JT/hKAGpBqTEiX/rlAWsetPbxnOy cCyo8jQsJp1vodx5c4AjPkBgRvCpnr9Jx1ygF8HZNiighZNCtNw7AddPip77eHB2a9nyDUm6zm DoY= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1664260273; x=1666852274; bh=2aepwLm YndjeQUqiDDwWxQKp8PVopzzltTO9zBxY2SQ=; b=JfUVQOA+Ob1rA2q5QxfUgkF XVtSlCeoon9ayjHb1/lfAGwdwAcShUnZ2Uky/ylIX/15JZpZr6s5qplWi6hzaKFD i8cIQ7IG+yB0By/btf3nAo00/JAT0S5EO9cuOa6DWZ3Km1dQoCxf83QtQ5JDWRH5 FrjEmTt2N/waEWUG4GUtLxYmDf6lyUfA8Ibad6rb64078K5YREn1BtKtszmk2Zi2 w+cfK2B/DMPZ4rXQd9RDagXObXz5n78hzLK9G1p/qZaENv5nuWm215hCEjHka+lE dU81BtWuMZ1eY+I26hiuKL3+bSCkZV8UbImFwTiA6cCeo5eJVx/kno+FRJ4G8RQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , Alistair Francis Subject: [PULL v2 03/22] docs/system: clean up code escape for riscv virt platform Date: Tue, 27 Sep 2022 16:30:45 +1000 Message-Id: <20220927063104.2846825-4-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262734036100001 Content-Type: text/plain; charset="utf-8" From: Alex Benn=C3=A9e The example code is rendered slightly mangled due to missing code block. Properly escape the code block and add shell prompt and qemu to fit in with the other examples on the page. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Alistair Francis Message-Id: <20220905163939.1599368-1-alex.bennee@linaro.org> Signed-off-by: Alistair Francis --- docs/system/riscv/virt.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docs/system/riscv/virt.rst b/docs/system/riscv/virt.rst index f8ecec95f3..4b16e41d7f 100644 --- a/docs/system/riscv/virt.rst +++ b/docs/system/riscv/virt.rst @@ -168,14 +168,19 @@ Enabling TPM =20 A TPM device can be connected to the virt board by following the steps bel= ow. =20 -First launch the TPM emulator +First launch the TPM emulator: =20 - swtpm socket --tpm2 -t -d --tpmstate dir=3D/tmp/tpm \ +.. code-block:: bash + + $ swtpm socket --tpm2 -t -d --tpmstate dir=3D/tmp/tpm \ --ctrl type=3Dunixio,path=3Dswtpm-sock =20 -Then launch QEMU with: +Then launch QEMU with some additional arguments to link a TPM device to th= e backend: + +.. code-block:: bash =20 - ... + $ qemu-system-riscv64 \ + ... other args .... \ -chardev socket,id=3Dchrtpm,path=3Dswtpm-sock \ -tpmdev emulator,id=3Dtpm0,chardev=3Dchrtpm \ -device tpm-tis-device,tpmdev=3Dtpm0 --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262002256147.87799659503094; Tue, 27 Sep 2022 00:00:02 -0700 (PDT) Received: from localhost ([::1]:56990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4ZV-0000i2-3G for importer@patchew.org; Tue, 27 Sep 2022 03:00:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36214) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47n-00052V-2P for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:23 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44542) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47j-0001Ek-Lj for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:22 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:16 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:13 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:16 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sJ1B3jz1RwqL for ; Mon, 26 Sep 2022 23:31:16 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id fZwtog9HuYU4 for ; Mon, 26 Sep 2022 23:31:15 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sG0st0z1RvTp; Mon, 26 Sep 2022 23:31:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260279; x=1695796279; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+KWxvID8/ZnnAhqL8VNp6KtA1Zxp1j2XC5T17FxQj4c=; b=E8jpo+kxFGsKTAFOsB6I1ePrXhRQ8uvR2lerxNeif2PCNKIJbO32ts6a jGmfJIEvluEvVDcLATV/frf/6E3t1ivD6dtu+Z0cjKglaP+lPklqoDtRS cuRDnNAQXp1yCtoVmfBBRw7Ke65sFnDbAodJZtQvNCvqpDAJtF350t9yR NOIZLWQVTPE4jZcrzNscSA9ISIuccL+0NJgsuKgIKXTNc1L3qQK5F7oec VTHEpdZwNVHb5fEXcDtd3HBuFtXIZzepx6TS/UigSYaRdSkmrSgUQeyEP mIg0yYpjxfFa4wyOcRzLI4tEwEEFci6zPU3EXyLl5u+HFchgrIGSnEGDL A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530814" IronPort-SDR: F6edjd++eBluELswIE/vxlrxjcrUxGyP5JI3AY08/8hvSIgzWcYad+AYp52J/utOhOPFq+ORdR PS+TTFN2lTi3RohLnu9jgxNxXPaFGpWeSCbcopCFPkk3yaEetQGLgGVMZtMEPnq0/Ny3p5hRFW YtuXAT88nxlZ8LqsgOXJdDrCSWSl39pb7L66amQNA5N7B/NDT1ftNQZuEX77zYogARwz3nZWEG Vv2nvVa6WcIquPJSHRGxcKgOyprIJnVb1TyerQr4BjRTdTFCc2zrAFTpZywAr6DhzfebFb3gbG pLXqbLjR2TgeIwIZi9CXuJRS IronPort-SDR: IH3LmMMIZBjOIgILSlMnOg1j1tVakV+uo5MDn4hv0HIbtXAkx4QZgKbUiHT1pZYG+Mr+Siam3N 0Jq1W1M7QGw7RaHj87U+I6ecjgG0qjurrWhWgm2UsF3JZFqSsbwBZOjz9Q4MwRH81ci/rpVBBL 4M6f045NC5mpdNwqr3f4adPGncUEvy5R96aQMK3A3thTbbQ0Jh0XhXHwjeecxzinjpa6p0iGCH Hbor1LAHbia6I/FhvZH32n/9zsTXGQd4xV71fyJrUszJQlU4tUhJXdoMIHZPzoOyDOgtqnOnz1 07M= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260275; x=1666852276; bh=+KWxvID8/ZnnAhqL8V Np6KtA1Zxp1j2XC5T17FxQj4c=; b=Vxrt7uBZJl4VlhzleO2HYtEt6kHDxPGjLe IOD81G+w19aOUWtJUQIdfeD4GsskFPwTB5X5yzOLfwvCVTAavtYbMZL5S1iv0LfI oPS75iHSkBUnfobwA4mCxBo7SSfXnjzSMOc9o0TS1ETCFD1cxkpRZCCvboOtYExT RwXWZE+n9YOvQzEcI6Oc/09jmwr1lLVO2jYPjMZZ1xBU02ow5EWggPXmYGdxjw4N 4CTE4eRd6wRcIrEYBs5+eStSdSXljnz02jsDrl4cuRkeWR7m6OCn9J/BG0tlZrxh mGuHR3B96EKRjJJKf4pPGIMVahmOh2Vvfg0J7UJnJbLo9z4cy0pA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rahul Pathak , Andrew Jones , Alistair Francis Subject: [PULL v2 04/22] target/riscv: Remove sideleg and sedeleg Date: Tue, 27 Sep 2022 16:30:46 +1000 Message-Id: <20220927063104.2846825-5-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262003756100001 Content-Type: text/plain; charset="utf-8" From: Rahul Pathak sideleg and sedeleg csrs are not part of riscv isa spec anymore, these csrs were part of N extension which is removed from the riscv isa specification. These commits removed all traces of these csrs from riscv spec (https://github.com/riscv/riscv-isa-manual) - commit f8d27f805b65 ("Remove or downgrade more references to N extension (#= 674)") commit b6cade07034d ("Remove N extension chapter for now") Signed-off-by: Rahul Pathak Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-Id: <20220824145255.400040-1-rpathak@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_bits.h | 2 -- disas/riscv.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 7be12cac2e..b762807e4e 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -190,8 +190,6 @@ =20 /* Supervisor Trap Setup */ #define CSR_SSTATUS 0x100 -#define CSR_SEDELEG 0x102 -#define CSR_SIDELEG 0x103 #define CSR_SIE 0x104 #define CSR_STVEC 0x105 #define CSR_SCOUNTEREN 0x106 diff --git a/disas/riscv.c b/disas/riscv.c index 489c2ae5e8..f107d94c4c 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -1304,8 +1304,6 @@ static const char *csr_name(int csrno) case 0x0043: return "utval"; case 0x0044: return "uip"; case 0x0100: return "sstatus"; - case 0x0102: return "sedeleg"; - case 0x0103: return "sideleg"; case 0x0104: return "sie"; case 0x0105: return "stvec"; case 0x0106: return "scounteren"; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664261661482783.2935140818437; Mon, 26 Sep 2022 23:54:21 -0700 (PDT) Received: from localhost ([::1]:51312 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4U0-0004om-1k for importer@patchew.org; Tue, 27 Sep 2022 02:54:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36220) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47o-00053L-6n for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:25 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47l-0001Eu-O0 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:23 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:17 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:14 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:18 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sK4ZWRz1RwqL for ; Mon, 26 Sep 2022 23:31:17 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pbYrQocnkpkJ for ; Mon, 26 Sep 2022 23:31:17 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sH6K62z1RvLy; Mon, 26 Sep 2022 23:31:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260281; x=1695796281; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DHQzmPIeQnXV7uw2Rg+3jXi+Skw1XkHJaFatBF3mOvA=; b=i1HhtO7LkNT+6pDDwGcCzB7Q+inCpj4EiCKVN5+aPh4AcThzTtTUwFij AQ14tuojG58iVac+io5plNbjoULVpARUO1d9SUtIza61cnRd7WY6ht0cN cUMd43vcvJJMMjrFYQgZnX6ho2GgMI9FmNR6z6Zc6H//vwcYDNw0I0Mjo kB+vUhkzYYZ+j+mhOh7DrdolLhyJ9jbtladxd/N0klKR504/WZr3k5buV CBENUB0aaYIn2x53bT4IzrFcBHH3BGM6QKzugQAz7V5mETiBmzUMmfRP/ J52yLO/Dth6ox5QUEamJuEuqvyiePcElQQ2mFKFB+OB9Gpx2udTSf7IDZ w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530818" IronPort-SDR: cGoXj5s5vMzomGnlka3ymQJe8nyMjAsOO+GDqs1rE512WZd9xn56mYCA9qRiMunCUd7E/eyiFP cs30zrXW5JsBwCavslsco5od8eFl4u/pzk+GmXaRzlpz7o0dLS4fIihid6PEg+Mzc+3W27cp7+ fdSQmZ6xbe9PNs6WIXhdg1vs+/ng1oviYHPKuHN22TOcyPCV/xncTnFObvJL+k9ohVJdbM9kmS cwaZKLuw80UEZReNkjYzx7fIkrOVHfbxcyBvbC1A4TMc6bZzybB6A9BDcOnv81nnlMLZA1pRTZ 25vX5Wen4kYU6HDS3sxnKi3S IronPort-SDR: 4CRsvBMz3W/pnvJhxgM1tV9Di1RpqWQIRp7JmD69388wramOYDZDKH0LHjEcvlAe/xiqWq/v+R HxVKNks7OSurLHsB4nYL33UDg1cK7Er4Ec+Naiqg8t8UuxRpCZDLMznrE+AQloL9eFHbB09Z6J T6OxkwjcWgl/niVRFnOd+ZgNbR488U+slSaoJATL11sEalkAMrzA65+xQNsc22lJXuBfKIWDxj MNXEzxB4Zx9glsiFRgIgy/Qx/bYSjqHgqObvGob8ntsbwQffj2tf6u1D80qoYdPR0i/tjRlJEb dOk= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260277; x=1666852278; bh=DHQzmPIeQnXV7uw2Rg +3jXi+Skw1XkHJaFatBF3mOvA=; b=Dk6I9lz3kbxFecYfW1nwneM3sunRF1wDGm jekIwZZK0oi4BIwuXhkbXuuwwxEoaijZuR4pHedvs+8OcLDN3pD+2Zd74yO97SGL nkHwbyw6I/3uVI2hTGffz378YcVlU354qnj22whHT5kq3IcXXD1cxDKFFjArIjJb GqlskoOydFozYqjlELQbGCtSXa3UnyWBo3I6BIsOwUmLITKkzarvgoI7d4nhe/67 oMi+7S02OILh9qmosAZqLvQt7PTYs1eCaUYxiXkJA08WQHJhPnozTOh4X70WlDHK evopk+8PIDJXzckcKFIH+iZahZ3ttmmutUsPZ7n4jiG82aDUwHpw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Weiwei Li , Junqiang Wang , Alistair Francis Subject: [PULL v2 05/22] target/riscv: fix csr check for cycle{h}, instret{h}, time{h}, hpmcounter3-31{h} Date: Tue, 27 Sep 2022 16:30:47 +1000 Message-Id: <20220927063104.2846825-6-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664261663383100001 Content-Type: text/plain; charset="utf-8" From: Weiwei Li - modify check for mcounteren to work in all less-privilege mode - modify check for scounteren to work only when S mode is enabled - distinguish the exception type raised by check for scounteren between U and VU mode Signed-off-by: Weiwei Li Signed-off-by: Junqiang Wang Reviewed-by: Alistair Francis Message-Id: <20220817083756.12471-1-liweiwei@iscas.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index b96db1b62b..092b425196 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -98,17 +98,22 @@ static RISCVException ctr(CPURISCVState *env, int csrno) =20 skip_ext_pmu_check: =20 - if (((env->priv =3D=3D PRV_S) && (!get_field(env->mcounteren, ctr_mask= ))) || - ((env->priv =3D=3D PRV_U) && (!get_field(env->scounteren, ctr_mask= )))) { + if (env->priv < PRV_M && !get_field(env->mcounteren, ctr_mask)) { return RISCV_EXCP_ILLEGAL_INST; } =20 if (riscv_cpu_virt_enabled(env)) { - if (!get_field(env->hcounteren, ctr_mask) && - get_field(env->mcounteren, ctr_mask)) { + if (!get_field(env->hcounteren, ctr_mask) || + (env->priv =3D=3D PRV_U && !get_field(env->scounteren, ctr_mas= k))) { return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } } + + if (riscv_has_ext(env, RVS) && env->priv =3D=3D PRV_U && + !get_field(env->scounteren, ctr_mask)) { + return RISCV_EXCP_ILLEGAL_INST; + } + #endif return RISCV_EXCP_NONE; } --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664261321599307.9637510351853; Mon, 26 Sep 2022 23:48:41 -0700 (PDT) Received: from localhost ([::1]:53302 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4OV-0001Nh-0Z for importer@patchew.org; Tue, 27 Sep 2022 02:48:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36226) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47p-00053R-6V for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:25 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47n-0001F1-56 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:24 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:19 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:16 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:19 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sM1Cv0z1RvTr for ; Mon, 26 Sep 2022 23:31:19 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2PdJvsxZJAHM for ; Mon, 26 Sep 2022 23:31:18 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sK447Wz1RvTp; Mon, 26 Sep 2022 23:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260283; x=1695796283; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=LTxemXnZbcn8GfTEOjD2bvRM5CcWr0Uc+73Is0/SJyo=; b=iN3TO6TZcCb9J3ft3IzGFcgmyfVlEXP+kMXkfTxpWAKk1UHDae73b0tT JEXcdPs90AyM6ehPXAD3YzMpFMN91klCLkfS3FIGFKclwYOm31xfj+pyH NhI8Rt0DceH8HaWO4T3iKuB1FGnY6zkY18mTEKBJcfNnxz8qM791u+KnF ab6FyIgLpsHcYB5FO5oNCW6P2NTr4mVkKZL9wqCcW1zEkalAGBNSRrsNo Go8ocTyX4iqNEiPA3qx46n5N7NuARzXzCD5Hm1LnQ35geEX571ktD1L7Z Xrq8a5eK8mLWK7fJ1VdRdthjbidmjrHZ3Q5/mOEojHE7/d2WjMoUMtg8n Q==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530825" IronPort-SDR: Pp3+fHs++2SHWxF4hzaGDx9rXkpvsF/QzTq8KzrF4kwI/u6f2bGllBHZzbUrGQPwUlSwZE7Oef cFQs7e9ayM9B2A7f0zTRvo8OZzMB1x17pxMC1G03qwVxfY6KmACG/KueN8cFYG+p5VZeNzxrfR 0DIJZjPy+oeb2N7/T9sgNoi5egzNiUX/WO74o/nB6sRarLGYsPCQTMR0Fr5NigPw1ECsBlkL+k KTz0ep6s0nIgfINILRsvoKtf8IHOWbHEDCYGSOL3N6PCXYLtl0EAsUkMS7nH7uUelOB1yBO4lF cl5M8itIgWKgmCvR6De6RJCG IronPort-SDR: 2ZI+AaLVctr/qvrb16+yl93U5qgAbt9EIkZ2aMgfXKaTd4p0FlcaE+DXy3NV35Z2JDZX03gCB/ FSW+SD7+2dUwtkkeeT7Zl9sXS1AsU57ndyVtmTjlX7+SeTqAPB1x9SjDo9jNy7fXH/9SyxTWZ5 8oabWp3XEMEslMT90oqGQQBWLb4lsfHNrFzDyRL9HDfXVjR4b0Qv+VuPVEB83/1lNCdDAGZO0n A8BePkcpfdqum71d8APqOwUdEwTL+E8IHAGgbqNbDg0ntu7m5PJQ1vOlF0wmABU45esS1RpFHF 1k0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260278; x=1666852279; bh=LTxemXnZbcn8GfTEOj D2bvRM5CcWr0Uc+73Is0/SJyo=; b=DwuOphu9yMfLEfQlNa86aRZQP0wNzidGFj 6GZt51MVQbRQk1nR8RttvDzyrkExcFz0KJwTZbC5Fq2V5H/zUeCaR+ashxA7pjDx xhzGUzqB6sufbZZUxKuovnHCd9HQ25rs/iniPIq3UAN3HVc9yjt5NflmpB7kf2t3 6qCZW8jRJEZAYe3wbn3O2Cm3PYj3kV2CABbjL7MAf0xSL2PGzePmvCrwCI8cIdal Xr9bum6uoSV2da4bvAR1Bj63UDj8bzopF6HkQfTS8nO+4PhLe9l3avBicqaUykfa oyCVIXxx+nC3Cjcy5pACdei4AILAL24a8yzBGgNK32vLW5JhC0sg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Andrew Burgess , Alistair Francis Subject: [PULL v2 06/22] target/riscv: remove fflags, frm, and fcsr from riscv-*-fpu.xml Date: Tue, 27 Sep 2022 16:30:48 +1000 Message-Id: <20220927063104.2846825-7-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664261323617100001 Content-Type: text/plain; charset="utf-8" From: Andrew Burgess While testing some changes to GDB's handling for the RISC-V registers fcsr, fflags, and frm, I spotted that QEMU includes these registers twice in the target description it sends to GDB, once in the fpu feature, and once in the csr feature. Right now things basically work OK, QEMU maps these registers onto two different register numbers, e.g. fcsr maps to both 68 and 73, and GDB can use either of these to access the register. However, GDB's target descriptions don't really work this way, each register should appear just once in a target description, mapping the register name onto the number GDB should use when accessing the register on the target. Duplicate register names actually result in duplicate registers on the GDB side, however, as the registers have the same name, the user can only access one of these registers. Currently GDB has a hack in place, specifically for RISC-V, to spot the duplicate copies of these three registers, and hide them from the user, ensuring the user only ever sees a single copy of each. In this commit I propose fixing this issue on the QEMU side, and in the process, simplify the fpu register handling a little. I think we should, remove fflags, frm, and fcsr from the two (32-bit and 64-bit) fpu feature xml files. These files will only contain the 32 core floating point register f0 to f31. The fflags, frm, and fcsr registers will continue to be advertised in the csr feature as they currently are. With that change made, I will simplify riscv_gdb_get_fpu and riscv_gdb_set_fpu, removing the extra handling for the 3 status registers. Signed-off-by: Andrew Burgess Reviewed-by: Alistair Francis Message-Id: <0fbf2a5b12e3210ff3867d5cf7022b3f3462c9c8.1661934573.git.aburge= ss@redhat.com> Signed-off-by: Alistair Francis --- target/riscv/gdbstub.c | 32 ++------------------------------ gdb-xml/riscv-32bit-fpu.xml | 4 ---- gdb-xml/riscv-64bit-fpu.xml | 4 ---- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index 9ed049c29e..9974b7aac6 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -114,20 +114,6 @@ static int riscv_gdb_get_fpu(CPURISCVState *env, GByte= Array *buf, int n) if (env->misa_ext & RVF) { return gdb_get_reg32(buf, env->fpr[n]); } - /* there is hole between ft11 and fflags in fpu.xml */ - } else if (n < 36 && n > 32) { - target_ulong val =3D 0; - int result; - /* - * CSR_FFLAGS is at index 1 in csr_register, and gdb says it is FP - * register 33, so we recalculate the map index. - * This also works for CSR_FRM and CSR_FCSR. - */ - result =3D riscv_csrrw_debug(env, n - 32, &val, - 0, 0); - if (result =3D=3D RISCV_EXCP_NONE) { - return gdb_get_regl(buf, val); - } } return 0; } @@ -137,20 +123,6 @@ static int riscv_gdb_set_fpu(CPURISCVState *env, uint8= _t *mem_buf, int n) if (n < 32) { env->fpr[n] =3D ldq_p(mem_buf); /* always 64-bit */ return sizeof(uint64_t); - /* there is hole between ft11 and fflags in fpu.xml */ - } else if (n < 36 && n > 32) { - target_ulong val =3D ldtul_p(mem_buf); - int result; - /* - * CSR_FFLAGS is at index 1 in csr_register, and gdb says it is FP - * register 33, so we recalculate the map index. - * This also works for CSR_FRM and CSR_FCSR. - */ - result =3D riscv_csrrw_debug(env, n - 32, NULL, - val, -1); - if (result =3D=3D RISCV_EXCP_NONE) { - return sizeof(target_ulong); - } } return 0; } @@ -404,10 +376,10 @@ void riscv_cpu_register_gdb_regs_for_features(CPUStat= e *cs) CPURISCVState *env =3D &cpu->env; if (env->misa_ext & RVD) { gdb_register_coprocessor(cs, riscv_gdb_get_fpu, riscv_gdb_set_fpu, - 36, "riscv-64bit-fpu.xml", 0); + 32, "riscv-64bit-fpu.xml", 0); } else if (env->misa_ext & RVF) { gdb_register_coprocessor(cs, riscv_gdb_get_fpu, riscv_gdb_set_fpu, - 36, "riscv-32bit-fpu.xml", 0); + 32, "riscv-32bit-fpu.xml", 0); } if (env->misa_ext & RVV) { gdb_register_coprocessor(cs, riscv_gdb_get_vector, riscv_gdb_set_v= ector, diff --git a/gdb-xml/riscv-32bit-fpu.xml b/gdb-xml/riscv-32bit-fpu.xml index 1eaae9119e..84a44ba8df 100644 --- a/gdb-xml/riscv-32bit-fpu.xml +++ b/gdb-xml/riscv-32bit-fpu.xml @@ -43,8 +43,4 @@ - - - - diff --git a/gdb-xml/riscv-64bit-fpu.xml b/gdb-xml/riscv-64bit-fpu.xml index 794854cc01..9856a9d1d3 100644 --- a/gdb-xml/riscv-64bit-fpu.xml +++ b/gdb-xml/riscv-64bit-fpu.xml @@ -49,8 +49,4 @@ - - - - --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664261927230148.33022712597142; Mon, 26 Sep 2022 23:58:47 -0700 (PDT) Received: from localhost ([::1]:35064 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4YI-0007yO-6C for importer@patchew.org; Tue, 27 Sep 2022 02:58:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36230) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47p-00054A-Ep for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:25 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44542) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47n-0001Ek-61 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:25 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:21 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:18 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:21 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sP0Qdgz1Rwt8 for ; Mon, 26 Sep 2022 23:31:21 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 3d6ho5fBK_Z8 for ; Mon, 26 Sep 2022 23:31:20 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sM0tXTz1RvLy; Mon, 26 Sep 2022 23:31:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260283; x=1695796283; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NSdLJUes/A5o/LxxgY5E+Ys07xPrASvSUN2mRI+b+Tw=; b=D+UAt5TgiLwOebRK4miLeK+sT16guj5/i5h3IDQY3OFhERvMBdl5szao rzzBelZImgZTplbC7w6U0ng7kbbmfzN3qBG1ClqGzSKjEEiBwSK2YKKhO BuEErfM7qOryvrKat2c4gQ7tJgl+JON0p8XmbpVY7y1qXrxnDeqnaZ4gk avBU5g8HMJbzkeL/o/PFzCLvXXaXprF11m4ZHKmLB38laq+Fe/Beixd2P mEgL7KCopn8OSWRfTY5L5kMjjoSFj9AXiG70PaZ8pFRtRUBhkdO+N1li/ LO7PLvffl1B8GBWdbC94TsMcw8iWG5Ssj80AUykkHs6TXHocRQlUspGR2 A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208,217";a="217530837" IronPort-SDR: ky/TVzS7TCwEx3hwH1LkuoRQmEVCseIex0vBFT8p1XOxClab9+4Aqm2K1zUCmemV9Y4w0sw6PH OyM2ObzrdZwxLUZHaUPZA9NzqT4eqNUgxO0L0r4XXXwTHa7TmNOuVWkBnzGMqkmCXXMBK+GEtu WO7M7LOawB90GyX+UTbIM8oHemjthXOf9jano9c8cJtr3YEKcQ/4b0sd/ScT5Y3TE5yiIl0h4r Lcoos/Q2oaA8BsuF56vu9tRxnIa31+1astkcCdqA3+02spQKi0ANd79Xbiz0SdfxLpsaCG44FI Qf9Vn/1yXBrfPwIo4gUU9ad+ IronPort-SDR: 6UadvnlFALCk8k4i48AduVs7lH7+s7szUUc6XgA3ItpUm3IEdyfqxEclenNSefmCR2y+H5OLMM 485ai7AD9Mls8T4rKkdRliAD3AEfoZSJoQ6palV1rfM1lPEfRDWpaFlEx8Hb+jhQivipRo6oPF JuI5yDi7MKKnVgeP3w5cwldn5fcg7rRpDr/i0t1NyLUZPmlQNHT4UnS1QRIiEMKlwrG5JdQtI0 HWYFO/hElGCPiYayXMTOJw9eFi5Onu0Ya5YE+/vKkuqF6RZdNMtdf2NxfpsM6jlK4VEfRd52hj e7A= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260280; x=1666852281; bh=NSdLJUes/A5o/LxxgY 5E+Ys07xPrASvSUN2mRI+b+Tw=; b=iz7GUcMsxZlAWgFhX/s9qz4KUlmMPA7D+0 dBigh1t7oPAYBmYTbxX/yIM9H7qQ4lLFdYjPWd65JsxMg8HcIAB6aMWEAHztEx1e T0RCGeO+/T48TqK+ipjA9XomNEF02DkUOAyuqRdyVozhqV9CubmdGo90YSMMLN8b GMOONJdVAfdj85MYJ8Ou3GHVuHXH6nEaCn/KS5EY4atrvtMNvNgmFXG0U8kwkpNy 4ob+ulkWOijHz0Ox502Zhe9n37QjutHAPVV2ZDI+E1O1hbu8ROULhHjyCWQl6WM/ 5kuM7hB2Jrr2fHVe2K0JJ7nh49s3Vxha5zmiDSS2iRZappZYqFug== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Andrew Burgess , Alistair Francis , Palmer Dabbelt Subject: [PULL v2 07/22] target/riscv: remove fixed numbering from GDB xml feature files Date: Tue, 27 Sep 2022 16:30:49 +1000 Message-Id: <20220927063104.2846825-8-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664261929158100001 Content-Type: text/plain; charset="utf-8" From: Andrew Burgess The fixed register numbering in the various GDB feature files for RISC-V only exists because these files were originally copied from the GDB source tree. However, the fixed numbering only exists in the GDB source tree so that GDB, when it connects to a target that doesn't provide a target description, will use a specific numbering scheme. That numbering scheme is designed to be compatible with the first versions of QEMU (for RISC-V), that didn't send a target description, and relied on a fixed numbering scheme. Because of the way that QEMU manages its target descriptions, recording the number of registers in each feature, and just relying on GDB's numbering starting from 0, then I propose that we remove all the fixed numbering from the RISC-V feature xml files, and just rely on the standard numbering scheme. Plenty of other targets manage their xml files this way, e.g. ARM, AArch64, Loongarch, m68k, rx, and s390. Signed-off-by: Andrew Burgess Acked-by: Alistair Francis Reviewed-by: Palmer Dabbelt Message-Id: <6069395f90e6fc24dac92197be815fedf42f5974.1661934573.git.aburge= ss@redhat.com> Signed-off-by: Alistair Francis --- gdb-xml/riscv-32bit-cpu.xml | 6 +----- gdb-xml/riscv-32bit-fpu.xml | 6 +----- gdb-xml/riscv-64bit-cpu.xml | 6 +----- gdb-xml/riscv-64bit-fpu.xml | 6 +----- 4 files changed, 4 insertions(+), 20 deletions(-) diff --git a/gdb-xml/riscv-32bit-cpu.xml b/gdb-xml/riscv-32bit-cpu.xml index 0d07aaec85..466f2c0648 100644 --- a/gdb-xml/riscv-32bit-cpu.xml +++ b/gdb-xml/riscv-32bit-cpu.xml @@ -5,13 +5,9 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> =20 - - - + diff --git a/gdb-xml/riscv-32bit-fpu.xml b/gdb-xml/riscv-32bit-fpu.xml index 84a44ba8df..24aa087031 100644 --- a/gdb-xml/riscv-32bit-fpu.xml +++ b/gdb-xml/riscv-32bit-fpu.xml @@ -5,13 +5,9 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> =20 - - - + diff --git a/gdb-xml/riscv-64bit-cpu.xml b/gdb-xml/riscv-64bit-cpu.xml index b8aa424ae4..c4d83de09b 100644 --- a/gdb-xml/riscv-64bit-cpu.xml +++ b/gdb-xml/riscv-64bit-cpu.xml @@ -5,13 +5,9 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> =20 - - - + diff --git a/gdb-xml/riscv-64bit-fpu.xml b/gdb-xml/riscv-64bit-fpu.xml index 9856a9d1d3..d0f17f9984 100644 --- a/gdb-xml/riscv-64bit-fpu.xml +++ b/gdb-xml/riscv-64bit-fpu.xml @@ -5,10 +5,6 @@ are permitted in any medium without royalty provided the copyright notice and this notice are preserved. --> =20 - - =20 @@ -17,7 +13,7 @@ =20 - + --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664263111449264.15142055378965; Tue, 27 Sep 2022 00:18:31 -0700 (PDT) Received: from localhost ([::1]:39690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4rO-0008MA-7L for importer@patchew.org; Tue, 27 Sep 2022 03:18:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47204) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47r-00055Z-CH for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:27 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47o-0001Eu-Iq for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:27 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:23 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:19 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:23 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sQ47YNz1RvTr for ; Mon, 26 Sep 2022 23:31:22 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7mUAZlddw8m1 for ; Mon, 26 Sep 2022 23:31:22 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sN6Cnvz1RvTp; Mon, 26 Sep 2022 23:31:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260284; x=1695796284; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=b02/TLqgF0kTES/41rCHOv0/nTxWSCUUk8n7CI4Sep4=; b=AtiesBOmznpfclccTtSmt/c7+ntk31BwPPfOhfI6ojN4EsrgJo0rTpwu apsJluDh0hCAcDa8/kBJl9FDwx+XsEEYJKaXNqpaQEy5FnYd3TqGi2tGG xan5aKVga2FiJH2D+yy8lHtoUQDoAtDrkPUEYbzL4GQpt+YuDquRtgkgE 3qIDd/jHMxHJmfktp0qDoP4u8NvmDsvANmAuQYHYsooVvcBKcEDif1kQi Cvol5wlVMK9eYzNubM01dX2ORGKVtSli6phsqnILUGCzzgjkEgXyegPN9 WGYsAPxtUtWZD2n1yuqc8juzABzYFUwzwGHt9mXrHNbvDEWxG1/h0ArpQ A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530852" IronPort-SDR: HyTT09ys2uNQl8w5PN6GZulkHH37ItNphW19nkUCR0wu3D2QVbbEnrfx+10Rcwt03/rlu2ZhJO +jUIUOMXpJJweKy07Hodyn9n0Cnq/W0EhXn7qv0mV/RTPhlkXg86p7JrXzG1cUL5xQ6vr0t+Gv XShLQ0x81E6t46hpkLyxXCHo5/GjPJQArnWz0ecq7xZ6NxToFW5paoeMN6g0OjLfXL64Yw/eYU DO9/its0zKfkqf9O3fb3hpTvE4vKH44mZBdftZfNz/d+nc3H6N5kw5mJvSsLhOdEOmU29olxW2 QJb20yxcQPl77AryDhOaIreN IronPort-SDR: e3ORU6wYpJBgmcsP68lsoAQFQ4O0wV3PJ9RQkLB/AHP7r7PifzCiJAUvrfgNp9auFHm9NVt/Jp 31vf4BPOU9znjtIynxiIDnSOb1lh8Rv+MHLoXj3y0u0utj1h/DXGiGu+Xk3Sqzez0XMBBIBCd+ XPG2yPaVtH9/ZqERgoEndalYT5VH6BVvM547mDf+jcd4XNfItbHldhxyEuFBh4uJ/gBlqIQRDp BTVwHpqvKhgR1f0nOONzE89IWP6CDxfL1UhBzTxgtTZu+pNPxDsCVq8UEw0M5IoRhXKNL7AduI fLs= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1664260282; x=1666852283; bh=b02/TLq gF0kTES/41rCHOv0/nTxWSCUUk8n7CI4Sep4=; b=h96xVQNTizjHM5h1V1HO+gk UHdrs7uT+eR5q3HFXYrKiPq+RnxVI5musvPpAjl8s47K1vNNFH+gwLO/LQ0S2PRJ tMBuG+gk2VdRRXfwi+mlPJrjkb//9gkWYhg5hrTy89V+9/ZtYBRSHrY9Z8HxsQGn Ep90G6kVIZRRQXczfHCfy0lwxQgv2IrK7S5sOTHTjCuaxeP9tCDLtZj1u2eKySei e05UjTFUj8gVQTyKytUtdndbcqVgvSbev9+0+AbjKHvuxxjiW/n3vgOV6d/6a8Ko zIdk4pxVnWlXUa9sF26e64jJWtfa7qlDvbgPpS40QhzsJmKWAfRgs0F/CvhuuNQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 08/22] target/riscv: Set the CPU resetvec directly Date: Tue, 27 Sep 2022 16:30:50 +1000 Message-Id: <20220927063104.2846825-9-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263112617100001 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Instead of using our properties to set a config value which then might be used to set the resetvec (depending on your timing), let's instead just set the resetvec directly in the env struct. This allows us to set the reset vec from the command line with: -global driver=3Driscv.hart_array,property=3Dresetvec,value=3D0x20000400 Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20220914101108.82571-2-alistair.francis@wdc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 3 +-- target/riscv/cpu.c | 13 +++---------- target/riscv/machine.c | 6 +++--- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 06751e1e3e..22344a620b 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -190,7 +190,7 @@ struct CPUArchState { /* This contains QEMU specific information about the virt state. */ target_ulong virt; target_ulong geilen; - target_ulong resetvec; + uint64_t resetvec; =20 target_ulong mhartid; /* @@ -474,7 +474,6 @@ struct RISCVCPUConfig { bool pmp; bool epmp; bool debug; - uint64_t resetvec; =20 bool short_isa_string; }; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index aee14a239a..b29c88b9f0 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -228,13 +228,6 @@ static void set_vext_version(CPURISCVState *env, int v= ext_ver) env->vext_ver =3D vext_ver; } =20 -static void set_resetvec(CPURISCVState *env, target_ulong resetvec) -{ -#ifndef CONFIG_USER_ONLY - env->resetvec =3D resetvec; -#endif -} - static void riscv_any_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -336,7 +329,6 @@ static void rv32_imafcu_nommu_cpu_init(Object *obj) =20 set_misa(env, MXL_RV32, RVI | RVM | RVA | RVF | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); cpu->cfg.mmu =3D false; } #endif @@ -676,7 +668,6 @@ static void riscv_cpu_realize(DeviceState *dev, Error *= *errp) riscv_set_feature(env, RISCV_FEATURE_DEBUG); } =20 - set_resetvec(env, cpu->cfg.resetvec); =20 #ifndef CONFIG_USER_ONLY if (cpu->cfg.ext_sstc) { @@ -1079,7 +1070,9 @@ static Property riscv_cpu_properties[] =3D { DEFINE_PROP_UINT64("marchid", RISCVCPU, cfg.marchid, RISCV_CPU_MARCHID= ), DEFINE_PROP_UINT64("mimpid", RISCVCPU, cfg.mimpid, RISCV_CPU_MIMPID), =20 - DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC), +#ifndef CONFIG_USER_ONLY + DEFINE_PROP_UINT64("resetvec", RISCVCPU, env.resetvec, DEFAULT_RSTVEC), +#endif =20 DEFINE_PROP_BOOL("short-isa-string", RISCVCPU, cfg.short_isa_string, f= alse), =20 diff --git a/target/riscv/machine.c b/target/riscv/machine.c index 41098f6ad0..c4e6b3bba4 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -308,8 +308,8 @@ static const VMStateDescription vmstate_pmu_ctr_state = =3D { =20 const VMStateDescription vmstate_riscv_cpu =3D { .name =3D "cpu", - .version_id =3D 4, - .minimum_version_id =3D 4, + .version_id =3D 5, + .minimum_version_id =3D 5, .post_load =3D riscv_cpu_post_load, .fields =3D (VMStateField[]) { VMSTATE_UINTTL_ARRAY(env.gpr, RISCVCPU, 32), @@ -331,7 +331,7 @@ const VMStateDescription vmstate_riscv_cpu =3D { VMSTATE_UINT32(env.features, RISCVCPU), VMSTATE_UINTTL(env.priv, RISCVCPU), VMSTATE_UINTTL(env.virt, RISCVCPU), - VMSTATE_UINTTL(env.resetvec, RISCVCPU), + VMSTATE_UINT64(env.resetvec, RISCVCPU), VMSTATE_UINTTL(env.mhartid, RISCVCPU), VMSTATE_UINT64(env.mstatus, RISCVCPU), VMSTATE_UINT64(env.mip, RISCVCPU), --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664263429967366.69511858837654; Tue, 27 Sep 2022 00:23:49 -0700 (PDT) Received: from localhost ([::1]:41598 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4wV-0005a2-V1 for importer@patchew.org; Tue, 27 Sep 2022 03:23:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47u-00058X-NE for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:31 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44550) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47p-0001F1-Lm for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:30 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:24 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:21 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:24 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sR5Kwmz1RvTp for ; Mon, 26 Sep 2022 23:31:23 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id E3e6AiyzhnVV for ; Mon, 26 Sep 2022 23:31:23 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sQ3MTkz1RvLy; Mon, 26 Sep 2022 23:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260285; x=1695796285; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rGwlR4H3pAHbNK6RHizCRzWAmLwAdBJ0/NRbGNOIiKc=; b=jpp8srqblcBzPnr0chPd6dE9d/iyCSrDSWSQ+4JK9QabCySMvyKqRD0F Vxa08oWSLbcb5B7AlcZCaGxr5E8ZB80AuctojUB16c/i4J+pR7zFoAi3j HjdV6b5Vr4dHlnJa2BeQEXZxNQdJhczmGVrC+bIzTBNU0TM8glCPmwcgu 2ss+2xA427FZe13TXKuCE1UaGkCwbgdc3Q989zHh1ciZbnBYFfezb1qV+ LJ3dIBUVPcXe7KNxcvTCVVZPhELN6kTsvbWCkNAhOhpyv30+dAr6hPH3j TQr6+DS6WkbpGrNnECQwhtBH2BPWk+S+dy8qMoZ3tI2dlycigdRh7ClwU w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530865" IronPort-SDR: hLVScpRA/91DxnyMnbRVdan264UlaU76QUyB/zVah/GQ4Vn4tqRO7XKzeKJ8Zj45COS+8/4BaF SmDKgc4WVJL7JwIe2iHdxK/C6AjqVDOGb4d93sd2tIYygyhLkzpEYR4OjvGZRFef7yWqzocVUf K4hSiik+V3Xc7xcjJ57UOSfe5MRar97oC49CMGUe8JTvBv2iMhyv04g4R4fZA18jjkDDkrdCes Xns3Za1gRyT33nQedMCXfSiM4hi7duZZbPNTLt/hm4uxf3vBEZRbG7cql37sOixD0/Jel1uCX3 trRIKJ74A1D9RjX9F55r6SeY IronPort-SDR: W9nHXuL5LuAZ8KE6sgiANtGSRPxE+Q3kGegEhe0BSpFeoAJe+wLmFW0QLNBWOagtvUTS7W+Scq xVZ7m/Ryx/VVyZaoB9MN6lRPZ+gswdTDOeTgEIcXux9grEA+KyTXaAOg4i4oknF+/jzElCgyVY HrZhb8QGURKNUqBRnYcKga3kpQiVasjpFd8wEaX5clU91Hzlw1DX0YLPCSdtHbaKI/yeUoRjhj ykl+V6s15SSCiIR9xLeTx2sYbiG9Ltwwpdob8Gc9rcNVhYlxLlWBS8+FnZmdnQRZMFs9C/ttM/ UVo= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260283; x=1666852284; bh=rGwlR4H3pAHbNK6RHi zCRzWAmLwAdBJ0/NRbGNOIiKc=; b=HXGLexN+VXPrXWJJSemZZ7mhjl5jYqIfbt 0ggoRAWxR1TKytqRuuJ8kvzoyEODe6w6S63stCc5s7LwAS84hHMFUGoqr5mcHIhe SfZaieNTkvQ/zuvx/QOHIfXLOLFnrnQh5Un40hfrb3g+/zjgyoLCDRF3l5SP6MgC 1CFmbTCUB5bDS8jRTvz/ammmAFwbM83JhAS+eDwrtzApNpvHKNFyb0LKBSNvL0U7 WTeOmXIKAW9MFCzBWJM3RiEg/2LpEyWLK0nFkmMgDP/VOHNwNI9tUYe0EluAR4HL 0Ja87unXqxhHaYkqZ4J+SFhuXdrKuWXtv1KRb2qVLsKHrqzjSEGA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Alistair Francis Subject: [PULL v2 09/22] hw/riscv: opentitan: Fixup resetvec Date: Tue, 27 Sep 2022 16:30:51 +1000 Message-Id: <20220927063104.2846825-10-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, T_SPF_TEMPERROR=0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263430935100001 Content-Type: text/plain; charset="utf-8" From: Alistair Francis The resetvec for the OpenTitan machine ended up being set to an out of date value, so let's fix that and bump it to the correct start address (after the boot ROM) Fixes: bf8803c64d75 "hw/riscv: opentitan: bump opentitan version" Signed-off-by: Alistair Francis Message-Id: <20220914101108.82571-3-alistair.francis@wdc.com> Signed-off-by: Alistair Francis --- hw/riscv/opentitan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index af13dbe3b1..45c92c9bbc 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -142,7 +142,7 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_s= oc, Error **errp) &error_abort); object_property_set_int(OBJECT(&s->cpus), "num-harts", ms->smp.cpus, &error_abort); - object_property_set_int(OBJECT(&s->cpus), "resetvec", 0x20000490, + object_property_set_int(OBJECT(&s->cpus), "resetvec", 0x20000400, &error_abort); sysbus_realize(SYS_BUS_DEVICE(&s->cpus), &error_fatal); =20 --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262488738887.3594344591289; Tue, 27 Sep 2022 00:08:08 -0700 (PDT) Received: from localhost ([::1]:57760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4hK-0006qV-J5 for importer@patchew.org; Tue, 27 Sep 2022 03:08:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47206) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47t-00057n-F3 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:30 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44542) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od47r-0001Ek-MJ for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:29 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:25 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:22 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:26 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sT4FTRz1Rwt8 for ; Mon, 26 Sep 2022 23:31:25 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Nhynr5PLbgqo for ; Mon, 26 Sep 2022 23:31:25 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sR5ykpz1RvLy; Mon, 26 Sep 2022 23:31:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260287; x=1695796287; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vZU/43lRY2chLbAeJzOxBBpvBmMQMwxjZ66GSqjz1/4=; b=XrjjlfIfZwbfggpri237pBU4uBow7npu9Tt5WZJmtQkQaXcoiGUgh41m UMbkG0femKKD3lIBJPH+rhl4XEQ+f3PRsOHrzZw7z/d7HHFDixp2VBjMV Re3Ij1gU2/NSFPvYTL8qXNVC2UcOXysnGiWlvs5MnegiMfEUgoEqbDHLP 5+RVM6r/XWAB0vpSupDcdQ+4L/g/VRpZdwkHgo8uEh9uG511wM7I7Q71S HJHSDS89wR6/TDR68PgKD6N6Q+65QRhRnDl+Gr3nKb9stIpAqBx/m4p2Y oL3BrMgWVIpphcNI2eijzkYFTZ5v+DRg/S4Pynxo92LDUNqJwcu+CfHew w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530876" IronPort-SDR: 42TEoyIoxHIerJ8gQGeSo9iof0Pz0lfMevKu/GrMHkQhoF5Cpq+zWEr6+PdQl7nyPgE8J9P1Ke LPXssg4Yz28spL//geY5zzGpe27r8jAKAGllkw99eVi47dysrRue86dxyvz19e8pqHZgSy8Sfa nSoonOEhQn/WKCmE8dvoa13ReaMUxcoJYPKwDgFDTQ8To+gpXXRFNIEP+cslJ8n8iqUhfKv8PY Lik23BpZ2PildLUUFDeh54tByqD21anL7bt6hgwlDcXLDQpS1r9lkEZpSPAa1NoxNFc1me8qtV l8oIfuH8CoP1XoxI58lmK3OR IronPort-SDR: XOhtK1GToLP3+JXz1T80JaWYfbbX3tgIadagn6Vr3lu2FGCEE3vJ7sf9KAIH1emt5fZClLx6fM 6ETsE/HYMyIvMdbxar5eIRNEnf8oOdgS8Mvc8hhfyR8vyMdYd7TqZidA5b2rSsRQrTSis5Vhuj s+tfF7hlhs3MjoCJqZENueS6l6lMv3U9yMaeo6BI2V0crULi9SWlGPIQq4vwqvUPFsOXHrYb/J RSm/V8g/wyUW9aFTrjPN5xS32XdKVifdeCNhi6Xoo71LmA10tYSDuzpvwFed1Ov2Ya12DmSukQ lCw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1664260285; x=1666852286; bh=vZU/43l RY2chLbAeJzOxBBpvBmMQMwxjZ66GSqjz1/4=; b=JMg2ghR3Ei4LFO6diuxp6Ws dPEtNdRCpBxXs6THW5apSOwIAo/WVzWmEbjTUBvHMRXC+BNU1hJefNzAUae3xj0S ellk7nucdohLNF0g1tWnRxPw62LVpnKiepoIk1g7WJf8HX6XR+MtC7Or0Ov9TuuO x5mrvcWc5BSSVYypRA4GEIBHEgcF8j9ffPFAfAnV3Pse3hKmLaEsv1/WavD5JN7/ NkJz4WoLQlCKRSCULN17yrdATtzvSkzMlbYnBRvo+Yyv1IKtp8FViQ0cjOeUg/Li S2k1gI8SOIv0K3ozPhOmqCLHF2LhxsGJOEP7eW6CCBiNCO0IWNPJ3lIBCTepeUQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 10/22] hw/riscv: opentitan: Expose the resetvec as a SoC property Date: Tue, 27 Sep 2022 16:30:52 +1000 Message-Id: <20220927063104.2846825-11-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262489860100001 Content-Type: text/plain; charset="utf-8" From: Alistair Francis On the OpenTitan hardware the resetvec is fixed at the start of ROM. In QEMU we don't run the ROM code and instead just jump to the next stage. This means we need to be a little more flexible about what the resetvec is. This patch allows us to set the resetvec from the command line with something like this: -global driver=3Driscv.lowrisc.ibex.soc,property=3Dresetvec,value=3D0x2= 0000400 This way as the next stage changes we can update the resetvec. Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20220914101108.82571-4-alistair.francis@wdc.com> Signed-off-by: Alistair Francis --- include/hw/riscv/opentitan.h | 2 ++ hw/riscv/opentitan.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h index 26d960f288..6665cd5794 100644 --- a/include/hw/riscv/opentitan.h +++ b/include/hw/riscv/opentitan.h @@ -46,6 +46,8 @@ struct LowRISCIbexSoCState { IbexTimerState timer; IbexSPIHostState spi_host[OPENTITAN_NUM_SPI_HOSTS]; =20 + uint32_t resetvec; + MemoryRegion flash_mem; MemoryRegion rom; MemoryRegion flash_alias; diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index 45c92c9bbc..be7ff1eea0 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -142,7 +142,7 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_s= oc, Error **errp) &error_abort); object_property_set_int(OBJECT(&s->cpus), "num-harts", ms->smp.cpus, &error_abort); - object_property_set_int(OBJECT(&s->cpus), "resetvec", 0x20000400, + object_property_set_int(OBJECT(&s->cpus), "resetvec", s->resetvec, &error_abort); sysbus_realize(SYS_BUS_DEVICE(&s->cpus), &error_fatal); =20 @@ -297,10 +297,16 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev= _soc, Error **errp) memmap[IBEX_DEV_PERI].base, memmap[IBEX_DEV_PERI].size); } =20 +static Property lowrisc_ibex_soc_props[] =3D { + DEFINE_PROP_UINT32("resetvec", LowRISCIbexSoCState, resetvec, 0x200004= 00), + DEFINE_PROP_END_OF_LIST() +}; + static void lowrisc_ibex_soc_class_init(ObjectClass *oc, void *data) { DeviceClass *dc =3D DEVICE_CLASS(oc); =20 + device_class_set_props(dc, lowrisc_ibex_soc_props); dc->realize =3D lowrisc_ibex_soc_realize; /* Reason: Uses serial_hds in realize function, thus can't be used twi= ce */ dc->user_creatable =3D false; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262862723115.90390586990486; Tue, 27 Sep 2022 00:14:22 -0700 (PDT) Received: from localhost ([::1]:38582 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4nN-0004is-Ge for importer@patchew.org; Tue, 27 Sep 2022 03:14:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55550) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od484-0005OZ-Qg for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:40 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od483-0001Eu-0V for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:40 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:28 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:25 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:28 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sW5JWlz1Rwt8 for ; Mon, 26 Sep 2022 23:31:27 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id L2B_LbBLQ1c3 for ; Mon, 26 Sep 2022 23:31:27 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sT43nKz1Rwrq; Mon, 26 Sep 2022 23:31:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260298; x=1695796298; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=49WlqYfO64I71tqOUFqqzaqviZGiRfGdnwt6HuZ6xNk=; b=P2C7yRkQN7CZyaK7JgJSBtT7GdOWEZYUz9T/ZcWr9dy5KO+Y4B0f4mEF TucQjLwbHcCLain7/FKF43zZ9dA31N7FrOdPMUx/YgBi2B4/4M0+mwnkP E6PVpI+tthBMtnT1KmOdjG1ZTm02zGVxjm15Js4xsQ69V4hp9QLiQOGYH Z1ppy02oIX3cCLXuVVEpy752nCdZRn0c58DPEfDsIC9qrcFPibeqGIEoY eX7ZJrhLzCY98xRkL/XP1nENYU/GX3O+xY93zFUI+merEqsX5rovRhZUj kedynbRWErHZVSnbT+L1breYkQbttAGUXWr/anXeeEnhTJhe4iHcNqWtz A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530886" IronPort-SDR: aJDcScBxJUSAPUCfyXYcZi6An0Uv6Hwq53klqun0qthAtAr+dbl1khmc+LXkc1iQm+Ca6qCWHt x+vrJYm8Pb4WpCAo5z+gdtUENj5XCrZBogEL2wedulqEv3AvOq+CZABh+CRTCl3LXD9bN9JD+N G+loeT/uor5gef/hBOwa/yCX+FiUqhfrY2Uwdq3t7dTg5obhSOpyviD70w/aslz2Hrv3CdIFcp YI4ZNG/gHKJE3BWMJbOoSPVY6Ph1pU1JJumyc5Uuolh6J4uLlC5EiG73Q62Mqc77R3/T+FEBqC fQf1G/graFE2TXssM0IqlkVB IronPort-SDR: jVxv5Uj1FyKy7wH0k7PtLK0TZV41vFOMvniKO8MHo/rNNq3SDt4KmdbidSSUbAleu56EX7RdxX ayhlzeyscCsfnh2LOIfDBIiYA+MaXTK+c6wjDOvCxbx4HaU4uMLIFhpSbD7unhc/U/oCY+DUnV HYi+sBinUHAtOXfRXZiRAog3bRKe9z5RvvtXll9O2VB5T1zWdQkQsBW0ULC24K6DBU7ogXtGFL esJLT0+oOeGN6M3hDdXVKbQtR7OtLZS6oNd88/AGZ8KLu285ctJzZZ2M/lJTBbZi9v59EVI5cz B6k= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260287; x=1666852288; bh=49WlqYfO64I71tqOUF qqzaqviZGiRfGdnwt6HuZ6xNk=; b=qGIWIZ6sFp0RRZwSjjLbClOsBAZzk9Csya rWmgiVB3S/Zyy0jTsrQIIWtrHtQAoKwRceMSXnPxiGlJrqIBi99xfGrIMlVBt9kW S7KzIGkS23u6f4FRKjwqUDJRjWCP7XGSm4wrkiKJkFmteWvzY4duQRa4snSOK3eH tV+i9lXqeLgl+NasOMxBtfkAflV/E/Ml+J0H4AYzE++yiw4a5oErkqMHkvRx6fQs Ku+8zG6OdGeKRt43/YSXqjtnYSgVFqvStp5ZwI+L9aHPNMT4+5/0H8G+JDry5VJ2 phDe6CV9jgyOg7Z4kcNSlhi1FlQychPlLr74NNz+reR3tniC3LIg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Jim Shu , Tommy Wu , Alistair Francis , LIU Zhiwei Subject: [PULL v2 11/22] target/riscv: Check the correct exception cause in vector GDB stub Date: Tue, 27 Sep 2022 16:30:53 +1000 Message-Id: <20220927063104.2846825-12-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262864797100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang After RISCVException enum is introduced, riscv_csrrw_debug() returns RISCV_EXCP_NONE to indicate there's no error. RISC-V vector GDB stub should check the result against RISCV_EXCP_NONE instead of value 0. Otherwise, 'E14' packet would be incorrectly reported for vector CSRs when using "info reg vector" GDB command. Signed-off-by: Frank Chang Reviewed-by: Jim Shu Reviewed-by: Tommy Wu Reviewed-by: Alistair Francis Reviewed-by: LIU Zhiwei Message-Id: <20220918083245.13028-1-frank.chang@sifive.com> Signed-off-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 9974b7aac6..6e7bbdbd5e 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -183,7 +183,7 @@ static int riscv_gdb_get_vector(CPURISCVState *env, GBy= teArray *buf, int n) target_ulong val =3D 0; int result =3D riscv_csrrw_debug(env, csrno, &val, 0, 0); =20 - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return gdb_get_regl(buf, val); } =20 @@ -210,7 +210,7 @@ static int riscv_gdb_set_vector(CPURISCVState *env, uin= t8_t *mem_buf, int n) target_ulong val =3D ldtul_p(mem_buf); int result =3D riscv_csrrw_debug(env, csrno, NULL, val, -1); =20 - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return sizeof(target_ulong); } =20 --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 166426329547711.583604325733518; Tue, 27 Sep 2022 00:21:35 -0700 (PDT) Received: from localhost ([::1]:48504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4uL-0002ND-7E for importer@patchew.org; Tue, 27 Sep 2022 03:21:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55552) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od488-0005WG-FT for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:44 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od486-0001I9-PI for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:44 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:31 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:28 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:29 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sY3LfHz1RwqL for ; Mon, 26 Sep 2022 23:31:29 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id QHr8etx1G4v0 for ; Mon, 26 Sep 2022 23:31:29 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sW4vrZz1RvLy; Mon, 26 Sep 2022 23:31:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260302; x=1695796302; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QyBVGcd6Cwcjc0ADM0uVkz/DPsRMQf9EmyGrDa37jrI=; b=n2PTQzcjxyqBypi7hbYUZtp2W/vgCaJc3UPN0P8h0kuQMqBHrB+WITrH DUV+DOB1PKKe8wDEJIihJ/l0Zt0bjIttushPb9hVA/2SYXWZN1CUKuOY8 R1tYAHpoFKkK8cuJn++oQ17woi8tquEWr9QdxlfOLdlNi2wjfBrE9ZyV7 qTh8td/33UVhIjQj8mcK/XTNUBYG414Dztc0AYOg/8ZLGwXoeCaUw9Crf VLJLzXUmyp2npPwEix6qk4if7AIR69/bsGw8Hz9GCovKUPz4GoUnKgbyd 67TDKIrfyiYJ12nmTgVH9YK6zs1gqcxW/OcsbjXW0UbsM/CQuqrGyRzva w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530894" IronPort-SDR: RPTHwMQdslSMwZCK6pvJV4PFmAcAHyjB1s3gPYsPEeUb7xFe2oajGIG3bMh/cSy/D6KyzvPQS1 l/ZCvWhDeIxWQD3CezK8BrGBcbSofYWl98s3NoksN4CjcCWcZ4peRzqRMSjFBzv1gGgG5TOQUg NMxyUyeYk0Y/iPJIXH5tkjDRxuk7KV42lxx7qja7XoFO5rXNPKTLKsOZcs0L70dV1iuhfhs1FK hptCcwCf2t2BgPKBMRPfTjvQvw/RJYK541e+AnxOmNS2rdXIXAab5nQ22cTTKAOwSH/nQTXAie sfuqQzPVIhfwqACSJ5gFsq1t IronPort-SDR: AfW1mcIJaCukd8KdHq7z7xhdJalzVpGHzODaVGZUVZbUrxWGZ2k8jTG0kC0OfHXxJy3luaBbro F36aierHJlcBuQTtU/RemfEGN4SPvmjnHxRN6/iXLUAdE9iqrcQhsTAJBA/bCfMU75eD8nCP7r DAhH9fz1VPKZH01HNYk1yfMG3sLP5jAFEKf4TYFpEUCOC67kxgjUsrBk6yC9bPdJM2ZGEN073V 5eNMbHMNDiQYzIaYpDPVZji//5jIEHOqlIvl+Zs1czGKqFnogd07pioenoHAPenTMlomEoGzgb qCA= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1664260289; x=1666852290; bh=QyBVGcd 6Cwcjc0ADM0uVkz/DPsRMQf9EmyGrDa37jrI=; b=hWYAUtVSO44Ty+KY7Av1Gzq XVo8sKbwyFjd7g8Cc9ubFUbBjaEt/pPggWc8Jafoc5PMn+Ikg2V1GfszBtDescks +QIogl7XpBBB/YDpXUJqyg7q+zCnWIciW84lR8ogiyueKoMz9Xfz7U2W3f+xR9e0 7390GPfL04ZyDGMBURNQ2PKUmKE+NkzKRZgB4FX8HBWqglspKpotmNTYcy5h9HKQ S1yiiS7Ud/9EgQGZuhVbyVhRMSzh41rakVjQI2w1lb61pIocpRFv04VF6U3vyqBo VdvpVUFObdLRE+hjgvZ2rVWyQFm2mbIBGF/szYbUSgDQ9r6bLIzgSPW4sgT8dMw= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bernhard Beschow , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 12/22] hw/riscv/sifive_e: Fix inheritance of SiFiveEState Date: Tue, 27 Sep 2022 16:30:54 +1000 Message-Id: <20220927063104.2846825-13-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263295870100001 Content-Type: text/plain; charset="utf-8" From: Bernhard Beschow SiFiveEState inherits from SysBusDevice while it's TypeInfo claims it to inherit from TYPE_MACHINE. This is an inconsistency which can cause undefined behavior such as memory corruption. Change SiFiveEState to inherit from MachineState since it is registered as a machine. Fixes: 0869490b1c ("riscv: sifive_e: Manually define the machine") Signed-off-by: Bernhard Beschow Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20220922075232.33653-1-shentey@gmail.com> Signed-off-by: Alistair Francis --- include/hw/riscv/sifive_e.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/hw/riscv/sifive_e.h b/include/hw/riscv/sifive_e.h index 83604da805..d738745925 100644 --- a/include/hw/riscv/sifive_e.h +++ b/include/hw/riscv/sifive_e.h @@ -22,6 +22,7 @@ #include "hw/riscv/riscv_hart.h" #include "hw/riscv/sifive_cpu.h" #include "hw/gpio/sifive_gpio.h" +#include "hw/boards.h" =20 #define TYPE_RISCV_E_SOC "riscv.sifive.e.soc" #define RISCV_E_SOC(obj) \ @@ -41,7 +42,7 @@ typedef struct SiFiveESoCState { =20 typedef struct SiFiveEState { /*< private >*/ - SysBusDevice parent_obj; + MachineState parent_obj; =20 /*< public >*/ SiFiveESoCState soc; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664263873315432.8266249485831; Tue, 27 Sep 2022 00:31:13 -0700 (PDT) Received: from localhost ([::1]:60930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od53f-00033U-VR for importer@patchew.org; Tue, 27 Sep 2022 03:31:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37154) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48C-0005e6-NH for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:48 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44585) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od489-0001Ix-6I for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:48 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:32 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:29 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:32 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sc36plz1RwtC for ; Mon, 26 Sep 2022 23:31:32 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id nHfp7Wh1cGzW for ; Mon, 26 Sep 2022 23:31:31 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sY3Cqwz1RvTr; Mon, 26 Sep 2022 23:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260305; x=1695796305; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=N266dCsPnh4l0atlFrJgTB6RphVexYpVDW7esZm8d+o=; b=Me/bUh44pnghFoE7KIjMcJs//Jb81ceoR06hbhxA/OGDoiSjW3OYn2AI 5E/l3sy56jXMWpX/6ev/w7iBtXFC63yzTEZEV+kyh1t3N6x+j6b91wIPx rjGlwc2Z+Orsvjv2Rucq+CXgeiC/HyUBRSC1+TXHOsTfQBbUfx6yahSSC ZavHoMXsWOGNqpOeJYdJTB7hDhD3IvHtmHeGszHNge0851j7GQcQ6z+1n YVD3d0YmqMobg8PQngRfttnvGNwNAyDwHHPyRjfMrTjcPvl4p3anak0Wy GwqjBGpMCQ4/QiOBCe115YL6fOT8iVZdEbldRI/8UQql6oIyaFe1iVq41 A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530895" IronPort-SDR: Vzk4a/XHNssD4tirMos5/NauERflnk5mpWMf9TzlFI+YwRzcv0E6hkuWEG8cdUxNTNwufnlgv5 oWNTlg6/ZoGXZ4Z2gvXhv31/PtqrDRiRjPbe97uJAFeXsT3ub9soW6csPYx+SYSnpTHwDwKsNG WIuuxlY/Elo2GX1DLzKfHkSqaGSX6Vj8iH+p6qTNe/sZSEmvDAuyEjkq8EwkplAI2cM0x9BvV8 m3s8BdN/oqPuGnkH0Xad03/N4uwKSgtuYcWiduIjTC/okRbhKaBbU9vTq/81nxQ1wPoVP1YDCt ZXzub6N0G62cZnAeh6zqkfnK IronPort-SDR: AXuhqoFlsX5IEO2/N3nXIdVehWBG6+F36iiIeLfTqLQKlIjnbGWSZnVal+3sZXrZ5KTiB9MuBN W5DLYl4xJJHuIziS/OLwWV1D0yPnz/O8++0WuZZSmGoMKImWEsYhcSEuZkZ1pI7AVRWZrE61ID PG7H17OvEP/BCSX9fZbG2dMEa5irxVrCVfFzlmRstBQ6mOZlm7wVNt85q/1vaGSVFmvbEHrtjm iWS1Gp/uAcK+RTIWcZygyGSd0zP8D+bJ1DpNKFzSKjQwh+xTEfjChaPcnbSDWKN3mj2frQbtc/ XRU= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260291; x=1666852292; bh=N266dCsPnh4l0atlFr JgTB6RphVexYpVDW7esZm8d+o=; b=S1ZFub3jeAfoExpGxeWZdyCR8a4/z65vGD qHpl2ZEc1sHTI0csr3Hb+UHf/TzELFEAzhV7fwqejvN+/uFABCVtGYB2VMLdwohT BKjTiam0jO3A8FPFAWuDblQ3SlTRv+NULEV/IimBQ5Eg3kh3/bsnLkmyhrLDkGKz 2347FpR3O6cU40JhBD3z0x7Vj57huNyW1eIH+glvuQgAJzf43IjqhtIDZVBswOXL FN6CBbYkdFEXpeSlqzf/fO0Ghz7UTZzo8ABJSGmNZsu/ZJK9goGC8dlgGt/b//z6 JXYZORhkdplfsHZP+9dtRbM8lPDhDwpiHz1CirGriDlUI8h3ZBXg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 13/22] target/riscv: debug: Determine the trigger type from tdata1.type Date: Tue, 27 Sep 2022 16:30:55 +1000 Message-Id: <20220927063104.2846825-14-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263875139100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Current RISC-V debug assumes that only type 2 trigger is supported. To allow more types of triggers to be supported in the future (e.g. type 6 trigger, which is similar to type 2 trigger with additional functionality), we should determine the trigger type from tdata1.type. RV_MAX_TRIGGERS is also introduced in replacement of TRIGGER_TYPE2_NUM. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei [bmeng: fixed MXL_RV128 case, and moved macros to the following patch] Signed-off-by: Bin Meng Message-Id: <20220909134215.1843865-2-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 2 +- target/riscv/debug.h | 13 +-- target/riscv/csr.c | 2 +- target/riscv/debug.c | 188 +++++++++++++++++++++++++++++------------ target/riscv/machine.c | 2 +- 5 files changed, 140 insertions(+), 67 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 22344a620b..73bcad3c9b 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -324,7 +324,7 @@ struct CPUArchState { =20 /* trigger module */ target_ulong trigger_cur; - type2_trigger_t type2_trig[TRIGGER_TYPE2_NUM]; + type2_trigger_t type2_trig[RV_MAX_TRIGGERS]; =20 /* machine specific rdtime callback */ uint64_t (*rdtime_fn)(void *); diff --git a/target/riscv/debug.h b/target/riscv/debug.h index 27b9cac6b4..72e4edcd8c 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -22,13 +22,7 @@ #ifndef RISCV_DEBUG_H #define RISCV_DEBUG_H =20 -/* trigger indexes implemented */ -enum { - TRIGGER_TYPE2_IDX_0 =3D 0, - TRIGGER_TYPE2_IDX_1, - TRIGGER_TYPE2_NUM, - TRIGGER_NUM =3D TRIGGER_TYPE2_NUM -}; +#define RV_MAX_TRIGGERS 2 =20 /* register index of tdata CSRs */ enum { @@ -46,7 +40,8 @@ typedef enum { TRIGGER_TYPE_EXCP =3D 5, /* exception trigger */ TRIGGER_TYPE_AD_MATCH6 =3D 6, /* new address/data match trigger */ TRIGGER_TYPE_EXT_SRC =3D 7, /* external source trigger */ - TRIGGER_TYPE_UNAVAIL =3D 15 /* trigger exists, but unavailable */ + TRIGGER_TYPE_UNAVAIL =3D 15, /* trigger exists, but unavailable */ + TRIGGER_TYPE_NUM } trigger_type_t; =20 typedef struct { @@ -56,7 +51,7 @@ typedef struct { struct CPUWatchpoint *wp; } type2_trigger_t; =20 -/* tdata field masks */ +/* tdata1 field masks */ =20 #define RV32_TYPE(t) ((uint32_t)(t) << 28) #define RV32_TYPE_MASK (0xf << 28) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 092b425196..2c84c29bf0 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3070,7 +3070,7 @@ static RISCVException read_tdata(CPURISCVState *env, = int csrno, target_ulong *val) { /* return 0 in tdata1 to end the trigger enumeration */ - if (env->trigger_cur >=3D TRIGGER_NUM && csrno =3D=3D CSR_TDATA1) { + if (env->trigger_cur >=3D RV_MAX_TRIGGERS && csrno =3D=3D CSR_TDATA1) { *val =3D 0; return RISCV_EXCP_NONE; } diff --git a/target/riscv/debug.c b/target/riscv/debug.c index fc6e13222f..9dd468753a 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -52,8 +52,15 @@ /* tdata availability of a trigger */ typedef bool tdata_avail[TDATA_NUM]; =20 -static tdata_avail tdata_mapping[TRIGGER_NUM] =3D { - [TRIGGER_TYPE2_IDX_0 ... TRIGGER_TYPE2_IDX_1] =3D { true, true, false = }, +static tdata_avail tdata_mapping[TRIGGER_TYPE_NUM] =3D { + [TRIGGER_TYPE_NO_EXIST] =3D { false, false, false }, + [TRIGGER_TYPE_AD_MATCH] =3D { true, true, true }, + [TRIGGER_TYPE_INST_CNT] =3D { true, false, true }, + [TRIGGER_TYPE_INT] =3D { true, true, true }, + [TRIGGER_TYPE_EXCP] =3D { true, true, true }, + [TRIGGER_TYPE_AD_MATCH6] =3D { true, true, true }, + [TRIGGER_TYPE_EXT_SRC] =3D { true, false, false }, + [TRIGGER_TYPE_UNAVAIL] =3D { true, true, true } }; =20 /* only breakpoint size 1/2/4/8 supported */ @@ -67,6 +74,27 @@ static int access_size[SIZE_NUM] =3D { [6 ... 15] =3D -1, }; =20 +static inline target_ulong extract_trigger_type(CPURISCVState *env, + target_ulong tdata1) +{ + switch (riscv_cpu_mxl(env)) { + case MXL_RV32: + return extract32(tdata1, 28, 4); + case MXL_RV64: + case MXL_RV128: + return extract64(tdata1, 60, 4); + default: + g_assert_not_reached(); + } +} + +static inline target_ulong get_trigger_type(CPURISCVState *env, + target_ulong trigger_index) +{ + target_ulong tdata1 =3D env->type2_trig[trigger_index].mcontrol; + return extract_trigger_type(env, tdata1); +} + static inline target_ulong trigger_type(CPURISCVState *env, trigger_type_t type) { @@ -89,15 +117,17 @@ static inline target_ulong trigger_type(CPURISCVState = *env, =20 bool tdata_available(CPURISCVState *env, int tdata_index) { + int trigger_type =3D get_trigger_type(env, env->trigger_cur); + if (unlikely(tdata_index >=3D TDATA_NUM)) { return false; } =20 - if (unlikely(env->trigger_cur >=3D TRIGGER_NUM)) { + if (unlikely(env->trigger_cur >=3D RV_MAX_TRIGGERS)) { return false; } =20 - return tdata_mapping[env->trigger_cur][tdata_index]; + return tdata_mapping[trigger_type][tdata_index]; } =20 target_ulong tselect_csr_read(CPURISCVState *env) @@ -137,6 +167,7 @@ static target_ulong tdata1_validate(CPURISCVState *env,= target_ulong val, qemu_log_mask(LOG_GUEST_ERROR, "ignoring type write to tdata1 register\n"); } + if (dmode !=3D 0) { qemu_log_mask(LOG_UNIMP, "debug mode is not supported\n"); } @@ -261,9 +292,8 @@ static void type2_breakpoint_remove(CPURISCVState *env,= target_ulong index) } =20 static target_ulong type2_reg_read(CPURISCVState *env, - target_ulong trigger_index, int tdata_i= ndex) + target_ulong index, int tdata_index) { - uint32_t index =3D trigger_index - TRIGGER_TYPE2_IDX_0; target_ulong tdata; =20 switch (tdata_index) { @@ -280,10 +310,9 @@ static target_ulong type2_reg_read(CPURISCVState *env, return tdata; } =20 -static void type2_reg_write(CPURISCVState *env, target_ulong trigger_index, +static void type2_reg_write(CPURISCVState *env, target_ulong index, int tdata_index, target_ulong val) { - uint32_t index =3D trigger_index - TRIGGER_TYPE2_IDX_0; target_ulong new_val; =20 switch (tdata_index) { @@ -309,35 +338,64 @@ static void type2_reg_write(CPURISCVState *env, targe= t_ulong trigger_index, return; } =20 -typedef target_ulong (*tdata_read_func)(CPURISCVState *env, - target_ulong trigger_index, - int tdata_index); - -static tdata_read_func trigger_read_funcs[TRIGGER_NUM] =3D { - [TRIGGER_TYPE2_IDX_0 ... TRIGGER_TYPE2_IDX_1] =3D type2_reg_read, -}; - -typedef void (*tdata_write_func)(CPURISCVState *env, - target_ulong trigger_index, - int tdata_index, - target_ulong val); - -static tdata_write_func trigger_write_funcs[TRIGGER_NUM] =3D { - [TRIGGER_TYPE2_IDX_0 ... TRIGGER_TYPE2_IDX_1] =3D type2_reg_write, -}; - target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { - tdata_read_func read_func =3D trigger_read_funcs[env->trigger_cur]; + int trigger_type =3D get_trigger_type(env, env->trigger_cur); + + switch (trigger_type) { + case TRIGGER_TYPE_AD_MATCH: + return type2_reg_read(env, env->trigger_cur, tdata_index); + break; + case TRIGGER_TYPE_INST_CNT: + case TRIGGER_TYPE_INT: + case TRIGGER_TYPE_EXCP: + case TRIGGER_TYPE_AD_MATCH6: + case TRIGGER_TYPE_EXT_SRC: + qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", + trigger_type); + break; + case TRIGGER_TYPE_NO_EXIST: + case TRIGGER_TYPE_UNAVAIL: + qemu_log_mask(LOG_GUEST_ERROR, "trigger type: %d does not exit\n", + trigger_type); + break; + default: + g_assert_not_reached(); + } =20 - return read_func(env, env->trigger_cur, tdata_index); + return 0; } =20 void tdata_csr_write(CPURISCVState *env, int tdata_index, target_ulong val) { - tdata_write_func write_func =3D trigger_write_funcs[env->trigger_cur]; + int trigger_type; =20 - return write_func(env, env->trigger_cur, tdata_index, val); + if (tdata_index =3D=3D TDATA1) { + trigger_type =3D extract_trigger_type(env, val); + } else { + trigger_type =3D get_trigger_type(env, env->trigger_cur); + } + + switch (trigger_type) { + case TRIGGER_TYPE_AD_MATCH: + type2_reg_write(env, env->trigger_cur, tdata_index, val); + break; + case TRIGGER_TYPE_INST_CNT: + case TRIGGER_TYPE_INT: + case TRIGGER_TYPE_EXCP: + case TRIGGER_TYPE_AD_MATCH6: + case TRIGGER_TYPE_EXT_SRC: + qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", + trigger_type); + break; + case TRIGGER_TYPE_NO_EXIST: + case TRIGGER_TYPE_UNAVAIL: + qemu_log_mask(LOG_GUEST_ERROR, "trigger type: %d does not exit\n", + trigger_type); + break; + default: + g_assert_not_reached(); + } } =20 void riscv_cpu_debug_excp_handler(CPUState *cs) @@ -364,18 +422,28 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs) CPUBreakpoint *bp; target_ulong ctrl; target_ulong pc; + int trigger_type; int i; =20 QTAILQ_FOREACH(bp, &cs->breakpoints, entry) { - for (i =3D 0; i < TRIGGER_TYPE2_NUM; i++) { - ctrl =3D env->type2_trig[i].mcontrol; - pc =3D env->type2_trig[i].maddress; - - if ((ctrl & TYPE2_EXEC) && (bp->pc =3D=3D pc)) { - /* check U/S/M bit against current privilege level */ - if ((ctrl >> 3) & BIT(env->priv)) { - return true; + for (i =3D 0; i < RV_MAX_TRIGGERS; i++) { + trigger_type =3D get_trigger_type(env, i); + + switch (trigger_type) { + case TRIGGER_TYPE_AD_MATCH: + ctrl =3D env->type2_trig[i].mcontrol; + pc =3D env->type2_trig[i].maddress; + + if ((ctrl & TYPE2_EXEC) && (bp->pc =3D=3D pc)) { + /* check U/S/M bit against current privilege level */ + if ((ctrl >> 3) & BIT(env->priv)) { + return true; + } } + break; + default: + /* other trigger types are not supported or irrelevant */ + break; } } } @@ -389,26 +457,36 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, C= PUWatchpoint *wp) CPURISCVState *env =3D &cpu->env; target_ulong ctrl; target_ulong addr; + int trigger_type; int flags; int i; =20 - for (i =3D 0; i < TRIGGER_TYPE2_NUM; i++) { - ctrl =3D env->type2_trig[i].mcontrol; - addr =3D env->type2_trig[i].maddress; - flags =3D 0; + for (i =3D 0; i < RV_MAX_TRIGGERS; i++) { + trigger_type =3D get_trigger_type(env, i); =20 - if (ctrl & TYPE2_LOAD) { - flags |=3D BP_MEM_READ; - } - if (ctrl & TYPE2_STORE) { - flags |=3D BP_MEM_WRITE; - } + switch (trigger_type) { + case TRIGGER_TYPE_AD_MATCH: + ctrl =3D env->type2_trig[i].mcontrol; + addr =3D env->type2_trig[i].maddress; + flags =3D 0; =20 - if ((wp->flags & flags) && (wp->vaddr =3D=3D addr)) { - /* check U/S/M bit against current privilege level */ - if ((ctrl >> 3) & BIT(env->priv)) { - return true; + if (ctrl & TYPE2_LOAD) { + flags |=3D BP_MEM_READ; + } + if (ctrl & TYPE2_STORE) { + flags |=3D BP_MEM_WRITE; + } + + if ((wp->flags & flags) && (wp->vaddr =3D=3D addr)) { + /* check U/S/M bit against current privilege level */ + if ((ctrl >> 3) & BIT(env->priv)) { + return true; + } } + break; + default: + /* other trigger types are not supported */ + break; } } =20 @@ -417,11 +495,11 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, C= PUWatchpoint *wp) =20 void riscv_trigger_init(CPURISCVState *env) { - target_ulong type2 =3D trigger_type(env, TRIGGER_TYPE_AD_MATCH); + target_ulong tdata1 =3D trigger_type(env, TRIGGER_TYPE_AD_MATCH); int i; =20 - /* type 2 triggers */ - for (i =3D 0; i < TRIGGER_TYPE2_NUM; i++) { + /* init to type 2 triggers */ + for (i =3D 0; i < RV_MAX_TRIGGERS; i++) { /* * type =3D TRIGGER_TYPE_AD_MATCH * dmode =3D 0 (both debug and M-mode can write tdata) @@ -435,7 +513,7 @@ void riscv_trigger_init(CPURISCVState *env) * chain =3D 0 (unimplemented, always 0) * match =3D 0 (always 0, when any compare value equals tdata2) */ - env->type2_trig[i].mcontrol =3D type2; + env->type2_trig[i].mcontrol =3D tdata1; env->type2_trig[i].maddress =3D 0; env->type2_trig[i].bp =3D NULL; env->type2_trig[i].wp =3D NULL; diff --git a/target/riscv/machine.c b/target/riscv/machine.c index c4e6b3bba4..a23cff4424 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -247,7 +247,7 @@ static const VMStateDescription vmstate_debug =3D { .needed =3D debug_needed, .fields =3D (VMStateField[]) { VMSTATE_UINTTL(env.trigger_cur, RISCVCPU), - VMSTATE_STRUCT_ARRAY(env.type2_trig, RISCVCPU, TRIGGER_TYPE2_NUM, + VMSTATE_STRUCT_ARRAY(env.type2_trig, RISCVCPU, RV_MAX_TRIGGERS, 0, vmstate_debug_type2, type2_trigger_t), VMSTATE_END_OF_LIST() } --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664264275584183.61913566976307; Tue, 27 Sep 2022 00:37:55 -0700 (PDT) Received: from localhost ([::1]:54196 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od5AA-0007X2-HI for importer@patchew.org; Tue, 27 Sep 2022 03:37:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37156) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48H-0005jU-Pk for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:01 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48F-0001Eu-3l for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:53 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:34 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:31 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:34 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sd5Mqkz1Rwtm for ; Mon, 26 Sep 2022 23:31:33 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id wIp2JTlg2ZHP for ; Mon, 26 Sep 2022 23:31:33 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sb49pKz1RvLy; Mon, 26 Sep 2022 23:31:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260311; x=1695796311; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/HeXQHVkXy5DHud8REtBdoMYgtxpOnO0N2okvo72Gmw=; b=gPLVCIVa6Twx7iFapcMYmL3K5zB3/rtSuxv53q6IInvUu7D3eAW9/tNw 5AD8SpnlwFq4brEFwVNyyK+1tj9uRpbJJALinU1AlhQEhMukRzr0AmkXS 6KQFP+cyOFLa5xVNeVwRsHw+/uVQbqo+nHJ1pCKXuMa5M8aV0y9T6sYFc rBgWv1im5e7lNWXojZeALRy6w7HZbvg0C5hnNYQGE9JV8lMaW0whacmVd cA/lQGKntQO/6sdZy3Wcd8PCzh9uYmQez9l5xffgAN0wN7LB5s0vkt586 RgPC0vDdywU6vPPH5426gGfdPzgmAO1kIIHAW+6B6wwzt9j5sWJgqjJ7N Q==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530900" IronPort-SDR: 2dbwQagQ5dXEM06mcFzYQ/sswOCoUjjHZ9EACWH/nUdMbcSiDBuFb8faMXlqzxob7dZM1PMfhl lnhM4UnA5nB34vGwUmGlawGicxviZeAaAYMu/W6cbdHIvw4nKR6xv19pHEsP0rWfqMCdmlTc4p IUCn+DuAGYXWZhKoGLH4yisEOQxeswRb7TvPitsUvEspaSHnnz3wPgnxonhtd2y+r14cpjcsV9 38a/zPWSOpxKHiO/dfRkdnVgD8BXUGQVtxKyiXr6ZUh8xKOkX4MaiqWHc/N/u5ruDEIcVhf+mc EI9mhz5zfiOceAz2w2tGA56H IronPort-SDR: R4/UhZgWqhAdrRJkV/c5vJ0bRlPQGvTU7Lu70yMgO6xl+hM6uFO+kHwhFAPQZSlzhUOwdIfExv r32Q9rWu37Oq+Xl7ces6Jnwga9sJPAFAqdxWn9qUyimMZQAkYl4lySVZWLom8w3zosjXiKtieJ aNIcXRLLQjqobIIah5W6+OnLdIpZymfeN5WtWABgUiWwyhf8Tr79u0IL1lNKbZnHucWlmFHfZB 1PFbqraf1mrjLrhYKxNuczncneq5+HMWRpt0dSIJ+LNeMwu5cPfyHVa3tPY6FXOqHsgESK5u6U 4Aw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260293; x=1666852294; bh=/HeXQHVkXy5DHud8RE tBdoMYgtxpOnO0N2okvo72Gmw=; b=XUucZGf9H8C1Fdt9VcqXkEarRAkVCTGQyj jmZ6AiLlemzplNE1GVqpS6gct4G9UOb088KbErQdz0EOZJ/8m528Ffir44ZOYraH r1JkAczNzbGhNH3rarphILZGT0Fx37a2IQkVJYnXdF9jb6GkGSn2rjfLdo01ptuz GLPxnEgm3z++qyWC9XDj5t9ZRTYsxHqLwbf2on1CWEYOWmtiGbZ+yFV0irjULUn4 MIVKIlHXkNmlurH/oRD7epiiZI19oa1DQ3Mm5+9TU/e8nGpggGbGGmmJE6fKYMx9 s//i8ndyxnnFQT6hjKmLSdpxcW5mV1Copn1ZhMHoVWWf2g7o5Gfw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 14/22] target/riscv: debug: Introduce build_tdata1() to build tdata1 register content Date: Tue, 27 Sep 2022 16:30:56 +1000 Message-Id: <20220927063104.2846825-15-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664264277868100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Introduce build_tdata1() to build tdata1 register content, which can be shared among all types of triggers. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei [bmeng: moved RV{32,64}_DATA_MASK definition to this patch] Signed-off-by: Bin Meng Message-Id: <20220909134215.1843865-3-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/debug.h | 2 ++ target/riscv/debug.c | 15 ++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/target/riscv/debug.h b/target/riscv/debug.h index 72e4edcd8c..c422553c27 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -56,9 +56,11 @@ typedef struct { #define RV32_TYPE(t) ((uint32_t)(t) << 28) #define RV32_TYPE_MASK (0xf << 28) #define RV32_DMODE BIT(27) +#define RV32_DATA_MASK 0x7ffffff #define RV64_TYPE(t) ((uint64_t)(t) << 60) #define RV64_TYPE_MASK (0xfULL << 60) #define RV64_DMODE BIT_ULL(59) +#define RV64_DATA_MASK 0x7ffffffffffffff =20 /* mcontrol field masks */ =20 diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 9dd468753a..45aae87ec3 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -95,18 +95,23 @@ static inline target_ulong get_trigger_type(CPURISCVSta= te *env, return extract_trigger_type(env, tdata1); } =20 -static inline target_ulong trigger_type(CPURISCVState *env, - trigger_type_t type) +static inline target_ulong build_tdata1(CPURISCVState *env, + trigger_type_t type, + bool dmode, target_ulong data) { target_ulong tdata1; =20 switch (riscv_cpu_mxl(env)) { case MXL_RV32: - tdata1 =3D RV32_TYPE(type); + tdata1 =3D RV32_TYPE(type) | + (dmode ? RV32_DMODE : 0) | + (data & RV32_DATA_MASK); break; case MXL_RV64: case MXL_RV128: - tdata1 =3D RV64_TYPE(type); + tdata1 =3D RV64_TYPE(type) | + (dmode ? RV64_DMODE : 0) | + (data & RV64_DATA_MASK); break; default: g_assert_not_reached(); @@ -495,7 +500,7 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPU= Watchpoint *wp) =20 void riscv_trigger_init(CPURISCVState *env) { - target_ulong tdata1 =3D trigger_type(env, TRIGGER_TYPE_AD_MATCH); + target_ulong tdata1 =3D build_tdata1(env, TRIGGER_TYPE_AD_MATCH, 0, 0); int i; =20 /* init to type 2 triggers */ --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262625499126.30029536839606; Tue, 27 Sep 2022 00:10:25 -0700 (PDT) Received: from localhost ([::1]:33436 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4jY-0000JZ-DW for importer@patchew.org; Tue, 27 Sep 2022 03:10:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44644) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48M-0005jj-06 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:05 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48I-0001I9-Py for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:31:57 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:36 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:33 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:36 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sh0vdwz1RwqL for ; Mon, 26 Sep 2022 23:31:36 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id ySpvja6RVR5D for ; Mon, 26 Sep 2022 23:31:35 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sd4Gy4z1RvTr; Mon, 26 Sep 2022 23:31:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260314; x=1695796314; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=E5lScHhR2kpKa0jugkoNB8Y7Nx/X7x7dhg4eM1YwfwM=; b=Y5H3a9dfghcZBaJxWxTWdgpnS+fd9yvNm24mQKwzNlcNZwDuGlSboa9O VFDpOQKwt3yUoy3Gy/yoZJoUspiCyxtYKcdhr6JtHghDRJqWBM4rGsGTq M2eRlLm3oNyKbvxGcY32e+/6ObMWPVruSZVYNSxQNxt3mVS8e9KLoI3eN C0tjgv0i8V4kAilkWLs+8bzktx3LtN36bkpFqUgmaGXR6JuUXSL9Nu9in Tddx+TRuhzMM6RdhkoRIloWK/tMFX6AEWvU2UCUe2fWcRNh3FGz+/XEs1 dzXpVFvVsoIb4R3Oqv82BkZKnFS+d3lKSzREnwIBPigqFz7Qoq84c6XEY A==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530907" IronPort-SDR: Innm93injVCfjRMikSvu/AWbBwesZS3x1qHSr6hj7n9soU0I6Cw8TOTj5joDO8mt/Tx1GHcoeR OpEd8VOdKxOrecPLGlQVK9eWcJuXgqyyb1rxN++ucIxihJUyvFrKXqGEdgR4bMnC77WyZykvYV ajs6bGQl7cKKHcnlPuA4H/qeCzSch4vT3gBLKANq18gFuK4C3YMXHyzWbKq5Swr5SonMoMLFa/ bOgDTECPqjztaZnmPp2TrpUYf08uNu4Rzsow/amrL4Yv+0LQclMWua2XDIMm9SoH0+u8q13nkj SrBlzVOmA8d77HN7beo3Ihhz IronPort-SDR: HKL5jpZTniMY0+SHstCeShPmp6oU7P6roqQR+bSAiSethBvA6L302LQEB0/4dT6H7PLj/d8Zka QjhWBmt0Oo6+w8VrdSifmpAdaz0E//7PrAf4MK8RwMDKjkHecoa+vFlzDIPJW/rrQmlyVfPcMi xJ2pH9qPB6h2pqdalnyxtfrDK/o83xM/QQw42C3/tYt5BlOhOHwzesdAGDWvyU8l+HbxOfQYEA XXxBT9kEjrRbjuqzCZ4N5LZFO9B57ocbvrwltkyTZ8ztVQ2/0i2sxC4LtdmIMQ4jy0UZnNqMHH Y6s= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260295; x=1666852296; bh=E5lScHhR2kpKa0jugk oNB8Y7Nx/X7x7dhg4eM1YwfwM=; b=kIBktA3FtGJuqNo8vgpx9Vid6pD3XqduCg ixCrktrR3bhnM/VNab5qOdkMK1VLCp/5iceJ5dgvTBSTHEUy9KeLqKC+2o5lxyDk PzjHbIIEckaNVeBq2M17eOfR3LSnFVvImCqlhHfBq950qbIyQh0Ml97IBM2PDJkv LetYhjGD7GyfVq065118+f+F/NH2RxVmcutJ38H3z6e14BADzvrJbOTDI/VF4Kyc ZeCMdGTpHMdy469/aXSvB3jtWFeT1gy5sQdEKtkJ4SY2dCc+ez2ZvjzpvAqgdagN fkn9YDep9PoM4nXVGULDlLKvgOwcgTnVfN3zxRxJIcWSB4U4f9yw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 15/22] target/riscv: debug: Introduce tdata1, tdata2, and tdata3 CSRs Date: Tue, 27 Sep 2022 16:30:57 +1000 Message-Id: <20220927063104.2846825-16-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262627661100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Replace type2_trigger_t with the real tdata1, tdata2, and tdata3 CSRs, which allows us to support more types of triggers in the future. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei Message-Id: <20220909134215.1843865-4-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 6 ++- target/riscv/debug.h | 7 --- target/riscv/debug.c | 103 +++++++++++++++-------------------------- target/riscv/machine.c | 20 ++------ 4 files changed, 48 insertions(+), 88 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 73bcad3c9b..b131fa8c8e 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -324,7 +324,11 @@ struct CPUArchState { =20 /* trigger module */ target_ulong trigger_cur; - type2_trigger_t type2_trig[RV_MAX_TRIGGERS]; + target_ulong tdata1[RV_MAX_TRIGGERS]; + target_ulong tdata2[RV_MAX_TRIGGERS]; + target_ulong tdata3[RV_MAX_TRIGGERS]; + struct CPUBreakpoint *cpu_breakpoint[RV_MAX_TRIGGERS]; + struct CPUWatchpoint *cpu_watchpoint[RV_MAX_TRIGGERS]; =20 /* machine specific rdtime callback */ uint64_t (*rdtime_fn)(void *); diff --git a/target/riscv/debug.h b/target/riscv/debug.h index c422553c27..76146f373a 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -44,13 +44,6 @@ typedef enum { TRIGGER_TYPE_NUM } trigger_type_t; =20 -typedef struct { - target_ulong mcontrol; - target_ulong maddress; - struct CPUBreakpoint *bp; - struct CPUWatchpoint *wp; -} type2_trigger_t; - /* tdata1 field masks */ =20 #define RV32_TYPE(t) ((uint32_t)(t) << 28) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 45aae87ec3..06feef7d67 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -91,8 +91,7 @@ static inline target_ulong extract_trigger_type(CPURISCVS= tate *env, static inline target_ulong get_trigger_type(CPURISCVState *env, target_ulong trigger_index) { - target_ulong tdata1 =3D env->type2_trig[trigger_index].mcontrol; - return extract_trigger_type(env, tdata1); + return extract_trigger_type(env, env->tdata1[trigger_index]); } =20 static inline target_ulong build_tdata1(CPURISCVState *env, @@ -188,6 +187,8 @@ static inline void warn_always_zero_bit(target_ulong va= l, target_ulong mask, } } =20 +/* type 2 trigger */ + static uint32_t type2_breakpoint_size(CPURISCVState *env, target_ulong ctr= l) { uint32_t size, sizelo, sizehi =3D 0; @@ -247,8 +248,8 @@ static target_ulong type2_mcontrol_validate(CPURISCVSta= te *env, =20 static void type2_breakpoint_insert(CPURISCVState *env, target_ulong index) { - target_ulong ctrl =3D env->type2_trig[index].mcontrol; - target_ulong addr =3D env->type2_trig[index].maddress; + target_ulong ctrl =3D env->tdata1[index]; + target_ulong addr =3D env->tdata2[index]; bool enabled =3D type2_breakpoint_enabled(ctrl); CPUState *cs =3D env_cpu(env); int flags =3D BP_CPU | BP_STOP_BEFORE_ACCESS; @@ -259,7 +260,7 @@ static void type2_breakpoint_insert(CPURISCVState *env,= target_ulong index) } =20 if (ctrl & TYPE2_EXEC) { - cpu_breakpoint_insert(cs, addr, flags, &env->type2_trig[index].bp); + cpu_breakpoint_insert(cs, addr, flags, &env->cpu_breakpoint[index]= ); } =20 if (ctrl & TYPE2_LOAD) { @@ -273,10 +274,10 @@ static void type2_breakpoint_insert(CPURISCVState *en= v, target_ulong index) size =3D type2_breakpoint_size(env, ctrl); if (size !=3D 0) { cpu_watchpoint_insert(cs, addr, size, flags, - &env->type2_trig[index].wp); + &env->cpu_watchpoint[index]); } else { cpu_watchpoint_insert(cs, addr, 8, flags, - &env->type2_trig[index].wp); + &env->cpu_watchpoint[index]); } } } @@ -285,36 +286,17 @@ static void type2_breakpoint_remove(CPURISCVState *en= v, target_ulong index) { CPUState *cs =3D env_cpu(env); =20 - if (env->type2_trig[index].bp) { - cpu_breakpoint_remove_by_ref(cs, env->type2_trig[index].bp); - env->type2_trig[index].bp =3D NULL; + if (env->cpu_breakpoint[index]) { + cpu_breakpoint_remove_by_ref(cs, env->cpu_breakpoint[index]); + env->cpu_breakpoint[index] =3D NULL; } =20 - if (env->type2_trig[index].wp) { - cpu_watchpoint_remove_by_ref(cs, env->type2_trig[index].wp); - env->type2_trig[index].wp =3D NULL; + if (env->cpu_watchpoint[index]) { + cpu_watchpoint_remove_by_ref(cs, env->cpu_watchpoint[index]); + env->cpu_watchpoint[index] =3D NULL; } } =20 -static target_ulong type2_reg_read(CPURISCVState *env, - target_ulong index, int tdata_index) -{ - target_ulong tdata; - - switch (tdata_index) { - case TDATA1: - tdata =3D env->type2_trig[index].mcontrol; - break; - case TDATA2: - tdata =3D env->type2_trig[index].maddress; - break; - default: - g_assert_not_reached(); - } - - return tdata; -} - static void type2_reg_write(CPURISCVState *env, target_ulong index, int tdata_index, target_ulong val) { @@ -323,19 +305,23 @@ static void type2_reg_write(CPURISCVState *env, targe= t_ulong index, switch (tdata_index) { case TDATA1: new_val =3D type2_mcontrol_validate(env, val); - if (new_val !=3D env->type2_trig[index].mcontrol) { - env->type2_trig[index].mcontrol =3D new_val; + if (new_val !=3D env->tdata1[index]) { + env->tdata1[index] =3D new_val; type2_breakpoint_remove(env, index); type2_breakpoint_insert(env, index); } break; case TDATA2: - if (val !=3D env->type2_trig[index].maddress) { - env->type2_trig[index].maddress =3D val; + if (val !=3D env->tdata2[index]) { + env->tdata2[index] =3D val; type2_breakpoint_remove(env, index); type2_breakpoint_insert(env, index); } break; + case TDATA3: + qemu_log_mask(LOG_UNIMP, + "tdata3 is not supported for type 2 trigger\n"); + break; default: g_assert_not_reached(); } @@ -345,30 +331,16 @@ static void type2_reg_write(CPURISCVState *env, targe= t_ulong index, =20 target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { - int trigger_type =3D get_trigger_type(env, env->trigger_cur); - - switch (trigger_type) { - case TRIGGER_TYPE_AD_MATCH: - return type2_reg_read(env, env->trigger_cur, tdata_index); - break; - case TRIGGER_TYPE_INST_CNT: - case TRIGGER_TYPE_INT: - case TRIGGER_TYPE_EXCP: - case TRIGGER_TYPE_AD_MATCH6: - case TRIGGER_TYPE_EXT_SRC: - qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", - trigger_type); - break; - case TRIGGER_TYPE_NO_EXIST: - case TRIGGER_TYPE_UNAVAIL: - qemu_log_mask(LOG_GUEST_ERROR, "trigger type: %d does not exit\n", - trigger_type); - break; + switch (tdata_index) { + case TDATA1: + return env->tdata1[env->trigger_cur]; + case TDATA2: + return env->tdata2[env->trigger_cur]; + case TDATA3: + return env->tdata3[env->trigger_cur]; default: g_assert_not_reached(); } - - return 0; } =20 void tdata_csr_write(CPURISCVState *env, int tdata_index, target_ulong val) @@ -436,8 +408,8 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs) =20 switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: - ctrl =3D env->type2_trig[i].mcontrol; - pc =3D env->type2_trig[i].maddress; + ctrl =3D env->tdata1[i]; + pc =3D env->tdata2[i]; =20 if ((ctrl & TYPE2_EXEC) && (bp->pc =3D=3D pc)) { /* check U/S/M bit against current privilege level */ @@ -471,8 +443,8 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPU= Watchpoint *wp) =20 switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: - ctrl =3D env->type2_trig[i].mcontrol; - addr =3D env->type2_trig[i].maddress; + ctrl =3D env->tdata1[i]; + addr =3D env->tdata2[i]; flags =3D 0; =20 if (ctrl & TYPE2_LOAD) { @@ -518,9 +490,10 @@ void riscv_trigger_init(CPURISCVState *env) * chain =3D 0 (unimplemented, always 0) * match =3D 0 (always 0, when any compare value equals tdata2) */ - env->type2_trig[i].mcontrol =3D tdata1; - env->type2_trig[i].maddress =3D 0; - env->type2_trig[i].bp =3D NULL; - env->type2_trig[i].wp =3D NULL; + env->tdata1[i] =3D tdata1; + env->tdata2[i] =3D 0; + env->tdata3[i] =3D 0; + env->cpu_breakpoint[i] =3D NULL; + env->cpu_watchpoint[i] =3D NULL; } } diff --git a/target/riscv/machine.c b/target/riscv/machine.c index a23cff4424..c2a94a82b3 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -229,26 +229,16 @@ static bool debug_needed(void *opaque) return riscv_feature(env, RISCV_FEATURE_DEBUG); } =20 -static const VMStateDescription vmstate_debug_type2 =3D { - .name =3D "cpu/debug/type2", - .version_id =3D 1, - .minimum_version_id =3D 1, - .fields =3D (VMStateField[]) { - VMSTATE_UINTTL(mcontrol, type2_trigger_t), - VMSTATE_UINTTL(maddress, type2_trigger_t), - VMSTATE_END_OF_LIST() - } -}; - static const VMStateDescription vmstate_debug =3D { .name =3D "cpu/debug", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, .needed =3D debug_needed, .fields =3D (VMStateField[]) { VMSTATE_UINTTL(env.trigger_cur, RISCVCPU), - VMSTATE_STRUCT_ARRAY(env.type2_trig, RISCVCPU, RV_MAX_TRIGGERS, - 0, vmstate_debug_type2, type2_trigger_t), + VMSTATE_UINTTL_ARRAY(env.tdata1, RISCVCPU, RV_MAX_TRIGGERS), + VMSTATE_UINTTL_ARRAY(env.tdata2, RISCVCPU, RV_MAX_TRIGGERS), + VMSTATE_UINTTL_ARRAY(env.tdata3, RISCVCPU, RV_MAX_TRIGGERS), VMSTATE_END_OF_LIST() } }; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664263745599188.65301557926466; Tue, 27 Sep 2022 00:29:05 -0700 (PDT) Received: from localhost ([::1]:54740 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od51b-0001Pr-Jp for importer@patchew.org; Tue, 27 Sep 2022 03:29:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44646) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48P-0005k2-6k for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:06 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44585) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48N-0001Ix-07 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:00 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:38 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:35 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:38 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sj5GDYz1Rwrq for ; Mon, 26 Sep 2022 23:31:37 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id PT_TWl3iTcmG for ; Mon, 26 Sep 2022 23:31:37 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sg5553z1RvLy; Mon, 26 Sep 2022 23:31:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260318; x=1695796318; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=55V6njmXdEsCaFO7pLGWF/knEmH302KisFRpog8umNI=; b=biykmsKBv01iqrrnnKCXHSxFIfPjWlqoLQes5L+NqP9MOPxCUMF0FN33 iYOuzFjGpiEp62Jnwt7sJUFdpDlaaZyx4ZciltWhBfWGL7s0XNyOECF/4 seecWSeb3aO/0VNloHInWAIVcqf66v13qFLxxPThCER5PN2q0iBEA7f9R xzPlLtMzKlkwQVuWcGT52OUJIeUia2qItzTyCNmw1Uzre2oR3sJmQkOri UsxU5wZ3oF2VWrubIZTlMakIENIqaQrCK87E1fvuHIMTarBD8Fxg6w43P mlTrZDUUNcRRdRbbn5Dic5RyaJVSoPnNOCi2XfmG0pt8OAAWanXuL8jtI Q==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530915" IronPort-SDR: n1uP5HgqMThYu2Nil7q3GIRCpl7Dm6OouC4GKs9fqEbIU+TETRClorwz+qWu+HGHiI9//siqwg M+YkAg1X9M03k9CE3ICLFCkwjXUbSfdljwwrg0ly6aNK3RTec861XTNE6+ISYUbrkzgi0D+puq hjqpkYJ+wgrQQgROxm07QbKsaDKZ8jS0lnmxa0FHZdPXgaI+I+c9J5wI6d8UR9agXAWhj50u31 IK9qVcpQHaoWMsQV+NZmlNxq2sD5ghjeXZdlN30PWZG20fh5NzkbsxqrpFWJZtDIKaCBilfN3o Q6tdN5R5izRzIcpRWucsnZiG IronPort-SDR: Ei6zGvd9BM6KuXmGohlOh2Ou5KwORJfoxRA/gIVVfoK/o/xSCa/WgdZxyi+xH/DTd1Zgln0L/z Ld7ekGv61uuOswIdkLJxNdtTY6jkz7qJUTa/ek9EstwxzLOD+ErdWUpKmPE/WpRg2kGYmpMsMn +EGzBnqTZEgePdq9z7A2suSlLkGX6VAgsMOiNuEgO5fGix2IgMgdsolwQWA41T8R6PQHfVbj8V aEShOZY5TucTzCpAC0iuhmhu+81+HSxV+8NMCqwLxZGOTZ2zW0DqbjDtEUNX5E4WcbzJnvMwtg DnM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260297; x=1666852298; bh=55V6njmXdEsCaFO7pL GWF/knEmH302KisFRpog8umNI=; b=bsET8h5FMW/NNsiBKW8kiQpDBb3vVMHRx8 A4+8oLdJeLWv/wY0N4jCRf3O4eiaJe7UuNKNTyBvSkGyEaBFA8zj23E1bHQLdKwT bUWDMZea3hfysj5ulztlJfNH7UwoFDJ/XI7Aic8Ns8MSnjm8Cq/HvMKuVoTShikY gTbcRxA0aRVKlvdEm34HNCm1uzejXnIdlOun/LvvlwVIc3gnhamPuGvwH8lFonAZ cGNN/30OEPbErw/CVYzat1+fC5vHS3Sn+Xn7cHBOoclbzTDshtCnGVhUZfZqq+kr KsHISPFrghUbnFT6xpzUu5uFoVE9MNhSoKE6rZQqlxCwFCCMnIEQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 16/22] target/riscv: debug: Restrict the range of tselect value can be written Date: Tue, 27 Sep 2022 16:30:58 +1000 Message-Id: <20220927063104.2846825-17-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263746108100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang The value of tselect CSR can be written should be limited within the range of supported triggers number. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei Message-Id: <20220909134215.1843865-5-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/debug.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 06feef7d67..d6666164cd 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -127,10 +127,6 @@ bool tdata_available(CPURISCVState *env, int tdata_ind= ex) return false; } =20 - if (unlikely(env->trigger_cur >=3D RV_MAX_TRIGGERS)) { - return false; - } - return tdata_mapping[trigger_type][tdata_index]; } =20 @@ -141,8 +137,9 @@ target_ulong tselect_csr_read(CPURISCVState *env) =20 void tselect_csr_write(CPURISCVState *env, target_ulong val) { - /* all target_ulong bits of tselect are implemented */ - env->trigger_cur =3D val; + if (val < RV_MAX_TRIGGERS) { + env->trigger_cur =3D val; + } } =20 static target_ulong tdata1_validate(CPURISCVState *env, target_ulong val, --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262375945168.8084957627426; Tue, 27 Sep 2022 00:06:15 -0700 (PDT) Received: from localhost ([::1]:48384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4fU-0005nC-0H for importer@patchew.org; Tue, 27 Sep 2022 03:06:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47674) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48V-0005m5-7M for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:16 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48S-0001Eu-33 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:06 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:40 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:37 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:40 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sl5mqVz1RwqL for ; Mon, 26 Sep 2022 23:31:39 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id sgWFSmCyNrFH for ; Mon, 26 Sep 2022 23:31:39 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sj4r7Mz1RvTr; Mon, 26 Sep 2022 23:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260324; x=1695796324; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=EKyFaf3tOrfxQ0QcwC9IJ4OwYlfohhHglvpt9xiHY9Q=; b=lBYP4he1Nj5T/AoS0x5ffQlCeb2i/9VetLkc90xettQVqe9L1yAp2+UU 1ejVmAzD397iojScjGTC2C1s/AszbzcfuTgvsDo3VxssgisMKBl6Pr31y Emxzy9lYdf1+MaauKrlib1s04/uWqBlZbMpl9FVdBAlOHEV3SYywQYhdI qkzdEAfsIkDBOBIfj0ZZWq9llmoZ5/mUk39XIoA9WVM/mLUizW64HDbxg 0wypvoWLLD6qVWI8eCxV13OLAC5cevYLR8ieo0wZWcVDZk68xR1UrgapQ Bk6MmFQB1nAmQUd8AANhcZE1IIlvzdruoLY6TUcJQVqcUg3B8vn9xjvHl g==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530917" IronPort-SDR: CmvenI5n9Rnj1UtnKjKSrYKhP6fZr1FclRo7gcleesHCRZdNazoGZlFyul3KkVxbmFiYqov34A Jfnaw2eQ7PQ5EgWZyOxAxPRnJGHr4lRG1Smq+QmACo+FS5wQZuBa1qtWZKkRGRvs7HIZo0nkNb OEUQQodb1Ab8A7fgwberMXkte2sP//UjiKbTHmo2zSnoPomvkK5FL61AqppqGQhwTGYpHcUkuU oruB2jKFoUOpK9pZDuZ3rVwBSAW4vrx7QUI/wtrIA+noCMmR4zxfqhJ3CvEgoUlmxvwazoIFhj EE2jyoJRib5fNWhTq8dmID1+ IronPort-SDR: cr6vCsoOeL5C2AxFvhB/qWnZ3uDzzkrXnM+SPIVQr1brn3g42XCDE5BJg53mHb4TbUz7cSa95R H9d0Qe5/Igr0nTkMWmeTgRpPHpyZY2hwBdQu33vIc+r/qlWn+1rkz5zbnxnlUSRVES0489y9u6 1qW9HCkxjhbQr5mfQK9U6C8EE0FSZR7s+ElwpT4ZgHXaXinsTedlWLuUH6V6ebTLaxvgywRKsd MA2HzQnpKP/UKgxzvCt3CCg8kVI4Zo+RUIsAQAaIKPjelJZqr2du4hchtrqWrNecRxrJyjTts9 Jzc= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260299; x=1666852300; bh=EKyFaf3tOrfxQ0QcwC 9IJ4OwYlfohhHglvpt9xiHY9Q=; b=hL+IfpQGolOGoa/DMeFqyiLWDZ2jE7Wy73 EsV0CbxVAc0jrbMMufhiA69zT1Jgp3XZky6DLcDoSlyfyKGSBropzOdHDczFlwNT H4uBIErIeu3APPu7tLRPtdhOmFcIy4OljzV+Q/EfiLR/15yl63TMaBP+MdaVWylI 0HIfpQoz8JL7czM0dpFn7LY2+KDJZ1NCXDABKS+OmSfX0Mp5GJG6e5inC6IJZJz5 To0Y8vx/Rng2zS78AVIz1tRZob9l4qruV+1vfDi8JmrrQqwxnwTw1B6PIjaLwdr1 MoePmIlmSQHWHWrmEecS91ChoBlXU/TQjKJZ4+MUB0Gqtm8gibMg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 17/22] target/riscv: debug: Introduce tinfo CSR Date: Tue, 27 Sep 2022 16:30:59 +1000 Message-Id: <20220927063104.2846825-18-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262376420100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang tinfo.info: One bit for each possible type enumerated in tdata1. If the bit is set, then that type is supported by the currently selected trigger. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei Message-Id: <20220909134215.1843865-6-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_bits.h | 1 + target/riscv/debug.h | 2 ++ target/riscv/csr.c | 8 ++++++++ target/riscv/debug.c | 10 +++++++--- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index b762807e4e..d8f5f0abed 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -319,6 +319,7 @@ #define CSR_TDATA1 0x7a1 #define CSR_TDATA2 0x7a2 #define CSR_TDATA3 0x7a3 +#define CSR_TINFO 0x7a4 =20 /* Debug Mode Registers */ #define CSR_DCSR 0x7b0 diff --git a/target/riscv/debug.h b/target/riscv/debug.h index 76146f373a..9f69c64591 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -95,6 +95,8 @@ void tselect_csr_write(CPURISCVState *env, target_ulong v= al); target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index); void tdata_csr_write(CPURISCVState *env, int tdata_index, target_ulong val= ); =20 +target_ulong tinfo_csr_read(CPURISCVState *env); + void riscv_cpu_debug_excp_handler(CPUState *cs); bool riscv_cpu_debug_check_breakpoint(CPUState *cs); bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp); diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 2c84c29bf0..5c9a7ee287 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3094,6 +3094,13 @@ static RISCVException write_tdata(CPURISCVState *env= , int csrno, return RISCV_EXCP_NONE; } =20 +static RISCVException read_tinfo(CPURISCVState *env, int csrno, + target_ulong *val) +{ + *val =3D tinfo_csr_read(env); + return RISCV_EXCP_NONE; +} + /* * Functions to access Pointer Masking feature registers * We have to check if current priv lvl could modify @@ -3898,6 +3905,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_TDATA1] =3D { "tdata1", debug, read_tdata, write_tdata }, [CSR_TDATA2] =3D { "tdata2", debug, read_tdata, write_tdata }, [CSR_TDATA3] =3D { "tdata3", debug, read_tdata, write_tdata }, + [CSR_TINFO] =3D { "tinfo", debug, read_tinfo, write_ignore }, =20 /* User Pointer Masking */ [CSR_UMTE] =3D { "umte", pointer_masking, read_umte, write_u= mte }, diff --git a/target/riscv/debug.c b/target/riscv/debug.c index d6666164cd..7d546ace42 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -37,9 +37,7 @@ * - tdata1 * - tdata2 * - tdata3 - * - * We don't support writable 'type' field in the tdata1 register, so there= is - * no need to implement the "tinfo" CSR. + * - tinfo * * The following triggers are implemented: * @@ -372,6 +370,12 @@ void tdata_csr_write(CPURISCVState *env, int tdata_ind= ex, target_ulong val) } } =20 +target_ulong tinfo_csr_read(CPURISCVState *env) +{ + /* assume all triggers support the same types of triggers */ + return BIT(TRIGGER_TYPE_AD_MATCH); +} + void riscv_cpu_debug_excp_handler(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664262948678610.2657131603069; Tue, 27 Sep 2022 00:15:48 -0700 (PDT) Received: from localhost ([::1]:34628 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4ol-0006C2-Dx for importer@patchew.org; Tue, 27 Sep 2022 03:15:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48e-0005mW-NO for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:20 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48W-0001I9-8L for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:11 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:41 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:38 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:42 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sn4jwZz1Rwt8 for ; Mon, 26 Sep 2022 23:31:41 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id gJCYq6UIPDKs for ; Mon, 26 Sep 2022 23:31:41 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sl4RbYz1RvLy; Mon, 26 Sep 2022 23:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260328; x=1695796328; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cTRSiAVc30SNI2X5dLZjY0ESKH1G6UIRkS4CwQtAW1A=; b=L891iaZb7FVB1asd8dNpXhUnug8x4ieQ3KZ7RYXOqLlaGxbYCe5W5AU7 wTESJTl1uZ/fEj8/btVqGx66a3li9aAsk+wdEDP48u5Ro8+maOovOo2BT USFD2h3cel4B+lNSpAPiPdu7FVAIUc+xBU4i4CNuyJZdZTECdgR/Z7RlM ZAApWjFMKInbt7lRQcINCCNNm+/BVZKwwaQXA+Vo7ZwsJrb1EuBryTM9c aP5qv2aTvpPSFoQsaDg9j5fAByKdSBCEqT0fCxfUcTFvxCWqLUNv8EZHW gno6HuTXbEz1gGKPoKuGMm7ilLhhr3MnWTBhr1UnOlav66zMWUeVhVU5k Q==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530921" IronPort-SDR: 8ROnFFB41cbT5IVOP+NH+5F8zVmHs4uycTCPGYgzxXyZ1daKn7yucC9LxcLogsCotl68T0H5UO Qcd1Qlo5i7x6Bg5CIcUpkNovme0/ZOuFhcXWrU1dC3RWETnjkOfMkGZ8lLiSTdgQHwAevSCL7m QZ9SvWCrU1Ikl9s/LWpMk6EeCCcCJ/0TzQgBYc3MjIhPzgIMTBdBYq+mT0mzo1RwU7MqNmO7Sm /H5YsUAMetFMO6i0UaEoZz8y/gfQhcNJ5ieicpp9Dj2VVyBCNiJ2vC3Z+W06BWIV9Aw8AMUBUf 5BmAw7aIwggHS51M3wC4sTqK IronPort-SDR: x66gCID/gpPIxg/yLYbvpH69Ywkt+/miKJEiMraMRlAwKrjGWZVwwagjcboL+5I9I7gWXHQIOv iJ6uyl8yuzfUmgc5RficPYQBAxRiZGUEZVvT/q4Jt3+dFkJB7fnf/KN/KRvJMCmryy5t8r2pa6 RZDi1Mlvw8+pXzBzLd+LPebqf4mHJ/TYkuiE/AcPCElgOqcmxRL0yk0kRURdUldpcgX1uX5N8f Io0FAHgSzFdF6Ee+oHDuKexYilan3hVPmQnU4EwHKgZr7kpsbRR4wtP9mWxYQnBUcC+2SZAn6T Cvg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260301; x=1666852302; bh=cTRSiAVc30SNI2X5dL ZjY0ESKH1G6UIRkS4CwQtAW1A=; b=je1Cw/TCr+H7ozhY4z93P+x+A8Qr3qUUnz L1FW//dCxzfHohqoCHYk/gMyEddSnCL9u3nPbTg6COZpM+fj5BA9Jw5szyvfEZla M6pLWvvf9NpLoQSKKJubqEh41Mj9x3k3cEIls5ayhfyWXb3x9GFSUzpM/c+DYT1g A1SA4YocQgjxOWHgolXJBL+7VvmvxE89oLhfmV5f1s96Z4AhJ2qWBM+sRPqkjHtH EiGG/BslUoMh4up696rgk69GnvHPkAUZtXj8ODD76/ZXSAHddqQAB4qtb+ecp7G/ aswO1nnpUn54WLBJCPkONUfA5sO1fgZS/Z05OWmzilkkcj7Xm3kQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , LIU Zhiwei , Alistair Francis Subject: [PULL v2 18/22] target/riscv: debug: Create common trigger actions function Date: Tue, 27 Sep 2022 16:31:00 +1000 Message-Id: <20220927063104.2846825-19-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664262949752100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Trigger actions are shared among all triggers. Extract to a common function. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Reviewed-by: LIU Zhiwei [bmeng: handle the DBG_ACTION_NONE case] Signed-off-by: Bin Meng Message-Id: <20220909134215.1843865-7-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/debug.h | 13 ++++++++++ target/riscv/debug.c | 59 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/target/riscv/debug.h b/target/riscv/debug.h index 9f69c64591..0e4859cf74 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -44,6 +44,19 @@ typedef enum { TRIGGER_TYPE_NUM } trigger_type_t; =20 +/* actions */ +typedef enum { + DBG_ACTION_NONE =3D -1, /* sentinel value */ + DBG_ACTION_BP =3D 0, + DBG_ACTION_DBG_MODE, + DBG_ACTION_TRACE0, + DBG_ACTION_TRACE1, + DBG_ACTION_TRACE2, + DBG_ACTION_TRACE3, + DBG_ACTION_EXT_DBG0 =3D 8, + DBG_ACTION_EXT_DBG1 +} trigger_action_t; + /* tdata1 field masks */ =20 #define RV32_TYPE(t) ((uint32_t)(t) << 28) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 7d546ace42..7a8910f980 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -92,6 +92,37 @@ static inline target_ulong get_trigger_type(CPURISCVStat= e *env, return extract_trigger_type(env, env->tdata1[trigger_index]); } =20 +static trigger_action_t get_trigger_action(CPURISCVState *env, + target_ulong trigger_index) +{ + target_ulong tdata1 =3D env->tdata1[trigger_index]; + int trigger_type =3D get_trigger_type(env, trigger_index); + trigger_action_t action =3D DBG_ACTION_NONE; + + switch (trigger_type) { + case TRIGGER_TYPE_AD_MATCH: + action =3D (tdata1 & TYPE2_ACTION) >> 12; + break; + case TRIGGER_TYPE_INST_CNT: + case TRIGGER_TYPE_INT: + case TRIGGER_TYPE_EXCP: + case TRIGGER_TYPE_AD_MATCH6: + case TRIGGER_TYPE_EXT_SRC: + qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", + trigger_type); + break; + case TRIGGER_TYPE_NO_EXIST: + case TRIGGER_TYPE_UNAVAIL: + qemu_log_mask(LOG_GUEST_ERROR, "trigger type: %d does not exit\n", + trigger_type); + break; + default: + g_assert_not_reached(); + } + + return action; +} + static inline target_ulong build_tdata1(CPURISCVState *env, trigger_type_t type, bool dmode, target_ulong data) @@ -182,6 +213,30 @@ static inline void warn_always_zero_bit(target_ulong v= al, target_ulong mask, } } =20 +static void do_trigger_action(CPURISCVState *env, target_ulong trigger_ind= ex) +{ + trigger_action_t action =3D get_trigger_action(env, trigger_index); + + switch (action) { + case DBG_ACTION_NONE: + break; + case DBG_ACTION_BP: + riscv_raise_exception(env, RISCV_EXCP_BREAKPOINT, 0); + break; + case DBG_ACTION_DBG_MODE: + case DBG_ACTION_TRACE0: + case DBG_ACTION_TRACE1: + case DBG_ACTION_TRACE2: + case DBG_ACTION_TRACE3: + case DBG_ACTION_EXT_DBG0: + case DBG_ACTION_EXT_DBG1: + qemu_log_mask(LOG_UNIMP, "action: %d is not supported\n", action); + break; + default: + g_assert_not_reached(); + } +} + /* type 2 trigger */ =20 static uint32_t type2_breakpoint_size(CPURISCVState *env, target_ulong ctr= l) @@ -384,11 +439,11 @@ void riscv_cpu_debug_excp_handler(CPUState *cs) if (cs->watchpoint_hit) { if (cs->watchpoint_hit->flags & BP_CPU) { cs->watchpoint_hit =3D NULL; - riscv_raise_exception(env, RISCV_EXCP_BREAKPOINT, 0); + do_trigger_action(env, DBG_ACTION_BP); } } else { if (cpu_breakpoint_test(cs, env->pc, BP_CPU)) { - riscv_raise_exception(env, RISCV_EXCP_BREAKPOINT, 0); + do_trigger_action(env, DBG_ACTION_BP); } } } --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664264565926834.3978307593452; Tue, 27 Sep 2022 00:42:45 -0700 (PDT) Received: from localhost ([::1]:35278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od5Eq-0005Gp-NR for importer@patchew.org; Tue, 27 Sep 2022 03:42:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47680) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48e-0005mX-NM for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:20 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44585) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48Z-0001Ix-JA for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:13 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:43 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:40 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:43 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sq1gBnz1RwtC for ; Mon, 26 Sep 2022 23:31:43 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4ULu52mDtSTd for ; Mon, 26 Sep 2022 23:31:42 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sn3j6rz1RvTr; Mon, 26 Sep 2022 23:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260331; x=1695796331; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=tWJvhpRWP2n9qD3jHsJubgMcNxUKlbLx7GjjYPzDh80=; b=GUWO0gpLO88xnJ964hFvrNttiq2hMnlN0e6qipiBXQ7wAfTMWDJLWZ+C oFpFoNgA/qbYhBGPbPGciLVh30Zpqs3mt3dsLF/HaID2PwbfD1qmavtJ3 03RIeqi5yaeBSmD+oCaKVElBGcALsWAuVuHD6hpM9ycJ4/QiiaS1PNyXu 2Grw8wEqu76zkLLSZWa3fOdaHmd2lA+lIWHvbTr0gvJZY9nX0Gef4Kdlh PfxjuMspNoexUOszvgadi+8SrSgzsCJifmkKYbLGws/Lye+xqOfFxjfwB E1usVHA29cxJ2sGaXSeF0ZeP2TY5pP01K2sE4yRcb8yrUeoyevKQNSsEG w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530925" IronPort-SDR: vUn0BpxRI4o2fROzIikx43ycDMkrYuLaP9ii2e/NVBOXqC069sKVPBtuixpw7/96OMxM+PSS78 ItfKwSRJ+FJL8viqA2MsvUmJzlMGca3am5Hhncmc8fhBJOPLwfkmBP3dIcoYfj10tV4G99MMH4 Qq3oWzadns2tclSrhwyK8gUCqkYyymTVV90pp9wc0Z9fBJ7kAttEL2iyvte+KIkQpg/NKnfNPT VZyfYpHjOmKG85FSN0XV//rosB+oD3SL/jgopV/RLIyp/QROWofGDSUlqApQ2PfaX9f3LcwKi0 PZqo0HKuH8FJL/u8jegkb+Qi IronPort-SDR: tDUJat2JY08GW89nyX+uNigc/qtUGXQU0tY8taPgrx+fTSARIBuTIcScLtvIr22cXj0Fv8jOTH GiZcso6jNxrKOo+MT5wa1sc0KN1TCpBv0x8WnvF49s84qvc8WBW32uTz4lqP9B4d6hdzyVJscO /YpxgevqyMNK1mcEow2qt+9BqonT1zOqoCgrn2wkurJ1osxTe4Ap2NoCZSqBSbBZXEZYBPM3Hq JkVBjWn+doL7XdyGsMcv6vhOFldiP2OnjQgSxPJVDKzhzfRKIJGSaaiUvDYvYvtxpDydLGCSg1 TbU= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260302; x=1666852303; bh=tWJvhpRWP2n9qD3jHs JubgMcNxUKlbLx7GjjYPzDh80=; b=GBTRxuPTbXJ7Nr+vrt8ARQtSddtvN19Tcv evXwHGCaNaaqbztx0mZzjquptTYzc/Ga8VIu8R8J13rEsyqDFjaO5+3Y55kzqIgO 46s1i6lKHYvG94TaCM9AW9OhRN15vteJNixoG3UgCdGDb3zFRBc7njPSGxAISXHr fJ3n8CE2lc6DMNFu4FN0xxyuL37gSYwnqjlYTP+63juoguEexzfRh4VcJSiCwGBr lHlEQ4X3DbE7gCb12EG8ivlwEGII2ch3vgFq2N0//ZSqWBXMP5Qr6f4jY9ZDTouv t+FWIWjWoE4cuEglXv1J2vAp5/KqTtRR9xwqPmBHofQQS1oB86dA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , Alistair Francis Subject: [PULL v2 19/22] target/riscv: debug: Check VU/VS modes for type 2 trigger Date: Tue, 27 Sep 2022 16:31:01 +1000 Message-Id: <20220927063104.2846825-20-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664264566727100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Type 2 trigger cannot be fired in VU/VS modes. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Message-Id: <20220909134215.1843865-8-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/debug.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 7a8910f980..e16d5c070a 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -464,6 +464,11 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs) =20 switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: + /* type 2 trigger cannot be fired in VU/VS mode */ + if (riscv_cpu_virt_enabled(env)) { + return false; + } + ctrl =3D env->tdata1[i]; pc =3D env->tdata2[i]; =20 @@ -499,6 +504,11 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CP= UWatchpoint *wp) =20 switch (trigger_type) { case TRIGGER_TYPE_AD_MATCH: + /* type 2 trigger cannot be fired in VU/VS mode */ + if (riscv_cpu_virt_enabled(env)) { + return false; + } + ctrl =3D env->tdata1[i]; addr =3D env->tdata2[i]; flags =3D 0; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 166426441694986.7002162501667; Tue, 27 Sep 2022 00:40:16 -0700 (PDT) Received: from localhost ([::1]:51900 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od5CQ-0000zj-UX for importer@patchew.org; Tue, 27 Sep 2022 03:40:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38500) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48i-0005nR-Ox for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:22 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44546) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48f-0001Eu-Gj for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:20 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:46 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:43 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:46 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8ss280Jz1Rwt8 for ; Mon, 26 Sep 2022 23:31:45 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id iAVlOeWtTScZ for ; Mon, 26 Sep 2022 23:31:44 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8sq1R7kz1Rwrq; Mon, 26 Sep 2022 23:31:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260337; x=1695796337; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FwSK71pVMw1FYuopiiGywl//m0q01lu9hgyxW+3Y8os=; b=qpWQgoQOIY7dwjyHwOE+58IpzQBkrUqRFnhRQb3NdrBpzLyH21VW2QrU 4hQtXPYnknpUstbBETk/vX7F5JNqpCiT1IpD7ic69Domk0IBkQ2pEVR3U L9JqbprKRtS6kTwuOi6+MBSR3AcKtelZM9CjzSgnHuwqOjyCSh2kpaz5T w67hQUCBmhla3xOuUm5PwGd1fbBDwEc6K3N12SZONPE0XdhW11tfB45vz k8qgcHIf98cFTU6kOtrVgSF7zwLPXqC1bjekoR4PgfW9MaW7wHuzqsHwi cjnr1RbYQqBBif0jQPblOrNrWYeYD8N+M4T5BAwDBtYHFf0+0q+lx4lZN w==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530931" IronPort-SDR: U6tNRtwhJ/XpIdCWw571wqeP+m1zhHttLKxCWM80Ap8HS8ysO8v3ReVbQ9qYwu4HM9EOVy2FMa 4rqnZCp7x9wb4fLbJlPFEhcnPem6fsdSpk/9PpBGJlIJlyY+uUm5aZrN741vpy5IWgkwmguIc5 fxIzG6QOS+0tk7fChpJYmEVnM9VMdIdqlcjOEI8Vp8j/4xsrSKqdGMaVX/HSHmrunr+bF5MNGm uDzxEzVjFI2sVhgyZRxTDB1n6LJ7AxEcmGTWR262WSFG3+iq7jSCbV2NAkzjiHJmAxQlYlAvsf ztVXiqwiK0Dqd03U9wxBpzRr IronPort-SDR: WRVXRRnPzteNNtv4e8yN4cZ0EI4MWkuNo1wscJmLnQCVEaCn38hi1DUy+91vFTdKGAsxpmlR99 v/xdpodKCPqsa7ujkjTQ5Nc/thUbm+Hq2OgT4CVMFHUQlhZ8nenUA+I4pgUI88z96pW6C7/XiQ Dpr+DdP9hnY5yhuWrsf3s7CD4ehhdxBP4NHYmLbpBmJFFXVpZtyrMRjHclsu8g/DoEdxGmpEVv F0Rucf82NEa6gAhZmL/Bxee4jsoQhK2dJajn2NVKPMGBmQ8YyFme2xL7ic2QHS5Vy6qwvlZbxq 8lg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260304; x=1666852305; bh=FwSK71pVMw1FYuopii Gywl//m0q01lu9hgyxW+3Y8os=; b=b93vRu9TRKC8LZgOX4DVi8Cm0Uez5+bXbO XVy0lEku6Lc9YuR0zBHnV9sIkL26gFjHJgJd7O8JdP1PHT+nfwwlRqKdV2d3wF1Q QRIzLaIv06ceKr12ltZm6EJ6ZZB65uUot9d/F1j/pyzzey4X+CofK9JF4C5t+MaW OO30HGI2Z4WnJYZxLDIY1x3tQelfEVNvVCWSkdbSIUFjn+JDodDv2u9Iw/CbvQ1d 7Gvrlj/kR6gxVg1hJSLAGM3OsqGuO7LxuzODWQQLZ7C4UQxEuow1Oy7BRPKfMWVq EJMJhVZZ1pB49+qGWFuM/83W6NsvLnl7imE9FcjIU/sed98tSrmg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Frank Chang , Bin Meng , Alistair Francis Subject: [PULL v2 20/22] target/riscv: debug: Add initial support of type 6 trigger Date: Tue, 27 Sep 2022 16:31:02 +1000 Message-Id: <20220927063104.2846825-21-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664264418153100001 Content-Type: text/plain; charset="utf-8" From: Frank Chang Type 6 trigger is similar to a type 2 trigger, but provides additional functionality and should be used instead of type 2 in newer implementations. Signed-off-by: Frank Chang Reviewed-by: Bin Meng Signed-off-by: Bin Meng Message-Id: <20220909134215.1843865-9-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/debug.h | 18 +++++ target/riscv/debug.c | 174 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 188 insertions(+), 4 deletions(-) diff --git a/target/riscv/debug.h b/target/riscv/debug.h index 0e4859cf74..a1226b4d29 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -85,6 +85,24 @@ typedef enum { #define TYPE2_HIT BIT(20) #define TYPE2_SIZEHI (0x3 << 21) /* RV64 only */ =20 +/* mcontrol6 field masks */ + +#define TYPE6_LOAD BIT(0) +#define TYPE6_STORE BIT(1) +#define TYPE6_EXEC BIT(2) +#define TYPE6_U BIT(3) +#define TYPE6_S BIT(4) +#define TYPE6_M BIT(6) +#define TYPE6_MATCH (0xf << 7) +#define TYPE6_CHAIN BIT(11) +#define TYPE6_ACTION (0xf << 12) +#define TYPE6_SIZE (0xf << 16) +#define TYPE6_TIMING BIT(20) +#define TYPE6_SELECT BIT(21) +#define TYPE6_HIT BIT(22) +#define TYPE6_VU BIT(23) +#define TYPE6_VS BIT(24) + /* access size */ enum { SIZE_ANY =3D 0, diff --git a/target/riscv/debug.c b/target/riscv/debug.c index e16d5c070a..26ea764407 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -39,7 +39,7 @@ * - tdata3 * - tinfo * - * The following triggers are implemented: + * The following triggers are initialized by default: * * Index | Type | tdata mapping | Description * ------+------+------------------------+------------ @@ -103,10 +103,12 @@ static trigger_action_t get_trigger_action(CPURISCVSt= ate *env, case TRIGGER_TYPE_AD_MATCH: action =3D (tdata1 & TYPE2_ACTION) >> 12; break; + case TRIGGER_TYPE_AD_MATCH6: + action =3D (tdata1 & TYPE6_ACTION) >> 12; + break; case TRIGGER_TYPE_INST_CNT: case TRIGGER_TYPE_INT: case TRIGGER_TYPE_EXCP: - case TRIGGER_TYPE_AD_MATCH6: case TRIGGER_TYPE_EXT_SRC: qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", trigger_type); @@ -379,6 +381,123 @@ static void type2_reg_write(CPURISCVState *env, targe= t_ulong index, return; } =20 +/* type 6 trigger */ + +static inline bool type6_breakpoint_enabled(target_ulong ctrl) +{ + bool mode =3D !!(ctrl & (TYPE6_VU | TYPE6_VS | TYPE6_U | TYPE6_S | TYP= E6_M)); + bool rwx =3D !!(ctrl & (TYPE6_LOAD | TYPE6_STORE | TYPE6_EXEC)); + + return mode && rwx; +} + +static target_ulong type6_mcontrol6_validate(CPURISCVState *env, + target_ulong ctrl) +{ + target_ulong val; + uint32_t size; + + /* validate the generic part first */ + val =3D tdata1_validate(env, ctrl, TRIGGER_TYPE_AD_MATCH6); + + /* validate unimplemented (always zero) bits */ + warn_always_zero_bit(ctrl, TYPE6_MATCH, "match"); + warn_always_zero_bit(ctrl, TYPE6_CHAIN, "chain"); + warn_always_zero_bit(ctrl, TYPE6_ACTION, "action"); + warn_always_zero_bit(ctrl, TYPE6_TIMING, "timing"); + warn_always_zero_bit(ctrl, TYPE6_SELECT, "select"); + warn_always_zero_bit(ctrl, TYPE6_HIT, "hit"); + + /* validate size encoding */ + size =3D extract32(ctrl, 16, 4); + if (access_size[size] =3D=3D -1) { + qemu_log_mask(LOG_UNIMP, "access size %d is not supported, using S= IZE_ANY\n", + size); + } else { + val |=3D (ctrl & TYPE6_SIZE); + } + + /* keep the mode and attribute bits */ + val |=3D (ctrl & (TYPE6_VU | TYPE6_VS | TYPE6_U | TYPE6_S | TYPE6_M | + TYPE6_LOAD | TYPE6_STORE | TYPE6_EXEC)); + + return val; +} + +static void type6_breakpoint_insert(CPURISCVState *env, target_ulong index) +{ + target_ulong ctrl =3D env->tdata1[index]; + target_ulong addr =3D env->tdata2[index]; + bool enabled =3D type6_breakpoint_enabled(ctrl); + CPUState *cs =3D env_cpu(env); + int flags =3D BP_CPU | BP_STOP_BEFORE_ACCESS; + uint32_t size; + + if (!enabled) { + return; + } + + if (ctrl & TYPE6_EXEC) { + cpu_breakpoint_insert(cs, addr, flags, &env->cpu_breakpoint[index]= ); + } + + if (ctrl & TYPE6_LOAD) { + flags |=3D BP_MEM_READ; + } + + if (ctrl & TYPE6_STORE) { + flags |=3D BP_MEM_WRITE; + } + + if (flags & BP_MEM_ACCESS) { + size =3D extract32(ctrl, 16, 4); + if (size !=3D 0) { + cpu_watchpoint_insert(cs, addr, size, flags, + &env->cpu_watchpoint[index]); + } else { + cpu_watchpoint_insert(cs, addr, 8, flags, + &env->cpu_watchpoint[index]); + } + } +} + +static void type6_breakpoint_remove(CPURISCVState *env, target_ulong index) +{ + type2_breakpoint_remove(env, index); +} + +static void type6_reg_write(CPURISCVState *env, target_ulong index, + int tdata_index, target_ulong val) +{ + target_ulong new_val; + + switch (tdata_index) { + case TDATA1: + new_val =3D type6_mcontrol6_validate(env, val); + if (new_val !=3D env->tdata1[index]) { + env->tdata1[index] =3D new_val; + type6_breakpoint_remove(env, index); + type6_breakpoint_insert(env, index); + } + break; + case TDATA2: + if (val !=3D env->tdata2[index]) { + env->tdata2[index] =3D val; + type6_breakpoint_remove(env, index); + type6_breakpoint_insert(env, index); + } + break; + case TDATA3: + qemu_log_mask(LOG_UNIMP, + "tdata3 is not supported for type 6 trigger\n"); + break; + default: + g_assert_not_reached(); + } + + return; +} + target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { switch (tdata_index) { @@ -407,10 +526,12 @@ void tdata_csr_write(CPURISCVState *env, int tdata_in= dex, target_ulong val) case TRIGGER_TYPE_AD_MATCH: type2_reg_write(env, env->trigger_cur, tdata_index, val); break; + case TRIGGER_TYPE_AD_MATCH6: + type6_reg_write(env, env->trigger_cur, tdata_index, val); + break; case TRIGGER_TYPE_INST_CNT: case TRIGGER_TYPE_INT: case TRIGGER_TYPE_EXCP: - case TRIGGER_TYPE_AD_MATCH6: case TRIGGER_TYPE_EXT_SRC: qemu_log_mask(LOG_UNIMP, "trigger type: %d is not supported\n", trigger_type); @@ -428,7 +549,8 @@ void tdata_csr_write(CPURISCVState *env, int tdata_inde= x, target_ulong val) target_ulong tinfo_csr_read(CPURISCVState *env) { /* assume all triggers support the same types of triggers */ - return BIT(TRIGGER_TYPE_AD_MATCH); + return BIT(TRIGGER_TYPE_AD_MATCH) | + BIT(TRIGGER_TYPE_AD_MATCH6); } =20 void riscv_cpu_debug_excp_handler(CPUState *cs) @@ -479,6 +601,24 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs) } } break; + case TRIGGER_TYPE_AD_MATCH6: + ctrl =3D env->tdata1[i]; + pc =3D env->tdata2[i]; + + if ((ctrl & TYPE6_EXEC) && (bp->pc =3D=3D pc)) { + if (riscv_cpu_virt_enabled(env)) { + /* check VU/VS bit against current privilege level= */ + if ((ctrl >> 23) & BIT(env->priv)) { + return true; + } + } else { + /* check U/S/M bit against current privilege level= */ + if ((ctrl >> 3) & BIT(env->priv)) { + return true; + } + } + } + break; default: /* other trigger types are not supported or irrelevant */ break; @@ -527,6 +667,32 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CP= UWatchpoint *wp) } } break; + case TRIGGER_TYPE_AD_MATCH6: + ctrl =3D env->tdata1[i]; + addr =3D env->tdata2[i]; + flags =3D 0; + + if (ctrl & TYPE6_LOAD) { + flags |=3D BP_MEM_READ; + } + if (ctrl & TYPE6_STORE) { + flags |=3D BP_MEM_WRITE; + } + + if ((wp->flags & flags) && (wp->vaddr =3D=3D addr)) { + if (riscv_cpu_virt_enabled(env)) { + /* check VU/VS bit against current privilege level */ + if ((ctrl >> 23) & BIT(env->priv)) { + return true; + } + } else { + /* check U/S/M bit against current privilege level */ + if ((ctrl >> 3) & BIT(env->priv)) { + return true; + } + } + } + break; default: /* other trigger types are not supported */ break; --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664264836267463.60596127921383; Tue, 27 Sep 2022 00:47:16 -0700 (PDT) Received: from localhost ([::1]:57394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od5JC-0002Bf-8z for importer@patchew.org; Tue, 27 Sep 2022 03:47:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53626) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48o-0005rk-EH for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:26 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48l-0001I9-B8 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:26 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:47 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:44 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:47 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8st6Svlz1Rwt8 for ; Mon, 26 Sep 2022 23:31:46 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id tLLMYJLOV5JG for ; Mon, 26 Sep 2022 23:31:46 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8ss0Rztz1RvLy; Mon, 26 Sep 2022 23:31:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260343; x=1695796343; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0RgDjweyHhiIfDehhBNmhQuVoHYY6d2wYe17OwaOTAE=; b=J/pOL23bRCWN8dF3ZOoJgQnaJc4GNCQAjFRJKBchZe9YBHRrQoHwUn4i 0PW+/iJg10EZF/cMIorImQqx0keqWnWtGRsEu4xth6wmBAlQK5aWwQ7tr inFW8bzYdTtOWXTk2aezD/eUG8NT37EnBJ6t6RjymRauerD0VmsRopkcs cmplH3eNzvdeIIfOb5ALpEiyFq69Dpk12o2G7YBK3XOYzlXykQt2au3zw XhOogZbiCyy9W0aHeyHpZUm9AJffmYeK7uhJ8xZfmnH1mM9anuJ2Yn7xQ 3xG1n7pEYQEHdenDnyZRcBddcVP9q7KSSKGkQd2R25IC73XCc0MWHciOG g==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530938" IronPort-SDR: 7qsIzwtzCr+hUlrbn31wS6SYmLRHcBUS6E6OUt2/hKr/Rvuvn63KYQKJ+sgnQMCJmi02izb9yG g22AxKTn55PtXK6hzKAj2PZsk4OWNcrGl/jZGRP4i1+9F+Ifdvj88+gSoWqSzzwGDqG2WfMzia lzpoR+u7nIUp+TVo1S+Z8Xp/HIFctRnpv6IF0vQ+JhUPxSfIhfAwCPPjIvNRjsvjaIh5qFQlWD YnUc0i28Du8fwwCBmeKSs5OwBbC+iQTR2CvM0G451uPgOWXwTA34e/XTPMCearcmfFYJ56Je4W gnuc2VcaYUhvEQcQrjVw7Md5 IronPort-SDR: /wyB0GcRSpMF5RQhThl6cQPQyabKx0t3eLl0Hcz54qIsL9LDZtrxSgQSa7IXBSc+Zw8avH5l6D wifNjOWkKr2SxHF1ODWH8mRqpK+l73ihcDgtgnjR0XmRONIF0x63hAA+/G+kItDyNla818eaJN hfU0xcs5R1/risPmGZQWIK5cf4y1vUPQy/VhHFpsq7d8HqpSzkRSiJ88Tclp/rAecu6KJPmJrv pcZ57+aAmH8SIzImGmW+TZPK6mpZfRXcvU342Q16ujQw4wDaouCptB57Jg6QEsoaHpmjSgAlu5 kbg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260306; x=1666852307; bh=0RgDjweyHhiIfDehhB NmhQuVoHYY6d2wYe17OwaOTAE=; b=aOrgKq5P8JaE8tmD1UUSovUM/fQ7ZwUs+V 1syLCb4D8ENBR/3YjIg1DaLUtCU9vox7tKKYTe65tZW9ZT+CxGkWDHmq/J4kdiRP 2x+Qq4taIvUtZ3XKq+Im0E3s89YFeLDcWU9IH4y31tX14i1qQjE80zzuuoJ80olh IHuGtteVFwZloj9JjkHc9HThITaLR+fRez0EaNHTQfiqr39Mi/yizxnVgxQr2Vng ase6/Vkc5p3t/hAjEX3j4HkKnXPgzrm+TEOEscX6IBe04upmWU695X1PrAoskebc gHf0uf2FUNsACDVe2zxpBCvC8JtcRfhZ3JulcI9rNKpdKuWesoCg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yang Liu , Alistair Francis , Frank Chang Subject: [PULL v2 21/22] target/riscv: rvv-1.0: Simplify vfwredsum code Date: Tue, 27 Sep 2022 16:31:03 +1000 Message-Id: <20220927063104.2846825-22-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664264838743100001 Content-Type: text/plain; charset="utf-8" From: Yang Liu Remove duplicate code by wrapping vfwredsum_vs's OP function. Signed-off-by: Yang Liu Reviewed-by: Alistair Francis Reviewed-by: Frank Chang Message-Id: <20220817074802.20765-1-liuyang22@iscas.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/vector_helper.c | 56 +++++++----------------------------- 1 file changed, 10 insertions(+), 46 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index d224861c2c..2828073497 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -4728,58 +4728,22 @@ GEN_VEXT_FRED(vfredmin_vs_h, uint16_t, uint16_t, H2= , H2, float16_minimum_number) GEN_VEXT_FRED(vfredmin_vs_w, uint32_t, uint32_t, H4, H4, float32_minimum_n= umber) GEN_VEXT_FRED(vfredmin_vs_d, uint64_t, uint64_t, H8, H8, float64_minimum_n= umber) =20 -/* Vector Widening Floating-Point Reduction Instructions */ -/* Unordered reduce 2*SEW =3D 2*SEW + sum(promote(SEW)) */ -void HELPER(vfwredsum_vs_h)(void *vd, void *v0, void *vs1, - void *vs2, CPURISCVState *env, uint32_t desc) +/* Vector Widening Floating-Point Add Instructions */ +static uint32_t fwadd16(uint32_t a, uint16_t b, float_status *s) { - uint32_t vm =3D vext_vm(desc); - uint32_t vl =3D env->vl; - uint32_t esz =3D sizeof(uint32_t); - uint32_t vlenb =3D simd_maxsz(desc); - uint32_t vta =3D vext_vta(desc); - uint32_t i; - uint32_t s1 =3D *((uint32_t *)vs1 + H4(0)); - - for (i =3D env->vstart; i < vl; i++) { - uint16_t s2 =3D *((uint16_t *)vs2 + H2(i)); - if (!vm && !vext_elem_mask(v0, i)) { - continue; - } - s1 =3D float32_add(s1, float16_to_float32(s2, true, &env->fp_statu= s), - &env->fp_status); - } - *((uint32_t *)vd + H4(0)) =3D s1; - env->vstart =3D 0; - /* set tail elements to 1s */ - vext_set_elems_1s(vd, vta, esz, vlenb); + return float32_add(a, float16_to_float32(b, true, s), s); } =20 -void HELPER(vfwredsum_vs_w)(void *vd, void *v0, void *vs1, - void *vs2, CPURISCVState *env, uint32_t desc) +static uint64_t fwadd32(uint64_t a, uint32_t b, float_status *s) { - uint32_t vm =3D vext_vm(desc); - uint32_t vl =3D env->vl; - uint32_t esz =3D sizeof(uint64_t); - uint32_t vlenb =3D simd_maxsz(desc); - uint32_t vta =3D vext_vta(desc); - uint32_t i; - uint64_t s1 =3D *((uint64_t *)vs1); - - for (i =3D env->vstart; i < vl; i++) { - uint32_t s2 =3D *((uint32_t *)vs2 + H4(i)); - if (!vm && !vext_elem_mask(v0, i)) { - continue; - } - s1 =3D float64_add(s1, float32_to_float64(s2, &env->fp_status), - &env->fp_status); - } - *((uint64_t *)vd) =3D s1; - env->vstart =3D 0; - /* set tail elements to 1s */ - vext_set_elems_1s(vd, vta, esz, vlenb); + return float64_add(a, float32_to_float64(b, s), s); } =20 +/* Vector Widening Floating-Point Reduction Instructions */ +/* Unordered reduce 2*SEW =3D 2*SEW + sum(promote(SEW)) */ +GEN_VEXT_FRED(vfwredsum_vs_h, uint32_t, uint16_t, H4, H2, fwadd16) +GEN_VEXT_FRED(vfwredsum_vs_w, uint64_t, uint32_t, H8, H4, fwadd32) + /* *** Vector Mask Operations */ --=20 2.37.3 From nobody Mon May 20 17:49:18 2024 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1664263347633327.7314957362378; Tue, 27 Sep 2022 00:22:27 -0700 (PDT) Received: from localhost ([::1]:36204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1od4vB-0003lm-Ji for importer@patchew.org; Tue, 27 Sep 2022 03:22:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53628) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48p-0005uH-D5 for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:27 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:44585) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1od48n-0001Ix-9f for qemu-devel@nongnu.org; Tue, 27 Sep 2022 02:32:27 -0400 Received: from h199-255-45-14.hgst.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 27 Sep 2022 14:31:49 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 22:51:46 -0700 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 26 Sep 2022 23:31:49 -0700 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4Mc8sw6zf6z1Rwrq for ; Mon, 26 Sep 2022 23:31:48 -0700 (PDT) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id CiqK49PptpIG for ; Mon, 26 Sep 2022 23:31:48 -0700 (PDT) Received: from toolbox.wdc.com (unknown [10.225.167.123]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4Mc8st5nysz1RvTr; Mon, 26 Sep 2022 23:31:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1664260345; x=1695796345; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JTSMLkxcYCzyxXWNrOTbqqMrysZ7unMLjmz7dj6Id2g=; b=I+DxeOIZok3IJq6gPM5vQkWhG8rHhfKtiRsjFcyOcAAf82tMOhinbDU9 PzZ5zLC88KiXU02uxWx74R/6uoNwKZPyEnCvoSodqZCzJdhxHBcIXB5zm JIPwc2ChKEUpy1qp9yEWIF+e2rVMFmAacrwW0HtGJzV9h6RPMFPjEKPmy GPdm5bc1QNXSZcDEh3zmN3x9RLi9dKRwOb1Zwn2RrtPFI1EfXpKSJVboy 0C8xFsE4HuFcyZN8Xb44SZ+xZ4+eU6riQFUU6aLjmq6hwKsn6AA6DwXxA CRNGwhDc4uPryWjffIGgkn/618/NAgslQx2E140eQFMykfrYRPNi8uXlP g==; X-IronPort-AV: E=Sophos;i="5.93,348,1654531200"; d="scan'208";a="217530942" IronPort-SDR: /hriwk+TII0Fzi2MSL9pqj4bFLfhqEjQtwMr5a9BWysZizvSWfsifQHqwuK34grrctX6Eqa8fl qPPVn63ukqvPT+68Azl+QBtvAta8OBekae1/qs1FV39APT8xlyBVQtgz81zEnZ8/vR0kd2nyra fLFOpaz06lcP5RigOH6H3GWYFXbefDeDgfWjVH19X3vs79dVmOefP6jMRhPLdbM4ZyslI8jMiZ 8xsN34D71pqTZvRwDGdArDxENlELoDlFGr9NIgMz2vOIhaLbgKMGjAVBnaVylnpEZv7uxsR1Gc sEkpbfLFfaplDnXF2DhI7iGS IronPort-SDR: qxarEGhI+j0Xp48rWcEYDSiBfdaKIF/LV6hPnm/WO4iPMgHv/lu9wgdmSbDQsE0ePlpQqaPr3C cG3Lvi5b+YEQofGAKZyqSN9rMG9RzIbohNQWrvuJvmK4MSWBqyxwvslO1lEuWM31cc088YsKCG n0YEKLbo6e07YKQzkU5aZOgM3+GUMuL3Td12Y5fS07HKaITMxZUsY+G/iwB3WcPqiK0H3K5UXc Z/1qWWesZCkXDsCJKXNTWPT3Wvb7eW+2TMzIiChVv8UtTDWhYvw84JNlLKqXMIQdxr6U7oemeO f/4= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1664260308; x=1666852309; bh=JTSMLkxcYCzyxXWNrO TbqqMrysZ7unMLjmz7dj6Id2g=; b=S6ppP47X8j1ySUeZZFCprnRV/VYOyZy7nP H54Da4svOUAi+gYUgP9ykqHwCl6YC0O9+Wn5Ueo+kDfMAm+L95e7hKfitHDa09/K x8cVAsxtrJbRzyv1u2fxcZ9N5Dc6w2ADz8NgMjb9secjj1WQFOxwVL+McB/erkFu uDJlVF36ZE5h0p9gmT1anax5JhdVmWqO6psv08QIXrZl3YnWG3dW+fX/3F3w5LUJ Wwg4WROwIVb2xR2GVu3UWV11l8b3s57tB25+n7W0Is4MLOfP3QqT0GPmM6vEaSJ0 3WacC2LSjDxFUqxsfoZWsVDk0ZvdR0Yjih6xeELSJOUQ5qjDcRGQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yang Liu , Alistair Francis , Frank Chang Subject: [PULL v2 22/22] target/riscv: rvv-1.0: vf[w]redsum distinguish between ordered/unordered Date: Tue, 27 Sep 2022 16:31:04 +1000 Message-Id: <20220927063104.2846825-23-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> References: <20220927063104.2846825-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=lists.gnu.org; Received-SPF: pass client-ip=216.71.153.141; envelope-from=prvs=262caef14=alistair.francis@opensource.wdc.com; helo=esa3.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1664263348554100001 Content-Type: text/plain; charset="utf-8" From: Yang Liu Starting with RVV1.0, the original vf[w]redsum_vs instruction was renamed to vf[w]redusum_vs. The distinction between ordered and unordered is also more consistent with other instructions, although there is no difference in implementation between the two for QEMU. Signed-off-by: Yang Liu Acked-by: Alistair Francis Reviewed-by: Frank Chang Message-Id: <20220817074802.20765-2-liuyang22@iscas.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/helper.h | 15 ++++++++++----- target/riscv/insn32.decode | 6 ++++-- target/riscv/vector_helper.c | 19 +++++++++++++------ target/riscv/insn_trans/trans_rvv.c.inc | 6 ++++-- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 4ef3b2251d..a03014fe67 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -1009,9 +1009,12 @@ DEF_HELPER_6(vwredsum_vs_b, void, ptr, ptr, ptr, ptr= , env, i32) DEF_HELPER_6(vwredsum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vwredsum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) =20 -DEF_HELPER_6(vfredsum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) -DEF_HELPER_6(vfredsum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) -DEF_HELPER_6(vfredsum_vs_d, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredusum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredusum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredusum_vs_d, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredosum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredosum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfredosum_vs_d, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vfredmax_vs_h, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vfredmax_vs_w, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vfredmax_vs_d, void, ptr, ptr, ptr, ptr, env, i32) @@ -1019,8 +1022,10 @@ DEF_HELPER_6(vfredmin_vs_h, void, ptr, ptr, ptr, ptr= , env, i32) DEF_HELPER_6(vfredmin_vs_w, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vfredmin_vs_d, void, ptr, ptr, ptr, ptr, env, i32) =20 -DEF_HELPER_6(vfwredsum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) -DEF_HELPER_6(vfwredsum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfwredusum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfwredusum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfwredosum_vs_h, void, ptr, ptr, ptr, ptr, env, i32) +DEF_HELPER_6(vfwredosum_vs_w, void, ptr, ptr, ptr, ptr, env, i32) =20 DEF_HELPER_6(vmand_mm, void, ptr, ptr, ptr, ptr, env, i32) DEF_HELPER_6(vmnand_mm, void, ptr, ptr, ptr, ptr, env, i32) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 595fdcdad8..d0253b8104 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -664,11 +664,13 @@ vredmax_vs 000111 . ..... ..... 010 ..... 101011= 1 @r_vm vwredsumu_vs 110000 . ..... ..... 000 ..... 1010111 @r_vm vwredsum_vs 110001 . ..... ..... 000 ..... 1010111 @r_vm # Vector ordered and unordered reduction sum -vfredsum_vs 0000-1 . ..... ..... 001 ..... 1010111 @r_vm +vfredusum_vs 000001 . ..... ..... 001 ..... 1010111 @r_vm +vfredosum_vs 000011 . ..... ..... 001 ..... 1010111 @r_vm vfredmin_vs 000101 . ..... ..... 001 ..... 1010111 @r_vm vfredmax_vs 000111 . ..... ..... 001 ..... 1010111 @r_vm # Vector widening ordered and unordered float reduction sum -vfwredsum_vs 1100-1 . ..... ..... 001 ..... 1010111 @r_vm +vfwredusum_vs 110001 . ..... ..... 001 ..... 1010111 @r_vm +vfwredosum_vs 110011 . ..... ..... 001 ..... 1010111 @r_vm vmand_mm 011001 - ..... ..... 010 ..... 1010111 @r vmnand_mm 011101 - ..... ..... 010 ..... 1010111 @r vmandn_mm 011000 - ..... ..... 010 ..... 1010111 @r diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 2828073497..b94f809eb3 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -4714,9 +4714,14 @@ void HELPER(NAME)(void *vd, void *v0, void *vs1, = \ } =20 /* Unordered sum */ -GEN_VEXT_FRED(vfredsum_vs_h, uint16_t, uint16_t, H2, H2, float16_add) -GEN_VEXT_FRED(vfredsum_vs_w, uint32_t, uint32_t, H4, H4, float32_add) -GEN_VEXT_FRED(vfredsum_vs_d, uint64_t, uint64_t, H8, H8, float64_add) +GEN_VEXT_FRED(vfredusum_vs_h, uint16_t, uint16_t, H2, H2, float16_add) +GEN_VEXT_FRED(vfredusum_vs_w, uint32_t, uint32_t, H4, H4, float32_add) +GEN_VEXT_FRED(vfredusum_vs_d, uint64_t, uint64_t, H8, H8, float64_add) + +/* Ordered sum */ +GEN_VEXT_FRED(vfredosum_vs_h, uint16_t, uint16_t, H2, H2, float16_add) +GEN_VEXT_FRED(vfredosum_vs_w, uint32_t, uint32_t, H4, H4, float32_add) +GEN_VEXT_FRED(vfredosum_vs_d, uint64_t, uint64_t, H8, H8, float64_add) =20 /* Maximum value */ GEN_VEXT_FRED(vfredmax_vs_h, uint16_t, uint16_t, H2, H2, float16_maximum_n= umber) @@ -4740,9 +4745,11 @@ static uint64_t fwadd32(uint64_t a, uint32_t b, floa= t_status *s) } =20 /* Vector Widening Floating-Point Reduction Instructions */ -/* Unordered reduce 2*SEW =3D 2*SEW + sum(promote(SEW)) */ -GEN_VEXT_FRED(vfwredsum_vs_h, uint32_t, uint16_t, H4, H2, fwadd16) -GEN_VEXT_FRED(vfwredsum_vs_w, uint64_t, uint32_t, H8, H4, fwadd32) +/* Ordered/unordered reduce 2*SEW =3D 2*SEW + sum(promote(SEW)) */ +GEN_VEXT_FRED(vfwredusum_vs_h, uint32_t, uint16_t, H4, H2, fwadd16) +GEN_VEXT_FRED(vfwredusum_vs_w, uint64_t, uint32_t, H8, H4, fwadd32) +GEN_VEXT_FRED(vfwredosum_vs_h, uint32_t, uint16_t, H4, H2, fwadd16) +GEN_VEXT_FRED(vfwredosum_vs_w, uint64_t, uint32_t, H8, H4, fwadd32) =20 /* *** Vector Mask Operations diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index e58208f363..4dea4413ae 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -3136,7 +3136,8 @@ static bool freduction_check(DisasContext *s, arg_rmr= r *a) require_zve64f(s); } =20 -GEN_OPFVV_TRANS(vfredsum_vs, freduction_check) +GEN_OPFVV_TRANS(vfredusum_vs, freduction_check) +GEN_OPFVV_TRANS(vfredosum_vs, freduction_check) GEN_OPFVV_TRANS(vfredmax_vs, freduction_check) GEN_OPFVV_TRANS(vfredmin_vs, freduction_check) =20 @@ -3148,7 +3149,8 @@ static bool freduction_widen_check(DisasContext *s, a= rg_rmrr *a) (s->sew !=3D MO_8); } =20 -GEN_OPFVV_WIDEN_TRANS(vfwredsum_vs, freduction_widen_check) +GEN_OPFVV_WIDEN_TRANS(vfwredusum_vs, freduction_widen_check) +GEN_OPFVV_WIDEN_TRANS(vfwredosum_vs, freduction_widen_check) =20 /* *** Vector Mask Operations --=20 2.37.3