From nobody Sun May 19 10:57:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1557268905; cv=none; d=zoho.com; s=zohoarc; b=HxvqtcXn7iyWaqh5lWvzQDH5E1tOFmqI/MydslkL0sMDH0dnfvRWXiD9tDFZr6/MOGMMpVPmMsI4LTRrA4hGFweXeZ1FXN6AMyFHQ3eISi3uZ/B25tl+K6KQv3s9xvvpAck7XmCvh9Oh+lirWkE2oQjPKUZUmNYoog5zoAXDCac= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557268905; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To:ARC-Authentication-Results; bh=VdsjNYMT/y7obLcd7k81EK0CnfGh7dXjFP/umyMuyq4=; b=D+vWSA1fcEyOpQ445NqWeYsYvs9PbJJxA/0EadwwrH2hkxZDKh5aKRm0oV3uVbcqjZsIVMPRUDPJHAIfryXweapqHu8WapgrZBlnWHo3udbnw/mYLqIVVSJZGsYiSKXnOs7KhycEoo58svQ/mkD4k2iaDHpb7vBKmtDabgtFOLI= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557268905734938.4911614279803; Tue, 7 May 2019 15:41:45 -0700 (PDT) Received: from localhost ([127.0.0.1]:55703 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hO8mK-00032H-Pk for importer@patchew.org; Tue, 07 May 2019 18:41:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54917) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hO8im-0001FS-5I for qemu-devel@nongnu.org; Tue, 07 May 2019 18:38:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hO8il-0005oh-8b for qemu-devel@nongnu.org; Tue, 07 May 2019 18:38:00 -0400 Received: from rs224.mailgun.us ([209.61.151.224]:19784) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hO8il-0005d9-0K for qemu-devel@nongnu.org; Tue, 07 May 2019 18:37:59 -0400 Received: from jonathan-ThinkPad-X1-Carbon.csail.mit.edu (30-9-187.wireless.csail.mit.edu [128.30.9.187]) by mxa.mailgun.org with ESMTP id 5cd208c3.7f9160c9f530-smtp-out-n03; Tue, 07 May 2019 22:37:55 -0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=fintelia.io; q=dns/txt; s=pic; t=1557268677; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: Cc: To: From: Sender; bh=VdsjNYMT/y7obLcd7k81EK0CnfGh7dXjFP/umyMuyq4=; b=eQLZC3EuybrnX26jYM4+o76NYxPVI9a3n4VPIKGrxOBa4yZmEI0ynY4zBXNifTNW0PuP+zmJ zSn07sddqd4aOiMJ8eMH2qSKkEcXgnVpIQ9+m8oTnkE08ZksF/F5aNxjP5CVtS15Rc0bPJlk 0jyA3R0ZWSQeJ9RMC9iA97yya5MzSSPc7wzftYOj+oGnAW/a/dta3wvmvtbj/86eGYt41yRJ v5E7iEklbZ849GzoFWJauwnGb2Lll5IIaIA1hl8rMVowaMPfaFDo8d6mCKLwzbsyrupu4Jny 0b8MEHybZcjhzEan/HtCxjs1hQac6WIsr1wnxNEID5OxrjVHqkoR/g== X-Mailgun-Sending-Ip: 209.61.151.224 X-Mailgun-Sid: WyJlMGM5NSIsICJxZW11LWRldmVsQG5vbmdudS5vcmciLCAiOWI0ZTc2Il0= From: Jonathan Behrens To: qemu-devel@nongnu.org Date: Tue, 7 May 2019 18:36:46 -0400 Message-Id: <20190507223646.18981-1-jonathan@fintelia.io> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.61.151.224 X-Mailman-Approved-At: Tue, 07 May 2019 18:40:28 -0400 Subject: [Qemu-devel] [PATCH] target/riscv: More accurate handling of `sip` CSR X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jonathan Behrens , Palmer Dabbelt , qemu-riscv@nongnu.org, Jonathan Behrens , Sagar Karandikar Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" According to the spec, "All bits besides SSIP, USIP, and UEIP in the sip register are read-only." Further, if an interrupt is not delegated to mode = x, then "the corresponding bits in xip [...] should appear to be hardwired to zero. This patch implements both of those requirements. Signed-off-by: Jonathan Behrens Reviewed-by: Palmer Dabbelt --- target/riscv/csr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 1ec1222da1..fff7d834e8 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -246,6 +246,7 @@ static const target_ulong sstatus_v1_9_mask =3D SSTATUS= _SIE | SSTATUS_SPIE | static const target_ulong sstatus_v1_10_mask =3D SSTATUS_SIE | SSTATUS_SPI= E | SSTATUS_UIE | SSTATUS_UPIE | SSTATUS_SPP | SSTATUS_FS | SSTATUS_XS | SSTATUS_SUM | SSTATUS_MXR | SSTATUS_SD; +static const target_ulong sip_writable_mask =3D SIP_SSIP | MIP_USIP | MIP_= UEIP; =20 #if defined(TARGET_RISCV32) static const char valid_vm_1_09[16] =3D { @@ -694,8 +695,10 @@ static int write_sbadaddr(CPURISCVState *env, int csrn= o, target_ulong val) static int rmw_sip(CPURISCVState *env, int csrno, target_ulong *ret_value, target_ulong new_value, target_ulong write_mask) { - return rmw_mip(env, CSR_MSTATUS, ret_value, new_value, - write_mask & env->mideleg); + int ret =3D rmw_mip(env, CSR_MSTATUS, ret_value, new_value, + write_mask & env->mideleg & sip_writable_mask); + *ret_value &=3D env->mideleg; + return ret; } =20 /* Supervisor Protection and Translation */ --=20 2.20.1