From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139628; cv=none; d=zohomail.com; s=zohoarc; b=QEW2KspvBuLAuJ8bpY5Cb8hBajvYwfS89lY5hMwSkVBxYsT5EpWbQq0o31hwAmWbJ82LzZ0DveSOpoB9AvqYbnKGE3aFkLlfN8TEG0ynqSOl6mGYmtxVUaf34sr+DwU4ahs6FDcCOh6TmFGtYN6nOa2Ul9Cqk8Pl1eXZuuCdGYE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139628; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mF3n+pRh+e300NOA7bOH0Ula4mldw0TP8aiKSv/NutE=; b=kGlghdPr436FDurO/SUJtTrSK6V/ACvOOrvG3f+KVMmmlrAYUccvKS6yA/r6gHHjaEitzRAhkrilMH2TN93c2E7cFClLGna63BFbMJm76lWUaCajut5wSGQqZrZ8715JGWn4Ka1PnPJ3BZbZIyGDD79nkhBu4jmUBUsrJjokgYY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139628950577.2484945508866; Tue, 4 Mar 2025 17:53:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdwo-0001JN-0i; Tue, 04 Mar 2025 20:53:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdwm-0001J2-Ej for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:20 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwk-0008Jw-TT for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:20 -0500 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2232b12cd36so86346185ad.0 for ; Tue, 04 Mar 2025 17:53:18 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139597; x=1741744397; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mF3n+pRh+e300NOA7bOH0Ula4mldw0TP8aiKSv/NutE=; b=f0siyMt9b78uXDzg9QxAgT5WiV4dm8o7elp0OP5hN2PdjufnAVexYODmP7oScgyKQW QziCIyo7+hKOSacpS4rkhh/s0TZSbj+29+lOXH/2zi9qdwwOC8yyCL8fJ99JRQMp9Op2 +s9tBd2ve3u+Wl3Y4DXS5D/PPEofdqczSBxELSGlP5SA0IcUpcS6rdwnd1Gx1y3+oHMS wJ0cnkzvZWyP7hjI1fyhq0Ojk84MzevEoNbzGArr7xycSID/SUs1KHtBgmjQd7bWIsQz RkYyep3n3PpBlspIMlUKtXJR3GUF8/9D+wm+R0k2GpHfLPu9MozTjYMvEUqG6eFwqu6x s+XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139597; x=1741744397; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mF3n+pRh+e300NOA7bOH0Ula4mldw0TP8aiKSv/NutE=; b=D4Q/yGUvHo2NzKGTmSZxk+zAbzbugUP9zTCtUyOS44b78ifdlCXcpVmhpsHe96E4Sh HLe4LkEAk5neGJko9PKHbHxoY7fSlyuNb0Z/+OeNAtMKhlpaEK3YuNCFjtFWtlm6RDmc YGNXBmcPkEnZQsXDzWXg8eQMwE7vulqgQTpKIkYNQdD+R+CgumtZ/Fy5QR7/cJE/nOLB Zpc8Qa/vJf+umWYufRovNxnBeszdLlWiVFespoFkiWVruCUpKGndI+htIh/SsMWAr0ji rz22rPFH9DYQ7PYA929L1taU4KQcP/iISWYnt9TO0QGpE7wKEgeiy3XotCo/KzH36SRs ZyfA== X-Gm-Message-State: AOJu0YzX1ahuzal1FLxsJycK0+fafXoQZPqhabpTDs3TwgbzdVkeijvH kYTme7yblPMMvI36F59+AdQpVhC3eBxPrLPmClsVdWcHerM+3XuM3g3Y5q9JvKw= X-Gm-Gg: ASbGnctMLCKBFHw1Tx59Vt5q/sOye2fWsXSf3RnmUtXZoyb/IZT2rTH1/xn68VJSmb0 w3k8NnhRsw6XnvWl2wIx61VSrVRjovq2JtDmEMXglzWINaSHxo/Q23ofsD7JSYPmn08dzFzaOMv armCkqgujqjeCmDWV661d+TNyHWMyukLfDJncjXMZ8GhwZH2oAH34/ZErBJPL1TCxygMiIOgWe4 KM103AroNDHnMp9lRwcBwimpctJSMbAoGYUnyCApg57H2nDP14//1RGQPrjtH97MfroIj9cwr+e lBpuRXsDJemUFUwkaO8zKIyx98R+rqMlwrzXxzH/OkP19k0g44uQC0W9aAv2rZOQU0obDEiqSZ1 7DFjy1pVNXNLd2ra8UxuJRrBDaTjPf5URezyGkMglEIlbq3mYjpc= X-Google-Smtp-Source: AGHT+IEUs/z57J6otEYiBs09M8JfSc9zAm7lPrAuYP2QXY99ZItnZOedQBaRJ7NaRRaDXlhrhknguw== X-Received: by 2002:a17:903:19d0:b0:220:e63c:5b08 with SMTP id d9443c01a7336-223f1c66040mr25468955ad.11.1741139597242; Tue, 04 Mar 2025 17:53:17 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 01/59] target/riscv/csr.c: fix deadcode in rmw_xireg() Date: Wed, 5 Mar 2025 11:52:09 +1000 Message-ID: <20250305015307.1463560-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62c; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139631349019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Coverity found a DEADCODE issue in rmw_xireg() claiming that we can't reach 'RISCV_EXCP_VIRT_INSTRUCTION_FAULT' at the 'done' label: done: if (ret) { return (env->virt_enabled && virt) ? RISCV_EXCP_VIRT_INSTRUCTION_FAULT : RISCV_EXCP_ILLEGAL_INST; } return RISCV_EXCP_NONE; This happens because the 'virt' flag, which is only used by 'done', is set to 'false' and it will always remain 'false' in any condition where we'll jump to 'done': switch (csrno) { (...) case CSR_VSIREG: isel =3D env->vsiselect; virt =3D true; break; default: goto done; }; 'virt =3D true' will never reach 'done' because we have a if/else-if/else block right before the label that will always return: if (xiselect_aia_range(isel)) { return ... } else if (...) { return ... } else { return RISCV_EXCP_ILLEGAL_INST; } All this means that we can preserve the current logic by reducing the 'done' label to: done: if (ret) { return RISCV_EXCP_ILLEGAL_INST; } return RISCV_EXCP_NONE; The flag 'virt' is now unused. Remove it. Fix the 'goto done' identation while we're at it. Resolves: Coverity CID 1590359 Fixes: dc0280723d ("target/riscv: Decouple AIA processing from xiselect and= xireg") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250121184847.2109128-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index afb7544f07..ab209d0cda 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -2658,7 +2658,6 @@ static RISCVException rmw_xireg(CPURISCVState *env, i= nt csrno, target_ulong *val, target_ulong new_val, target_ulong wr_mask) { - bool virt =3D false; int ret =3D -EINVAL; target_ulong isel; =20 @@ -2680,10 +2679,9 @@ static RISCVException rmw_xireg(CPURISCVState *env, = int csrno, break; case CSR_VSIREG: isel =3D env->vsiselect; - virt =3D true; break; default: - goto done; + goto done; }; =20 /* @@ -2705,8 +2703,7 @@ static RISCVException rmw_xireg(CPURISCVState *env, i= nt csrno, =20 done: if (ret) { - return (env->virt_enabled && virt) ? - RISCV_EXCP_VIRT_INSTRUCTION_FAULT : RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } return RISCV_EXCP_NONE; } --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140148; cv=none; d=zohomail.com; s=zohoarc; b=Hd+t0f1Kk9H53Ov1IJZQKrOgcoZiI4s5JS+rGE3pOJzcqac1sIBf6gbH6qgTEztCd3fOdqDIr3J/hVOkd3boQ11Oxd9dqPoJKVjhVjg9T4joru3Xq262rI614T1DzukMUNmLBIwX9L9sbLPvAZvJ2rd4RBwB85kKQrpIzOALUqI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140148; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CHDgly9sQszED10pugyis6zMJVVAhpUJBdFueBMt+lA=; b=RQKOgI2+mgC+SZWPp7BjYXGsUZ9PAbyovj3/laI+YOs3fCMjKF/RkkP5eQRETb3EVDydlLLNEhEwDbP3vCjaaZ/13JxSy2Im+1xcniMdq2YPR3Ajqdq7Lxp18ufK6nvuDzyDCYmFhoeIMroYey1RM6HROeIITn1BeFfm7m+Iqis= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140148531984.3339184752248; Tue, 4 Mar 2025 18:02:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdwr-0001LE-KU; Tue, 04 Mar 2025 20:53:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdwp-0001Jo-Lo for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:23 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwo-0008KV-4Z for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:23 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-2239f8646f6so64289125ad.2 for ; Tue, 04 Mar 2025 17:53:21 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139600; x=1741744400; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CHDgly9sQszED10pugyis6zMJVVAhpUJBdFueBMt+lA=; b=hCEztbZyMBZf/kZVf4yh8aEITdE2lXCYfFwCQVosM0Uh8ihlhEaCOvh50PJR+X5F0c Ot1j1/kD9r1K7YC0vYXVEinkS0ETKki0OWdrdrTZ0BP6fFoxGkiqxFbAoyZrts6cbjFc iUOC1nWlkgHHvE2Orx2qP2AWTtwMYNo8L92J0iEFJ/HbCSOB3U/IErZHPBBWHMDPUPXB cO1pcPgQIFdbaKlKDTopjqJf7XxlfkTU7uryxc5ue1KsUiGS6iE3P2ctm0Fx+Qxa1gm+ xjorH37SRN4qs0rChAqj8WFLutp5Avd7uHKEpvLQ2iAGCuxlGibb1JjnBunQ7BisYCem od+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139600; x=1741744400; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CHDgly9sQszED10pugyis6zMJVVAhpUJBdFueBMt+lA=; b=Lpiul8tADAag0w1/OqJ81cEdfI5TP42ryKP0PrGOQj9DnRpEJQuxX925FeuRn/brlK azZMTbhIaZDrOm3c3KEr9u9f4xwT3ViG5bWIivqnrTvg1w6tPZ6F84jD+JCbgYv7t8e7 Bd+ORDU892t80zUfcUn0P48ZGWbObxXprYKUb1nQRZLuP2RZOO1l/+mktAXjmNLUHTtT SLVevnzDk8PecE0Ek8Y9u132VgMSV8vWmlxCjOotQuBxuqzC2sGV4P1kHIu3QPSEC3V+ uJBRWYpbHnwOh+UO+Hq04CP/fw/d3RThdmANS/4ppSkgfqVs97zsLtjwqMrtVo+uiNwI FPDA== X-Gm-Message-State: AOJu0Yy1pcSLsf4t+SwFdd00OZQt8svvtH2KJDbw7SKt0OCXocoxQsf+ pNG+BPMNKV4BNSX9jIyY0dfBQeowLt5S4ixTqhL7sw6niBdg9JveNj4Ch/e9Lic= X-Gm-Gg: ASbGncslqnbxmDH5RUW2eTqIO+qZFVRas1CUIwRVTFMjj29yuuBzvdEWDqRh+D/AE2D fy2w/8p15E7A7riETViQDtCI7i+kpwtdYxbI2KTLt0h44TCjFOwVZFa3mV4062LUa1Vk0PXwitX fhUtkYtM3tS89LIYC0WV6WeeMZsjzllxCREicK5qwGRne7/Qd83v9faEqJeJid53vBjZj6IPGRX nQhpGrqVUh8ap6YROAs6IYHp5BiRkKLH76dAYSkJC7NXCU/37ewGmjjmXRPfvcXS/BuAncL4wSK QlbK5nRQRdeBQoieVOWIPjowLQv8gBbbVwXHvWmZfh9iF8h4r1eoWhyPI7ABsoQHNXwkp1/Eoia MoyiVD+8B4tkhHUoZcOdjfIB10kziSSYBe7dFK7RHdp+4ztspVbA= X-Google-Smtp-Source: AGHT+IFWpBZSRWeiQauEvQ8u+vKdi6hibUxVmecoB/J52REhMH3YqUTXaW9rlV5ZdkTHeQbgBw93mw== X-Received: by 2002:a17:902:f693:b0:223:66bb:8993 with SMTP id d9443c01a7336-223f1d10941mr22187645ad.43.1741139599959; Tue, 04 Mar 2025 17:53:19 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 02/59] target/riscv/csr.c: fix 'ret' deadcode in rmw_xireg() Date: Wed, 5 Mar 2025 11:52:10 +1000 Message-ID: <20250305015307.1463560-3-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::633; envelope-from=alistair23@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140150675019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Coverity found a second DEADCODE issue in rmw_xireg() claiming that we can't reach 'RISCV_EXCP_NONE' at the 'done' label: > 2706 done: > 2707 if (ret) { > 2708 return (env->virt_enabled && virt) ? > 2709 RISCV_EXCP_VIRT_INSTRUCTION_FAULT : RISCV_EXCP_I= LLEGAL_INST; > 2710 } >>>> CID 1590356: Control flow issues (DEADCODE) >>>> Execution cannot reach this statement: "return RISCV_EXCP_NONE;". > 2711 return RISCV_EXCP_NONE; Our label is now reduced after fixing another deadcode in the previous patch but the problem reported here still remains: done: if (ret) { return RISCV_EXCP_ILLEGAL_INST; } return RISCV_EXCP_NONE; This happens because 'ret' changes only once at the start of the function: ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_SVSLCT); if (ret !=3D RISCV_EXCP_NONE) { return ret; } So it's a guarantee that ret will be RISCV_EXCP_NONE (-1) if we ever reach the label, i.e. "if (ret)" will always be true, and the label can be even further reduced to: done: return RISCV_EXCP_ILLEGAL_INST; To make a better use of the label, remove the 'else' from the xiselect_aia_range() chain and let it fall-through to the 'done' label since they are now both returning RISCV_EXCP_ILLEGAL_INST. Resolves: Coverity CID 1590356 Fixes: dc0280723d ("target/riscv: Decouple AIA processing from xiselect and= xireg") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250121184847.2109128-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index ab209d0cda..0e83c3b045 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -2697,15 +2697,10 @@ static RISCVException rmw_xireg(CPURISCVState *env,= int csrno, } else if (riscv_cpu_cfg(env)->ext_smcsrind || riscv_cpu_cfg(env)->ext_sscsrind) { return rmw_xireg_csrind(env, csrno, isel, val, new_val, wr_mask); - } else { - return RISCV_EXCP_ILLEGAL_INST; } =20 done: - if (ret) { - return RISCV_EXCP_ILLEGAL_INST; - } - return RISCV_EXCP_NONE; + return RISCV_EXCP_ILLEGAL_INST; } =20 static RISCVException rmw_xtopei(CPURISCVState *env, int csrno, --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139688; cv=none; d=zohomail.com; s=zohoarc; b=BaQFZVYu/2tKJa6/HB8N5VRfVuq55I2I6ME8mfZN3pP0pqxcQxknE5MLI/RyCoUk6OCaqHUSDwF6uBiDh9i1fSwybIqTYhCe+lo7emsU7ENSoywnyNf7lsDTGLX09mqWKFCNze5pyomF6W9VNoM9NDOA1wrbzLhXlzM6mTTmIIY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139688; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=cF4A8Jz90TPUKD7OCkZaaprdbgwWpIvnZLmu+i5+8P8=; b=CtuFgwCHFx9CTykxwW9hZyARmaStAeNpSWaaXfA5XqqSgmEuvtgtk8hFazjIjzYcP58ZnXubnpzg23qlbq4m0jAy6TmvYad6rJpZHCCP8K+i+a0i9BME6hYKL40itSjXaq2XK0hEVYI46YtWhCA7LUsNx4KvS9nXzfU/a2c89nc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139688591673.179185198284; Tue, 4 Mar 2025 17:54:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdwu-0001N7-TL; Tue, 04 Mar 2025 20:53:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdwt-0001ME-5W for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:27 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwq-0008Kv-GL for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:26 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22334203781so6637115ad.0 for ; Tue, 04 Mar 2025 17:53:24 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139603; x=1741744403; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cF4A8Jz90TPUKD7OCkZaaprdbgwWpIvnZLmu+i5+8P8=; b=Q8Y4sw9I+YIqWrFDnm2LImWTKaonY/lExw9J8lR5hRabLuLibBEZ8Z1bSoboEiECaE VQEdVtr2+hZGjVIec+ITrH5UuJAHm3bZzJqx2BCJ0kPCK9cF98t+8x0JoT2cGJCeDlm1 yJfw3ybmWwRrNXwpg/cf1+Lxq3pR1gcqaTVZqu3sQDUhq2SnCWkaVhoCLru17CzsI5tT 4x/IOzoDydWnOt2LEIITds+01Iv/09zb/8Aryf+G6KzNubmEW9lU3Keq9VesbeaG0N3c 7UMqUI77PlN5xpLvb5X6L1BirsmO1NGpvqA9jsw96/D8XaeeaKI/l/uDu39+YcibU3oy XFPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139603; x=1741744403; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cF4A8Jz90TPUKD7OCkZaaprdbgwWpIvnZLmu+i5+8P8=; b=I4rqpGJyS7bvfDDHQUgM8KamQh8ODUF1Re8OMnsRyby5Za95uEH15DZBRnYE5gkepe m770StKnHhewGXv9WcqergKmbm1KvDTBUvjw13PXfg6KtiKcnbdg0l2GEg5tZW4tOJmi F/jHz2ZemXwdknDWIF+PgfUdqP8yTZGVk38sOUDye1AG5lBvOhnVxWbOuYpibVv78nO5 z2ZkNwuAyoaif7H/Nn/4KF0nHuAVmPpC+EeMblCqJ54slqKRuwOhK/cPo19a1vT/yh+4 8KuLCfisCiCEBf8lHacitEBj4AbXRNxmmY7HjRS2EzdCDND0R1TvtXbqVe0tmHoZ+cml 8ZBw== X-Gm-Message-State: AOJu0YymmC+8ygWMJnmUI/X7gKrxppD6BtxyTB/aTuT5WY6XigyLmE5W hjdjJvRuNcuo83fK8VyUel1/euDXT38o/PKa0sFE7i0/6gj7duWyVUqPdOqlwr8= X-Gm-Gg: ASbGncuHti95XWxjYpgj5BzSI6wX8WMVYU6K1F818U49On+6cSD4JRlBYf1TuSXRKh2 Mkvwa2oXRaci8vzv8cP8mbUKse+IZBznZ9PeLXLY8uYi/9CnvthCuvHdkG7s9lBKzVSM91gUl/z cSgJ8cybxQOeUCspwvlk7hESb//kn0jvhieWBXe90L2IZ+kGSfQNr1p6xtuqWolKKrPR9JWl1TK 6A+zFzQ18ZeM9GTYbvYWgr1NvpLL9UMc+X5Hv7gPxXxnq5dcstzx1CV3+fTswf7PiUrJc752Ng6 wKoyjHquH4bMKhY9L8sC6YX8GpyE6zZP5aT6Gv3+4AG/Zji0VWRfZ4VCcPqz+u0cU2YbtkeOqgu Qp5XdMUNASd5rW4iAIYlgCVHKn31vgjBnTSqENh4WxFBwB0t2xxY= X-Google-Smtp-Source: AGHT+IGVO+ELndxDC3hlihg42Zyg8BDVrRqR3hMth6Z+5sIr+tXbwmOI/Ss7zHoHmXwz1y6XoJH3GQ== X-Received: by 2002:a17:902:e751:b0:21f:6d63:6f4f with SMTP id d9443c01a7336-223d91343a5mr87788015ad.2.1741139602683; Tue, 04 Mar 2025 17:53:22 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 03/59] target/riscv/csr.c: fix deadcode in rmw_xiregi() Date: Wed, 5 Mar 2025 11:52:11 +1000 Message-ID: <20250305015307.1463560-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139691244019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Coverity found a DEADCODE issue in rmw_xiregi() claiming that we can't reach 'RISCV_EXCP_VIRT_INSTRUCTION_FAULT' at the 'done' label: > 2652 done: >>>> CID 1590357: Control flow issues (DEADCODE) >>>> Execution cannot reach the expression "RISCV_EXCP_VIRT_INSTRUCTI= ON_FAULT" inside this statement: "return (env->virt_enabled &...". > 2653 return (env->virt_enabled && virt) ? > 2654 RISCV_EXCP_VIRT_INSTRUCTION_FAULT : RISCV_EXCP_ILLE= GAL_INST; This happens because 'virt' is being set to 'false' and it will remain as 'false' in any code path where 'done' will be called. The label can be safely reduced to: done: return RISCV_EXCP_ILLEGAL_INST; And that will leave us with the following usage of a 'goto' skipping a single 'return' to do another single 'return': } else { goto done; } return rmw_xireg_csrind(env, csrno, isel, val, new_val, wr_mask); done: return RISCV_EXCP_ILLEGAL_INST; Which we will eliminate it and just do 'return RISCV_EXCP_ILLEGAL_INST' instead. Resolves: Coverity CID 1590357 Fixes: 5e33a20827 ("target/riscv: Support generic CSR indirect access") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250121184847.2109128-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 0e83c3b045..75f21ccabb 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -2621,7 +2621,6 @@ static int rmw_xireg_csrind(CPURISCVState *env, int c= srno, static int rmw_xiregi(CPURISCVState *env, int csrno, target_ulong *val, target_ulong new_val, target_ulong wr_mask) { - bool virt =3D false; int ret =3D -EINVAL; target_ulong isel; =20 @@ -2642,16 +2641,11 @@ static int rmw_xiregi(CPURISCVState *env, int csrno= , target_ulong *val, } else if (CSR_VSIREG <=3D csrno && csrno <=3D CSR_VSIREG6 && csrno !=3D CSR_VSIREG4 - 1) { isel =3D env->vsiselect; - virt =3D true; } else { - goto done; + return RISCV_EXCP_ILLEGAL_INST; } =20 return rmw_xireg_csrind(env, csrno, isel, val, new_val, wr_mask); - -done: - return (env->virt_enabled && virt) ? - RISCV_EXCP_VIRT_INSTRUCTION_FAULT : RISCV_EXCP_ILLEGAL_INST; } =20 static RISCVException rmw_xireg(CPURISCVState *env, int csrno, --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140042; cv=none; d=zohomail.com; s=zohoarc; b=bOPoyUTj2BtoDSbsgaId6MLQHT9wIrI+ZgodXrpr1Q6+Jsr+92OXWCeQpDdEwaPjKEw7Zl3OXpcyhc9QTVsX/Do9G6+DQQYu00toc9+4jU8EBtYMNbVGe0CcpPgG9b8YSgL1Op4Z00u07qzIy1iHGVdebFKFhuJpBhm4FWHfN+k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140042; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=g+v51xfDzyLDQdhDH4NQnLLxRK59n+7mC2qFfSEYePA=; b=XLlpW+i31evM+d4aVtt1nEhHfjAjIG74UUHT6qh505fNX4DJgsjufsMzfPyMQzeljhP9wh5lojPpeahDTjb65WICSV8fl7FjD3NJH35+58BQJV2wnmYcy6mIOOCJ2Yc790oI3X5WoHPkIET1oXZvZKlYOUOyoZKe/wHIrczXopQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140042605122.1466060800891; Tue, 4 Mar 2025 18:00:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdwy-0001OY-Nz; Tue, 04 Mar 2025 20:53:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdww-0001O0-Tr for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:30 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwt-0008LD-4W for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:29 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-22359001f1aso141898365ad.3 for ; Tue, 04 Mar 2025 17:53:26 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139605; x=1741744405; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=g+v51xfDzyLDQdhDH4NQnLLxRK59n+7mC2qFfSEYePA=; b=WKY0vTCmeWafLlU+72pwzSv0YbGDYjiLS4zimjVl7Ka8tNctz527TfLE3BVeeOfmaH RI/Vfp4+n8Tm9cO5u2oZxhJX7cXeB6hJNn7VXdOLN+m9Km6Pci3ieDjdfILUIpDiRNMd NcmnkBViLs6Z+aQTWV4AtDvLKCajCi5/Ti9kCgQjtUY+2RWyVNsx/3jMYivThnTyuXw3 J8wSNyTQ3iqCqvm241qTFvqwmMEMrMUolll0MD0I92Kxl1hZ1zkUON4quzIdrRzJr0R0 IUXDZy0HXw9JLRf24GJMCcHRW6YJTqgPMmT5uxwkcYr/w5E73pL10CZdl7/B+EbocpyI CZDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139605; x=1741744405; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g+v51xfDzyLDQdhDH4NQnLLxRK59n+7mC2qFfSEYePA=; b=R8HvDKiDbuDMRyJib+fcHcTGGkegZbK6r0jRVLmkhmMGvmEoDhN3N4uURPVXJjrV8r gpY5G/LG6WYuH3NBhJHr39duN9JWYsBDV4t5enO/6CZpjUtYxf8oGSdLBJe2MFrpVjq0 FCGcmLYTcoSkUGdEPh7jNMaVPWOnpMrWyLU0mtLQU0SkiNJXhio+GdurtSUJtU0CSvbC qQey5FD9Vai5XR6YxfqROPxD3QHbVwNFhWDa7HwlPr2n9cKVago6MvS1QJ1oJ7KMUx/D VX7iczxbyZ31+HqtdsXqn/EWJLiMfdLd9jNf9Ib7HARoAiFeKgIjh6w2RFbYdl8kDX9p caRA== X-Gm-Message-State: AOJu0YxdgJsuOaot4QMNQXCIey0KNtweFLf17xAYATksDjN4u5f+8DKX MNwd2YXoF4Se/vru4EIXxoo5CgBIsSUMj5iQ6uOOgtgkkV/MNM5XvmyfdEqrS9Q= X-Gm-Gg: ASbGncuE1Rr6xcDX6WEHijqeOxNWqWrKs4H9CZAccDZN6ej7lK37aQohJHrJem2hjwV SL6v1jWVG8K2lCkv7686TbkD0A/Pds+XHa0dj5E+etXK3UsSlhqm58Q/54TRcLDaxVpH5LH8gp5 cVoH6XxN/PTSgY+Baad4lT6EHkz1rQ1NgNRCVvxo8Q+ORnUwVKoKpoX/9pJVxUyBAiI6VAAOpwy b6h8wa6NEYWPMB1ccLRO9qVwOUfgtzmC0xT6n6eAtvVGnlkvOtgn+BeZm7DdZPWi2kAoxkITXQq tp4gKVaAH1qCNveOUSE6gR0icHOX8fCNEPYpBRsmLNSu8lbrNkMCCteRDRLMCbFI/0gXPu62Ro0 2QOnConBvRkmwWOPsyWki3q5kanTnKcp1F8b37YOTBhTi6y4n7u4= X-Google-Smtp-Source: AGHT+IHLiR7SErwwawN0g7zitmlYgMDqDY4OdhZdebE62UqDn0dzwT37BfKoC4TeD0POqMtxPkwIQw== X-Received: by 2002:a17:902:fc44:b0:220:ff3f:6cba with SMTP id d9443c01a7336-223f1d22362mr27671765ad.38.1741139605462; Tue, 04 Mar 2025 17:53:25 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 04/59] target/riscv/csr.c: fix deadcode in aia_smode32() Date: Wed, 5 Mar 2025 11:52:12 +1000 Message-ID: <20250305015307.1463560-5-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140044320019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Coverity reported a DEADCODE ticket in this function, as follows: >>>> CID 1590358: Control flow issues (DEADCODE) >>>> Execution cannot reach this statement: "return ret;". > 380 return ret; > 381 } The cause is that the 'if (ret !=3D RISCV_EXCP_NONE)' conditional is duplicated: ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_AIA); if (ret !=3D RISCV_EXCP_NONE) { return ret; } if (ret !=3D RISCV_EXCP_NONE) { return ret; } Remove the duplication to fix the deadcode. Resolves: Coverity CID 1590358 Fixes: dbcb6e1ccf ("target/riscv: Enable S*stateen bits for AIA") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250121184847.2109128-5-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 75f21ccabb..dc0a88a0f0 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -376,10 +376,6 @@ static RISCVException aia_smode32(CPURISCVState *env, = int csrno) return ret; } =20 - if (ret !=3D RISCV_EXCP_NONE) { - return ret; - } - return smode32(env, csrno); } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139940; cv=none; d=zohomail.com; s=zohoarc; b=EzF/uKixIE7AHg3/BCGbTfiu2GvipI5G5cFY57UpfSUGLUBN9/tUTP9x08FDjNGG4/8VThABTYbC3hO/rtUb/9ln9lnV7XsoOcU7ZyC4ku01miEUgPPmtwppsxWR/a0y3VEEj31xGUhTUa/C7M1KRRogtBSEZ5QD+uZ4IpPN+RI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139940; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wW5zURPCWXC9LghxnOTTQW/12iqlMGnRb2lijiceHcM=; b=KK9oY9BEcE+NO8pARikr6c2nM/KPytsdlD4w5mV/1PldpIFAF+63QgsGNonUGx0Ck8xJBTdIwfrN1+O9Mka2sIk7Vn71EyavK+LTOzjQyDs8OKwCfg1GNvRnNAYlH/zKDk/rNauPCKoJX78T+LQtCurhvzT0H+Wo4rLKSbi281A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139940257940.8159782625429; Tue, 4 Mar 2025 17:59:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdx1-0001PX-11; Tue, 04 Mar 2025 20:53:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdwy-0001OZ-Nv for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:32 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwv-0008Lj-Mu for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:31 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2238d965199so61653515ad.2 for ; Tue, 04 Mar 2025 17:53:29 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139608; x=1741744408; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wW5zURPCWXC9LghxnOTTQW/12iqlMGnRb2lijiceHcM=; b=lfVLYRfRMlqULJDCrlPoM4HjfftDma6Shh15XWlmQQEsWfBvjFINinlyDXsCGU1mzO kuIVOSgce9dnbXFLR0dd9Vgc73YA/+4fRmp4y9sThG7+0p2YHRS2w8M0OaMiIy4mTDKN vlI1XAThYv71wcNzUd/FRHChcrFrx2ah+GWEzqKIKGRVHmnrjA4E62vOAwTJX8yhFotU gP12fm6zikgDRMA92WqEzpmozX5DFAE9wlj3IlAB8waSEXMyzblwXlMFwCna6rMVn2IL yLCpRUAdlK5qkZidBvmEoq7DvSazGgGEzHhiSddLpZJqE90z1HQYcPAwd2uSzQVhjOLN +0YA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139608; x=1741744408; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wW5zURPCWXC9LghxnOTTQW/12iqlMGnRb2lijiceHcM=; b=adnP4aPOst1As7eU39FAgaqKayRev6ztsEHP0z1EP2dhOpgK3OxwKirTtrBlRnp4pM 96R0RAROYt5I5QRagTp9YVxpfZlwU/DEgwyqRCgwHEt4QybTayXz46A5o0gvACl/qNJJ P7pKWH+OlRPO8yuy4f4pkNWMi+Env8fLCvLI474jN6pVZoOxWKdsZ1ot8wBE0xvqTo4v UrM+ZDg2K9ipaU34xsqHdr/uNDsZLF7Y7Ihy9/Rr46VWFiPioEWz++X7VQyfSd2mLO2y 6M3Ua/4VLqvy6J8Jh9utcM7lucYDHx0RIxE3s4T1vr5k57D817dYD2LHd+/7+LDS6vgp a4rA== X-Gm-Message-State: AOJu0YwhgkQmqneLt51I70k+wnCwrLLdBDdNgqLfDJ0SqwEPwuuRSv6F 0JxVB3/yrT4/gmGdzCfCiF1icmMchGdDGLDjfLKU+TIGGNAzgY1/ABM00v0Qpw8= X-Gm-Gg: ASbGncvqyKVkkrZOQhs2f+x8OsaZ3rNrpOjPvinRPFAddqSOuoo00Jg4d/d73lCpI2M BC9twlmL3tXQoGghu9azmKAz2r3bJamaW/h6PzfVP/GaXaFFOmyY1CIhZJ5guR3V0p5ft6ley8S QHurS73dzAc83anapsMNS+X1AyorNRH6BxOi3/H4RmFpng6OMwJVdZNdtBFVOzvW2YyEaXVT0h0 19OS++GKium0NgOxPOiwWyoWtLzu3Fd12LZzCEECUDKEivFpD+hQ9tdJn/zfGo3F25vN97UFJV1 aJdJ7fB+R74Cva6q39qoIR0uvU2oq3P29aIQOoz4PfT0cYL3dC/5LO3KpDCqqI2uK/sh4WswdP4 hr87IA1+cUb0w97QIlc2mNseEDMIGNiMfT+vJu+rf5lgRbwDVHwI= X-Google-Smtp-Source: AGHT+IFoq01iz0MCSueot8Imc7i5RllpvClielHOgJOh24LtPKrIDovz1DIP0o3Stt7uu5fm3gt+aA== X-Received: by 2002:a17:903:22d0:b0:223:4d7e:e523 with SMTP id d9443c01a7336-223f1d3543fmr21502325ad.50.1741139608131; Tue, 04 Mar 2025 17:53:28 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 05/59] target/riscv/cpu_helper.c: fix bad_shift in riscv_cpu_interrupt() Date: Wed, 5 Mar 2025 11:52:13 +1000 Message-ID: <20250305015307.1463560-6-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139940879019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Coverity reported a BAD_SHIFT issue in the following code: > 2097 >>>> CID 1590355: Integer handling issues (BAD_SHIFT) >>>> In expression "hdeleg >> cause", right shifting by more than 63 bits has undefined behavior. The shift amount, "cause", is at least= 64. > 2098 vsmode_exc =3D env->virt_enabled && (((hdeleg >> cause) & 1= ) || vs_injected); > 2099 /* It is not clear to me how the tool guarantees that '"cause" is at least 64', but indeed there's no guarantees that it would be < 64 in the 'async =3D true' code path. A simple fix to avoid a potential UB is to add a 'cause < 64' guard like 'mode' is already doing right before 'vsmode_exc'. Resolves: Coverity CID 1590355 Fixes: 967760f62c ("target/riscv: Implement Ssdbltrp exception handling") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250121184847.2109128-6-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 8ff6d900f2..1de8e0e494 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -2084,7 +2084,9 @@ void riscv_cpu_do_interrupt(CPUState *cs) mode =3D env->priv <=3D PRV_S && cause < 64 && (((deleg >> cause) & 1) || s_injected || vs_injected) ? PRV_S : PR= V_M; =20 - vsmode_exc =3D env->virt_enabled && (((hdeleg >> cause) & 1) || vs_inj= ected); + vsmode_exc =3D env->virt_enabled && cause < 64 && + (((hdeleg >> cause) & 1) || vs_injected); + /* * Check double trap condition only if already in S-mode and targeting * S-mode --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139943; cv=none; d=zohomail.com; s=zohoarc; b=l7zIp2b/rTbLhBu1eQJLGUVBQFAF7DWLoqINOETyJyydpQj9io485VWq12YRcRteypLDvlohJMpIQxm/lHAj16fx0xqfFeW7IQ7a9Tu5fJSgtDdCQ9ekK2IZdPKH9MydivUb726JUi//yeet5ZHIJARLy4gTWvBfF5WrMV80RHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139943; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Q/GPSEwp58vGbM9OWIiwI6PEo6VDjJTBjv2Albcbic0=; b=LWtSVZneQtXXINuMjJFxwvtzkDrfas8d1kbYDOuw4tGN39jKPsV93SxQVWnG6UjvJCzbab6DNA2h6PX/mrrSjkkH3jEXAGuA9OsDSVeqYoFiupAyBTl5wm6dV6WiYabqcKeeSQEy3BKyllIOn4oeZIXjp4rwyfwhORTKqx/0aOo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139943523677.6240017752818; Tue, 4 Mar 2025 17:59:03 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdx3-0001Ta-2t; Tue, 04 Mar 2025 20:53:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdx0-0001P9-Nw for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:34 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdwy-0008MC-LV for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:34 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-22328dca22fso94312025ad.1 for ; Tue, 04 Mar 2025 17:53:32 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139611; x=1741744411; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q/GPSEwp58vGbM9OWIiwI6PEo6VDjJTBjv2Albcbic0=; b=GOCHhFknPD/fOGOH63wWPMo8yBr1isHGKroKG1/Qj+5gxc28VReg57uLLr+/TWQpAV OJA+k/erdT+Q7gt4ti+yOe7NSmSQUEOPn7A1RkYI1a/agdcMB24JvvlO2I9Ax89DMgRx +cAOtqO61uhnRddeOYFMXGWy8X8KKsAzFZccALJuRQZafeigab41XlDCHxUqylbIG/Eh I2sgyqVBNcgXHWdNyS8Fgk1G7hWAW3BD4plWAKPrmTAuUK1BVMBD3JzpA8wYTninHPn6 q5RRAFDGLqELqG7gFcvyjGvSUnmbkBPbF+9FOz4RA8ADDMnKQGh8+UEpXRp1vhC7WrBZ Kkgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139611; x=1741744411; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q/GPSEwp58vGbM9OWIiwI6PEo6VDjJTBjv2Albcbic0=; b=PiA7FeOmLhPqimLxDdnKntLFS76czR7+USVeSUisT5KtjUF02Vt9f4DpP2GunTy9Kf /k0HYmTM0Mj7aW8c4m46+XlJcKs/d547unq2iE4rXii66qs6FL7qVh5hfMbeF4ZHM6M/ RU6bAqPWVHcR+/8U2TGxR+z4i3kZTqVAl40HzaW5VZ3Z3oTLkWvZ2oZX10VrhdTeEJkA PFAVJkne/geyjYn16nPb88XouJzZ4PHfJIXN5dFbI07iQI+YRzfQxquOHhCb2csjpsEw t1WXgUdJa5Zr+eHPX4MGYPqY3OukotQ7/So6V1z1zLWymCf6rjMHONNjg14Wlc+mZurn z1Mw== X-Gm-Message-State: AOJu0YyX71+ymZ5PvXrZTz/8+QtMpaPutsgThZBJLdspdE1ZRhLKJiJX p6r1SfblP1sFIMi1+zyxymTN8HyZq2ujWpMipE0m72vlUPI09v4aaRlHmOIfTus= X-Gm-Gg: ASbGncujTmd1dlhH1mFPFB1ogihXna/fsWD8YFcI9szDp0J00Bs9d669t2LUdYQeIiv qPIBKlI8kcZ7XJWI6q7G8wqMbd9gQcOiCazGsYHV7/XE+rMGlW9wsLjMvZu/qfTSxv6sJDh4QtS IRcarizlgtOV7M/UYZYedQ5O6V8OcAzbIEvnv8aI4dSr/Ed7pIQ99CBAGeBIuFjxaQZvUc3ucYX lMXp0mvnGMZoRcYRMDx4IFKs5woREyf22dzotI4gixp4Q3eZgT19I/Ur7S1QsqwzK4n/Wvabju2 wTlKllJApqKyunSWJEJN8psMRXmpFP9MNMuYY0uQHY97kcDO9DgmYcN1e3PbEp+qgMTvH0bI42h HD+sLebvd0nZ/+WXFFJuvg+IEwsjtLlEG5JFCGoWM/1ovN8ZqhZ0= X-Google-Smtp-Source: AGHT+IELaGdZ4+7yHT16IlRLo6gLdp/8yiTQ+hfmt0QgZ/OqZCX0mLQ1Xgp34wJGTJoY60z+QKi0uA== X-Received: by 2002:a17:902:c943:b0:223:37ec:63bf with SMTP id d9443c01a7336-223f1c992c2mr17514095ad.25.1741139611102; Tue, 04 Mar 2025 17:53:31 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Max Chou , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 06/59] target/riscv: rvv: Fix unexpected behavior of vector reduction instructions when vl is 0 Date: Wed, 5 Mar 2025 11:52:14 +1000 Message-ID: <20250305015307.1463560-7-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139946743019100 Content-Type: text/plain; charset="utf-8" From: Max Chou According to the Vector Reduction Operations section in the RISC-V "V" Vector Extension spec, "If vl=3D0, no operation is performed and the destination register is not updated." The vd should be updated when vl is larger than 0. Fixes: fe5c9ab1fc ("target/riscv: vector single-width integer reduction ins= tructions") Fixes: f714361ed7 ("target/riscv: rvv-1.0: implement vstart CSR") Signed-off-by: Max Chou Reviewed-by: Daniel Henrique Barboza Message-ID: <20250124101452.2519171-1-max.chou@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/vector_helper.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 5386e3b97c..7773df6a7c 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -4659,7 +4659,9 @@ void HELPER(NAME)(void *vd, void *v0, void *vs1, = \ } \ s1 =3D OP(s1, (TD)s2); \ } \ - *((TD *)vd + HD(0)) =3D s1; \ + if (vl > 0) { \ + *((TD *)vd + HD(0)) =3D s1; \ + } \ env->vstart =3D 0; \ /* set tail elements to 1s */ \ vext_set_elems_1s(vd, vta, esz, vlenb); \ @@ -4745,7 +4747,9 @@ void HELPER(NAME)(void *vd, void *v0, void *vs1, = \ } \ s1 =3D OP(s1, (TD)s2, &env->fp_status); \ } \ - *((TD *)vd + HD(0)) =3D s1; \ + if (vl > 0) { \ + *((TD *)vd + HD(0)) =3D s1; \ + } \ env->vstart =3D 0; \ /* set tail elements to 1s */ \ vext_set_elems_1s(vd, vta, esz, vlenb); \ --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140143; cv=none; d=zohomail.com; s=zohoarc; b=J/BLtjGL/atEfxrUOxlgJVwj1VAsc3wkZ+ZTa/4556DRgH5vGMr53hOYaNeQi9f7zcOXguiBisDfRkMkISf9DerxDnMwafyNUfrd0C5NxZuTEVKPl2fao/K80ykrbkWMPySrbFOppvZnqmtovXVclUGx+h41aeVj9b1RjtUBunA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140143; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZBEKcLD/t7V+wqyWsb5h8cuBdhinzK3N2UdwWuTfii4=; b=ncbSvyIWAs6/M62nK2zt2uiviOFk5HWpNFgVbPSSgiBuE0C8seRAVBMDLEypVfw+WIbn8I3qISH8xEGGv853oz9coqFIlLSfPQB26J+2B/WGWtd0N5EIEaTWeqzl9lLnNS9LzdgqHptdrzV8udSIbuypNnQD7SHpKyPdSW3K4ec= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140143754601.5227873355303; Tue, 4 Mar 2025 18:02:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdx8-0001WJ-Fi; Tue, 04 Mar 2025 20:53:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdx4-0001U7-KU for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:40 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdx1-0008Mm-UR for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:37 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-223594b3c6dso108662695ad.2 for ; Tue, 04 Mar 2025 17:53:35 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139614; x=1741744414; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZBEKcLD/t7V+wqyWsb5h8cuBdhinzK3N2UdwWuTfii4=; b=MHA9k3p164NDUpcEpIflfWQsQtkXW2O5AimW19JXBsKiWVNxiVOVxpNi9alXu6Ek2E sDD8c3hSqtTEsVk9OoPuIzLA2CkTSYnMXazlSkoYSZJ2NuNxfgWTVTvCYBnTqnR4USmR DB2ELyxir949eMOoJtuaxUpmcIEvZqo9DVF33yyfqId4fhiwT9DWVoqm7omUGsbeeb3k uPBdI+5JxuzMPKcwVb92M1pRjlvcePZvVW4mAuUqknSNhUjVQ8fa/mRCpsZHeRKbuMyC LjWG2roGbW/3C7iDc08L6V4Z5ZQO1egpc6oISwISoJTEKy3pnanIicxu/UsDCRhqOrAg xQoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139614; x=1741744414; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZBEKcLD/t7V+wqyWsb5h8cuBdhinzK3N2UdwWuTfii4=; b=EPvoAabSV4GW3TCrLF/UONLIPfE4xS6PD1A+2D2xIPul1S2I2ckGle/EQoEE01NKc6 PU1Nbef36ysG9kSnNAMHf7C2x6QF0jUZAk1y1NGbD5P0q2MceOoYeeu9fHOvng8XemzF v0SDHha4NUA5Lv4aHCy1pKJhAI4hn8ueCTtJKQShiG3hAtlQ7c3b3YChvuHPTJWC288Q pJY+mLJuikbLUrp3Ykb0/qqzLFESp77c7bgBgD0NIhEUzXoqBVE/4yOyrYhql1YVXtI7 KQHnVWpQ/zH5Yv1PxO24c0EffjDCzJNkbeZBqbEZEj326rII1yvlM0e2aK0lWDqu8Hv0 lGZg== X-Gm-Message-State: AOJu0YyJYHjn7RCixrX/I1N0p9K14w3jtbJzylPY08qPFjlKZy9idPwy XZs2sM9aHnAo5VgUiqPjilSIABcy1sP9B9T8uYF1qVo/XNMy1fmjSzl8/3WWels= X-Gm-Gg: ASbGncsAcy232ISjLdDEUNJ4riT0jIikNh9D0kbvfYi31xH78qrEgjZSJLGDn5FjK+h CP7iYVEL4PPoLFa8VzMq1phlY+La7Y9GHR1iydm9ZCFsEKNN+cWDOGQlW+NOmSJtO5KgwCvmIpL xlmbtlVYGriUguHyTQ4ECTDOhz62+EvLQ7oE6ChNqOAiqhwQLlC80qURQoZ1aBbpnudkHFL/gjz wmdPu6YiAoc8MYmvLG3mk+YZN5AeIGkse5Y38d1x0wxpLcVZINaUWSuxfAAKxM6tm7qUP+hT5ZE UlXNU6o31lf0p4gnKmma4IMB2SPEnXjt2Gi+i9padJ3xPgiV4GLMDNug3+9inbrKPFyeIxejFJk cpTbBstkV42PiD7aeGOndTtQW2tzL6KY67EzXA6jqTKfiq+J2yi0= X-Google-Smtp-Source: AGHT+IFMx0l8OZiOIOFDePTBbTjc2CJW1ir5fVrQjEFoqwnVnp6ujy0FcaQdddAfkmpbtMed5dsdag== X-Received: by 2002:a17:902:e751:b0:21b:d2b6:ca7f with SMTP id d9443c01a7336-223f1d6ce53mr21187765ad.32.1741139614074; Tue, 04 Mar 2025 17:53:34 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Max Chou , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 07/59] target/riscv: rvv: Fix incorrect vlen comparison in prop_vlen_set Date: Wed, 5 Mar 2025 11:52:15 +1000 Message-ID: <20250305015307.1463560-8-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140145114019000 Content-Type: text/plain; charset="utf-8" From: Max Chou In prop_vlen_set function, there is an incorrect comparison between vlen(bit) and vlenb(byte). This will cause unexpected error when user applies the `vlen=3D1024` cpu option with a vendor predefined cpu type that the default vlen is 1024(vlenb=3D128). Fixes: 4f6d036ccc ("target/riscv/cpu.c: remove cpu->cfg.vlen") Signed-off-by: Max Chou Reviewed-by: Daniel Henrique Barboza Message-ID: <20250124090539.2506448-1-max.chou@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d7ecf729d0..99436f1750 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2027,6 +2027,7 @@ static void prop_vlen_set(Object *obj, Visitor *v, co= nst char *name, void *opaque, Error **errp) { RISCVCPU *cpu =3D RISCV_CPU(obj); + uint16_t cpu_vlen =3D cpu->cfg.vlenb << 3; uint16_t value; =20 if (!visit_type_uint16(v, name, &value, errp)) { @@ -2038,10 +2039,10 @@ static void prop_vlen_set(Object *obj, Visitor *v, = const char *name, return; } =20 - if (value !=3D cpu->cfg.vlenb && riscv_cpu_is_vendor(obj)) { + if (value !=3D cpu_vlen && riscv_cpu_is_vendor(obj)) { cpu_set_prop_err(cpu, name, errp); error_append_hint(errp, "Current '%s' val: %u\n", - name, cpu->cfg.vlenb << 3); + name, cpu_vlen); return; } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139682; cv=none; d=zohomail.com; s=zohoarc; b=DHDp8BZy6bXE4CLAazVBK7+1lWB+h3yF6l512wTLrqHCnBfSH4L441BTmtj/vTWdjHcFsxWGks7iT4IcpOi0XjZIZaZhFgHA7osk8bFHra9vbD6wB915wHjLLWKkEiF2FfbAdIl0yUFH7PDHoedRZcimEBPfAK4M6LaRnUQpwJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139682; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=6dkc5ddvWfoQOqT3KthD041K6FqhmDenBClaITSYqFo=; b=YaqSamDyAzOvPaBj3lp2Vs5dXoWnIEnermXyz9QoEtS+7V60CCfDq6sQbThDzow7RXbfLGbtNeMQSoGd0HTGkK2X+Z3se3S/ntYdWRCs/motfOuCPY/Sf7c0lTMGzn67pRIPQijbtGUja2MtegLQbesJqpWwRlF+SSkShY0qlmY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139682287533.2809019066156; Tue, 4 Mar 2025 17:54:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxA-0001ZW-It; Tue, 04 Mar 2025 20:53:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdx8-0001WH-Aw for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:42 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdx6-0008NF-79 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:41 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-223959039f4so69718165ad.3 for ; Tue, 04 Mar 2025 17:53:38 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139617; x=1741744417; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6dkc5ddvWfoQOqT3KthD041K6FqhmDenBClaITSYqFo=; b=AwcjmHB92PBXj9JqSCsblOKwnaxAG0R+MyubUs9M6lWJhhlkxySiKzRNpcu2s80i7M +6BDKiRGniBBpG5BArIVP5jXW3V/10Y4HGzkZu7WHee7k7gwMydkeW0tJm3uN3OkVFAN NzRBcmnBeHPJDfss7p/5biDKAkVNWgeOLtOX98QxRf7yagjmu78KbNaFzj4mqRxWYs53 v4VB4geUbm44kebHcKFaLneUaGbiT6pxKOTa6wFFwEDdcHtHy7awh3huODUKL/4xW0cX WAFydWOUE4LuxP2G/go+iZasdv0Kr60Pu8IPzYPH7bhGJ/oMNsfH6nFdSKDGoEMSTHyI z6Ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139617; x=1741744417; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6dkc5ddvWfoQOqT3KthD041K6FqhmDenBClaITSYqFo=; b=e4XsvLjjositOOnQLeTdwlXBLhJMbMxe2ridgJL7Z6JRNMfkeaiVIA+LgirfBxD/KG mncxTjB7N1TDoiQElzpJ2pt909kG0vw/XV8zrfMk8VB8NAfQp59PWv6HD3cH4TVUtF+i KkkBJYWXJ6ycoocl2TewreLRPNbHrU/HcBex2D7zDL51HKxmxE8/tYwHPeQg8CvYSTBS HNnHLP09oYVxb2tYQLs+noBvDeHDHAmFDBbKn4F19Z8crVkIeMCls2bWPZiOhf8BxSqr K5JiGZDfrikjtVZWTJz1bMF1wqTA11MXMIKwyexQ04qiNgc7h5c2CvsheVDqsUVdfnT9 D19g== X-Gm-Message-State: AOJu0YwlxMJ60p5kDsjUcsehdtgQZxpWVP5th1ZWGCbEqb/38NcIagsX gLwFn50GbjECjRVE+/CMvmLqTVQGnyhzR5fB4u/gPXrO6HJjbKr95ZxF0+JIbFg= X-Gm-Gg: ASbGnctOHry9gBV7belN2payMoAIBoDShyw3Evbf66T3ILFKyZp7EsbHbP4ZKOzWzY+ PYzGyELlZq/dYvHC91g1VMFKkzh4Mw6Z0uzIVBKVCKwoXFymRWH9Ccu3ona+FjCzjEmbnRhMxk7 U5HH5oDcd3t4ZfevZ7QmRPkdER/+7WzwkoKmu0u1KTxlal0n4RZEto816p339v9Tqt8g60hEfWu E/q5kf5lU6E48Q7jYXwaG+DUL2VWHA0quwD/xUq2NiqSsN4z/00eEilDWGmeDl/+VdnysGh0LSi b1Qn/Fh7GZSpr6Ej1+q2O/aDxgQd8DPvto4OG1ERf+qjuobnSDVBViMkPCtkTOdBXbnn2hEPS5O wi/MxtDo3Isgjt5JRNULOs6uK1FO3FRL0TBEk2LIoIfgJSJ+R2eA= X-Google-Smtp-Source: AGHT+IGAc5XTNgg4SdVSTWLU9g+8Oqr+s2/3gYgzYQbZ/SE0QyUq8nW7NBPhTb0zGJYKlhY3PyqZ1Q== X-Received: by 2002:a17:902:cf09:b0:223:5e54:c521 with SMTP id d9443c01a7336-223f1b85fabmr18290445ad.0.1741139617125; Tue, 04 Mar 2025 17:53:37 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 08/59] target/riscv/debug.c: use wp size = 4 for 32-bit CPUs Date: Wed, 5 Mar 2025 11:52:16 +1000 Message-ID: <20250305015307.1463560-9-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139685257019100 From: Daniel Henrique Barboza The mcontrol select bit (19) is always zero, meaning our triggers will always match virtual addresses. In this condition, if the user does not specify a size for the trigger, the access size defaults to XLEN. At this moment we're using def_size =3D 8 regardless of CPU XLEN. Use def_size =3D 4 in case we're running 32 bits. Fixes: 95799e36c1 ("target/riscv: Add initial support for the Sdtrig extens= ion") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-ID: <20250121170626.1992570-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/debug.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index f6241a80be..9db4048523 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -478,7 +478,7 @@ static void type2_breakpoint_insert(CPURISCVState *env,= target_ulong index) bool enabled =3D type2_breakpoint_enabled(ctrl); CPUState *cs =3D env_cpu(env); int flags =3D BP_CPU | BP_STOP_BEFORE_ACCESS; - uint32_t size; + uint32_t size, def_size; =20 if (!enabled) { return; @@ -501,7 +501,9 @@ static void type2_breakpoint_insert(CPURISCVState *env,= target_ulong index) cpu_watchpoint_insert(cs, addr, size, flags, &env->cpu_watchpoint[index]); } else { - cpu_watchpoint_insert(cs, addr, 8, flags, + def_size =3D riscv_cpu_mxl(env) =3D=3D MXL_RV64 ? 8 : 4; + + cpu_watchpoint_insert(cs, addr, def_size, flags, &env->cpu_watchpoint[index]); } } --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139665; cv=none; d=zohomail.com; s=zohoarc; b=N8s7cYDk6UGl5+Wj4cZHm95a9cHG/2j1up0p8++pFJ8nvaSXZxYya0I4UndEv9/QsPz3vQh0EhW4qV+iie7mv25wNJ2VsU2ZbRcbmPBZCYRbhcppMdn40wAwnw1cePbnpNFBjL9dS76f8SwsG1RVCN9p6z/GY8GiuAZLf7wy54g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139665; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7V7shzd0k2XqS82f1i2WoT6RekEWouTlUxcHoij3AFI=; b=Fufc0/GmzHdxkr4iXHVJtVXzOo/bFjj5v4k6K7hD71H1HNvQmYabDKvfGt0xueSa/WOOadyKYkhXXDevCWhp8RK1jTRrgE3uU314BTioI1g65vtFV5JaOADqY5SX/EWwqRFQThcRnezB9Xce1tn+W433/4UQx5u5wYJvRChY88s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139665278634.0416925970488; Tue, 4 Mar 2025 17:54:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxB-0001Zs-5x; Tue, 04 Mar 2025 20:53:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdx9-0001XG-Uk for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:43 -0500 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdx8-0008Ns-3z for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:43 -0500 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-2feb867849fso8670364a91.3 for ; Tue, 04 Mar 2025 17:53:41 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139620; x=1741744420; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7V7shzd0k2XqS82f1i2WoT6RekEWouTlUxcHoij3AFI=; b=QbeP5dVgPIjAWfQSBobDG37WgI/eVQzHYe32Neu8FtytQqCFh0NI1Ovtsh/0XNPi6E XHBaewvn0nBfBsYv/llWglPjrl2xTqp6zGxUKID5TzBOLMsfL+kXTaOy8RBbIPJeqrrE FgoWx0WjD1cEUNVVyjlIRZG0XbVViLEygcaNOcZ1lEHCJcoZYppSMh35v7p8YxZzCEkF Kz7Ho+vv2h2qdjNXfRmWPvgHcZNMGKW5ruNgqazOIOtnK0ewQPF+rtf3aXL8A1zXvvaL z3PA8AUnuD1uRpkfVgUSr9RqUzGmTX1M/CgePSk71CV/M3eYg1yjXNLSHlpPcpoHSExt 4b9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139620; x=1741744420; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7V7shzd0k2XqS82f1i2WoT6RekEWouTlUxcHoij3AFI=; b=tHlFwXV0t0OWAl17TqnDMmeIvMG/Q9or3Q92FsD6jJpSb1rZa6OtaxAHMXpVxG8aVB k7fmMqTTo1A3Ot1OZFlJbK4MsuEWlpg16hZ9IqTadCjScsjfgdRRP2OE8ROcQq1LH9qe coD+Jf/1A8LYGYZjfT0D73UVBx/NOaNOwVCEOF/Nkm+RDmgnZNdb9/KskperDA/xtCI+ 32K9Kr/VjWeK5KiS3L0b/gbHsVCOcaCBY+sCj/K2jlgBKdBFyBPlO7JpRqyBgJcst5YO X8424hw74JQJMW+HdTd5B2H0rboGnu83Kvs11LBeeu92WuZphzveu30ySug596pj7yEV YU7w== X-Gm-Message-State: AOJu0YwMMs1ePdcyq31+nCkSAPJSt8kIt3AX6PQ+in0Zl10CvuIpDmTX Umrr39oB8ICU3dLOc9VHQms+N5BnGXO2KhKViT6czd/MnFF1yPp6rZc8w9AiRE8= X-Gm-Gg: ASbGncsZxzjEKYU7CMJJYRasZYQSrA9EvFSoSlWDvXw7ezu3K+yv7WYzAazWysGp8Z+ i+y1WAFLNb143JqS/87fgej1lRvecfQ7inRZEhLgID9OItxMXC+4IA8YIFkk4wG6hz7PDGaReN6 +68hdwaQW9tkzq95zVwv9DoCtgB+JByFoDqB6lxij71/TWWAry5vgvBL/91nV1Eksc94JH2Kysr RujOrfHHTTyGKoRLVY/qH4jG5zXHZ0WbQgSKbTgOtouSr1KhZ4FAGtbhZ/Bw3aZ/6pgo0h8PmQP IueSy8VmU7kFyEXymjwQ/oUqulbamcQw3LsNlqs2YVRzezqr+sqc4HznxsNwE5Ay/3/nh9rUPdQ YPH+L7mUMPK81q9o9C0X1fMfB4NSu63I6NNib4reXmKn9uReIQQg= X-Google-Smtp-Source: AGHT+IFgoCkMHHSQl6ebRoEDPt5fXFnqUEdES3JqPkZFS6EyXenweLPuXdUqFMN+4aM6NIileDeogg== X-Received: by 2002:a17:90b:3e86:b0:2fe:8c4f:e7c4 with SMTP id 98e67ed59e1d1-2ff4975338dmr2548323a91.15.1741139620107; Tue, 04 Mar 2025 17:53:40 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis , Richard Henderson Subject: [PULL 09/59] target/riscv: throw debug exception before page fault Date: Wed, 5 Mar 2025 11:52:17 +1000 Message-ID: <20250305015307.1463560-10-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::102f; envelope-from=alistair23@gmail.com; helo=mail-pj1-x102f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139666054019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza In the RISC-V privileged ISA section 3.1.15 table 15, it is determined that a debug exception that is triggered from a load/store has a higher priority than a possible fault that this access might trigger. This is not the case ATM as shown in [1]. Adding a breakpoint in an address that deliberately will fault is causing a load page fault instead of a debug exception. The reason is that we're throwing in the page fault as soon as the fault occurs (end of riscv_cpu_tlb_fill(), raise_mmu_exception()), not allowing the installed watchpoints to trigger. Call cpu_check_watchpoint() in the page fault path to search and execute any watchpoints that might exist for the address, never returning back to the fault path. If no watchpoints are found cpu_check_watchpoint() will return and we'll fall-through the regular path to raise_mmu_exception(). [1] https://gitlab.com/qemu-project/qemu/-/issues/2627 Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2627 Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Reviewed-by: Richard Henderson Message-ID: <20250121170626.1992570-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 1de8e0e494..29dc721c5d 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -27,6 +27,7 @@ #include "exec/page-protection.h" #include "instmap.h" #include "tcg/tcg-op.h" +#include "hw/core/tcg-cpu-ops.h" #include "trace.h" #include "semihosting/common-semi.h" #include "system/cpu-timers.h" @@ -1697,6 +1698,23 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address,= int size, } else if (probe) { return false; } else { + int wp_access =3D 0; + + if (access_type =3D=3D MMU_DATA_LOAD) { + wp_access |=3D BP_MEM_READ; + } else if (access_type =3D=3D MMU_DATA_STORE) { + wp_access |=3D BP_MEM_WRITE; + } + + /* + * If a watchpoint isn't found for 'addr' this will + * be a no-op and we'll resume the mmu_exception path. + * Otherwise we'll throw a debug exception and execution + * will continue elsewhere. + */ + cpu_check_watchpoint(cs, address, size, MEMTXATTRS_UNSPECIFIED, + wp_access, retaddr); + raise_mmu_exception(env, address, access_type, pmp_violation, first_stage_error, two_stage_lookup, two_stage_indirect_error); --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139821; cv=none; d=zohomail.com; s=zohoarc; b=ETNi8xAnlmLcLgnBk31UpLkhNtbFSUwfk8Fdevo7PKQVAcetHC2VTJQQy1TvfTgMa+KmFvOMjBYdGOzP3wMvFEg1GBBDAnpcZwQ5PpjonVf65VrnC1GG7QdHJTajmVlCN4wRNiDi454y0baHRPGUVlVjnB4R5DOT3P7tbL7TnQc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139821; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8N6MEGFDIHjOSuYNMKKhiEimg5+OYRGOfgpJpZgUeDw=; b=Z8WpjoMOl8NKwRxHY2VF54t8oPQcjV3l7NbFILDBLc1hkxunuYRfqzDwwMSi2/NxFTbRzXm/3HEfrZyvQmEBkABOSbtbu1jeR4017pnGRkn7g7LCwWjFkX/w4UMFut/l3/48tLXm1tfHG+K3YVqZl1y2eTV4adKxjTYVg8BPqfY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139821708520.1961639058944; Tue, 4 Mar 2025 17:57:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxH-0001fq-Rb; Tue, 04 Mar 2025 20:53:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxF-0001ev-U4 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:50 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxB-0008OZ-4j for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:49 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-219f8263ae0so117542495ad.0 for ; Tue, 04 Mar 2025 17:53:44 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139623; x=1741744423; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8N6MEGFDIHjOSuYNMKKhiEimg5+OYRGOfgpJpZgUeDw=; b=BeENMTw26zP9TEnmRcwBufwB+uIn5iRLHSN6fUjV8FmzdmXtpB+4Z7wH3Aw/heb5rd Fz79m+b1vS9et+5o95/Wzu4QeSKh0jUXUED3eH2vIgHC5WyMTUavAv6iSeoRJ+N0sD9d WFOMQe7DL8Wr9jb0N1KYQ7dq4Jid6n8nDAe8uPK0URGOcEW0EQiCDL8oDc29AEbh4DjB YirrPQDYmgd0qjZUluOAFrRA5sdZrFHtA69mpHBeL7girP1tsFiiDN/q+EZ11tjjH7l2 a3Bu/ViM1k14hVtSdwBVNLpJiQj+9Y6dMQTOr+useZxrLQQy0GGbZJVk/2Nbmmz8TbNf Z3ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139623; x=1741744423; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8N6MEGFDIHjOSuYNMKKhiEimg5+OYRGOfgpJpZgUeDw=; b=vj1CoaD5X2P/fR+Awh2gkKD8NcKvz31Lxdeh1PRbEC3GxxJQ+SgkuHmbEyXUze75wc exn6UOXuPJ+3HfA4lO96VdJSOUlBPaZJ8LqLUg6vAKpY0ER9PB4Bgk7Vn1fjairQZGeh snkBChKYiZ6viZWBGd+MZh3zWc7UJx+3HibJpJ4wUVnkwjFrGrlq3uLCg5QFL0pggAeJ sPW8RN6LaaA1+zI02tiwjlk6TggBajYcXhtKbMn5Ho0WN9SxmRciCmyOx4FXWUSI2823 pecnrbY7swHqvNykPERLFgTPSElEt8kWxGc4B9H1VYgehci7I0ZzhYKvMLnbGziliq7+ Fx5w== X-Gm-Message-State: AOJu0Yy+MSR6nHMMW+BaK2F2vEfKln2JJ7wnF6DvIlFEbINCvdjcmlNe Nsw+9vkkO+0AIKu1eg9M1XUUoQEzoPl931KlTYOozymNpDFhDDyy6YheQcwA6DU= X-Gm-Gg: ASbGncunKrKb6GmgtAaqWFi4VMJG2HDKIhrX54THm+9fZck7+fxJ+PQ5NjUPDo+t7Ex 3TkgdFhO3+0L7g26v2jhJB/ucsVblXFi5OhnCoHwAuf0yKZZkNGxtEszzjKCt6H5TMlsgKsbDZG B/utOmcYQFtFAvxgmJM/zcToKMgY0Lvo8zklmK51Byi4kXjBj3lCaJy+ANiyby2h0axU8nlEAsT Qct6gJlz4iWDdpPUPB3CB6WoYpuFcTWJyz9DE2hznTDkDUV94YcvajQExZgwVflphs8fYvAN4+P 7JYMv4PYISSbHjfIl4jjcoIF5sXbeTb6oTfwulz+SpRaqz1lvQ6NHWPKtXqusEk5ukhVv1cEDor VJv21FBp4yxaVXDOxTsG2gp93SeU+SSY2l1AYSonQqUq6f/+rMyA= X-Google-Smtp-Source: AGHT+IFhg9gJdCmhmF4iS6fYMfgWgp1f6Cun7TOiUkixcL656S4wJAzRS4YNaxU4oIndhgTQ4lDg5g== X-Received: by 2002:a17:903:1c3:b0:223:50f0:b97 with SMTP id d9443c01a7336-223f1d20df7mr16418535ad.52.1741139623420; Tue, 04 Mar 2025 17:53:43 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Huang Borong , Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 10/59] hw/intc/riscv_aplic: Remove redundant "hart_idx" masking Date: Wed, 5 Mar 2025 11:52:18 +1000 Message-ID: <20250305015307.1463560-11-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139823577019100 Content-Type: text/plain; charset="utf-8" From: Huang Borong Remove the redundant masking of "hart_idx", as the same operation is performed later during address calculation. This change impacts the "hart_idx" value in the final qemu_log_mask() call. The original "hart_idx" parameter should be used for logging to ensure accuracy, rather than the masked value. Signed-off-by: Huang Borong Reviewed-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Message-ID: <20250115035105.19600-1-huangborong@bosc.ac.cn> Signed-off-by: Alistair Francis --- hw/intc/riscv_aplic.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index 4866649115..0974c6a5db 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -421,7 +421,6 @@ static void riscv_aplic_msi_send(RISCVAPLICState *aplic, APLIC_xMSICFGADDRH_HHXW_MASK; =20 group_idx =3D hart_idx >> lhxw; - hart_idx &=3D APLIC_xMSICFGADDR_PPN_LHX_MASK(lhxw); =20 addr =3D msicfgaddr; addr |=3D ((uint64_t)(msicfgaddrH & APLIC_xMSICFGADDRH_BAPPN_MASK)) <<= 32; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139687; cv=none; d=zohomail.com; s=zohoarc; b=B+xEauWVF5JH+eiA4PfCohbC8HZOsYKteIhP/cNsfI/9LI1MIJIqvXsLGNqz1vRghgQ9J5E7zNBYtVOia8FYpaHWSz0Wg0vuCyTVKBQBkPpsxJwWQEPPGZ4tNYM9n/JY2fkDH1r0j2mSpnCVN4qxOYeryEtDVyz1x+XMI06Myyg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139687; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qQ1xsd6qDsGvTqpQSwZK3MlmyX0e733FFZG9e2F/Nac=; b=QBhwHoaetFHEp31b2/yZ6JLk4agih/W1MGWQNKRsy8WDi4qqPObSsflwkDlcp016KNgo6hiYbsGgEb1ksksvd4RHhjeNNLVLwA1PjJRI8ZIqDeudM+iiPpM27AdHsmfsKZ5LLjCnCLLUrPNUaPUzfBzFFP6z5Na9B+ZexKKuDDg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139687822830.0186639603882; Tue, 4 Mar 2025 17:54:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxK-0001r6-06; Tue, 04 Mar 2025 20:53:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxG-0001fK-Me for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:50 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxE-0008P9-3D for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:50 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2238d965199so61656465ad.2 for ; Tue, 04 Mar 2025 17:53:47 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139626; x=1741744426; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qQ1xsd6qDsGvTqpQSwZK3MlmyX0e733FFZG9e2F/Nac=; b=JtZH09Bd0bvVlhQers7QKf721f6TZ6aiyc4mWHHWOFkebh8ErduSROu6UIpoSa/Zd9 01iRWdhQDk8DzAidmBekTJqNuru6BNjMEfg6vFJT1xe4MSrRwkZuyFlE726YAM675Wnp I1s9o5qDc3Rt59inY7TnwHyKYblp4fYPbBc5ueXK+gAdsb3z6hHsx5+cNVDkN7QMxQxG Pz3ojhsCbm/X8aOVNeBWvimNye7C0P9toEXsOdiJptkDqKXkkNKL5bupn/ttPPXAwUyB H29hYCf5PNKn7N57b+0Or15j2HNZhF7o13zxkWFHw+fHIxUTItmYSjbUyBiFDmUJ13kH Q0rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139626; x=1741744426; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qQ1xsd6qDsGvTqpQSwZK3MlmyX0e733FFZG9e2F/Nac=; b=bnujT0kOZE22XATu9GoH5M4fk4hxbmGBKwhLHMqmmxCR+rDLQX+rKOTyBTYW6hzNbD yxXDbeSpU1Qvh+Ryv14IUZm3TQxScn/hsAi0AHfIQegK9Wx+ceI7uY9tdk1qkdLFjsfb Fi+cbNQRldheOkqumtpRc/YtEghJr/UWgHr9QIWB3WWR29AmJ8y9cjxcLGpxaX8lreok zrROhoGV3/nPMvvLvvf/KQqAfuA7aX4s5YHgAj0FmaouvHaXIYL4/3hdGmcibDXFbUha EZs92C4CYz58osAlqdfSGI6aFRZKg/CBrMrZwvcL/ZKFmmr2pBmPXWarJgD6RMwmIDjX uAgw== X-Gm-Message-State: AOJu0YyMamN3SWf5sHzqyxNBIvdvpuMNYflsi0R1JYVfGXmPl3TKkv43 27/uVVN8A6ZL8cknzYFTr2usRmySRaOXSH6m4W3uNeR8R1D9f5kvUkk/3OwKB10= X-Gm-Gg: ASbGncuQWFVsTWZdPy6hM8QUdATkHZ50uzvbbYJkCzMnPGGDU8bNRC8ldp4Cff+P7vw f0OU8V4ERZWhgafklTf2VAqoTW0Hki9vo6Tf1pJxS2w5HrPjsMZNtNHoVmR8mphXao95OSWVuAy yIVU+MyFTkosc2Zogi5ClnVRoUO9ThFlgFBOkDCAi27rxBPxRaDQ13/7vPQt7tVaqa8hQXIxzAr mzPgUn0vb6eScH46naUZlOMeZT+BEfoAoNdcjCCfXRn5H0tZn6etxZyWsKdoeq1GVtssBNfSfDW si3R+41OiVoR8tKhlbLOK0XNZM5kJ27/245zdCK/aRoj/W+JzE7GVZgZvRdreEzmmV9FsLCmHBM h7Lai9++Fj69Q+M67eccvrLpMGzYXtFntXuaP2IWorjD6O1Z72qs= X-Google-Smtp-Source: AGHT+IHCp/x7puKoCfDULU2fhfbx1ZH6xyx7T8XFwt8Lp+Mj20l6/6Vii7dNr79LzZK2WCw57x1WRQ== X-Received: by 2002:a17:903:41d2:b0:223:4ddd:bce9 with SMTP id d9443c01a7336-223f1c9616cmr21791035ad.21.1741139626423; Tue, 04 Mar 2025 17:53:46 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 11/59] target/riscv: add ssu64xl Date: Wed, 5 Mar 2025 11:52:19 +1000 Message-ID: <20250305015307.1463560-12-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139689256019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza ssu64xl is defined in RVA22 as: "sstatus.UXL must be capable of holding the value 2 (i.e., UXLEN=3D64 must be supported)." This is always true in TCG and it's mandatory for RVA23, so claim support for it. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 1 + tests/data/acpi/riscv64/virt/RHCT | Bin 390 -> 398 bytes 2 files changed, 1 insertion(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 99436f1750..4f5e13a759 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -213,6 +213,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(sstc, PRIV_VERSION_1_12_0, ext_sstc), ISA_EXT_DATA_ENTRY(sstvala, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(sstvecd, PRIV_VERSION_1_12_0, has_priv_1_12), + ISA_EXT_DATA_ENTRY(ssu64xl, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(supm, PRIV_VERSION_1_13_0, ext_supm), ISA_EXT_DATA_ENTRY(svade, PRIV_VERSION_1_11_0, ext_svade), ISA_EXT_DATA_ENTRY(svadu, PRIV_VERSION_1_12_0, ext_svadu), diff --git a/tests/data/acpi/riscv64/virt/RHCT b/tests/data/acpi/riscv64/vi= rt/RHCT index 695022d56c..b14ec15e55 100644 Binary files a/tests/data/acpi/riscv64/virt/RHCT and b/tests/data/acpi/risc= v64/virt/RHCT differ --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140400; cv=none; d=zohomail.com; s=zohoarc; b=WFpH7o9dJJKvONSbKi1jJARGgcpUu6fDg82JQPXM/3iGnIwaB3vtZSJ4JKXdNzJiRxfsCzIdzSgnyPU/tZfoTsynaSy2lXlk+6g0ifE0jsEnpzmeN8OrvX+/Ief+LYmbaSahfhhEDsjXYKidHK+YuvNu5WPrjjdYZZRYp2ZQMnQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140400; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gLdRW22sROzZ5TFnPkvO1AYAOQeJ8pmp1wpXeyxPDUQ=; b=TU82Lfsx/ituWtkGCVvtQMCFDpv8ayFu3C4hsIXJqlamBqjZQkvAKePXDMNF1VPaqI0cVlWhr4OJEQ1V8f1Y+naRrEm/isSHrfsh/VCVf7qrpplA93xFN0zktV/i2uFUAYChID4DxWZb5P7kPnLieEYt32tbwkDV/6Jv9PJDVFs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114040018110.944140521693612; Tue, 4 Mar 2025 18:06:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxM-0001x1-IW; Tue, 04 Mar 2025 20:53:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxI-0001mC-T4 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:52 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxH-0008Pf-5F for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:52 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-223f4c06e9fso2325125ad.1 for ; Tue, 04 Mar 2025 17:53:50 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139629; x=1741744429; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gLdRW22sROzZ5TFnPkvO1AYAOQeJ8pmp1wpXeyxPDUQ=; b=UwQA7v665UgZJNTYLbaIcNEMPybdyPHRcZ82P0DjC3OePyWGBUKFIANLrNHPv2oeh9 XcPKadN2bQn1lum8MGTsqYOR2oppZVUTR19p4oEvEqW7Us43q4SH20mBqSHz7KQwjO4Z 2cglEIkHmKEOmWCgvz39v1i37qkO1rkUTMsF5oKKG29n76wyZMoD4o0DNcSqoFQ2Be7q MlmHYTj++LpiFipYLrc2kwnykNj18oQ1EfsIefpYzjsrZOCyT3GQjVXNEMatxN0mzTRa xWDqgKKJdVu5vt43K6mydzuu5QVhwoSUVJzQRZW9G40qXg6tVEkKPOpxORz6i3kbCJJO ixvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139629; x=1741744429; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gLdRW22sROzZ5TFnPkvO1AYAOQeJ8pmp1wpXeyxPDUQ=; b=QzoGsy686pUV9YG4ni12cepaMmmy1OhA9P1usie3qDHUptgivQzK6AfKp7pbMJAtxn mnQicQwOhYzy2M//AFSaAxYP4gE/fn7O9nLjAo0nQQ5hoUrT9T0oi0Al+cBJ/QV7Omvd Meab/+Gb1kPPzOew3Ys0Wka2EwRxjxWRSYEhJRU0gJrtSaIEfZ9DE8GkWytZUnOx5HLS mlVdBYMHxVbUJxxH6WqncyzuEM/MH9z4wOQwQ1ct0MF+Bumbc8wmIYzQLFDqoHw4onIT Ix963ahiihaicgVjSr/1mvbL8nPAu42C44gD+p8yiw4EWc0sMNRpkmkuiA7J/dnwj1rB ZjDQ== X-Gm-Message-State: AOJu0Yz0YsTNAo7go4gxok5ugJW4OQpCiPlp7g7svV9/o65wcYivnTcA LEHKUE1rI6vQMiELFsT69yFseZ55tWPOxfxBFa3n18LNNde0UR4y/WGUKAoeOdU= X-Gm-Gg: ASbGncukxV6k+hqTcfmnCSTHyx2UIA/ehVg7N8thnDAtrO9/pAauiqu4yTzAwgzC48d mOUqPO4t5FjaX6Tha7fFF1bNhFzZmXpTAH7BD6n1JTA4Nessxt8FF6iZcej9H+2NfgDkUxaONer 4j2HlMJMOrIx8t+gRNDKl2OH1ZappRHEx0CxoAgSWC+tm7cpzFFaNGLgItN3bK3bUVLpt2uczLA ScbNTCTeB9NnAr0e8XjcwDy8cLlSgVgxHEL/XD5lEBKpEAwz0Q+QM2e/GOwEGpu2nBCuGoNSD+W 7CE3MpZ9vR+ZfVCdX+f4zT/GKRxUMBieooNvtw6kXqOSe+hDLsCx0ixpKhogSFjF5YrudIX06C9 x9NU5oHukWJoz0cwxZdOmvLcRmrQefJCubz3bt0BP9zc9PHnTlgM= X-Google-Smtp-Source: AGHT+IGVwi3SfSICE4Q/MJLSV/D4vUGtnc7QgTN0QdYpx6SR2rgLlN0ouijH8O0BIvyP+j3CcCUbfA== X-Received: by 2002:a17:903:1986:b0:220:cfb7:56eb with SMTP id d9443c01a7336-223f1e2905cmr18628675ad.26.1741139629472; Tue, 04 Mar 2025 17:53:49 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 12/59] target/riscv: use RVB in RVA22U64 Date: Wed, 5 Mar 2025 11:52:20 +1000 Message-ID: <20250305015307.1463560-13-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140401500019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza From the time we added RVA22U64 until now the spec didn't declare 'RVB' as a dependency, using zba/zbb/zbs instead. Since then the RVA22 spec [1] added the following in the 'RVA22U64 Mandatory Extensions' section: "B Bit-manipulation instructions Note: The B extension comprises the Zba, Zbb, and Zbs extensions. At the time of RVA22U64's ratification, the B extension had not yet been defined, and so RVA22U64 explicitly mandated Zba, Zbb, and Zbs instead. Mandating B is equivalent." It is also equivalent to QEMU (see riscv_cpu_validate_b() in target/riscv/tcg/tcg-cpu.c). Finally, RVA23U64 [2] directly mentions RVB as a mandatory extension, not citing zba/zbb/zbs. To make it clear that RVA23U64 will extend RVA22U64 (i.e. RVA22 is a parent of RVA23), use RVB in RVA22U64 as well. (bios-tables-test change: RVB added to riscv,isa) [1] https://github.com/riscv/riscv-profiles/blob/main/src/profiles.adoc#61-= rva22u64-profile [2] https://github.com/riscv/riscv-profiles/blob/main/src/rva23-profile.ado= c#rva23u64-profile Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 2 +- tests/data/acpi/riscv64/virt/RHCT | Bin 398 -> 400 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4f5e13a759..578bc95652 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2345,7 +2345,7 @@ static const PropertyInfo prop_marchid =3D { static RISCVCPUProfile RVA22U64 =3D { .parent =3D NULL, .name =3D "rva22u64", - .misa_ext =3D RVI | RVM | RVA | RVF | RVD | RVC | RVU, + .misa_ext =3D RVI | RVM | RVA | RVF | RVD | RVC | RVB | RVU, .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, .satp_mode =3D RISCV_PROFILE_ATTR_UNUSED, .ext_offsets =3D { diff --git a/tests/data/acpi/riscv64/virt/RHCT b/tests/data/acpi/riscv64/vi= rt/RHCT index b14ec15e55..13c8025b86 100644 Binary files a/tests/data/acpi/riscv64/virt/RHCT and b/tests/data/acpi/risc= v64/virt/RHCT differ --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139996; cv=none; d=zohomail.com; s=zohoarc; b=AXIF3UDyd4LDLaXFqvGtjo8iyOtNaYVtjy9U/KsVYzKaGu9KYMNfkSBXjc+mO0O4mA9SCCMy7odQ8e44uoLLjBrnNFs9r72D6YxoeBxnxR3OnV/oQkixuicpbSx/xxfGZx0LVORuQfUSAo0gL11QZEf/MBE+wmjNKxGV/L5xsIg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139996; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=O4wTDWyRukJNFQg7ktARpeS3eUQxJqwAuPTgYYQtFxQ=; b=nY6YpV8xFsBnh53TU+0FEYulZzlTYgHfyeKsOkL1So7Shxvs3Z9Zur+E3/E5KiUhlFKgyxQQa0cJIYOSd+9uNnQlhePlG5fduNJwccsaWg8HS42za6tYllHkP8GLNKLD3V+MoAoM8FaYnNVKpBp+LEhYVKobMPAsu/3GPQfVZsE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139996802509.5624342476797; Tue, 4 Mar 2025 17:59:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxP-00024Q-5h; Tue, 04 Mar 2025 20:53:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxL-0001wg-U8 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:56 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxK-0008Q8-5E for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:55 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22339936bbfso93833725ad.1 for ; Tue, 04 Mar 2025 17:53:53 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139632; x=1741744432; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O4wTDWyRukJNFQg7ktARpeS3eUQxJqwAuPTgYYQtFxQ=; b=b7IYSkREh0KJaxIzS0UAmdKrdo6XKtET5NjtFS84jLFk0Bv71095713VZ6zokj6qz1 2AdGwyoHJfkrpgrgTjC/lVpqGjwQ7g5YEiGRhCnJTFockQbUFahOYkLElt9frDhP9Vc1 My6T55a1uhtVigpF2FzpEn42yiF1doORm0BgTGIibUz10OLRGDLHJ2YmJMjDNk+sC4Ly VHuoWr4cHTGGUZucgtfz6EhcOwqfe8V2KNuzrTef/DgL9lXceqB3LbD1Rh1nSM9o7y2U uCVQ3YfjJMTwY5mqIsMgLMFGaxElRE1EwJz2NqH6A9inJmLxNbtRO07ImrpLOXc26UHa AkcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139632; x=1741744432; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O4wTDWyRukJNFQg7ktARpeS3eUQxJqwAuPTgYYQtFxQ=; b=QbKCP+352B5+D6mCgMSG1jyBvGkckNmr83BQA1yF2ZrvZhAObFYIX4JnryenOQBYnk cxLlVli0mWPtNokRnAS8VlmHKeQSewgprcSK220lJGuz6GPOAWT55TO57TS7wDurDFc6 4opzh+EWllcbzOxzSCSTLMzcKOK2YDVYzUaG7XZ4+2bmdqGAI3xSjrl+0S/QMGmbSgKW t4nWYNeUANbz7zzooyW+Kpq7MIsLYh/19q+v4IdgG5m8QD2we+427psnlvP+oRpxLnM7 G82zysSieidCv9TUiGbbomjYvyXKGlRw4+yTfg9MepnU+SwfPxqGLqKh8b0Yb5xlGgTY 68wQ== X-Gm-Message-State: AOJu0YwqNeMbS9FUHWVL5/rmSlqISpSvI1jfLgCpayZaR1Em+qblanMG pMApN6SpUTgYb7MZwYHRB39bLGENY9YN/8g01+As28njPWjAzYmbg6r5IjMVOYg= X-Gm-Gg: ASbGncsQp4BT/8/nPEsnCUe4Aw6PQ882CCRBQgrJJ9NTJouKzN3FPF2OmIvba0vQwtA J4pmTGj9bRKVRqrZfv5UVnciTE90WUzLRkwy7rjU9ypOrc7xqcF7oIstn+9q2uKZmePIWMMIyCI m1nh0dn+FU0gjcFevBZENltuxsuK2gYRNgMv7qUtDCqers8Zn0sGc9oblS3qAH6qQiiX+Dm8vY0 Zo/qEGzHHOQcJp8U7h6cqbVNrT5uhvc+kkVnW9ox8p0lVwOECeYF3WN4KC9lCIjFYqZg1zp9sQd EWad0/XSKIEdIRxiVsbAxinAYno4JJLsE2f0RHHsudLmXcM/d6KdUPJY0TJ7SAQCwxtW2PJ8sCx IRLFtFEo7DqmkSS3DXLnjxqEAgEQrBH+Azd7Jkw86K/pRvE0wOLA= X-Google-Smtp-Source: AGHT+IF68F3AuHg0GczcHwvN7WSGgFCnnjrkmQWCgJuyfSdY/kdmKtMe1f+tcL46B4VTrZwki741dA== X-Received: by 2002:a17:902:ec82:b0:223:66bb:8995 with SMTP id d9443c01a7336-223f1c95124mr19962015ad.20.1741139632443; Tue, 04 Mar 2025 17:53:52 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 13/59] target/riscv: add profile u_parent and s_parent Date: Wed, 5 Mar 2025 11:52:21 +1000 Message-ID: <20250305015307.1463560-14-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139998054019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza The current 'parent' mechanic for profiles allows for one profile to be a child of a previous/older profile, enabling all its extensions (and the parent profile itself) and sparing us from tediously listing all extensions for every profile. This works fine for u-mode profiles. For s-mode profiles this is not enough: a s-mode profile extends not only his equivalent u-mode profile but also the previous s-mode profile. This means, for example, that RVA23S64 extends both RVA23U64 and RVA22S64. To fit this usage, rename the existing 'parent' to 'u_parent' and add a new 's_parent' attribute for profiles. Handle both like we were doing with the previous 'parent' attribute, i.e. if set, enable it. This change does nothing for the existing profiles but will make RVA23S64 simpler. Suggested-by: Andrew Jones Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 3 ++- target/riscv/cpu.c | 6 ++++-- target/riscv/tcg/tcg-cpu.c | 35 ++++++++++++++++++++++++++--------- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 97713681cb..986131a191 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -81,7 +81,8 @@ const char *riscv_get_misa_ext_description(uint32_t bit); #define CPU_CFG_OFFSET(_prop) offsetof(struct RISCVCPUConfig, _prop) =20 typedef struct riscv_cpu_profile { - struct riscv_cpu_profile *parent; + struct riscv_cpu_profile *u_parent; + struct riscv_cpu_profile *s_parent; const char *name; uint32_t misa_ext; bool enabled; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 578bc95652..7b708bd010 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2343,7 +2343,8 @@ static const PropertyInfo prop_marchid =3D { * doesn't need to be manually enabled by the profile. */ static RISCVCPUProfile RVA22U64 =3D { - .parent =3D NULL, + .u_parent =3D NULL, + .s_parent =3D NULL, .name =3D "rva22u64", .misa_ext =3D RVI | RVM | RVA | RVF | RVD | RVC | RVB | RVU, .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, @@ -2375,7 +2376,8 @@ static RISCVCPUProfile RVA22U64 =3D { * The remaining features/extensions comes from RVA22U64. */ static RISCVCPUProfile RVA22S64 =3D { - .parent =3D &RVA22U64, + .u_parent =3D &RVA22U64, + .s_parent =3D NULL, .name =3D "rva22s64", .misa_ext =3D RVS, .priv_spec =3D PRIV_VERSION_1_12_0, diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index d7e694fdb3..2b21942ef2 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -713,13 +713,29 @@ static bool riscv_cpu_validate_profile_satp(RISCVCPU = *cpu, } #endif =20 +static void riscv_cpu_check_parent_profile(RISCVCPU *cpu, + RISCVCPUProfile *profile, + RISCVCPUProfile *parent) +{ + const char *parent_name; + bool parent_enabled; + + if (!profile->enabled || !parent) { + return; + } + + parent_name =3D parent->name; + parent_enabled =3D object_property_get_bool(OBJECT(cpu), parent_name, = NULL); + profile->enabled =3D parent_enabled; +} + static void riscv_cpu_validate_profile(RISCVCPU *cpu, RISCVCPUProfile *profile) { CPURISCVState *env =3D &cpu->env; const char *warn_msg =3D "Profile %s mandates disabled extension %s"; bool send_warn =3D profile->user_set && profile->enabled; - bool parent_enabled, profile_impl =3D true; + bool profile_impl =3D true; int i; =20 #ifndef CONFIG_USER_ONLY @@ -773,12 +789,8 @@ static void riscv_cpu_validate_profile(RISCVCPU *cpu, =20 profile->enabled =3D profile_impl; =20 - if (profile->parent !=3D NULL) { - parent_enabled =3D object_property_get_bool(OBJECT(cpu), - profile->parent->name, - NULL); - profile->enabled =3D profile->enabled && parent_enabled; - } + riscv_cpu_check_parent_profile(cpu, profile, profile->u_parent); + riscv_cpu_check_parent_profile(cpu, profile, profile->s_parent); } =20 static void riscv_cpu_validate_profiles(RISCVCPU *cpu) @@ -1190,8 +1202,13 @@ static void cpu_set_profile(Object *obj, Visitor *v,= const char *name, profile->user_set =3D true; profile->enabled =3D value; =20 - if (profile->parent !=3D NULL) { - object_property_set_bool(obj, profile->parent->name, + if (profile->u_parent !=3D NULL) { + object_property_set_bool(obj, profile->u_parent->name, + profile->enabled, NULL); + } + + if (profile->s_parent !=3D NULL) { + object_property_set_bool(obj, profile->s_parent->name, profile->enabled, NULL); } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139769; cv=none; d=zohomail.com; s=zohoarc; b=YRWu/tSZivTLR5mJCNSeIqu+EPm+Ipm2mEteq2E+PG+KtZl8JHbT7K8wufI0ksSrhCRDw0/secVUZ+ZRg5zkmctZu7VSp5TEIYHCaIrsXoLBN8jFkbcZ4we/y4q2+1LFpAvbLRNKrsKNmkx27iBEHFvaZ8GuqNyLdmumoUMGVQQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139769; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=y/mnKCkxUHseq2DEPIBKL6BK8gURWClF8u9vsAqWZ2g=; b=nP81uTuY/SB4OoYIpEOgKAGb+5zgUr8tlrKL7vtmL5igCbNfEphciA5sJHY4jF6kGvfZWpthSCFOs/gCgiPs0VzHGy7aMyVvIX21PgQTWdMdcL4gyhgiCR7m+sqP5Y96EF88enPcoXi82UiEG0ZM7LKrlnSWVoF9wbAolCb7c/8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139769855742.800729666393; Tue, 4 Mar 2025 17:56:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxS-0002BQ-2t; Tue, 04 Mar 2025 20:54:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxP-000257-7a for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:59 -0500 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxN-0008Qb-5A for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:53:58 -0500 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-223785beedfso79513575ad.1 for ; Tue, 04 Mar 2025 17:53:56 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139635; x=1741744435; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=y/mnKCkxUHseq2DEPIBKL6BK8gURWClF8u9vsAqWZ2g=; b=atMlgwbR45VECPJAyRV/THbHJSJCnwX7MB36ji1MDUp3H5lzrKZDcplO++Zx+v1FbZ XkaHV4jJ4Pe6EDwjRTnsxaISTA/Z70+i8GQVSp0F6nhrBE8xT1CNi+sW+ITJn7ezWkAT bvWNhI2DY9aqL9/yjeGWDexOa74WLX+qk+GC/G7tWFzdYqrQxs1tR6CfPWDlm0CJ94jM iL8fMpzILYkOPZ0DTIHFi408ZwPKU2oZwDy0NsnGcaj/4UBIzW7A6uQ9yg+BkInqZoCr TGbo1JOx/oU4sNj/aTsKZLkRABhIY2f9ZAAhnekELZqFD/8Ow/h8K5QwHeHfvPDlY1TO mk6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139635; x=1741744435; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y/mnKCkxUHseq2DEPIBKL6BK8gURWClF8u9vsAqWZ2g=; b=sksQLi9p24UGdZxjOsIn2AitZtaWdltEV9ykxQ0HROFfD/8YQOvFm7gy3CiPQ+Z2tJ pBuhD0FR1lCveZTktWFcf5H88KGqmYAYd5KdgTVTbpZ9QWJSINSjS5ZTdH1N8FfW0g5q bPGVGqOKZD+snB2mgo11cQCjrDnh3gU9reN30HIpjQ9pVZ5cleqFl9FXHjR185zOnLbg N0IL2fDNs2dizL7OkJ+/ikuJF1pmuk/HONX85y4kqGMw/1VXV2fEIJRrO7WZ+cUIItQF Dr/e/Rwi5HF90mwrrnYvKrWGZbzF9JYc4UuF3++LW3/G9FTrhXpW7+f/Hd3Jw0tCpVTg Dl/w== X-Gm-Message-State: AOJu0Yy1A9a9UzELOjOj6xI6y8n0AxHf3SN3AzbCXFCfFeJSIT0PrUCs 1igDLQum5irzPN3/9CHwbor3jE+FzvjuPnvqz0pfdlg1YP5a5VUqps7jmU0ehpw= X-Gm-Gg: ASbGncvPZMDW06l4Krm1UvbAMMdMRwW4+n4HTaSq29evakWFR5hEUBUhFQMlfZyRzpM JyT7KHAgY8j18QGK1WwsrF23y/gT7TRUac631ZibsRFySfjXW9lmXKE16Fd08mi3SLL9KPf6etT vq9DIdEQY66wX7pOr5rLCC4MM6zoOqMZYu+/RGNy/GWDH0OlSt30z7eESsXpyWWuLWX34pJ9hE1 gxfAcDsCaGkusHOJduTw9BJM0xQsum0R0vgJYLPB9cN9y8KxnlKOJaazw3Ua4nzFy0vw3U6jKo6 lH7vt+W5cva6725j0tGzvseHRCyj0kdrIULC6rlnIp7vAeyprt5Q2q9GFk5IesEYOyaRdKInfVs w1KIJwYbEdBuOjd4OwTjohioGFObG/ya+ma8/srAG7mJ/50SxzmY= X-Google-Smtp-Source: AGHT+IHMqcDDYqF0qavMhjnPjFR/1qb447IJq47ruL7HOCET4aoxCMe84LNKkNEIINHS8E/P+u2zqA== X-Received: by 2002:a17:903:244d:b0:223:67e1:401f with SMTP id d9443c01a7336-223f1d34f8amr22624085ad.48.1741139635378; Tue, 04 Mar 2025 17:53:55 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 14/59] target/riscv: change priv_ver check in validate_profile() Date: Wed, 5 Mar 2025 11:52:22 +1000 Message-ID: <20250305015307.1463560-15-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::632; envelope-from=alistair23@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139771379019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza The S profiles do a priv_ver check during validation to see if the running priv_ver is compatible with it. This check is done by comparing if the running priv_ver is equal to the priv_ver the profile specifies. There is an universe where we added RVA23S64 support based on both RVA23U64 and RVA22S64 and this error is being thrown: qemu-system-riscv64: warning: Profile rva22s64 requires priv spec v1.12.0, but priv ver v1.13.0 was set We're enabling RVA22S64 (priv_ver 1.12) as a dependency of RVA23S64 (priv_ver 1.13) and complaining to users about what we did ourselves. There's no drawback in allowing a profile to run in an env that has a priv_ver newer than it's required by it. So, like Hiro Nakamura saves the future by changing the past, change the priv_ver check now to allow profiles to run in a newer priv_ver. This universe will have one less warning to deal with. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-5-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/tcg/tcg-cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 2b21942ef2..cb9b504012 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -746,7 +746,7 @@ static void riscv_cpu_validate_profile(RISCVCPU *cpu, #endif =20 if (profile->priv_spec !=3D RISCV_PROFILE_ATTR_UNUSED && - profile->priv_spec !=3D env->priv_ver) { + profile->priv_spec > env->priv_ver) { profile_impl =3D false; =20 if (send_warn) { --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140230; cv=none; d=zohomail.com; s=zohoarc; b=j9gTeDTiK9EWFjk/8WxQ8c+wzhyCK6ldpJvlx2Uhs9VJfSAXaX9K3aZo0zhxstzlzkOL4V7sNJU26W6+a9rQ7Orm5I0/qHj4DkeHgcXjQ7aWmzSlaU6euOipOuViao7lt4KWn2u3/MZ5yK8F+PowWTkiZf+n6KBV+AASV2gu6bU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140230; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=S3RPKYD/bhhgWxhDcoNiZL6fbw8dpzm/Vt1b7Obkvv0=; b=WzkTnyxJqspxqlUVDDHy84eld6scI1QEXirYt4EhI/YyyZ8H5PXiatQWL7wk0NF8T5OmgfoHUXo/VydmDk3WTRYRHfDOKyg+uIqQg5eqZRRooZ8UAv/IYlJCI44zCSTkd5iQaryo8+xIlDeZCAmGHnLLdk+ZVY3L8nxITpLvtbM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114023062886.65615446016261; Tue, 4 Mar 2025 18:03:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxU-0002Hh-Ad; Tue, 04 Mar 2025 20:54:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxS-0002C3-3j for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:02 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxQ-0008R4-85 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:01 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2238d965199so61658345ad.2 for ; Tue, 04 Mar 2025 17:53:59 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:53:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139638; x=1741744438; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=S3RPKYD/bhhgWxhDcoNiZL6fbw8dpzm/Vt1b7Obkvv0=; b=bKHvtPomEdEyHsERNfm6gbIG5GwcIPB8ZMR60XeJ0prmC6qwBJVXkPi2s3jcKrJMJv l2tvab1EVlcHhC1mxydaKz8xAau+upFOAcSIEgx7nfRbpze/lugtubVAVs+BaOOBEsPU 3mK2D+Px1fMvaqKIMCqoUF0KOs7KJ5XqQaeOVZgfVZeb1yE/4CG9u4/GATNVUTWkMINA Q+Y+o+Ny944JtRLC/uKdBySC7ecZGOAbuCHkOx1e2/gjqukBlQYveg/RBIrThoxl50Sg eHUhR+gA96rDYYZIs8Yy3ozAUTjKAOYUJg5CG4hjF/qMYpb1ro80Kcvt7a6+cHhBae7Z bYEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139638; x=1741744438; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S3RPKYD/bhhgWxhDcoNiZL6fbw8dpzm/Vt1b7Obkvv0=; b=Sj6lsNjLopWgKYmGWECMWo6qc2Ah9YZ5a8Ck9pTHwV1uHy5xBA+XawKsa28+edR5Ow OS71lvSLOPOuVBEvjmwMjweGVIvPmSiNmEQ3dzWKfplIGMPZ4y3kxXVsTTxy3D0BPyPn GHPZoARAeT2CEgHZqnswQlzW3pQAs/AOMLJts/l9pe3Nc6dYZ7wwBZlO1X0txgt3BAQa +BL4KDgIAzYTRqReoFI/xLOXBBsfxYIzJxaFHptHGJlmJz6qvHw8c/IGhnQ8L4fYpQsP XyMtPUYEiyQEUALLKnU8+2c4Q/XtzkvXgs5t+pOynyqy9wczSo09ogpCNOsldhW2bLdO uKJA== X-Gm-Message-State: AOJu0Ywuv7lhtKpVA5eZmqE+NdNZNTtweN8dIpoQRxT5YmkzDJDRrgJz JCDFvu6W2/ooiL0aS+v9Cb8bXS8R8tLB0obW/cIXI9eK2pqdOsmo72gCbW1qaoc= X-Gm-Gg: ASbGncuKRp49oNp6G2AKIvgiDInFCk/pl3rUkwc77KlmabYXTKjMKI31iuJ6oyu5oPe blo1yopRHeH/2LL8ftS5XmxvPEkm3aQ5sOTiPQ69/cz2KGNCMQf1HCgYX8MGN5pO2j3EjGXuXGt Y81n8UtUJjpoPG0ENubH8JKfVEBvoT1sFEwJ7RDEtY0n9b0ASbbo8GTsxqikL8Mwhx6Pr1oCpg2 rzQWZ8zO1PUTuyNd9j0bRChIRxAgd/XQ7KKvezkgb+qZdfKIw+Ur91fPmNEc38d8JM6U9QNqXw7 dhiZB+c+J22SMPUm1Z7qBsyHBntW+1NMnToAdnbrUQIVb1mP5Jo16/7vWVoZPT3rJKJy9ws/rqg BuMDWarN/+f/PkVzX15YMy15M8DOvU0feWxvMqFfTRuifneAqNlY= X-Google-Smtp-Source: AGHT+IHKLoM6GGtDAx1ojq6dEoqAJikdzBbs4s+XjsvO2h97ktXR6mYBka9wXaGfmDoQXgxnfL1Uzg== X-Received: by 2002:a17:903:244d:b0:223:67e1:401f with SMTP id d9443c01a7336-223f1d34f8amr22625705ad.48.1741139638374; Tue, 04 Mar 2025 17:53:58 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 15/59] target/riscv: add RVA23U64 profile Date: Wed, 5 Mar 2025 11:52:23 +1000 Message-ID: <20250305015307.1463560-16-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140232917019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Add RVA23U64 as described in [1]. Add it as a child of RVA22U64 since all RVA22U64 mandatory extensions are also present in RVA23U64. What's left then is to list the mandatory extensions that are RVA23 only. A new "rva23u64" CPU is also added. [1] https://github.com/riscv/riscv-profiles/blob/main/src/rva23-profile.adoc Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-6-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu-qom.h | 1 + target/riscv/cpu.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/target/riscv/cpu-qom.h b/target/riscv/cpu-qom.h index d56b067bf2..53ead481a9 100644 --- a/target/riscv/cpu-qom.h +++ b/target/riscv/cpu-qom.h @@ -40,6 +40,7 @@ #define TYPE_RISCV_CPU_RV64E RISCV_CPU_TYPE_NAME("rv64e") #define TYPE_RISCV_CPU_RVA22U64 RISCV_CPU_TYPE_NAME("rva22u64") #define TYPE_RISCV_CPU_RVA22S64 RISCV_CPU_TYPE_NAME("rva22s64") +#define TYPE_RISCV_CPU_RVA23U64 RISCV_CPU_TYPE_NAME("rva23u64") #define TYPE_RISCV_CPU_IBEX RISCV_CPU_TYPE_NAME("lowrisc-ibex") #define TYPE_RISCV_CPU_SHAKTI_C RISCV_CPU_TYPE_NAME("shakti-c") #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7b708bd010..511ed1df0e 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2391,9 +2391,34 @@ static RISCVCPUProfile RVA22S64 =3D { } }; =20 +/* + * All mandatory extensions from RVA22U64 are present + * in RVA23U64 so set RVA22 as a parent. We need to + * declare just the newly added mandatory extensions. + */ +static RISCVCPUProfile RVA23U64 =3D { + .u_parent =3D &RVA22U64, + .s_parent =3D NULL, + .name =3D "rva23u64", + .misa_ext =3D RVV, + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, + .satp_mode =3D RISCV_PROFILE_ATTR_UNUSED, + .ext_offsets =3D { + CPU_CFG_OFFSET(ext_zvfhmin), CPU_CFG_OFFSET(ext_zvbb), + CPU_CFG_OFFSET(ext_zvkt), CPU_CFG_OFFSET(ext_zihintntl), + CPU_CFG_OFFSET(ext_zicond), CPU_CFG_OFFSET(ext_zimop), + CPU_CFG_OFFSET(ext_zcmop), CPU_CFG_OFFSET(ext_zcb), + CPU_CFG_OFFSET(ext_zfa), CPU_CFG_OFFSET(ext_zawrs), + CPU_CFG_OFFSET(ext_supm), + + RISCV_PROFILE_EXT_LIST_END + } +}; + RISCVCPUProfile *riscv_profiles[] =3D { &RVA22U64, &RVA22S64, + &RVA23U64, NULL, }; =20 @@ -2880,6 +2905,13 @@ static void rva22s64_profile_cpu_init(Object *obj) =20 RVA22S64.enabled =3D true; } + +static void rva23u64_profile_cpu_init(Object *obj) +{ + rv64i_bare_cpu_init(obj); + + RVA23U64.enabled =3D true; +} #endif =20 static const gchar *riscv_gdb_arch_name(CPUState *cs) @@ -3150,6 +3182,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV64E, MXL_RV64, rv64e_bare_cpu= _init), DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22U64, MXL_RV64, rva22u64_profi= le_cpu_init), DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22S64, MXL_RV64, rva22s64_profi= le_cpu_init), + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23U64, MXL_RV64, rva23u64_profi= le_cpu_init), #endif /* TARGET_RISCV64 */ }; =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140184; cv=none; d=zohomail.com; s=zohoarc; b=UuFbi6LaOQ7H7Bu5ezOrWfZx5mT0N9JbSQFpDg4R4yF3XkXLKu9vMFy/GNw6ELBE96FDOLRu6fQu2UrDNwi61ztaJR8FmCp3WH6DXT/Ou6LB4wF/nS1LRs3+d/u5qWaqtPUjYXv3tzwxVVHNi2UPjBz4ML33Oyy/K/uY2Oy7rz4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140184; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3gwT/mHctmBjF+WNI/x5iyqj1CcCUESDeIppQlEyHlo=; b=NB/Ri/xLlsj0g9Lan7YxnTLNryhQjCa8Gr++NAQpmtTYXaT0oSGTRYVbxs6wTr43SoSS0l+1TU/qYgQ+gqxg/C5FfF2m/vM9VMbi9ZoTGwAaHYo3cpj6wjTqEGCYhO7o9jU95Kty+kZ86O9tHDV3LCgsMxRufW+Ajv77pktKMjY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140184102934.4745696577429; Tue, 4 Mar 2025 18:03:04 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxW-0002RA-Jk; Tue, 04 Mar 2025 20:54:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxU-0002JA-NA for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:04 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxS-0008Ri-UN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:04 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22382657540so72560605ad.2 for ; Tue, 04 Mar 2025 17:54:02 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.53.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139641; x=1741744441; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3gwT/mHctmBjF+WNI/x5iyqj1CcCUESDeIppQlEyHlo=; b=BYkejdQKYEXOd/RkYb1VlVNSsjS0MOQUdZbI4LOe3dces3phgvtqqyHtBnW1YoSLXG 2WoqZqO7O+aNvrWYND2detg6P2k29MLJJ+4DL6NvBOodZJdeAMN8arifsA/kLVt1PGKr 74NhOLwRQhGBcU+ESNIdG8oV/oqmBb4ws90+gPsqYNtfCDwhDV7gwvpXrqZ9Aq1rmGx9 q1nH+VwFeDHvDekV6MbvoPNfEeWVpfEP9s2TMBw9TsdkFnCYfyrCZviDZy3E5/uG/INI idNX2S7OH/4uhxtO+bhJs1jBhqZf+R7qd3ECmAkxP64ubbDmZ3FvA+omsmiaf/KNTlKN Q19g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139641; x=1741744441; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3gwT/mHctmBjF+WNI/x5iyqj1CcCUESDeIppQlEyHlo=; b=KeIqT0kaqgubZOQqfQ1eRni6z/4ZmB/ov6JzMlZnKivI9OvTFko2GCTE9IucuTFKUl vcXfO4Eu2revgW1rmizWtT5rJ1ryaVtWn4b4+mW2DS+dtAOqyeKmFjV7zjzBLzIxi2bP kN1cwwF2V8nWJFP4qrV3oG4C9P/S8iRoNZChH0H5zrP6BIiQW47e+unM8nKylSKlKRoB GUA2f4dNZjNfnAB39hJmxcb6XOd/UGa5GucFxCaxFVzxHQzwAR+gtFTmu+GcEyccaow9 rFlWeVO1dK/uOWz1r1UgGvIGXYrnFY2VRh7wc0i4DZfK10bC7EICvKjga9eTl43W1+X4 hb6g== X-Gm-Message-State: AOJu0YxRc474lC5kXH+wRdCtbIZIfv9Ht23KWo18wpC7yAGuELUgIe5V cJtDEaz3Rgfkr4iejeaAWA4A//3ycSGHUR6n6xMdWdYm7Zq+IJUMCf+orYJVSLU= X-Gm-Gg: ASbGncv84lxVvua5Q4Hrb1LukjUfq4a65xk+NDn7S14ruhwPajyENOsSk+buk9A2igk MvOzXGzBpEB/HcfZGLRTpmCqWgxlDqehF84Tp6hF8ZpyPzb/8q0e59Unu/T/bVOPjZDAOzIShLN XLxHNTPNpeWj1P+hw6Hc9KFKniobyyuTcrw1BbK5LpXY1bSrl1ahnOApwTFxX37qMfh3HqNFpZF jPSFU1ipmBh6xOBZm39HcZNfbGImmVGt1d9YdQO8oxav+30kcz3mPowXVys0qrf2J7YOYO7/X3n su7jVq2aOAgxMvqpuxhzc6nViO+ae6/nOS1RfEDZ0qJvAVbpAxd62xDFZXxBBAX2+y7T/kJ2rsV 6XoGvBz6DYSLJtT5h7m1me0M2o4rmzWe7vMyHcy8YoKKctkaYuBk= X-Google-Smtp-Source: AGHT+IEnol7siEUTSQki6ybi0P6NZ4StvYPYYiQTCXiiG44Hiqv4NM0qDZAOffNbQ66TbSsHAEsXuw== X-Received: by 2002:a17:902:da88:b0:220:d532:834e with SMTP id d9443c01a7336-223f1c829ffmr17552245ad.19.1741139641375; Tue, 04 Mar 2025 17:54:01 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 16/59] target/riscv: add RVA23S64 profile Date: Wed, 5 Mar 2025 11:52:24 +1000 Message-ID: <20250305015307.1463560-17-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140184850019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Add RVA23S64 as described in [1]. This profile inherits all mandatory extensions of RVA23U64 and RVA22S64, making it a child of both profiles. A new "rva23s64" profile CPU is also added. This is the generated riscv,isa for it (taken via -M dumpdtb): rv64imafdcbvh_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ ziccrse_zicond_zicntr_zicsr_zifencei_zihintntl_zihintpause_zihpm_zimop_ zmmul_za64rs_zaamo_zalrsc_zawrs_zfa_zfhmin_zca_zcb_zcd_zcmop_zba_zbb_zbs_ zkt_zvbb_zve32f_zve32x_zve64f_zve64d_zve64x_zvfhmin_zvkb_zvkt_shcounterenw_ sha_shgatpa_shtvala_shvsatpa_shvstvala_shvstvecd_smnpm_smstateen_ssccptr_ sscofpmf_sscounterenw_ssnpm_ssstateen_sstc_sstvala_sstvecd_ssu64xl_ supm_svade_svinval_svnapot_svpbmt [1] https://github.com/riscv/riscv-profiles/blob/main/src/rva23-profile.adoc Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115184316.2344583-7-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu-qom.h | 1 + target/riscv/cpu.c | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/target/riscv/cpu-qom.h b/target/riscv/cpu-qom.h index 53ead481a9..4cfdb74891 100644 --- a/target/riscv/cpu-qom.h +++ b/target/riscv/cpu-qom.h @@ -41,6 +41,7 @@ #define TYPE_RISCV_CPU_RVA22U64 RISCV_CPU_TYPE_NAME("rva22u64") #define TYPE_RISCV_CPU_RVA22S64 RISCV_CPU_TYPE_NAME("rva22s64") #define TYPE_RISCV_CPU_RVA23U64 RISCV_CPU_TYPE_NAME("rva23u64") +#define TYPE_RISCV_CPU_RVA23S64 RISCV_CPU_TYPE_NAME("rva23s64") #define TYPE_RISCV_CPU_IBEX RISCV_CPU_TYPE_NAME("lowrisc-ibex") #define TYPE_RISCV_CPU_SHAKTI_C RISCV_CPU_TYPE_NAME("shakti-c") #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 511ed1df0e..3624ffb6d9 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2415,10 +2415,41 @@ static RISCVCPUProfile RVA23U64 =3D { } }; =20 +/* + * As with RVA23U64, RVA23S64 also defines 'named features'. + * + * Cache related features that we consider enabled since we don't + * implement cache: Ssccptr + * + * Other named features that we already implement: Sstvecd, Sstvala, + * Sscounterenw, Ssu64xl + * + * The remaining features/extensions comes from RVA23S64. + */ +static RISCVCPUProfile RVA23S64 =3D { + .u_parent =3D &RVA23U64, + .s_parent =3D &RVA22S64, + .name =3D "rva23s64", + .misa_ext =3D RVS, + .priv_spec =3D PRIV_VERSION_1_13_0, + .satp_mode =3D VM_1_10_SV39, + .ext_offsets =3D { + /* New in RVA23S64 */ + CPU_CFG_OFFSET(ext_svnapot), CPU_CFG_OFFSET(ext_sstc), + CPU_CFG_OFFSET(ext_sscofpmf), CPU_CFG_OFFSET(ext_ssnpm), + + /* Named features: Sha */ + CPU_CFG_OFFSET(ext_sha), + + RISCV_PROFILE_EXT_LIST_END + } +}; + RISCVCPUProfile *riscv_profiles[] =3D { &RVA22U64, &RVA22S64, &RVA23U64, + &RVA23S64, NULL, }; =20 @@ -2912,6 +2943,13 @@ static void rva23u64_profile_cpu_init(Object *obj) =20 RVA23U64.enabled =3D true; } + +static void rva23s64_profile_cpu_init(Object *obj) +{ + rv64i_bare_cpu_init(obj); + + RVA23S64.enabled =3D true; +} #endif =20 static const gchar *riscv_gdb_arch_name(CPUState *cs) @@ -3183,6 +3221,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22U64, MXL_RV64, rva22u64_profi= le_cpu_init), DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22S64, MXL_RV64, rva22s64_profi= le_cpu_init), DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23U64, MXL_RV64, rva23u64_profi= le_cpu_init), + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23S64, MXL_RV64, rva23s64_profi= le_cpu_init), #endif /* TARGET_RISCV64 */ }; =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139744; cv=none; d=zohomail.com; s=zohoarc; b=HtJPbOIvb7K14xSatR5c5M10SE9P3Rop/xo40aYEwaQyi/tXiobP3m36BonO3mvpRhY0hZ9r4xuN9LJk4LXWYhlhdEdP9LmmHg7G7dn9Bl8ZJPTMZiGVZgF9UPfqyFXKZ3VMttdCGPrMQyD57NHN26RdZCkruLhzyLma85uyv1I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139744; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bz0aYhkElnl1uyIfpqfb71suJK5yTJiBtednXeeG7WE=; b=ESkW09zjRkVerHJ7EdC4u/bLJCWu2yW7woSUWta9XWJzObMscB79c75+r3YmBV4qcczgmFSK32PZigJxcAbG/HhDwsWwaOJkkNHkWT/1Ezy2Dlr+ACHSIB/dVDcRjKxbRyHm/QkqSlS8eVVFv2cIm9g2nG7bi7V3elNZ7dUrD9E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139744957919.4026986344692; Tue, 4 Mar 2025 17:55:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxa-0002ln-3Z; Tue, 04 Mar 2025 20:54:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxX-0002Xx-QM for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:07 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxW-0008SE-6n for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:07 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-22349bb8605so121875925ad.0 for ; Tue, 04 Mar 2025 17:54:05 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139644; x=1741744444; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bz0aYhkElnl1uyIfpqfb71suJK5yTJiBtednXeeG7WE=; b=O/ylanJQDf8uODwTerrMMpQZvWIbNxj9YZUM95+v1/2tC9W+GHe1+KnOR45WvTkCyk GfuuJEqTr/V0ssHeiu+WFDa6OuHfy+fszhHW5pqWX7NinMBEyAsPKgVJHIhMNgvQt+MD DKjJMzf3HblnO7PZvAQj21svQasXBNWnARnLx/h8YnWgcVXEsrtylDiaZYjx6m7ZHFhZ 7y/lPIRe98oCmgfVbiucbD9m7Xyi0BnD7ifGkmxZS6su1iLUDL4j2Fo2VivWocSWtZXs pAMD1nbWmVE2WfbjvI8BPckzI8tOb/mXOCy9uDypBOOauCimmNklXMUcu9X+6/UXSwuF lkPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139644; x=1741744444; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bz0aYhkElnl1uyIfpqfb71suJK5yTJiBtednXeeG7WE=; b=ggonKdO0uT0CMrhJiqRkJew1OClIR5K5++bfge29958E6+1maBe3zshAbXkXTJBu2D f7Cc0O/nZ/TW4Gu0xlR5MRoLDY1ERjUPA8392AtMHxNR+nzzqI+a/wyXQgKHcPPA+IlX COLjskRKN7wABcMBcUcCVEPSf7UvpgQPwyjo8aTbG1p+D6x5yl+vYHXbrH5hhUjiPClN Qi/pFvYxqwJCA6YTJ5gmmISJRJxbraFraKDtiiNkT7FmJjWc6oXuyH1mxRFUyryM+XN2 7RliVI/BpX6DdBr8ulZOF8BMfqJop1wt+3Cpr/Iaz/jQ9O3ojA2cehAnbGbWgXXhFRJO 1s/Q== X-Gm-Message-State: AOJu0Yx7+iVp+Stq7Q1g5+zBabI0KEwS/BoOHKXHCbLoY2QIcoX0DyY5 wXOWBONI1LGp+iT7lFaQ5BAhxdTTmxgJjG3xsSTT+/knG89btvayBnam7+tlsEA= X-Gm-Gg: ASbGncvTngLwfaYNmx+rfc7fmS/Sb3Ih73mfeuhwTv51f7bVYVNOcId0jYnbqPnzkjk jWDWfcqAZwDoTh3daGiej05unkIg5Eov9DiNFkipK+h5zlzjhFQGg86RPXZoUsEf7OI6W34KA2P yRFUa1vw0bMPedxZE9xJTg2ZLOUM+tZHzTJzYLpq9cJmy5LGrzhlmRkNz0hlkGWhavL2r7MqMPA jBx7naLDEn2w58X3kWwTsvzUhbw0nGQdek4UWlhefjm2XKemgrvn8ZXtZFr94+1kVz1MbQPqY5B kfk3lFHgwVAhsMtItFVo/cgPAC4Ntawe9OwzbBdeCpuQoITWPgOFDc5vWR0tTk/EC+4ByEKV9vi 8ZmYe6izzFcz7HziBacYOwEX/diDqasQlqMbQhfEig4UIDgCIGPo= X-Google-Smtp-Source: AGHT+IFigdfrZ+C09MBnLd92RuKD9tNm3xmRm4MvlTkM2QyVXz+cgGsTjymUuLDUapH0ARJXNUgWvA== X-Received: by 2002:a17:903:32c2:b0:223:66bc:f1e6 with SMTP id d9443c01a7336-223f1c6afa6mr25929945ad.5.1741139644586; Tue, 04 Mar 2025 17:54:04 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jason Chien , Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 17/59] hw/riscv/riscv-iommu: Remove redundant struct members Date: Wed, 5 Mar 2025 11:52:25 +1000 Message-ID: <20250305015307.1463560-18-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139747322019100 Content-Type: text/plain; charset="utf-8" From: Jason Chien Initially, the IOMMU would create a thread, but this thread was removed in the merged version. The struct members for thread control should have been removed as well, but they were not removed in commit 0c54acb8243 ("hw/riscv: add RISC-V IOMMU base emulation"). Signed-off-by: Jason Chien Reviewed-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115141730.30858-1-jason.chien@sifive.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index 9424989df4..fa8a50fa24 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -58,11 +58,6 @@ struct RISCVIOMMUState { /* interrupt notifier */ void (*notify)(RISCVIOMMUState *iommu, unsigned vector); =20 - /* IOMMU State Machine */ - QemuThread core_proc; /* Background processing thread */ - QemuCond core_cond; /* Background processing wake up signal */ - unsigned core_exec; /* Processing thread execution actions */ - /* IOMMU target address space */ AddressSpace *target_as; MemoryRegion *target_mr; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139666; cv=none; d=zohomail.com; s=zohoarc; b=F2zbNvwBR7QRjwCmO5XTkxdI/oeDgaI97vcDccHaqH1Rq2UOJgElYRZ3BTJeVCv2CLnG5DEqM7uICSNb4kxU1HvG/fsvga5k+CudRAf/sLePo1gvAVHzcHkrDcfvLQSgYGP2QaOAzc+MUgaeyBxdsKKhFqAnUtnK+WoXHbdAcMI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139666; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zW6PXe4XFNdvMN5XPwVPjnp1zyVCPW0vMTE7zxiqwxQ=; b=d2OaGmdXsDlbOTuq7oSzW80dDxfMaFIi8UUITiIluPqgRrkOsr2C4rIl+4oQRA6JOtN1EJBS+QMAEAjeRNs1MnIotsB/poJzTbv5i0+f5HR/vX8xCzrIwbA9PxOTUjdWJjTAdWaMcZ8n6CPHZsKjFTIPtU3yUoXcmoCCpnsugdU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139666405264.8982134401565; Tue, 4 Mar 2025 17:54:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxd-000356-4e; Tue, 04 Mar 2025 20:54:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxb-0002wN-By for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:11 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxZ-0008Sc-Ki for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:11 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-22349bb8605so121876465ad.0 for ; Tue, 04 Mar 2025 17:54:09 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139648; x=1741744448; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zW6PXe4XFNdvMN5XPwVPjnp1zyVCPW0vMTE7zxiqwxQ=; b=gJjgzJ/I5XRIFUBrmhhg92JBEmgFcGGam1e43vjrhVoRfoe92Xak+21SA1ZVwNY5Dj gOw8vZDEx7dtsdxz0Gqu1EJEfH2J6CZ8kHC+Xa4n2wA+uYeM57eSmgSvLaZ9uwHtI747 Z59pWcal7m3xx1FhCxL+x9GoLTprgGWIU9QKHVybc1jxvlzhGO2yUgbtTbBYkzdKt5lU +jVU59JC4LMrZzlma8/o9qP1wAyA7pacSBqcdWUyxBHiZWX/jftLDnZ3gXEnrmnOjBcW gwTLWBC5n7B3T19KURnedytAUlAoMG4OgzO3wfbkNgIBO2XW6iAB5YOT68mRIZXgv0VU 5EWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139648; x=1741744448; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zW6PXe4XFNdvMN5XPwVPjnp1zyVCPW0vMTE7zxiqwxQ=; b=Z8MyhrmNnCnAWUEcjc4f2Jd14X3geNscw8QkP15dlEnm2m3UqXQB9Baekle6O/FttW ip4Z6Zgz+MstWfeusLMlZluGIhrxTlUUX+Xv7CXggYl6g/xtQJYCylokbPHpFFBsYCIK TFEThq4gufO+fCHfEdOFWvjXsJaOaeW91LVXVUVnYi3MzpwQxqvPlpMpt4yrepcmFdql 0zmARdwX3l/xP1Yk00anqqcnUj3btBBYjA4h07hMN9fMgbqL1mT0h0qNe5J4Pbno7l+b piG9owtetOp4hrQS1afM2jbmZEEvDNfC6sm62gMhFUShgoEZMvEnBttat5HfArpZh64e hhWw== X-Gm-Message-State: AOJu0Yzhpzx5JbFSWwblUnqYSIOACCWnO5zkA0/+Q1Q2k/yLHcA4zaaY Fnhl9qx6wmE5kscITxuAEKzm+iCZN+j4W6NMkJmogZfSCXflPPjex3LKNJO072s= X-Gm-Gg: ASbGnct1AXklamBK0F/bmr038jXJXRfQoWU37ma7alr83ONw95sdRF+w3GgSzBiqdsU +VJCvALySIm68UgIjr1ofpeobQo2Gy407MnkPBSDvf2ejp2Gkyq9xO5B3qsXCAmoqBaQucZ2bmi 28ptlK4gTmam2J57YOyAmm3HbJ4JmId8/rZv4eb7SfL34HpGUoCI7YnY+jRIqRcGzO7/nDT8OdN V7ZBa7qRk9uKTxJYrNRuG7eyJK55Ze8TgIr92y8yta+vtxLMShyFDimcuvK1TThyu2HabQNRpmK u3sqjsl5LMfR/gGCDGo7G7CXZE+r/Hx4Hg0UoQnGArXD85eqVXJJNwB2VHgLxsTKNMhTuSs9rh3 f8pc46lQnzu9cXgyagYr6HGpCKeyaIP6UkM48e/ZYXaAkVeKznMQ= X-Google-Smtp-Source: AGHT+IFSJnakTu+Dbxp1KLlz7EBQqJL8B3cpFPPiSFtcUXZyd5DuLSxYJYZp3aT+Q0nEUlot1Q9xPw== X-Received: by 2002:a17:903:8c8:b0:223:28a8:6118 with SMTP id d9443c01a7336-223f1c9bb60mr23806895ad.31.1741139647800; Tue, 04 Mar 2025 17:54:07 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jason Chien , Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 18/59] hw/riscv/riscv-iommu-bits: Remove duplicate definitions Date: Wed, 5 Mar 2025 11:52:26 +1000 Message-ID: <20250305015307.1463560-19-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139669263019100 Content-Type: text/plain; charset="utf-8" From: Jason Chien The header contains duplicate macro definitions. This commit eliminates the duplicate part. Signed-off-by: Jason Chien Reviewed-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250115141730.30858-2-jason.chien@sifive.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-bits.h | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/hw/riscv/riscv-iommu-bits.h b/hw/riscv/riscv-iommu-bits.h index 485f36b9c9..de599b80d6 100644 --- a/hw/riscv/riscv-iommu-bits.h +++ b/hw/riscv/riscv-iommu-bits.h @@ -50,8 +50,14 @@ struct riscv_iommu_pq_record { #define RISCV_IOMMU_PREQ_HDR_PRIV BIT_ULL(33) #define RISCV_IOMMU_PREQ_HDR_EXEC BIT_ULL(34) #define RISCV_IOMMU_PREQ_HDR_DID GENMASK_ULL(63, 40) + /* Payload fields */ +#define RISCV_IOMMU_PREQ_PAYLOAD_R BIT_ULL(0) +#define RISCV_IOMMU_PREQ_PAYLOAD_W BIT_ULL(1) +#define RISCV_IOMMU_PREQ_PAYLOAD_L BIT_ULL(2) #define RISCV_IOMMU_PREQ_PAYLOAD_M GENMASK_ULL(2, 0) +#define RISCV_IOMMU_PREQ_PRG_INDEX GENMASK_ULL(11, 3) +#define RISCV_IOMMU_PREQ_UADDR GENMASK_ULL(63, 12) =20 /* Common field positions */ #define RISCV_IOMMU_PPN_FIELD GENMASK_ULL(53, 10) @@ -382,22 +388,6 @@ enum riscv_iommu_fq_ttypes { RISCV_IOMMU_FW_TTYPE_PCIE_MSG_REQ =3D 9, }; =20 -/* Header fields */ -#define RISCV_IOMMU_PREQ_HDR_PID GENMASK_ULL(31, 12) -#define RISCV_IOMMU_PREQ_HDR_PV BIT_ULL(32) -#define RISCV_IOMMU_PREQ_HDR_PRIV BIT_ULL(33) -#define RISCV_IOMMU_PREQ_HDR_EXEC BIT_ULL(34) -#define RISCV_IOMMU_PREQ_HDR_DID GENMASK_ULL(63, 40) - -/* Payload fields */ -#define RISCV_IOMMU_PREQ_PAYLOAD_R BIT_ULL(0) -#define RISCV_IOMMU_PREQ_PAYLOAD_W BIT_ULL(1) -#define RISCV_IOMMU_PREQ_PAYLOAD_L BIT_ULL(2) -#define RISCV_IOMMU_PREQ_PAYLOAD_M GENMASK_ULL(2, 0) -#define RISCV_IOMMU_PREQ_PRG_INDEX GENMASK_ULL(11, 3) -#define RISCV_IOMMU_PREQ_UADDR GENMASK_ULL(63, 12) - - /* * struct riscv_iommu_msi_pte - MSI Page Table Entry */ --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140134; cv=none; d=zohomail.com; s=zohoarc; b=OLnbDAmVNVZIFdr8J/vEfDifGvJHn1ce5Sa1X4Mvz1jnr0k04ReHfcFpfYiwKL4TEPqbCckoZt/xXIbJLImzDBXb9G0+Z++3d4mnotp8XfztR7gCi+30rRA/lPDaSj9tWcvQNnlDpnV2jkw+PxcZxpIKv+z+QKu7zq1zhxGKRV4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140134; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jMRtoXKWoktOFhEsg4DGrJQquTSdWQNK2JOTRNo+Qz8=; b=UWxWJFv60kzT3jrQmDANwl2bbb3fRYfGkqCROzcE/Hxbr1HQkdhdiIsx9iPP86g8xzbtbbPf8qY27Lc+MgGUGHDMB1Gckg4MW1VTmtCTKY8VyIRniH3tr1LewISYfk1qTqA2UD/DfV2zQmKhZm4KuETlcMWIzvPt25ygpX6BEGo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140134781145.26328641092778; Tue, 4 Mar 2025 18:02:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxf-0003La-PK; Tue, 04 Mar 2025 20:54:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxe-00039H-4K for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:14 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxc-0008Sz-7y for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:13 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22382657540so72562105ad.2 for ; Tue, 04 Mar 2025 17:54:11 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139651; x=1741744451; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jMRtoXKWoktOFhEsg4DGrJQquTSdWQNK2JOTRNo+Qz8=; b=jTkZRdGfX1CHd4XBy2M90CJ8mermDpN0SDjyFwgkrG864WeMgZXYyBMgHlTAp+mYtT MgyscxoYekIZGPkcBzsyBcf9/BfeZ77SO97coECeBteLe8naHiU+PfDhGn5iDY1CYLYp gfGv59+BbLZJNp8HYE11Tyhm8ALaxT02R3TpKoeKvW+uOFsDaTyjY0+OZoNcrGfwSyQD ct/VlNGigoywLYKvZrb/jLjape5Hkx4pbT1ODFaXZdLt8c6DDgB2tZE1XSQgkevQSMeh Bn1jaIxd1XdwXdtBCLytWuG0ji2x7RYQxm1v9BnGFy6cCbVTK/Tv4snS7eiWZY8GxnuV 15Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139651; x=1741744451; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jMRtoXKWoktOFhEsg4DGrJQquTSdWQNK2JOTRNo+Qz8=; b=qCyTgTKmbST0N3YDcsPDOiHcZ29I0ltUCTbY9ndxhf/61U9FYGDYGZm1z6ezdeUEOK z3X9mxEc2x+IV3F9rXUIH1nXWHpXGlUmPZwuJkWPwuy3Z0a8R0UCHwN7nyprOm8ZgmPT rqvRgfhxQUrYJiXIlNcV/0/vIUfgMDAjoEZrVB3pge61XRev57B3gv8ucQmnDf6ZV8gA Q/DwdMSxl5dBlx+l9gVd6uWRikOseh0Oro4n1JGZSBYKMeOaCBGsWqyWVNEELuNg3jlG h/x83K6xybPTShFyuW9UeE06y9o2BVrlsvnu4nd8r0+8ExvxOLpQSKK7H8AGgUlkT1/c XdRQ== X-Gm-Message-State: AOJu0YwpkRZ81fk7fKXSEt8dENchafjtUzDFOyZuu++GF2C5QAv7SHpO QYDmEVKgFXCfJd5HDh/SA7/lhroFkAO73ul6ySr5IaNztHgpq67rxo0389r0abA= X-Gm-Gg: ASbGncvZ9RnDCIAEa5OmcVuc5nfX1DF8g4th4QsLbPCapNyp2fTwrZqKOOL06SLGpmj 3v1R3Eubw5wdVis066EsqjleElkNovZtHzyJwWgMUzhuxIedjft6sJlDCEYYWzQOCBevzL+C8G9 DRGG+ubRkHkGyHhezKLEzqQommX7ayvpB6f4GSfj+iH0PkWZv7O7Fx7NDhBJGVJXnQkbcGacH+k COUeyTVpbPRrApiDT1v7uQn8uu0FLvpFGA1l59Pn+wFf44TIBaYh3oHi/Gcd/EdLgh8lt7bbnAA RLE/yIzfVhg0a9zlP6JwVDmgtTepNVBoLArPhCqdhZcjk9H0eOOpCWv4uHiwIAx9bZgNoVvFwx9 E5SkWGztlHe4+eF+00+glRCq4c7aCGrBua9dWd95obrdv0AASXuU= X-Google-Smtp-Source: AGHT+IHS3lj2ZerRCD8neS4bfVFrQw5uLSudKrBRG7KRrPZ10NEQkZ02fQK8LRpbFNCYoQ155YgHcQ== X-Received: by 2002:a17:902:ea0b:b0:223:65dc:4580 with SMTP id d9443c01a7336-223f1d3feeemr16398925ad.52.1741139650702; Tue, 04 Mar 2025 17:54:10 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rodrigo Dias Correa , Alistair Francis Subject: [PULL 19/59] goldfish_rtc: Fix tick_offset migration Date: Wed, 5 Mar 2025 11:52:27 +1000 Message-ID: <20250305015307.1463560-20-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140136710019100 Content-Type: text/plain; charset="utf-8" From: Rodrigo Dias Correa Instead of migrating the raw tick_offset, goldfish_rtc migrates a recalculated value based on QEMU_CLOCK_VIRTUAL. As QEMU_CLOCK_VIRTUAL stands still across a save-and-restore cycle, the guest RTC becomes out of sync with the host RTC when the VM is restored. As described in the bug description, it looks like this calculation was copied from pl031 RTC, which had its tick_offset migration fixed by Commit 032cfe6a79c8 ("pl031: Correctly migrate state when using -rtc clock=3Dhost"). Migrate the tick_offset directly, adding it as a version-dependent field to VMState. Keep the old behavior when migrating from previous versions. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2033 Signed-off-by: Rodrigo Dias Correa Reviewed-by: Alistair Francis Message-ID: <20250114212150.228241-1-r@drigo.nl> Signed-off-by: Alistair Francis --- hw/rtc/goldfish_rtc.c | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/hw/rtc/goldfish_rtc.c b/hw/rtc/goldfish_rtc.c index fa1d9051f4..0f1b53e0e4 100644 --- a/hw/rtc/goldfish_rtc.c +++ b/hw/rtc/goldfish_rtc.c @@ -178,38 +178,21 @@ static void goldfish_rtc_write(void *opaque, hwaddr o= ffset, trace_goldfish_rtc_write(offset, value); } =20 -static int goldfish_rtc_pre_save(void *opaque) -{ - uint64_t delta; - GoldfishRTCState *s =3D opaque; - - /* - * We want to migrate this offset, which sounds straightforward. - * Unfortunately, we cannot directly pass tick_offset because - * rtc_clock on destination Host might not be same source Host. - * - * To tackle, this we pass tick_offset relative to vm_clock from - * source Host and make it relative to rtc_clock at destination Host. - */ - delta =3D qemu_clock_get_ns(rtc_clock) - - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); - s->tick_offset_vmstate =3D s->tick_offset + delta; - - return 0; -} - static int goldfish_rtc_post_load(void *opaque, int version_id) { - uint64_t delta; GoldfishRTCState *s =3D opaque; =20 - /* - * We extract tick_offset from tick_offset_vmstate by doing - * reverse math compared to pre_save() function. - */ - delta =3D qemu_clock_get_ns(rtc_clock) - - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); - s->tick_offset =3D s->tick_offset_vmstate - delta; + if (version_id < 3) { + /* + * Previous versions didn't migrate tick_offset directly. Instead,= they + * migrated tick_offset_vmstate, which is a recalculation based on + * QEMU_CLOCK_VIRTUAL. We use tick_offset_vmstate when migrating f= rom + * older versions. + */ + uint64_t delta =3D qemu_clock_get_ns(rtc_clock) - + qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); + s->tick_offset =3D s->tick_offset_vmstate - delta; + } =20 goldfish_rtc_set_alarm(s); =20 @@ -239,8 +222,7 @@ static const MemoryRegionOps goldfish_rtc_ops[2] =3D { =20 static const VMStateDescription goldfish_rtc_vmstate =3D { .name =3D TYPE_GOLDFISH_RTC, - .version_id =3D 2, - .pre_save =3D goldfish_rtc_pre_save, + .version_id =3D 3, .post_load =3D goldfish_rtc_post_load, .fields =3D (const VMStateField[]) { VMSTATE_UINT64(tick_offset_vmstate, GoldfishRTCState), @@ -249,6 +231,7 @@ static const VMStateDescription goldfish_rtc_vmstate = =3D { VMSTATE_UINT32(irq_pending, GoldfishRTCState), VMSTATE_UINT32(irq_enabled, GoldfishRTCState), VMSTATE_UINT32(time_high, GoldfishRTCState), + VMSTATE_UINT64_V(tick_offset, GoldfishRTCState, 3), VMSTATE_END_OF_LIST() } }; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139762; cv=none; d=zohomail.com; s=zohoarc; b=G+ElBw5JMaCqAExO0sN/+vJ5mYFC5hlLdPG30i1IKyiS1mq3d+jOozMEA/fhA56dzT8ai1xxYHrwEXrgJ5t5UkFtv0nDjU9M9uVzY35ga4Z7AfpSUPvVtEInWDNODd5uONPWLB5OyLIyF+srgXUBdvWuzLvEZPcG1y/HZ0CzfGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139762; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZhcMHAF0LEx4SB+8bqtdgUZxuEwpD7O1r3fLFnMpyJA=; b=HeKxIUXU2bUuWfP/oa+4C0SieEggQCKjSpmklnfcUBAyqXM+gpurBKa5/GAjpIykks4F/7gPYVOHbHmpea5nlEU3p1b+hk3NyrXe4h8debP1V2E0iAp/tbTjWgra8TQ0JDtC7RZR0VN/Cy8ymjJocWuKB5v/H4qcjiGMB2g/tK0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139762170623.4575525682993; Tue, 4 Mar 2025 17:56:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxj-0003VL-DJ; Tue, 04 Mar 2025 20:54:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxh-0003SC-4d for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:17 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxf-0008TO-Dv for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:16 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-22349dc31bcso110902965ad.3 for ; Tue, 04 Mar 2025 17:54:15 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139654; x=1741744454; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZhcMHAF0LEx4SB+8bqtdgUZxuEwpD7O1r3fLFnMpyJA=; b=Par+Cxjr1cdRQMn4+jMLgE5rSzqWQVVkAHCw4PudxHEJnYKkDDx8K1EUYUdTgIWp1x dIcRisOwxqXcA4vQ8SdXnjqazzuc60HFbtmw3sdMFdefrpw6SK1PC8qhrcxjoJ/y4BTf DrBcRPkSkEVw5f2wD3smzj4XXNeicPUK1ynK4ffFYwmGtn/AMcvXVViccHrcJkOobafW 3lDDRTA8Sm7eIFC5XluT+QPRjfyQsWyUo71Pn/5NeUxqs8CWMeW6qlL5u1wVKVqTwSRn uj2IzqabygVaNPxYa7epQSBrvwk2UHbZLitRFMwgqjbhpA9xl/NC+nQrQVWCTnbWPYx5 oKrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139654; x=1741744454; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZhcMHAF0LEx4SB+8bqtdgUZxuEwpD7O1r3fLFnMpyJA=; b=JJ3n0ilJ7JLGZqHbp+DAObLLtCDTyBAHjZlYKQAwxT5pwyHz1U5lOtKXyGVcRozlJC UYcKUiD1O5q/WhiTk2np1F9aRpQs63FiujUSoSBjx8hFO+iuvC/rXX4iw9YyKHUb950s 8Pj4ncWJqpQNmlU+RaVtonbb63iYuXg7WUgdetrMvUH0qZyeH0VNZfcYQp1oOOG2ljtd 3RHytMtCNFpycSEoygb12eX7bZWesrmDdlz+Yyitcc8zh6rr13/kzQ+w0btjI++gQMPd kTAOVBq0ZS5ndKOBOx4mtgOKIhsIDGJc9Ri4/wvxRoEXWz32EsPyRj0HKoUbjzmqo1cF YNmw== X-Gm-Message-State: AOJu0Ywn2gmQtVzVnmeQPNNrpJSlWK7ru4fc/vKiZ7ztdA5PayhDKtzT 4n4F1oWin+Saya/B4fGSx8JIpadWkOEqBxz0hqh5Z7XXgksCZ/Kz5mJ7PHNmvXU= X-Gm-Gg: ASbGncv0MADuhpCNxGbvHNHMonvrn90YmF6Xoe4BTqcZOmu4ZmopkGgwGnOu5e1nqHP gJbVQoVc1yL7WtQT9fzRWcSSgvzEE522O246nKtSlXihxIiiYJcoxrnLM9TKKYDRqhFZkMltTco ttKzJuHqqK6LVsR6xjak7wkHoAMvvQK/SXCmLzBT6FOPEQ43G74YxM5HjjPQrUQbnAQHq5iEJyc kVGhUXx1csD/jrfT+5tbsmngBpxpa/0TypkIQ/Yx5y/+X6lVnWEnZjPpkAnXxGL0yblkdOrlkIg Zd/ROvctIxeQIPK1oXmdzNrpsD6HusuJVTeSe0Q54PXQmyHQ/LtqIeRpwlYvdNHGjy+wgH1+qVB iKMFxENSttpHQS02avcn7WwBR/Z6J8eLL3L7mzbziXwyNZs+zgB0= X-Google-Smtp-Source: AGHT+IGOgguZULiQwawFZuCYN84Spa8roeJdqYWB28rTP+rq9/aWIJaCf102B0wrjfsQqUCFq0BCWA== X-Received: by 2002:a17:902:e54a:b0:220:ff3f:6cc0 with SMTP id d9443c01a7336-223f1cf3515mr26184075ad.38.1741139653723; Tue, 04 Mar 2025 17:54:13 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Vasilis Liaskovitis , Andrew Jones , Alistair Francis Subject: [PULL 20/59] hw/riscv/virt: Add serial alias in DTB Date: Wed, 5 Mar 2025 11:52:28 +1000 Message-ID: <20250305015307.1463560-21-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139765377019100 Content-Type: text/plain; charset="utf-8" From: Vasilis Liaskovitis Add an "aliases" node with a "serial0" entry for the single UART in the riscv virt machine. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2774 Signed-off-by: Vasilis Liaskovitis Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250116161007.39710-1-vliaskovitis@suse.com> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 241389d72f..dae46f4733 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -971,6 +971,7 @@ static void create_fdt_uart(RISCVVirtState *s, const Me= mMapEntry *memmap, } =20 qemu_fdt_setprop_string(ms->fdt, "/chosen", "stdout-path", name); + qemu_fdt_setprop_string(ms->fdt, "/aliases", "serial0", name); } =20 static void create_fdt_rtc(RISCVVirtState *s, const MemMapEntry *memmap, @@ -1180,6 +1181,8 @@ static void create_fdt(RISCVVirtState *s, const MemMa= pEntry *memmap) qemu_fdt_setprop(ms->fdt, "/chosen", "rng-seed", rng_seed, sizeof(rng_seed)); =20 + qemu_fdt_add_subnode(ms->fdt, "/aliases"); + create_fdt_flash(s, memmap); create_fdt_fw_cfg(s, memmap); create_fdt_pmu(s); --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139696; cv=none; d=zohomail.com; s=zohoarc; b=ACtXf3td/U0PGQ39m+L2zYtd2T6B2v2atpBmpx16NI0JOH3rYI/zeD9+Ul6AFDAFE3eFAvAXnmTmxaNAtbYH4GCHLfMYjPSpzMj+KUUnpxLHZO1g4hC1ZgV2M+f/0zvFENz1VKO8S4UtRG8QNFgYA7vPk+FsL+pCSqQzbl1RoxM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139696; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0cnDsZ6O9ZtIfrPZ08I3SlUP4EkCO0c3KoTjhEdGuUI=; b=B6Lbo4iPKHkSUBdhKL7UpCe428bF18C/1CpRCC2YTjQ7UAyBOplMoErRzD1ro0Iei4zsdKrX3x9A90U9zTo9bb9JfHZy2GcHFEBibD+YpoTkw0VAyr6SvdGLdBDxx7umYGXEwi+SPbFcxwiaALNO8/bocywAArtMFoqa/vxYMkw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139696039345.7015236120071; Tue, 4 Mar 2025 17:54:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxl-0003Xh-Ts; Tue, 04 Mar 2025 20:54:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxj-0003W3-S2 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:19 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxi-0008Tw-3l for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:19 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-22113560c57so118905275ad.2 for ; Tue, 04 Mar 2025 17:54:17 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139656; x=1741744456; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0cnDsZ6O9ZtIfrPZ08I3SlUP4EkCO0c3KoTjhEdGuUI=; b=U/xgzq0rcgqUrjWhyt5NNK2EFqOMehRndbpBbIOI1kY+0kxWzfCO0Dt3E6pPohnrJv ACZE5h4V8qjsw/2IP49vUDy8PSMKZhubif6gxtjokGgeq1Dxix8jAt0FSpDYI/t+yQLT cfkUBTzThcw2mG+PeZ3pGoePs8+Bo2L0aKWkYDopw9m9jyHOlbsDkPoWboupmzcNyPzs mF0Q7BMkHvda9dYo1Ku7gAHapFSfS46hXhO5Powgo4hSDezR+Za4f1RDSJ+oHznEJyE1 VNpwDFywUEwmmaDuBZXMZ8lVkh9SLHdTdHadSL9js82TCUv3Mtr66aXR5UM/77PayIJM iBtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139656; x=1741744456; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0cnDsZ6O9ZtIfrPZ08I3SlUP4EkCO0c3KoTjhEdGuUI=; b=oidvkTsfb4J1AjFTbbYQ8n9TdEIp86d5TEn1RVfURSRp7VdGJsxQDlibtxKugvA7hm uB6w6NwPzSWMBY2KfP8yvTD6OcH8uH6jbm10x+ZG99d/C35SoxWPhJmXGtUxDmisCIkH 6Oq56wUbCN540KJpFphTuyEisFhd9P0xOzVDDzNkTzIY3uNHddllhkmX6E/qDwMS7ZoH 07WSPlc57B7KnGFDI6jWitXb8MdAMXQizDBKL1xg6Zrm7O1gSSjcX8QIqFWuDsODS8Zm fAA+KTxRUAP8JvW0voKsq8evDu+3l0bE3INW7pf6HXXuMDZb4O8ldtdr9vSEjSXDkT9V AGKg== X-Gm-Message-State: AOJu0YxNP/wJPcl8u4mfutDKA76/qfzYJpzECzyu51DpaSHBI1tFcU+5 qptClO4PI6uz9HPmjSmP00j4E9o2AX93OYfDakqAgICzABvY3pFNTakT8ULo3rs= X-Gm-Gg: ASbGnct/jZhqSI9AhdTz3CCkpBd/cRdm6p1xXRgL1qNyhMoCNluDRw3P1inwmfsAHv1 zIhlHRlFB9K3gC+5pgsrF8j1RZi47bYg8/pVH9t9oitAFBbSPR9Nc1FyBfcR7tRMhpGyBaydwvl 9pZvvHPs3qhZ64mF6levbaTJuGkwVckAhCrPd1mQryrpNH8E6fRGDpRipQVIVcERGmg16IcNfZg g6Rqyu7UKYVl8pNE2EzVO6oIvJCy98XFlOsBrSMGskYKduHwJhpnTlCY3+pzm/HGSj7DSvYa8eq fu3OcCugBSA9JJW+dqv98vipEem6wd+Z9oQIP0QFEzvipkldSNiK9RXUg0yI7Te0sWY1POATAU/ 9C2eoBgHQe3gCZQekLIfiJCt1Psmj6ZjX2H6BlYXW24M2O3FQAYs= X-Google-Smtp-Source: AGHT+IGjcHdILQk+eWMxRqeLOEMROLjhpD2JtvEjT7Ysa/ULNCtgyJeGJjhO0A7dtmIhGtwT/5/3LQ== X-Received: by 2002:a17:902:c406:b0:215:9642:4d7a with SMTP id d9443c01a7336-223f1ba4773mr20529985ad.0.1741139656460; Tue, 04 Mar 2025 17:54:16 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Alistair Francis , Daniel Henrique Barboza Subject: [PULL 21/59] MAINTAINERS: Remove Bin Meng from RISC-V maintainers Date: Wed, 5 Mar 2025 11:52:29 +1000 Message-ID: <20250305015307.1463560-22-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139697212019100 Content-Type: text/plain; charset="utf-8" From: Alistair Francis Bin Meng has been a long time contributor and maintainer for QEMU RISC-V and has been very beneficial to the RISC-V ecosystem. Unfortunately his email has started to bounce so this patch is removing them from MAINTAINERS. If in the future Bin Meng wants to return we will happily re-add them. Note that I'm not removing Bin Meng as a "SD (Secure Card)" maintainer. Signed-off-by: Alistair Francis Acked-by: Daniel Henrique Barboza Message-ID: <20250128060546.1374394-1-alistair.francis@wdc.com> Signed-off-by: Alistair Francis --- MAINTAINERS | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 2e7fc6fa91..433cf66e8f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -319,7 +319,6 @@ F: tests/functional/test_ppc_74xx.py RISC-V TCG CPUs M: Palmer Dabbelt M: Alistair Francis -M: Bin Meng R: Weiwei Li R: Daniel Henrique Barboza R: Liu Zhiwei @@ -1618,7 +1617,6 @@ F: include/hw/riscv/opentitan.h F: include/hw/*/ibex_*.h =20 Microchip PolarFire SoC Icicle Kit -M: Bin Meng L: qemu-riscv@nongnu.org S: Supported F: docs/system/riscv/microchip-icicle-kit.rst @@ -1645,7 +1643,6 @@ F: include/hw/char/shakti_uart.h =20 SiFive Machines M: Alistair Francis -M: Bin Meng M: Palmer Dabbelt L: qemu-riscv@nongnu.org S: Supported @@ -3747,7 +3744,7 @@ S: Orphan F: hw/i386/amd_iommu.? =20 OpenSBI Firmware -M: Bin Meng +L: qemu-riscv@nongnu.org S: Supported F: pc-bios/opensbi-* F: .gitlab-ci.d/opensbi.yml --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139707; cv=none; d=zohomail.com; s=zohoarc; b=Jznh2w4JLo2I8ESv/GJcFCX70HQXHz26wIp6UXm7aXsva8NmGGV9XB8mFK+j4dLJQiI2jMxoqCpqio3FNCT4Se99cdl5r0PQUDwdin5VY5ibIHbHDWUiLtiRJ3IGNPJoXeaxTt7qDQc1OvdUnNNAMS/bxT+q4O82Fj6ZZ6Pej5Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139707; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Kf4OFfZLYs9fg6MlQAoWht8j3rKgxmF7ZOPYqVae8KI=; b=UIfjJVpjBFasVrWAQvGRobSoCrkur7UCslxhpWKoVojnobEkZWFdJLvYjLJW7xDDK0pqMaLQA6poZM+/UU/oCNtXshzMyoTyqAZcZyNBLmw1Cl7oJPEUttl+IH+VT96VT/Y/wxTu/31LWnmKfng8b2prFXL/3lqyItd46ybCKjI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139707066422.89749786132154; Tue, 4 Mar 2025 17:55:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxo-0003j2-Q9; Tue, 04 Mar 2025 20:54:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxm-0003cU-W6 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:23 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxl-0008UY-5m for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:22 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-22356471820so101625845ad.0 for ; Tue, 04 Mar 2025 17:54:20 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139660; x=1741744460; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Kf4OFfZLYs9fg6MlQAoWht8j3rKgxmF7ZOPYqVae8KI=; b=CAlfUuZDpbAfr6bR//ovap/aQQ3C4rqdVhGAVXg0fvVe5VK2nYAUpTGt3h9IaN3ZTQ 7D4LzPxLXs7ymLlO3AzDMqqmLMEWUYcsH5UmMFd+sGfR6Lv/DCNJmSFQYeXTSVsMNWdf 7SEF/snN91oldfDfLWJrMP4JEJC3XLwtQDQ6r5cx8fuZj6JMHwyqseKrE93oOGyRhhBi GOwJLN6vxTLuYEzWrhXg0jBJ9xgmu94rkth6F/MiqcgpSDbMHtL/PQBpbJtwiOuq0cyF XRq+SxKoRC4FrXK0O24LU9GVxoPJvyEN1n2eQW4XFD3T7EaR3cAGSZpY4erMzWodxzG/ 5kwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139660; x=1741744460; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Kf4OFfZLYs9fg6MlQAoWht8j3rKgxmF7ZOPYqVae8KI=; b=SZFXFB5oFptgKzqYfZCODx4YqrxvpGXMVmLfB8slcwAolaML+a3c+hoYn+vVVPX2AY jyvSId9qe8wS+coEj5WQ3xOmkcZEJGAv8yHnT9VkQ22ttIvfLIlSxEp62UCarbH9tDxi bks3V0qUIhRTM2znKM/588yTNPCqenmiuu6RCpNzONQ9fN3I4J3QetsGEQzvPI7JP6Yt YPoy+aBO+R0IAqtkzNmvg/fLKp/FJgQcH8QENokvkFCmpcVDpdUGMtTveZ+X0z2IARvK Ih74Z01++YmE4zaUUZY4v/1k8diixIr105ofBggMy220JCjfFicDeEJJ5mVUe/Jn6f5E NEqw== X-Gm-Message-State: AOJu0Yzkn4OITwSFbuzHfetBZeGNwmofy9BNRcA4Jo25R4sqs7L88dbe IqrYWWnWWu7epaMleJlwmJKCJjL2zzvQ9O6xhqdFmnXiT9llIZUBkmvYKDNKwdw= X-Gm-Gg: ASbGnctM9nyuAh+bIYQySBqbtTfOk4TzmR0v6YstTkwm7wqxyfyYxuazI9jRXi7l6Vc kRxHGUDyvvZWR5hbFnV6OeYuZNzDOPji9hRVFX/bi6UYWkKzfoy5lmTpW0Ei7fS66cb5G2XKmkl 1CJQ+oWZfUFpy4P7d+8q+3Ucxr/+rW6LRLQTbwet17idrmoHDwbi2uMpn2H7xp2IllTqEh/rSgF uhSq5yL6HqlFKjG74KVjDhka/UZ9h/nech+iIUKeKK5EdP847cb+3Hbz0vJnVScrjcxonnxe2PU 5CIbvwsXJYN2ou5D3z3LICOgEjFuZqSV65E4YWoDCZE1LNzI3jJDnm1v8dMnqc57epU85AkpXRO Gzx50DpykUsvFAR6w4/dfUjp4iupqIq5UEoPXykAZ/PzErLg/a7g= X-Google-Smtp-Source: AGHT+IHIltxntf1CQdXEb2Pb4JwUNopLmDfJ4AUpAO1Jsf9ed1lGZr7iep6pC6hesnLmclc8KYyrkQ== X-Received: by 2002:a17:902:e848:b0:223:5124:a16e with SMTP id d9443c01a7336-223f1c6b189mr28410725ad.5.1741139659668; Tue, 04 Mar 2025 17:54:19 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis , Jason Chien Subject: [PULL 22/59] target/riscv: Remove obsolete sfence.vm instruction Date: Wed, 5 Mar 2025 11:52:30 +1000 Message-ID: <20250305015307.1463560-23-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139709266019100 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal Signed-off-by: Rajnesh Kanwal Reviewed-by: Alistair Francis Reviewed-by: Jason Chien Message-ID: <20250205-b4-ctr_upstream_v6-v6-1-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/insn32.decode | 1 - target/riscv/insn_trans/trans_privileged.c.inc | 5 ----- 2 files changed, 6 deletions(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 942c434c6e..a98dab0205 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -119,7 +119,6 @@ sret 0001000 00010 00000 000 00000 1110011 mret 0011000 00010 00000 000 00000 1110011 wfi 0001000 00101 00000 000 00000 1110011 sfence_vma 0001001 ..... ..... 000 00000 1110011 @sfence_vma -sfence_vm 0001000 00100 ..... 000 00000 1110011 @sfence_vm =20 # *** NMI *** mnret 0111000 00010 00000 000 00000 1110011 diff --git a/target/riscv/insn_trans/trans_privileged.c.inc b/target/riscv/= insn_trans/trans_privileged.c.inc index 73f940d406..27d5558d63 100644 --- a/target/riscv/insn_trans/trans_privileged.c.inc +++ b/target/riscv/insn_trans/trans_privileged.c.inc @@ -147,8 +147,3 @@ static bool trans_sfence_vma(DisasContext *ctx, arg_sfe= nce_vma *a) #endif return false; } - -static bool trans_sfence_vm(DisasContext *ctx, arg_sfence_vm *a) -{ - return false; -} --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139678; cv=none; d=zohomail.com; s=zohoarc; b=iy3vmmrxMWTFaHpUeBPmBT+GABBi4gVrFonPIGKnRZxx6E8iqw43NoaRsYhTKjdTz41+08rHC6n9MwCBjDo02tMG9Miza1nTcy+O7lAy1sc34aL+7f+GRTZtmxt7C+qcODYPPmedqPM2IIp29iRGo14wUfhvw0ZS9eAekI5eMX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139678; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/wRQBPP4M3mDmMx29cX7WXCyD0+O+BRkzha9j1EPOB4=; b=d2wpGGpfXOviDislYs3kItFYtgCEUY0ZeLYNNs/u3AbkkhxJod++s9B9oQcR5mFmRbxT14whw5gqg0zbcPKamtDTrwXVHAe3134jxo3Sdb2JQqn4l4zSc5jL8vpwFEksXo3NqLI1d2DRg3H3t3NVkmGf1cYWvlA88L82Q1H97Yk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139678955244.07084852442972; Tue, 4 Mar 2025 17:54:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxt-00041h-Cp; Tue, 04 Mar 2025 20:54:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxq-0003sQ-5x for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:26 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxo-0008Uw-3q for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:25 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-22359001f1aso141908835ad.3 for ; Tue, 04 Mar 2025 17:54:23 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139662; x=1741744462; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/wRQBPP4M3mDmMx29cX7WXCyD0+O+BRkzha9j1EPOB4=; b=TIB2BA0DLVj79BuRE9cDF2B7eLwMQVc5knyTQ9P92R/Z0ByyhfUU2ztDBGvo3hmQbq oMCnknV32N0LVUYsWM/3b4rRu6MXNqXDiin0uviSjdxslWvyJqMGFg8J1Ujj3ib4CORO Doa9nrXyetRcFRRSuF4B1vJvOlWOVcYbBhcbX63UmHLxn5S2ibt+boH0FFcx298XQJ5W X8/aS/5d+C7QADwRSZGTiUBOKUGpkvv4GT9vDfKws0sXxFOTb7REno2Snr+68UEKxaMB MsMLYpTwFMcU8FqPMCkJPwqy6+bG9eWBVePZG/g+JRSOcB5FIUoH24tuZy8WzwxoAo8E nmDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139662; x=1741744462; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/wRQBPP4M3mDmMx29cX7WXCyD0+O+BRkzha9j1EPOB4=; b=nHhgzQjdpOpD2eUz/25cf+owctUExQefIttx0KHXHt+4ZVqdM7Ln9woRuSH+bySO+X kFTesT8ArJfcbl5GmRHCyvMklW/EKtapcdRsrQ8a4rQJSOxm2uus99LA45e3uu/b/1i4 0729pEenOLRtRhSoWB8xIiwlMlfmeLXwYRZuRKT/o4pLHj1UXL7io8WNl1j85BQF/ut9 x1Eg63/C0dQhoMZsQcnDJeYDN+XWnRKd0OB3PUSVKTSNszHuvpfp5ZMOee0L7BAp3pHY xQ6BcYZQL5bBPOq9xO+i8PrsJ+sxFcYaTp+TPrUlE9MCDXeKBTH8vG+HfNftsdyiBjkX CLlA== X-Gm-Message-State: AOJu0YysqJQomMDg8hE5/EEf7jBBFRB+Fd7RU44kgv6lGvY3P4Mel7uc zc9sbh2LcUaCj/Y3pn2wbQFH3G9BK1QGZ2xkwVGZn/Vjj5ouQFpsBaSup+U16Pc= X-Gm-Gg: ASbGncvYGU9s3pGL8s+quWhobJV1R/O0cLOPGtRS0xnczjnhBnd82+6g2ixvKJo2+be 52YUFcLoPGTCPVLZBlPij+yqSKqK9BS1vQ6CX8RRr9SBT0cJ9lZRsgv+PxseKLjO8/p4WJ3c3Gr uXMH0qzKkizcKH6XB2q/2clvUGcR89SgSYvXlJzoAAIA1m2c2UChYlZ/GG811mfHi89fvqvy3cm qr9QNR6ng/Fs4Crp1SY1fKIcPHPJnzk1QLjkRmEt0gyAbHFMZGgJHWKF+U3dT2GyLZKc0DycVdv wlU0YIRiyToc13if3exSznUHJHflhVtTlBSbxJi5WCpRyE/7oW1l0+R93G8T3LPel4KkjkJ6bC1 UlkS43cXyhIeh+uZWKKWK51eqHZhW5SQetuvRvJb3y4XrIl4dO3w= X-Google-Smtp-Source: AGHT+IFw6WBZ3pk7wD+BlF0kU5ZaXKdUVxoYsf8/QisTdLDXF44aFi7usTnWXaclTG5jcskb4j55BQ== X-Received: by 2002:a17:902:f545:b0:21f:35fd:1b6c with SMTP id d9443c01a7336-223f1d3a33dmr22119255ad.45.1741139662528; Tue, 04 Mar 2025 17:54:22 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 23/59] target/riscv: Add Control Transfer Records CSR definitions. Date: Wed, 5 Mar 2025 11:52:31 +1000 Message-ID: <20250305015307.1463560-24-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139681135019100 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal The Control Transfer Records (CTR) extension provides a method to record a limited branch history in register-accessible internal chip storage. This extension is similar to Arch LBR in x86 and BRBE in ARM. The Extension has been stable and the latest release can be found here https://github.com/riscv/riscv-control-transfer-records/releases/tag/v1.0_r= c5 Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250205-b4-ctr_upstream_v6-v6-2-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_bits.h | 145 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index f97c48a394..70ef443c99 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -247,6 +247,17 @@ #define CSR_SIEH 0x114 #define CSR_SIPH 0x154 =20 +/* Machine-Level Control transfer records CSRs */ +#define CSR_MCTRCTL 0x34e + +/* Supervisor-Level Control transfer records CSRs */ +#define CSR_SCTRCTL 0x14e +#define CSR_SCTRSTATUS 0x14f +#define CSR_SCTRDEPTH 0x15f + +/* VS-Level Control transfer records CSRs */ +#define CSR_VSCTRCTL 0x24e + /* Hpervisor CSRs */ #define CSR_HSTATUS 0x600 #define CSR_HEDELEG 0x602 @@ -344,6 +355,7 @@ #define SMSTATEEN0_CS (1ULL << 0) #define SMSTATEEN0_FCSR (1ULL << 1) #define SMSTATEEN0_JVT (1ULL << 2) +#define SMSTATEEN0_CTR (1ULL << 54) #define SMSTATEEN0_P1P13 (1ULL << 56) #define SMSTATEEN0_HSCONTXT (1ULL << 57) #define SMSTATEEN0_IMSIC (1ULL << 58) @@ -825,6 +837,139 @@ typedef enum RISCVException { #define HENVCFGH_PBMTE MENVCFGH_PBMTE #define HENVCFGH_STCE MENVCFGH_STCE =20 +/* Offsets for every pair of control bits per each priv level */ +#define XS_OFFSET 0ULL +#define U_OFFSET 2ULL +#define S_OFFSET 5ULL +#define M_OFFSET 8ULL + +#define PM_XS_BITS (EXT_STATUS_MASK << XS_OFFSET) +#define U_PM_ENABLE (PM_ENABLE << U_OFFSET) +#define U_PM_CURRENT (PM_CURRENT << U_OFFSET) +#define U_PM_INSN (PM_INSN << U_OFFSET) +#define S_PM_ENABLE (PM_ENABLE << S_OFFSET) +#define S_PM_CURRENT (PM_CURRENT << S_OFFSET) +#define S_PM_INSN (PM_INSN << S_OFFSET) +#define M_PM_ENABLE (PM_ENABLE << M_OFFSET) +#define M_PM_CURRENT (PM_CURRENT << M_OFFSET) +#define M_PM_INSN (PM_INSN << M_OFFSET) + +/* mmte CSR bits */ +#define MMTE_PM_XS_BITS PM_XS_BITS +#define MMTE_U_PM_ENABLE U_PM_ENABLE +#define MMTE_U_PM_CURRENT U_PM_CURRENT +#define MMTE_U_PM_INSN U_PM_INSN +#define MMTE_S_PM_ENABLE S_PM_ENABLE +#define MMTE_S_PM_CURRENT S_PM_CURRENT +#define MMTE_S_PM_INSN S_PM_INSN +#define MMTE_M_PM_ENABLE M_PM_ENABLE +#define MMTE_M_PM_CURRENT M_PM_CURRENT +#define MMTE_M_PM_INSN M_PM_INSN +#define MMTE_MASK (MMTE_U_PM_ENABLE | MMTE_U_PM_CURRENT | MMTE_U_PM_INS= N | \ + MMTE_S_PM_ENABLE | MMTE_S_PM_CURRENT | MMTE_S_PM_INS= N | \ + MMTE_M_PM_ENABLE | MMTE_M_PM_CURRENT | MMTE_M_PM_INS= N | \ + MMTE_PM_XS_BITS) + +/* (v)smte CSR bits */ +#define SMTE_PM_XS_BITS PM_XS_BITS +#define SMTE_U_PM_ENABLE U_PM_ENABLE +#define SMTE_U_PM_CURRENT U_PM_CURRENT +#define SMTE_U_PM_INSN U_PM_INSN +#define SMTE_S_PM_ENABLE S_PM_ENABLE +#define SMTE_S_PM_CURRENT S_PM_CURRENT +#define SMTE_S_PM_INSN S_PM_INSN +#define SMTE_MASK (SMTE_U_PM_ENABLE | SMTE_U_PM_CURRENT | SMTE_U_PM_INS= N | \ + SMTE_S_PM_ENABLE | SMTE_S_PM_CURRENT | SMTE_S_PM_INS= N | \ + SMTE_PM_XS_BITS) + +/* umte CSR bits */ +#define UMTE_U_PM_ENABLE U_PM_ENABLE +#define UMTE_U_PM_CURRENT U_PM_CURRENT +#define UMTE_U_PM_INSN U_PM_INSN +#define UMTE_MASK (UMTE_U_PM_ENABLE | MMTE_U_PM_CURRENT | UMTE_U_PM_IN= SN) + +/* CTR control register commom fields */ +#define XCTRCTL_U BIT_ULL(0) +#define XCTRCTL_S BIT_ULL(1) +#define XCTRCTL_RASEMU BIT_ULL(7) +#define XCTRCTL_STE BIT_ULL(8) +#define XCTRCTL_BPFRZ BIT_ULL(11) +#define XCTRCTL_LCOFIFRZ BIT_ULL(12) +#define XCTRCTL_EXCINH BIT_ULL(33) +#define XCTRCTL_INTRINH BIT_ULL(34) +#define XCTRCTL_TRETINH BIT_ULL(35) +#define XCTRCTL_NTBREN BIT_ULL(36) +#define XCTRCTL_TKBRINH BIT_ULL(37) +#define XCTRCTL_INDCALLINH BIT_ULL(40) +#define XCTRCTL_DIRCALLINH BIT_ULL(41) +#define XCTRCTL_INDJMPINH BIT_ULL(42) +#define XCTRCTL_DIRJMPINH BIT_ULL(43) +#define XCTRCTL_CORSWAPINH BIT_ULL(44) +#define XCTRCTL_RETINH BIT_ULL(45) +#define XCTRCTL_INDLJMPINH BIT_ULL(46) +#define XCTRCTL_DIRLJMPINH BIT_ULL(47) + +#define XCTRCTL_MASK (XCTRCTL_U | XCTRCTL_S | XCTRCTL_RASEMU | = \ + XCTRCTL_STE | XCTRCTL_BPFRZ | XCTRCTL_LCOFIFRZ | = \ + XCTRCTL_EXCINH | XCTRCTL_INTRINH | XCTRCTL_TRETINH |= \ + XCTRCTL_NTBREN | XCTRCTL_TKBRINH | XCTRCTL_INDCALLIN= H | \ + XCTRCTL_DIRCALLINH | XCTRCTL_INDJMPINH | = \ + XCTRCTL_DIRJMPINH | XCTRCTL_CORSWAPINH | = \ + XCTRCTL_RETINH | XCTRCTL_INDLJMPINH | XCTRCTL_DIRLJM= PINH) + +#define XCTRCTL_INH_START 32U + +/* CTR mctrctl bits */ +#define MCTRCTL_M BIT_ULL(2) +#define MCTRCTL_MTE BIT_ULL(9) + +#define MCTRCTL_MASK (XCTRCTL_MASK | MCTRCTL_M | MCTRCTL_MTE) +#define SCTRCTL_MASK XCTRCTL_MASK +#define VSCTRCTL_MASK XCTRCTL_MASK + +/* sctrstatus CSR bits. */ +#define SCTRSTATUS_WRPTR_MASK 0xFF +#define SCTRSTATUS_FROZEN BIT(31) +#define SCTRSTATUS_MASK (SCTRSTATUS_WRPTR_MASK | SCTRSTATUS_FR= OZEN) + +/* sctrdepth CSR bits. */ +#define SCTRDEPTH_MASK 0x7 +#define SCTRDEPTH_MIN 0U /* 16 Entries. */ +#define SCTRDEPTH_MAX 4U /* 256 Entries. */ + +#define CTR_ENTRIES_FIRST 0x200 +#define CTR_ENTRIES_LAST 0x2ff + +#define CTRSOURCE_VALID BIT(0) +#define CTRTARGET_MISP BIT(0) + +#define CTRDATA_TYPE_MASK 0xF +#define CTRDATA_CCV BIT(15) +#define CTRDATA_CCM_MASK 0xFFF0000 +#define CTRDATA_CCE_MASK 0xF0000000 + +#define CTRDATA_MASK (CTRDATA_TYPE_MASK | CTRDATA_CCV | \ + CTRDATA_CCM_MASK | CTRDATA_CCE_MASK) + +typedef enum CTRType { + CTRDATA_TYPE_NONE =3D 0, + CTRDATA_TYPE_EXCEPTION =3D 1, + CTRDATA_TYPE_INTERRUPT =3D 2, + CTRDATA_TYPE_EXCEP_INT_RET =3D 3, + CTRDATA_TYPE_NONTAKEN_BRANCH =3D 4, + CTRDATA_TYPE_TAKEN_BRANCH =3D 5, + CTRDATA_TYPE_RESERVED_0 =3D 6, + CTRDATA_TYPE_RESERVED_1 =3D 7, + CTRDATA_TYPE_INDIRECT_CALL =3D 8, + CTRDATA_TYPE_DIRECT_CALL =3D 9, + CTRDATA_TYPE_INDIRECT_JUMP =3D 10, + CTRDATA_TYPE_DIRECT_JUMP =3D 11, + CTRDATA_TYPE_CO_ROUTINE_SWAP =3D 12, + CTRDATA_TYPE_RETURN =3D 13, + CTRDATA_TYPE_OTHER_INDIRECT_JUMP =3D 14, + CTRDATA_TYPE_OTHER_DIRECT_JUMP =3D 15, +} CTRType; + /* MISELECT, SISELECT, and VSISELECT bits (AIA) */ #define ISELECT_IPRIO0 0x30 #define ISELECT_IPRIO15 0x3f --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139850; cv=none; d=zohomail.com; s=zohoarc; b=YilTnABQiocRveoqZR8jAWKCZwAVanSNxImnFQsM05NHUaUZdv3FkCzr5TkNNofnGSvpvjJ1WjgXwGCRvS2i0YVxFl6t8cY1T+rJ74INAyj0+b7BEbA3pcju3mSVSVFr+PzJ2I9tIy/+wOiQi2hruqlV3riIEQ5ev6pexS779qo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139850; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lPNBvqAZY4L0d4BaHaKOca7aSnEydv0p7oAxkA5Q0VM=; b=Q7k1L62M9MECjP+la2B6AyKvTPJ5Iy+NBkugVhr5fOGZ+5uugDMFSx0Zvvo399rU5mqTZQMw8W2chEfJRd+VO7ypNV+FRQ7pVyHr/03xihGxu3KRmmCgX+jhkQHir/OK14lqbykAmgXiDkwDyZYvE8vbajbUlOxk5dWc47mia3U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTP id 1741139850902424.1956046344743; Tue, 4 Mar 2025 17:57:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxv-0004AP-Kv; Tue, 04 Mar 2025 20:54:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxt-00042E-Aw for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:29 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxr-0008VF-6U for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:29 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-22113560c57so118906575ad.2 for ; Tue, 04 Mar 2025 17:54:26 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139665; x=1741744465; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lPNBvqAZY4L0d4BaHaKOca7aSnEydv0p7oAxkA5Q0VM=; b=d+GOcha9fsHNb5+uauvCXrKktDl2clVDT88qnmUePfL32bPkxAMjXwf7sByuhCCB20 9z2YoBaU/XW5+KhaKqBMQTQyqMogLQEOShjTvdJLLagKSeZ8okBvLGiI7lKkEe7wGgNm 1rXnRXILt5AtC1Scev1Cf2TI4BttRI9k+l3A4tIPsVqp8dx2ny6SuRYPjKn7Qp31mDiI dC118CGn9OXzCuQpiVA+Z8vdmOKzwa4xVpoRb7K9EVaOJWWEiRK9MP5Q6xCpI8OsQf3V 2vS54RvjlTOtF3jHshXYpF2PXxCJyWqCty/oiAa0vGASwjO10n2jShNb0MGxvzHzB/Hl LrEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139665; x=1741744465; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lPNBvqAZY4L0d4BaHaKOca7aSnEydv0p7oAxkA5Q0VM=; b=NS44S553RDljX9IFcypmU6/YZPnGo/GN5SbuPnBE1oyk1w3p0iTZweBDlS0oy6Tljo fQxg9H0s37UIcAZXh6ZBb0kbHl4tprlZxZ2Z+aZu6uAzqUHvqF9SwfNozFe9ZsD9egbL XHPZvSxwefxS74XexbJ/iHMGtveJ9pIAZLl8vHi4YiIktgDL1LypLehxAA2ny6A2bhWw HYrxUW/hHfafFQNgNfsgz7yvgZB3XHb4jkii4NMLrZA/yu3PdF97KoI+FenGhojfKXJb lTl4AVobCej57Jj2Ur5hcYLtEBG5vbRD9GCvtXHB0RrSH+Xp1V+5wNts9/ju/Ny6SDHB hFkg== X-Gm-Message-State: AOJu0YyD/d/r6LFNPDUvkuukvlkw91KiJFNksIGJd3G0NagclqYMNxL+ it8Chkq5xUpeCv42l7Gb8wSOHBYXygVHapRxWbJ1nFT001ErxqUv3dJobDQEQ0s= X-Gm-Gg: ASbGncvfPGghHTCR8NqQQsC9M2SOKJAorQ7wvUwUJ5KxBxoH5oeGcuoqI9cbx4PJllr PiHPPsBd9RKFF02SfJigspxJATkLOTVBWtSkwPdHI2lrjmMPoNfI8z9okuIhIT/Ct6pD9BSMnY3 BiablzoO/ykZeyGzw+FhwZH95Q1gKmpttwLiL5+GWtAoi2QT+jSa2eBg2ZlNOm1S6LCkDrM/KHr E+RiB/t+ntf7wFGN3BcGTh3jgsXpJ8z804YHAqkvrIbOibvHpne2a4FC+ETRVx3RyuM0fzqlVWj g/0anB5DXIkgvE+rUTEs3LU8j3KJ0HN5ofJmBfuF25EevxszFo4AWHwnVlHQO2hZD0eadu+5D2U BSeOc/kvWGIjG0M3y+LTtCDFJ6/gCrZIfWe2S7o53kqhk/gkIkog= X-Google-Smtp-Source: AGHT+IHKOCPKu3s041A13bEtoncDmp2WixZ17L2Nt+HwI/r2G+VqGJUcSTODB+X04KR8v+1XfO/+cg== X-Received: by 2002:a17:902:db03:b0:223:4998:a75e with SMTP id d9443c01a7336-223f1c804f7mr19682095ad.3.1741139665323; Tue, 04 Mar 2025 17:54:25 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 24/59] target/riscv: Add support for Control Transfer Records extension CSRs. Date: Wed, 5 Mar 2025 11:52:32 +1000 Message-ID: <20250305015307.1463560-25-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139852709019000 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal This commit adds support for [m|s|vs]ctrcontrol, sctrstatus and sctrdepth CSRs handling. Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250205-b4-ctr_upstream_v6-v6-3-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 5 ++ target/riscv/cpu_cfg.h | 2 + target/riscv/csr.c | 144 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 986131a191..ae355248f3 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -313,6 +313,11 @@ struct CPUArchState { target_ulong mcause; target_ulong mtval; /* since: priv-1.10.0 */ =20 + uint64_t mctrctl; + uint32_t sctrdepth; + uint32_t sctrstatus; + uint64_t vsctrctl; + /* Machine and Supervisor interrupt priorities */ uint8_t miprio[64]; uint8_t siprio[64]; diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index b410b1e603..3f3c1118c0 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -133,6 +133,8 @@ struct RISCVCPUConfig { bool ext_zvfhmin; bool ext_smaia; bool ext_ssaia; + bool ext_smctr; + bool ext_ssctr; bool ext_sscofpmf; bool ext_smepmp; bool ext_smrnmi; diff --git a/target/riscv/csr.c b/target/riscv/csr.c index dc0a88a0f0..ab295d2ef3 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -635,6 +635,48 @@ static RISCVException hgatp(CPURISCVState *env, int cs= rno) return hmode(env, csrno); } =20 +/* + * M-mode: + * Without ext_smctr raise illegal inst excep. + * Otherwise everything is accessible to m-mode. + * + * S-mode: + * Without ext_ssctr or mstateen.ctr raise illegal inst excep. + * Otherwise everything other than mctrctl is accessible. + * + * VS-mode: + * Without ext_ssctr or mstateen.ctr raise illegal inst excep. + * Without hstateen.ctr raise virtual illegal inst excep. + * Otherwise allow sctrctl (vsctrctl), sctrstatus, 0x200-0x2ff entry range. + * Always raise illegal instruction exception for sctrdepth. + */ +static RISCVException ctr_mmode(CPURISCVState *env, int csrno) +{ + /* Check if smctr-ext is present */ + if (riscv_cpu_cfg(env)->ext_smctr) { + return RISCV_EXCP_NONE; + } + + return RISCV_EXCP_ILLEGAL_INST; +} + +static RISCVException ctr_smode(CPURISCVState *env, int csrno) +{ + const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); + + if (!cfg->ext_smctr && !cfg->ext_ssctr) { + return RISCV_EXCP_ILLEGAL_INST; + } + + RISCVException ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_CTR); + if (ret =3D=3D RISCV_EXCP_NONE && csrno =3D=3D CSR_SCTRDEPTH && + env->virt_enabled) { + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } + + return ret; +} + static RISCVException aia_hmode(CPURISCVState *env, int csrno) { int ret; @@ -3216,6 +3258,10 @@ static RISCVException write_mstateen0(CPURISCVState = *env, int csrno, wr_mask |=3D (SMSTATEEN0_AIA | SMSTATEEN0_IMSIC); } =20 + if (riscv_cpu_cfg(env)->ext_ssctr) { + wr_mask |=3D SMSTATEEN0_CTR; + } + return write_mstateen(env, csrno, wr_mask, new_val); } =20 @@ -3255,6 +3301,10 @@ static RISCVException write_mstateen0h(CPURISCVState= *env, int csrno, wr_mask |=3D SMSTATEEN0_P1P13; } =20 + if (riscv_cpu_cfg(env)->ext_ssctr) { + wr_mask |=3D SMSTATEEN0_CTR; + } + return write_mstateenh(env, csrno, wr_mask, new_val); } =20 @@ -3309,6 +3359,10 @@ static RISCVException write_hstateen0(CPURISCVState = *env, int csrno, wr_mask |=3D (SMSTATEEN0_AIA | SMSTATEEN0_IMSIC); } =20 + if (riscv_cpu_cfg(env)->ext_ssctr) { + wr_mask |=3D SMSTATEEN0_CTR; + } + return write_hstateen(env, csrno, wr_mask, new_val); } =20 @@ -3348,6 +3402,10 @@ static RISCVException write_hstateen0h(CPURISCVState= *env, int csrno, { uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 + if (riscv_cpu_cfg(env)->ext_ssctr) { + wr_mask |=3D SMSTATEEN0_CTR; + } + return write_hstateenh(env, csrno, wr_mask, new_val); } =20 @@ -4068,6 +4126,86 @@ static RISCVException write_satp(CPURISCVState *env,= int csrno, return RISCV_EXCP_NONE; } =20 +static RISCVException rmw_sctrdepth(CPURISCVState *env, int csrno, + target_ulong *ret_val, + target_ulong new_val, target_ulong wr_= mask) +{ + uint64_t mask =3D wr_mask & SCTRDEPTH_MASK; + + if (ret_val) { + *ret_val =3D env->sctrdepth; + } + + env->sctrdepth =3D (env->sctrdepth & ~mask) | (new_val & mask); + + /* Correct depth. */ + if (mask) { + uint64_t depth =3D get_field(env->sctrdepth, SCTRDEPTH_MASK); + + if (depth > SCTRDEPTH_MAX) { + depth =3D SCTRDEPTH_MAX; + env->sctrdepth =3D set_field(env->sctrdepth, SCTRDEPTH_MASK, d= epth); + } + + /* Update sctrstatus.WRPTR with a legal value */ + depth =3D 16 << depth; + env->sctrstatus =3D + env->sctrstatus & (~SCTRSTATUS_WRPTR_MASK | (depth - 1)); + } + + return RISCV_EXCP_NONE; +} + +static RISCVException rmw_sctrstatus(CPURISCVState *env, int csrno, + target_ulong *ret_val, + target_ulong new_val, target_ulong wr= _mask) +{ + uint32_t depth =3D 16 << get_field(env->sctrdepth, SCTRDEPTH_MASK); + uint32_t mask =3D wr_mask & SCTRSTATUS_MASK; + + if (ret_val) { + *ret_val =3D env->sctrstatus; + } + + env->sctrstatus =3D (env->sctrstatus & ~mask) | (new_val & mask); + + /* Update sctrstatus.WRPTR with a legal value */ + env->sctrstatus =3D env->sctrstatus & (~SCTRSTATUS_WRPTR_MASK | (depth= - 1)); + + return RISCV_EXCP_NONE; +} + +static RISCVException rmw_xctrctl(CPURISCVState *env, int csrno, + target_ulong *ret_val, + target_ulong new_val, target_ulong wr_= mask) +{ + uint64_t csr_mask, mask =3D wr_mask; + uint64_t *ctl_ptr =3D &env->mctrctl; + + if (csrno =3D=3D CSR_MCTRCTL) { + csr_mask =3D MCTRCTL_MASK; + } else if (csrno =3D=3D CSR_SCTRCTL && !env->virt_enabled) { + csr_mask =3D SCTRCTL_MASK; + } else { + /* + * This is for csrno =3D=3D CSR_SCTRCTL and env->virt_enabled =3D= =3D true + * or csrno =3D=3D CSR_VSCTRCTL. + */ + csr_mask =3D VSCTRCTL_MASK; + ctl_ptr =3D &env->vsctrctl; + } + + mask &=3D csr_mask; + + if (ret_val) { + *ret_val =3D *ctl_ptr & csr_mask; + } + + *ctl_ptr =3D (*ctl_ptr & ~mask) | (new_val & mask); + + return RISCV_EXCP_NONE; +} + static RISCVException read_vstopi(CPURISCVState *env, int csrno, target_ulong *val) { @@ -5821,6 +5959,12 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_TINFO] =3D { "tinfo", debug, read_tinfo, write_ignore = }, [CSR_MCONTEXT] =3D { "mcontext", debug, read_mcontext, write_mcontex= t }, =20 + [CSR_MCTRCTL] =3D { "mctrctl", ctr_mmode, NULL, NULL, rmw_xctrc= tl }, + [CSR_SCTRCTL] =3D { "sctrctl", ctr_smode, NULL, NULL, rmw_xctrc= tl }, + [CSR_VSCTRCTL] =3D { "vsctrctl", ctr_smode, NULL, NULL, rmw_xctrc= tl }, + [CSR_SCTRDEPTH] =3D { "sctrdepth", ctr_smode, NULL, NULL, rmw_sctrd= epth }, + [CSR_SCTRSTATUS] =3D { "sctrstatus", ctr_smode, NULL, NULL, rmw_sctrs= tatus }, + /* Performance Counters */ [CSR_HPMCOUNTER3] =3D { "hpmcounter3", ctr, read_hpmcounter }, [CSR_HPMCOUNTER4] =3D { "hpmcounter4", ctr, read_hpmcounter }, --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139997; cv=none; d=zohomail.com; s=zohoarc; b=CkICqRVN+8dPnz4aqTOB84QpwEheTpuRycjwIudQp2AN508BYdgQH3gKv5JoKs+iwabL4UTr3QScG5LIPr5pmdWCiId9NO0EZxrcj1C7/PrBQ6s0EpBeAInoEN7HZjoJRQ/E5BB3FCwcfEHs5kq5xi7gfdhhfTqNAaUc4TlRBOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139997; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yaVLl1IdU9mypyfQFc9dhTenrt+4xr8flFFi7g1i378=; b=QRHAQkonhzfmpAMWTQyVaNHdWO+ukso0W33RvL75ShbtR3bstIkHWmgtN87NhyBLpYBrLQ+d1DwW10DgqB/l5TgRkTy0d5fXnHpzSfwPOgye/5HSHM6AsogXJs7XnkN6mjIj0j0iEfGvfjA2utDT0zGS0f0BO/UG4HUthvNGvDk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139997021114.5169306725985; Tue, 4 Mar 2025 17:59:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdxy-0004Rg-Ft; Tue, 04 Mar 2025 20:54:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxx-0004Kr-C3 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:33 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxu-0008Vi-9u for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:33 -0500 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-2234e4b079cso115238675ad.1 for ; Tue, 04 Mar 2025 17:54:29 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139668; x=1741744468; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yaVLl1IdU9mypyfQFc9dhTenrt+4xr8flFFi7g1i378=; b=aYEXwz2jiDvyOgqmegUQ9gGUx3lLe8/EGC2Nn2Sd5Qny0uS/ZywDYBTFqRcAXuWPcK U7zmzHW2tuWvaMMN8L10EM9PauFLSPe1MPE3IV7PIMWRCWTlJt2mvL3gs1QKBjjIzEVY SXliWMDdLzGbQjxpjYxWwFjN1OnvXICC8JvzRx5EH9XVNSrOAOFpN/aqcvxysSLDWjl3 5c4Qu17ht3AWI2VK56UAmAIIQntTQWOpltoUaNlOhPkBSsozIkn3xEcsFOqm0UcVpQmM r4SaO0BwqTdHkiqZ8bIhRkd3VnHuK0cLmROGi7vBXYistbeKrt1IqZY4tTjhBAWm5O/s Kk4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139668; x=1741744468; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yaVLl1IdU9mypyfQFc9dhTenrt+4xr8flFFi7g1i378=; b=iT0ZybNjkqLTsJeBv4Y4A4RkDHtTUcP9bd2v+eVWQDppSxH77Kgl+leYejvEN0Be6g FGa1njFebVo5z6uq7B/kZM4QxG2toGoUix7mGDVriOCo0YJHtFWO9/99k7vvvFsJDmqJ yYC+ST7N3RMZU4I0FrZxRnqHe4tJHKb7IwBq3yUbI+XQ7Ap+H/ZZ0LtEs0wE+h4Iae8N 9juIJiKgQc5L2idx+faopqAxE4sy1cx4EfAd2f4zW3VsLybVwbLitXoysVWPSUFap9KA M89lEePmv82ncEo/+gG1MCGrzXXgXTXyJa+ZrQpum8las3G3CTugPyFWgNR1pG4WXure KUEA== X-Gm-Message-State: AOJu0Yxfi1DxWvJl5kd+G3eTjZKmMLmTDdjsBzGDhfaNhx9bgt9TPkZM 3Lz17aWBO1EMKHFjJPwmBasWE5DUG9oMzugA3eGgK2C0i5dMc5x8OROGo1H1rJE= X-Gm-Gg: ASbGncsGw2nEMp2sArkUj81zh/6e4CsDKChKymmJJZBJhErSCTHSV6qzkYVCSaAYAMl gABweib8QWD47b48uVBoYntzjrlbRkRiTo/ikxzd5Zf4cWYLZ5vVTMP+muY4KI3razw9mAokmeO LlLAUeUqUxQ2NMxOt/osylZZ6TUud76ZwYwsCScZeL8BZ60CtqhkixDT4yyFq7SKIxhX4nGlqC+ q3TcePv1F76enAm2KEvaSOVCkGZUdzKdD2oLlAd15m4+GQUOkuDMjljFIg28GjKJQduHsiqNWBz B8tumGJ+a1NJ6Y5q9b00d/wVybvF/Qvr2jA+h5v9uZZQx7cDvmS313/8vdolfDos8ls0PN5k/B3 nnnD12qYM53VyCwWxHNF5BCIckHcvrmKwomajAN7ti60b+iORcuA= X-Google-Smtp-Source: AGHT+IEnEQg8aT6sLz/13E1zb2cec+0gCQO/IchvdF3FRnp8Fy4/OIoaJavGGeGOx67FOrD7E7AMww== X-Received: by 2002:a17:902:ea05:b0:223:67ac:8929 with SMTP id d9443c01a7336-223f1b857f4mr18145805ad.0.1741139668149; Tue, 04 Mar 2025 17:54:28 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 25/59] target/riscv: Add support to record CTR entries. Date: Wed, 5 Mar 2025 11:52:33 +1000 Message-ID: <20250305015307.1463560-26-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::635; envelope-from=alistair23@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139997885019000 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal This commit adds logic to records CTR entries of different types and adds required hooks in TCG and interrupt/Exception logic to record events. This commit also adds support to invoke freeze CTR logic for breakpoint exceptions and counter overflow interrupts. Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250205-b4-ctr_upstream_v6-v6-4-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 7 + target/riscv/helper.h | 1 + target/riscv/cpu_helper.c | 259 ++++++++++++++++++ target/riscv/op_helper.c | 19 ++ target/riscv/translate.c | 46 ++++ .../riscv/insn_trans/trans_privileged.c.inc | 2 + target/riscv/insn_trans/trans_rvi.c.inc | 75 +++++ target/riscv/insn_trans/trans_rvzce.c.inc | 21 ++ 8 files changed, 430 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index ae355248f3..9e92144b61 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -318,6 +318,10 @@ struct CPUArchState { uint32_t sctrstatus; uint64_t vsctrctl; =20 + uint64_t ctr_src[16 << SCTRDEPTH_MAX]; + uint64_t ctr_dst[16 << SCTRDEPTH_MAX]; + uint64_t ctr_data[16 << SCTRDEPTH_MAX]; + /* Machine and Supervisor interrupt priorities */ uint8_t miprio[64]; uint8_t siprio[64]; @@ -613,6 +617,9 @@ RISCVException smstateen_acc_ok(CPURISCVState *env, int= index, uint64_t bit); =20 void riscv_cpu_set_mode(CPURISCVState *env, target_ulong newpriv, bool vir= t_en); =20 +void riscv_ctr_add_entry(CPURISCVState *env, target_long src, target_long = dst, + enum CTRType type, target_ulong prev_priv, bool prev_virt); + void riscv_translate_init(void); void riscv_translate_code(CPUState *cs, TranslationBlock *tb, int *max_insns, vaddr pc, void *host_pc); diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 16ea240d26..163121ade5 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -136,6 +136,7 @@ DEF_HELPER_1(wfi, void, env) DEF_HELPER_1(wrs_nto, void, env) DEF_HELPER_1(tlb_flush, void, env) DEF_HELPER_1(tlb_flush_all, void, env) +DEF_HELPER_4(ctr_add_entry, void, env, tl, tl, tl) /* Native Debug */ DEF_HELPER_1(itrigger_match, void, env) #endif diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 29dc721c5d..7dbdb34b17 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -875,6 +875,247 @@ void riscv_cpu_set_aia_ireg_rmw_fn(CPURISCVState *env= , uint32_t priv, } } =20 +static void riscv_ctr_freeze(CPURISCVState *env, uint64_t freeze_mask, + bool virt) +{ + uint64_t ctl =3D virt ? env->vsctrctl : env->mctrctl; + + assert((freeze_mask & (~(XCTRCTL_BPFRZ | XCTRCTL_LCOFIFRZ))) =3D=3D 0); + + if (ctl & freeze_mask) { + env->sctrstatus |=3D SCTRSTATUS_FROZEN; + } +} + +static uint64_t riscv_ctr_priv_to_mask(target_ulong priv, bool virt) +{ + switch (priv) { + case PRV_M: + return MCTRCTL_M; + case PRV_S: + if (virt) { + return XCTRCTL_S; + } + return XCTRCTL_S; + case PRV_U: + if (virt) { + return XCTRCTL_U; + } + return XCTRCTL_U; + } + + g_assert_not_reached(); +} + +static uint64_t riscv_ctr_get_control(CPURISCVState *env, target_long priv, + bool virt) +{ + switch (priv) { + case PRV_M: + return env->mctrctl; + case PRV_S: + case PRV_U: + if (virt) { + return env->vsctrctl; + } + return env->mctrctl; + } + + g_assert_not_reached(); +} + +/* + * This function assumes that src privilege and target privilege are not s= ame + * and src privilege is less than target privilege. This includes the virt= ual + * state as well. + */ +static bool riscv_ctr_check_xte(CPURISCVState *env, target_long src_prv, + bool src_virt) +{ + target_long tgt_prv =3D env->priv; + bool res =3D true; + + /* + * VS and U mode are same in terms of xTE bits required to record an + * external trap. See 6.1.2. External Traps, table 8 External Trap Ena= ble + * Requirements. This changes VS to U to simplify the logic a bit. + */ + if (src_virt && src_prv =3D=3D PRV_S) { + src_prv =3D PRV_U; + } else if (env->virt_enabled && tgt_prv =3D=3D PRV_S) { + tgt_prv =3D PRV_U; + } + + /* VU mode is an outlier here. */ + if (src_virt && src_prv =3D=3D PRV_U) { + res &=3D !!(env->vsctrctl & XCTRCTL_STE); + } + + switch (src_prv) { + case PRV_U: + if (tgt_prv =3D=3D PRV_U) { + break; + } + res &=3D !!(env->mctrctl & XCTRCTL_STE); + /* fall-through */ + case PRV_S: + if (tgt_prv =3D=3D PRV_S) { + break; + } + res &=3D !!(env->mctrctl & MCTRCTL_MTE); + /* fall-through */ + case PRV_M: + break; + } + + return res; +} + +/* + * Special cases for traps and trap returns: + * + * 1- Traps, and trap returns, between enabled modes are recorded as norma= l. + * 2- Traps from an inhibited mode to an enabled mode, and trap returns fr= om an + * enabled mode back to an inhibited mode, are partially recorded. In such + * cases, the PC from the inhibited mode (source PC for traps, and target = PC + * for trap returns) is 0. + * + * 3- Trap returns from an inhibited mode to an enabled mode are not recor= ded. + * Traps from an enabled mode to an inhibited mode, known as external trap= s, + * receive special handling. + * By default external traps are not recorded, but a handshake mechanism e= xists + * to allow partial recording. Software running in the target mode of the= trap + * can opt-in to allowing CTR to record traps into that mode even when the= mode + * is inhibited. The MTE, STE, and VSTE bits allow M-mode, S-mode, and VS= -mode, + * respectively, to opt-in. When an External Trap occurs, and xTE=3D1, suc= h that + * x is the target privilege mode of the trap, will CTR record the trap. I= n such + * cases, the target PC is 0. + */ +/* + * CTR arrays are implemented as circular buffers and new entry is stored = at + * sctrstatus.WRPTR, but they are presented to software as moving circular + * buffers. Which means, software get's the illusion that whenever a new e= ntry + * is added the whole buffer is moved by one place and the new entry is ad= ded at + * the start keeping new entry at idx 0 and older ones follow. + * + * Depth =3D 16. + * + * buffer [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [A] [B] [C] [D] [E] [F] + * WRPTR W + * entry 7 6 5 4 3 2 1 0 F E D C B A 9 8 + * + * When a new entry is added: + * buffer [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [A] [B] [C] [D] [E] [F] + * WRPTR W + * entry 8 7 6 5 4 3 2 1 0 F E D C B A 9 + * + * entry here denotes the logical entry number that software can access + * using ctrsource, ctrtarget and ctrdata registers. So xiselect 0x200 + * will return entry 0 i-e buffer[8] and 0x201 will return entry 1 i-e + * buffer[7]. Here is how we convert entry to buffer idx. + * + * entry =3D isel - CTR_ENTRIES_FIRST; + * idx =3D (sctrstatus.WRPTR - entry - 1) & (depth - 1); + */ +void riscv_ctr_add_entry(CPURISCVState *env, target_long src, target_long = dst, + enum CTRType type, target_ulong src_priv, bool src_virt) +{ + bool tgt_virt =3D env->virt_enabled; + uint64_t src_mask =3D riscv_ctr_priv_to_mask(src_priv, src_virt); + uint64_t tgt_mask =3D riscv_ctr_priv_to_mask(env->priv, tgt_virt); + uint64_t src_ctrl =3D riscv_ctr_get_control(env, src_priv, src_virt); + uint64_t tgt_ctrl =3D riscv_ctr_get_control(env, env->priv, tgt_virt); + uint64_t depth, head; + bool ext_trap =3D false; + + /* + * Return immediately if both target and src recording is disabled or = if + * CTR is in frozen state. + */ + if ((!(src_ctrl & src_mask) && !(tgt_ctrl & tgt_mask)) || + env->sctrstatus & SCTRSTATUS_FROZEN) { + return; + } + + /* + * With RAS Emul enabled, only allow Indirect, direct calls, Function + * returns and Co-routine swap types. + */ + if (tgt_ctrl & XCTRCTL_RASEMU && + type !=3D CTRDATA_TYPE_INDIRECT_CALL && + type !=3D CTRDATA_TYPE_DIRECT_CALL && + type !=3D CTRDATA_TYPE_RETURN && + type !=3D CTRDATA_TYPE_CO_ROUTINE_SWAP) { + return; + } + + if (type =3D=3D CTRDATA_TYPE_EXCEPTION || type =3D=3D CTRDATA_TYPE_INT= ERRUPT) { + /* Case 2 for traps. */ + if (!(src_ctrl & src_mask)) { + src =3D 0; + } else if (!(tgt_ctrl & tgt_mask)) { + /* Check if target priv-mode has allowed external trap recordi= ng. */ + if (!riscv_ctr_check_xte(env, src_priv, src_virt)) { + return; + } + + ext_trap =3D true; + dst =3D 0; + } + } else if (type =3D=3D CTRDATA_TYPE_EXCEP_INT_RET) { + /* + * Case 3 for trap returns. Trap returns from inhibited mode are = not + * recorded. + */ + if (!(src_ctrl & src_mask)) { + return; + } + + /* Case 2 for trap returns. */ + if (!(tgt_ctrl & tgt_mask)) { + dst =3D 0; + } + } + + /* Ignore filters in case of RASEMU mode or External trap. */ + if (!(tgt_ctrl & XCTRCTL_RASEMU) && !ext_trap) { + /* + * Check if the specific type is inhibited. Not taken branch filte= r is + * an enable bit and needs to be checked separatly. + */ + bool check =3D tgt_ctrl & BIT_ULL(type + XCTRCTL_INH_START); + if ((type =3D=3D CTRDATA_TYPE_NONTAKEN_BRANCH && !check) || + (type !=3D CTRDATA_TYPE_NONTAKEN_BRANCH && check)) { + return; + } + } + + head =3D get_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK); + + depth =3D 16 << get_field(env->sctrdepth, SCTRDEPTH_MASK); + if (tgt_ctrl & XCTRCTL_RASEMU && type =3D=3D CTRDATA_TYPE_RETURN) { + head =3D (head - 1) & (depth - 1); + + env->ctr_src[head] &=3D ~CTRSOURCE_VALID; + env->sctrstatus =3D + set_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK, head); + return; + } + + /* In case of Co-routine SWAP we overwrite latest entry. */ + if (tgt_ctrl & XCTRCTL_RASEMU && type =3D=3D CTRDATA_TYPE_CO_ROUTINE_S= WAP) { + head =3D (head - 1) & (depth - 1); + } + + env->ctr_src[head] =3D src | CTRSOURCE_VALID; + env->ctr_dst[head] =3D dst & ~CTRTARGET_MISP; + env->ctr_data[head] =3D set_field(0, CTRDATA_TYPE_MASK, type); + + head =3D (head + 1) & (depth - 1); + + env->sctrstatus =3D set_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK, = head); +} + void riscv_cpu_set_mode(CPURISCVState *env, target_ulong newpriv, bool vir= t_en) { g_assert(newpriv <=3D PRV_M && newpriv !=3D PRV_RESERVED); @@ -1993,10 +2234,13 @@ void riscv_cpu_do_interrupt(CPUState *cs) !(env->mip & (1ULL << cause)); bool smode_double_trap =3D false; uint64_t hdeleg =3D async ? env->hideleg : env->hedeleg; + const bool prev_virt =3D env->virt_enabled; + const target_ulong prev_priv =3D env->priv; target_ulong tval =3D 0; target_ulong tinst =3D 0; target_ulong htval =3D 0; target_ulong mtval2 =3D 0; + target_ulong src; int sxlen =3D 0; int mxlen =3D 16 << riscv_cpu_mxl(env); bool nnmi_excep =3D false; @@ -2182,6 +2426,8 @@ void riscv_cpu_do_interrupt(CPUState *cs) env->pc =3D (env->stvec >> 2 << 2) + ((async && (env->stvec & 3) =3D=3D 1) ? cause * 4 : 0); riscv_cpu_set_mode(env, PRV_S, virt); + + src =3D env->sepc; } else { /* * If the hart encounters an exception while executing in M-mode @@ -2266,6 +2512,19 @@ void riscv_cpu_do_interrupt(CPUState *cs) ((async && (env->mtvec & 3) =3D=3D 1) ? cause * 4 : = 0); } riscv_cpu_set_mode(env, PRV_M, virt); + src =3D env->mepc; + } + + if (riscv_cpu_cfg(env)->ext_smctr || riscv_cpu_cfg(env)->ext_ssctr) { + if (async && cause =3D=3D IRQ_PMU_OVF) { + riscv_ctr_freeze(env, XCTRCTL_LCOFIFRZ, virt); + } else if (!async && cause =3D=3D RISCV_EXCP_BREAKPOINT) { + riscv_ctr_freeze(env, XCTRCTL_BPFRZ, virt); + } + + riscv_ctr_add_entry(env, src, env->pc, + async ? CTRDATA_TYPE_INTERRUPT : CTRDATA_TYPE_EXCE= PTION, + prev_priv, prev_virt); } =20 /* diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index ce1256f439..5a99c47b12 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -270,6 +270,8 @@ target_ulong helper_sret(CPURISCVState *env) { uint64_t mstatus; target_ulong prev_priv, prev_virt =3D env->virt_enabled; + const target_ulong src_priv =3D env->priv; + const bool src_virt =3D env->virt_enabled; =20 if (!(env->priv >=3D PRV_S)) { riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, GETPC()); @@ -339,6 +341,11 @@ target_ulong helper_sret(CPURISCVState *env) } env->mstatus =3D set_field(env->mstatus, MSTATUS_SPELP, 0); =20 + if (riscv_cpu_cfg(env)->ext_smctr || riscv_cpu_cfg(env)->ext_ssctr) { + riscv_ctr_add_entry(env, env->pc, retpc, CTRDATA_TYPE_EXCEP_INT_RE= T, + src_priv, src_virt); + } + return retpc; } =20 @@ -416,6 +423,11 @@ target_ulong helper_mret(CPURISCVState *env) } env->mstatus =3D set_field(env->mstatus, MSTATUS_MPELP, 0); =20 + if (riscv_cpu_cfg(env)->ext_smctr || riscv_cpu_cfg(env)->ext_ssctr) { + riscv_ctr_add_entry(env, env->pc, retpc, CTRDATA_TYPE_EXCEP_INT_RE= T, + PRV_M, false); + } + return retpc; } =20 @@ -466,6 +478,13 @@ target_ulong helper_mnret(CPURISCVState *env) return retpc; } =20 +void helper_ctr_add_entry(CPURISCVState *env, target_ulong src, + target_ulong dest, target_ulong type) +{ + riscv_ctr_add_entry(env, src, dest, (enum CTRType)type, + env->priv, env->virt_enabled); +} + void helper_wfi(CPURISCVState *env) { CPUState *cs =3D env_cpu(env); diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 698b74f7a8..eaa5d86eae 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -561,6 +561,46 @@ static void gen_set_fpr_d(DisasContext *ctx, int reg_n= um, TCGv_i64 t) } } =20 +#ifndef CONFIG_USER_ONLY +/* + * Direct calls + * - jal x1; + * - jal x5; + * - c.jal. + * - cm.jalt. + * + * Direct jumps + * - jal x0; + * - c.j; + * - cm.jt. + * + * Other direct jumps + * - jal rd where rd !=3D x1 and rd !=3D x5 and rd !=3D x0; + */ +static void gen_ctr_jal(DisasContext *ctx, int rd, target_ulong imm) +{ + TCGv dest =3D tcg_temp_new(); + TCGv src =3D tcg_temp_new(); + TCGv type; + + /* + * If rd is x1 or x5 link registers, treat this as direct call otherwi= se + * its a direct jump. + */ + if (rd =3D=3D 1 || rd =3D=3D 5) { + type =3D tcg_constant_tl(CTRDATA_TYPE_DIRECT_CALL); + } else if (rd =3D=3D 0) { + type =3D tcg_constant_tl(CTRDATA_TYPE_DIRECT_JUMP); + } else { + type =3D tcg_constant_tl(CTRDATA_TYPE_OTHER_DIRECT_JUMP); + } + + gen_pc_plus_diff(dest, ctx, imm); + gen_pc_plus_diff(src, ctx, 0); + gen_helper_ctr_add_entry(tcg_env, src, dest, type); +} +#endif + static void gen_jal(DisasContext *ctx, int rd, target_ulong imm) { TCGv succ_pc =3D dest_gpr(ctx, rd); @@ -575,6 +615,12 @@ static void gen_jal(DisasContext *ctx, int rd, target_= ulong imm) } } =20 +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + gen_ctr_jal(ctx, rd, imm); + } +#endif + gen_pc_plus_diff(succ_pc, ctx, ctx->cur_insn_len); gen_set_gpr(ctx, rd, succ_pc); =20 diff --git a/target/riscv/insn_trans/trans_privileged.c.inc b/target/riscv/= insn_trans/trans_privileged.c.inc index 27d5558d63..ca52405d7d 100644 --- a/target/riscv/insn_trans/trans_privileged.c.inc +++ b/target/riscv/insn_trans/trans_privileged.c.inc @@ -86,6 +86,7 @@ static bool trans_sret(DisasContext *ctx, arg_sret *a) if (has_ext(ctx, RVS)) { decode_save_opc(ctx, 0); translator_io_start(&ctx->base); + gen_update_pc(ctx, 0); gen_helper_sret(cpu_pc, tcg_env); exit_tb(ctx); /* no chaining */ ctx->base.is_jmp =3D DISAS_NORETURN; @@ -103,6 +104,7 @@ static bool trans_mret(DisasContext *ctx, arg_mret *a) #ifndef CONFIG_USER_ONLY decode_save_opc(ctx, 0); translator_io_start(&ctx->base); + gen_update_pc(ctx, 0); gen_helper_mret(cpu_pc, tcg_env); exit_tb(ctx); /* no chaining */ ctx->base.is_jmp =3D DISAS_NORETURN; diff --git a/target/riscv/insn_trans/trans_rvi.c.inc b/target/riscv/insn_tr= ans/trans_rvi.c.inc index 96c218a9d7..b55f56a5eb 100644 --- a/target/riscv/insn_trans/trans_rvi.c.inc +++ b/target/riscv/insn_trans/trans_rvi.c.inc @@ -93,6 +93,51 @@ static bool trans_jal(DisasContext *ctx, arg_jal *a) return true; } =20 +#ifndef CONFIG_USER_ONLY +/* + * Indirect calls + * - jalr x1, rs where rs !=3D x5; + * - jalr x5, rs where rs !=3D x1; + * - c.jalr rs1 where rs1 !=3D x5; + * + * Indirect jumps + * - jalr x0, rs where rs !=3D x1 and rs !=3D x5; + * - c.jr rs1 where rs1 !=3D x1 and rs1 !=3D x5. + * + * Returns + * - jalr rd, rs where (rs =3D=3D x1 or rs =3D=3D x5) and rd !=3D x1 and r= d !=3D x5; + * - c.jr rs1 where rs1 =3D=3D x1 or rs1 =3D=3D x5. + * + * Co-routine swap + * - jalr x1, x5; + * - jalr x5, x1; + * - c.jalr x5. + * + * Other indirect jumps + * - jalr rd, rs where rs !=3D x1, rs !=3D x5, rd !=3D x0, rd !=3D x1 and = rd !=3D x5. + */ +static void gen_ctr_jalr(DisasContext *ctx, arg_jalr *a, TCGv dest) +{ + TCGv src =3D tcg_temp_new(); + TCGv type; + + if ((a->rd =3D=3D 1 && a->rs1 !=3D 5) || (a->rd =3D=3D 5 && a->rs1 != =3D 1)) { + type =3D tcg_constant_tl(CTRDATA_TYPE_INDIRECT_CALL); + } else if (a->rd =3D=3D 0 && a->rs1 !=3D 1 && a->rs1 !=3D 5) { + type =3D tcg_constant_tl(CTRDATA_TYPE_INDIRECT_JUMP); + } else if ((a->rs1 =3D=3D 1 || a->rs1 =3D=3D 5) && (a->rd !=3D 1 && a-= >rd !=3D 5)) { + type =3D tcg_constant_tl(CTRDATA_TYPE_RETURN); + } else if ((a->rs1 =3D=3D 1 && a->rd =3D=3D 5) || (a->rs1 =3D=3D 5 && = a->rd =3D=3D 1)) { + type =3D tcg_constant_tl(CTRDATA_TYPE_CO_ROUTINE_SWAP); + } else { + type =3D tcg_constant_tl(CTRDATA_TYPE_OTHER_INDIRECT_JUMP); + } + + gen_pc_plus_diff(src, ctx, 0); + gen_helper_ctr_add_entry(tcg_env, src, dest, type); +} +#endif + static bool trans_jalr(DisasContext *ctx, arg_jalr *a) { TCGLabel *misaligned =3D NULL; @@ -117,6 +162,12 @@ static bool trans_jalr(DisasContext *ctx, arg_jalr *a) gen_pc_plus_diff(succ_pc, ctx, ctx->cur_insn_len); gen_set_gpr(ctx, a->rd, succ_pc); =20 +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + gen_ctr_jalr(ctx, a, target_pc); + } +#endif + tcg_gen_mov_tl(cpu_pc, target_pc); if (ctx->fcfi_enabled) { /* @@ -231,6 +282,19 @@ static bool gen_branch(DisasContext *ctx, arg_b *a, TC= GCond cond) } else { tcg_gen_brcond_tl(cond, src1, src2, l); } + +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + TCGv type =3D tcg_constant_tl(CTRDATA_TYPE_NONTAKEN_BRANCH); + TCGv dest =3D tcg_temp_new(); + TCGv src =3D tcg_temp_new(); + + gen_pc_plus_diff(src, ctx, 0); + gen_pc_plus_diff(dest, ctx, ctx->cur_insn_len); + gen_helper_ctr_add_entry(tcg_env, src, dest, type); + } +#endif + gen_goto_tb(ctx, 1, ctx->cur_insn_len); ctx->pc_save =3D orig_pc_save; =20 @@ -243,6 +307,17 @@ static bool gen_branch(DisasContext *ctx, arg_b *a, TC= GCond cond) gen_pc_plus_diff(target_pc, ctx, a->imm); gen_exception_inst_addr_mis(ctx, target_pc); } else { +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + TCGv type =3D tcg_constant_tl(CTRDATA_TYPE_TAKEN_BRANCH); + TCGv dest =3D tcg_temp_new(); + TCGv src =3D tcg_temp_new(); + + gen_pc_plus_diff(src, ctx, 0); + gen_pc_plus_diff(dest, ctx, a->imm); + gen_helper_ctr_add_entry(tcg_env, src, dest, type); + } +#endif gen_goto_tb(ctx, 0, a->imm); } ctx->pc_save =3D -1; diff --git a/target/riscv/insn_trans/trans_rvzce.c.inc b/target/riscv/insn_= trans/trans_rvzce.c.inc index cd234ad960..c77c2b927b 100644 --- a/target/riscv/insn_trans/trans_rvzce.c.inc +++ b/target/riscv/insn_trans/trans_rvzce.c.inc @@ -203,6 +203,14 @@ static bool gen_pop(DisasContext *ctx, arg_cmpp *a, bo= ol ret, bool ret_val) =20 if (ret) { TCGv ret_addr =3D get_gpr(ctx, xRA, EXT_SIGN); +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + TCGv type =3D tcg_constant_tl(CTRDATA_TYPE_RETURN); + TCGv src =3D tcg_temp_new(); + gen_pc_plus_diff(src, ctx, 0); + gen_helper_ctr_add_entry(tcg_env, src, ret_addr, type); + } +#endif tcg_gen_mov_tl(cpu_pc, ret_addr); tcg_gen_lookup_and_goto_ptr(); ctx->base.is_jmp =3D DISAS_NORETURN; @@ -309,6 +317,19 @@ static bool trans_cm_jalt(DisasContext *ctx, arg_cm_ja= lt *a) gen_set_gpr(ctx, xRA, succ_pc); } =20 +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + if (a->index >=3D 32) { + TCGv type =3D tcg_constant_tl(CTRDATA_TYPE_DIRECT_CALL); + gen_helper_ctr_add_entry(tcg_env, cpu_pc, addr, type); + } else { + TCGv type =3D tcg_constant_tl(CTRDATA_TYPE_DIRECT_JUMP); + gen_helper_ctr_add_entry(tcg_env, cpu_pc, addr, type); + } + } +#endif + + tcg_gen_mov_tl(cpu_pc, addr); =20 tcg_gen_lookup_and_goto_ptr(); --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139741; cv=none; d=zohomail.com; s=zohoarc; b=GHVjTFT3stwPP3/dSIaeX5p5oF91CT63uzBYf71LcMCYo/hFqD901XJOiSt3v9cKMGFLsVPV5hRgmnUGcy+3BqNmj4/lBotQNTHD2u22hoks8Z01N8bqR2YsT6XsFoQCBMnMpc1f3Ar2cvG1GVqlMKbQLFwAt8O9ou5p/0rKXCs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139741; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wQEm50w7hIBU99p2JPQi53vKIrZxWkieyhO8rz98ZNM=; b=H1DTv1S1BE7FcMYtvtUduGB2DsgPLkAm424kjdfBNhc8BeZnj4/fNeWbP+KGeOOlzYEVq7bah4moVFdFqbrIEgGpAPNaPoeOT5MADswJ8NPRFMffi0FE1rcWW7VWtEMp3J/NI1SYXjnOaifrALMaUe4FNwGSX1TGHgH3nbsNBAs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139741194144.46623032355888; Tue, 4 Mar 2025 17:55:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdy1-0004fA-DG; Tue, 04 Mar 2025 20:54:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdxy-0004UN-QX for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:34 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxw-0008WL-GQ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:34 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-223480ea43aso156424565ad.1 for ; Tue, 04 Mar 2025 17:54:32 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139671; x=1741744471; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wQEm50w7hIBU99p2JPQi53vKIrZxWkieyhO8rz98ZNM=; b=YtKpntLsRPrR7l33dGXm11PXo9cnSykizwSUDkbfergKjJYf7HtofoNP625/sboJST KjJTJTpn55v6PlPYdNZLTmuLoGiR6z/tD9v0YDf2I+lbwp5aLzt62QA/wdvzGui6HTj5 47SOG0Q3VwHBnjpOyqL9cndbJ3XhpAJyIYGwb86v8h+ysdj5Ax2tt8xZPk/76E/GayKj cV4ziETbb+2+9KIEXhIXxHnBQxH4b6TbO+P49a3XPIXFgVZgIZagD9YuRtgKDzVdDLWK LljJEvrwtErBK0no+h/t9LaLcgzsIp6m3d7/sNLXNH+iXYlfckZfdemxEVMBT1F5w7Qq BSvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139671; x=1741744471; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wQEm50w7hIBU99p2JPQi53vKIrZxWkieyhO8rz98ZNM=; b=TVUCrifLiHfLQYa3eN63LdQtOMg/w5sLd8NUBSZ2YMtdRY4xxfRMK/X8bbBN3d/fu7 qwVGxAZEIeLHMFaoBjQOYYHMHv+28Qugk2IQqeN0Vb0aa3HnebVdwGForK7hVhdeRxcI 3ts4af3bgYBJ9Jx+GYmT3qiZbWWXVYlYsmkA4m0G+ct3gPmHnOfhBRZjq1o4BNq2600k C1SWuhZbC42dIjn2OYlDOTQaxb58Gi4eBnndDkCH/FashTKKrPvldxXKNVkia3d36Xty v9Zcr19jSaGdKYPRxRBGupJXua37Bsfy7V7PaFwry08ChqfA/A/DqDbl8PmeaUKUY/tJ mFOg== X-Gm-Message-State: AOJu0YxhRpRmv4CgG5yKDLcUP9iluN1jWoGizetyWTg390jfj+2uoNEz 7AbKos4rfWwsknL9cbY7+3zatRfiUo48d9ZzJQ6UoR+tTqrKG0A8WZwmuXDazDs= X-Gm-Gg: ASbGnctC3tinH7LdJFiCR3wFTRAx72csnopp93bbm88YGUcm7m+xIe3OzaGK+gRYRxu OWaI8QCZir67Idnx3EY02QUXyr7XkpWgPkxvTfS5niTZubv7Qyg9fbvhoisJY7AMkBd6iZo75S0 jZhhJZt+KNzSsa9mshk0fQ5llQZRQzLQNHYcSJWxmiih2ox/jHRrfYKXFYdSupVmGzeNcvLAR7S YtLbsnWPDSAhpst9ogBDc1gxm/wholrkCzwlmv4qqB2KFA+WCk8S+Y/akYGg6YVBpHPsTjw3C04 ZJSVhMkgdPHEtTwKRIpLQhXLoBHAtp2gOfAKDbbM1AFYyvC8nmSbHhScgkp5DLJ9pjNankKAsar 6Q/Lk/ckbFV1skTQRZqPRwjwMyl/yXaXbetkIBSo8eFM/M182lug= X-Google-Smtp-Source: AGHT+IHS+0HhkTr1vynsGHC9+hEd5MVqmVnVMmu5gApYlVKEx8UYd+6jWf6bK/0s4UPnWmN3V32mTQ== X-Received: by 2002:a17:902:db03:b0:223:4998:a75e with SMTP id d9443c01a7336-223f1c804f7mr19685385ad.3.1741139670866; Tue, 04 Mar 2025 17:54:30 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 26/59] target/riscv: Add CTR sctrclr instruction. Date: Wed, 5 Mar 2025 11:52:34 +1000 Message-ID: <20250305015307.1463560-27-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139743288019100 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal CTR extension adds a new instruction sctrclr to quickly clear the recorded entries buffer. Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250205-b4-ctr_upstream_v6-v6-5-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 1 + target/riscv/helper.h | 1 + target/riscv/insn32.decode | 1 + target/riscv/cpu_helper.c | 7 +++++ target/riscv/op_helper.c | 29 +++++++++++++++++++ .../riscv/insn_trans/trans_privileged.c.inc | 11 +++++++ 6 files changed, 50 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 9e92144b61..616c3bdc1c 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -619,6 +619,7 @@ void riscv_cpu_set_mode(CPURISCVState *env, target_ulon= g newpriv, bool virt_en); =20 void riscv_ctr_add_entry(CPURISCVState *env, target_long src, target_long = dst, enum CTRType type, target_ulong prev_priv, bool prev_virt); +void riscv_ctr_clear(CPURISCVState *env); =20 void riscv_translate_init(void); void riscv_translate_code(CPUState *cs, TranslationBlock *tb, diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 163121ade5..85d73e492d 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -132,6 +132,7 @@ DEF_HELPER_6(csrrw_i128, tl, env, int, tl, tl, tl, tl) DEF_HELPER_1(sret, tl, env) DEF_HELPER_1(mret, tl, env) DEF_HELPER_1(mnret, tl, env) +DEF_HELPER_1(ctr_clear, void, env) DEF_HELPER_1(wfi, void, env) DEF_HELPER_1(wrs_nto, void, env) DEF_HELPER_1(tlb_flush, void, env) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index a98dab0205..6d1a13c826 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -114,6 +114,7 @@ # *** Privileged Instructions *** ecall 000000000000 00000 000 00000 1110011 ebreak 000000000001 00000 000 00000 1110011 +sctrclr 000100000100 00000 000 00000 1110011 uret 0000000 00010 00000 000 00000 1110011 sret 0001000 00010 00000 000 00000 1110011 mret 0011000 00010 00000 000 00000 1110011 diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 7dbdb34b17..356e84b9a2 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -887,6 +887,13 @@ static void riscv_ctr_freeze(CPURISCVState *env, uint6= 4_t freeze_mask, } } =20 +void riscv_ctr_clear(CPURISCVState *env) +{ + memset(env->ctr_src, 0x0, sizeof(env->ctr_src)); + memset(env->ctr_dst, 0x0, sizeof(env->ctr_dst)); + memset(env->ctr_data, 0x0, sizeof(env->ctr_data)); +} + static uint64_t riscv_ctr_priv_to_mask(target_ulong priv, bool virt) { switch (priv) { diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 5a99c47b12..f156bfab12 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -485,6 +485,35 @@ void helper_ctr_add_entry(CPURISCVState *env, target_u= long src, env->priv, env->virt_enabled); } =20 +void helper_ctr_clear(CPURISCVState *env) +{ + /* + * It's safe to call smstateen_acc_ok() for umode access regardless of= the + * state of bit 54 (CTR bit in case of m/hstateen) of sstateen. If the= bit + * is zero, smstateen_acc_ok() will return the correct exception code = and + * if it's one, smstateen_acc_ok() will return RISCV_EXCP_NONE. In that + * scenario the U-mode check below will handle that case. + */ + RISCVException ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_CTR); + if (ret !=3D RISCV_EXCP_NONE) { + riscv_raise_exception(env, ret, GETPC()); + } + + if (env->priv =3D=3D PRV_U) { + /* + * One corner case is when sctrclr is executed from VU-mode and + * mstateen.CTR =3D 0, in which case we are supposed to raise + * RISCV_EXCP_ILLEGAL_INST. This case is already handled in + * smstateen_acc_ok(). + */ + uint32_t excep =3D env->virt_enabled ? RISCV_EXCP_VIRT_INSTRUCTION= _FAULT : + RISCV_EXCP_ILLEGAL_INST; + riscv_raise_exception(env, excep, GETPC()); + } + + riscv_ctr_clear(env); +} + void helper_wfi(CPURISCVState *env) { CPUState *cs =3D env_cpu(env); diff --git a/target/riscv/insn_trans/trans_privileged.c.inc b/target/riscv/= insn_trans/trans_privileged.c.inc index ca52405d7d..8a62b4cfcd 100644 --- a/target/riscv/insn_trans/trans_privileged.c.inc +++ b/target/riscv/insn_trans/trans_privileged.c.inc @@ -75,6 +75,17 @@ static bool trans_ebreak(DisasContext *ctx, arg_ebreak *= a) return true; } =20 +static bool trans_sctrclr(DisasContext *ctx, arg_sctrclr *a) +{ +#ifndef CONFIG_USER_ONLY + if (ctx->cfg_ptr->ext_smctr || ctx->cfg_ptr->ext_ssctr) { + gen_helper_ctr_clear(tcg_env); + return true; + } +#endif + return false; +} + static bool trans_uret(DisasContext *ctx, arg_uret *a) { return false; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139997; cv=none; d=zohomail.com; s=zohoarc; b=iLBA9R0Gpx4BJCMq61E5/ME8dK/A8B44N0PsZAfWPpT/hu/CcdX31YeJeJv8LptTsQcFZiENikCHkX3eSEOM7tBdb3PCy+ExtGAAJ+M/2jLKVv3ID2eFJnToOIxuJOb79KMXnDSa9TCPghGTBTwaz5rDRDvG8sGVfD2z/ltLPEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139997; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jFAmqPRQPWgYFzdVLR2UUIxIvDBtzJRXuo2E2Y5DFx8=; b=nxGzeQXzK4co6iU/L7NGGuIIvo6LlrSTVMI7JCFQe0XB2YkGfqALufTpolwdwNM6niBUDBK0NEbUkUYUhtv1ElsW6O+DkxASwry7k2Qyh+Iqle9rJFLJ90yVxIYU9wQ6b1X8MXsm5S5/A1tvKpI0mcQEvUxbUDXyBVms38i9/dc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174113999791296.5885180592062; Tue, 4 Mar 2025 17:59:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdy8-0004tk-SB; Tue, 04 Mar 2025 20:54:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdy1-0004fL-6w for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:37 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdxz-00005H-6Q for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:36 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-2234e4b079cso115239525ad.1 for ; Tue, 04 Mar 2025 17:54:34 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139673; x=1741744473; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jFAmqPRQPWgYFzdVLR2UUIxIvDBtzJRXuo2E2Y5DFx8=; b=k7z7d1WlLPQ46qzBhxYixcmTaGMGI4AjELu0asB0PA2R8WVfxsDlUnohjHj0yuRj30 BknK1Rf0fUt59mhPHqo/5EEA6qf2S1NDsYR53pjmT5zRnaxJ+iy7UgBqRykCHrrz9oZx HIpVhVWr0JEzaBYZff9RQkiH54BLprrsmMBUVtGxNVq2cRCY441YzmLgjeLRIb/JTXnF Kn6WnPjVrliflZN51ngUmrTnmI7DGaFOfN+4hA+376+95B7Cj/NmqYjcsK7WAirjrvJ6 aHtc219SFvklDhLf7zttt+Be03wPGL3gSUdaTR2g/SsFcn3Qe47fvGCyi0C0qhgUzjc1 9tUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139673; x=1741744473; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jFAmqPRQPWgYFzdVLR2UUIxIvDBtzJRXuo2E2Y5DFx8=; b=cNFarSjgyLLr4nq8YukCE05N6UX1G1KgQeUZBPZBMtiLg2Gp0zYzEnmIWAE1ZQyLVu EyRghy0cWTMkTSZCXs07LZlr2XnGZTsES/RjbHoxsrlybTgG2znF+9SHJYoysWP/AzWu GTtMoYL8cqPN8ZS3kb4wlwe4rjvdmKSha6eSRiGVlv/zmLGYgW1KGwkxslUS6ZsjU43K xRUImQHgcEJjCExwV2j07HL8Y9X4LKksy88wEEVE5+NK9Cm8J7JEorClzk32hGBOIXqA ib2uXxrYny90d9Ecwe30y3aHeSvePzUnTum+b0JU/h202RGH/Qy7GLvms/tGI+HB8ya7 l5Xg== X-Gm-Message-State: AOJu0YyGXXSzW4VNOi4xUWDmRfU1a8wYakqw4FC6NBkRmATu2jZAlDcK JVK8OA/Ox2+prUCplLOPmvTWozUizumkxTi19Z2+FVnFQBLVmf5agjHK3EtiopQ= X-Gm-Gg: ASbGncs9mTsJJ0jr7S63HHlZ06x87G/QwZGb5H1G3ahODG8C1I8Q58UNKJEVdkLa9e9 hJENuDyuu3RjknxJh7t9ZZXjxXzj04z6Qa1g1B8OscqOWp6CZWwN6hkQNMSirQB+Pw4xt10eqkw joATb+xrENsrp5h6JSLWDb+eLAMJj87+S98oeL+V9pWtayRe9dcVE9y0+LWwBvKavrG2JDaQOJe exx3Z+x9LCbur/1qmkaAlOfr80aoluJLV4RVe7iCC5GkndpuDTh8W87gYtC/IG8yOSkl9xavG3C Z7BgxsQU71BkT7Nyr08bfThqb5eStBWR2Lcdwrc8ZyhJNTC2R5BAPbzMbpqo3GvlD4CEObJh+dC 2O+ft10gr2RFBCAt7VSo1DCNdWHIHY3YUL30dNYlP89c5R3dpo5M= X-Google-Smtp-Source: AGHT+IEMl8z7W1Nra9VXDBSJjUfCIv+l/mQPbl+1k8uT9NKB2EQItUYQuTwkGjufTSoqgAzAWkq+AA== X-Received: by 2002:a17:903:1cd:b0:223:4a10:311b with SMTP id d9443c01a7336-223f1cb2068mr21551835ad.1.1741139673584; Tue, 04 Mar 2025 17:54:33 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 27/59] target/riscv: machine: Add Control Transfer Record state description Date: Wed, 5 Mar 2025 11:52:35 +1000 Message-ID: <20250305015307.1463560-28-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139999701019000 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal Add a subsection to machine.c to migrate CTR CSR state Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250205-b4-ctr_upstream_v6-v6-6-439d8e06c8ef@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/machine.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/target/riscv/machine.c b/target/riscv/machine.c index d8445244ab..889e2b6570 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -300,6 +300,30 @@ static const VMStateDescription vmstate_envcfg =3D { } }; =20 +static bool ctr_needed(void *opaque) +{ + RISCVCPU *cpu =3D opaque; + + return cpu->cfg.ext_smctr || cpu->cfg.ext_ssctr; +} + +static const VMStateDescription vmstate_ctr =3D { + .name =3D "cpu/ctr", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D ctr_needed, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT64(env.mctrctl, RISCVCPU), + VMSTATE_UINT32(env.sctrdepth, RISCVCPU), + VMSTATE_UINT32(env.sctrstatus, RISCVCPU), + VMSTATE_UINT64(env.vsctrctl, RISCVCPU), + VMSTATE_UINT64_ARRAY(env.ctr_src, RISCVCPU, 16 << SCTRDEPTH_MAX), + VMSTATE_UINT64_ARRAY(env.ctr_dst, RISCVCPU, 16 << SCTRDEPTH_MAX), + VMSTATE_UINT64_ARRAY(env.ctr_data, RISCVCPU, 16 << SCTRDEPTH_MAX), + VMSTATE_END_OF_LIST() + } +}; + static bool pmu_needed(void *opaque) { RISCVCPU *cpu =3D opaque; @@ -450,6 +474,7 @@ const VMStateDescription vmstate_riscv_cpu =3D { &vmstate_jvt, &vmstate_elp, &vmstate_ssp, + &vmstate_ctr, NULL } }; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140039; cv=none; d=zohomail.com; s=zohoarc; b=lxYOMtWKfSja8sVrq4yQ8NpVuYj+PMrcvZGCvtMNyVjiSzufzGiFpVcMPkVjiiglB3j3xQapPB1p2Lr9d2mkB0SsuFTNZLP6e+k4rU6z8RNDdaQFI1nz0ed25Wmk52iP8s4HA7odGMNqDPdm+WkJNJsozE8lkddeO29kopyvRGQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140039; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Hu7CDHfLgBRdr82MdBZgMyZ5V8YylLwoAe+D7hfRTgE=; b=RNLqTOd5SKlH9YQUgATqEYZw+PrrmOlp5iOYTkq1HhF2DP4Umo4bqnr66LIOBuB3ytEd+tmZ4/haIUmOSO8Kd1dVYa2X2/8MFWcrJPRhOIr6Hgedh+Ihlul9LT8+VbwXHGgt026UiISQJveh2Fvz5HL8Zjg/7Homddreo4QRvQ4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140039911488.6187159360478; Tue, 4 Mar 2025 18:00:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyP-0005bH-OC; Tue, 04 Mar 2025 20:55:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdy7-0004wD-4s for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:44 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdy2-00005z-Dy for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:42 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-223785beedfso79519315ad.1 for ; Tue, 04 Mar 2025 17:54:37 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139676; x=1741744476; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Hu7CDHfLgBRdr82MdBZgMyZ5V8YylLwoAe+D7hfRTgE=; b=PxfOe8ImSvq8RJilvCu9NrQygMh2m0qQqexxC/8UeG2AeJbZr9m+CQtaicG/ui201+ 1IJx+NNJJoXxay2Oj3AHi6zJr3Fn+gMTRdz90TjGjLOWxwbc7H3pX67I9eod+jEMLmzo 7LS9mzRMC5cZzDY6wLqSvnLDWMuAZzjz9fCACWpGcazDmK674TI4z8LTzAOnhYF+oL6Z ig6HFhN8mH5X3UUbcvgD//5Tdk7DcepDyT9Ywvh8XGQWRESwPCOB07ZtXOPMyf31fkFe 1txoG0UBhYpB3TPhktOLviXDRPsSW7f7zezeYWvp/EViuJQnM6H2/4yJAMm/Ntxx21n5 OtmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139676; x=1741744476; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Hu7CDHfLgBRdr82MdBZgMyZ5V8YylLwoAe+D7hfRTgE=; b=Hyuc95MQp8UAJtflBM+tXH2FGvmzDZ5OJm7EhIWp6RYGhy/N14SA3FqM4UwumNfPwC o9/lWgt9rj/8csID3J6ukZ38hE76rC/nsRkmldxcXtCWXUdHHLSGOFRCKj2N0I94Zwc1 yFsm2abPOF5UOqFekY3xrhBppkXPjpe89NQId3d1QZCnFTG+PqGx42KH8suraEfjiWkJ iGKIdoBVc91VtjHYGncoMJrGge5Z0dck1rEVn6K0xvjEV7uGFfjj5BIrzkEp5W+4wDWB Pv+dnF1ri/d8u0ex7aHXpq2bS+MRCuP/6068g9FnhvqyKgxwbl75AM9NJrFQEb14snv7 C6kw== X-Gm-Message-State: AOJu0YyYEzglxkkbI4TbtvRMYIZ9X6F17+DiktfAwlwDNsOJyN6Sy6lM QHhgG1re3w2gi8CeMPEFzv4aD2W5AnxpGJntAB8T861a8t+awhKi2r+LGa6Q4/0= X-Gm-Gg: ASbGncss7hTqmE3T260m17sPROUk8bsdzp25zChdVQAMTj1aqh3ddu6oSqjvqeCzd5S HO2MFZzAZkUHMgNU+ov52syVqavFCNiUoryJiw/T1GxuFpBRmtaibvy3esi/RmK1EJfpo6jJqHT FdPkimVHSXYk1ytchfzq34KqYNnfg3XpMP2a/auQ9rTRk25XQ9GLw03Bj/2cvPdUZRwpjlQvhOE 1FxrV2h4901e4TJgHlyGPglL6suc70zBntRDuxu6kX9TRyOuFKWQp49D3Co/piiARe/X9Dky1Wb Gsq0b5NSogaOWaiz6gBS9DEx0vpugDBRLw+Sv5MyeI21Jj6MSf/PQOiap2Flof2xbyA9tDierr9 rb8lRTuihjyHSJ6+qqc5EJ0yjEE9P4ThRCepnw/FHRyALB0M0gBY= X-Google-Smtp-Source: AGHT+IGtfA0MWDZxAWSFcl0UtV1NUGAZVizPxrgrshK0KnIfL8i4WRMQESQF7EBJJrRxvLv/z355Nw== X-Received: by 2002:a17:903:174c:b0:220:d601:a704 with SMTP id d9443c01a7336-223f1c95062mr18432765ad.18.1741139676547; Tue, 04 Mar 2025 17:54:36 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, julia , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 28/59] target/riscv: log guest errors when reserved bits are set in PTEs Date: Wed, 5 Mar 2025 11:52:36 +1000 Message-ID: <20250305015307.1463560-29-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140042381019000 Content-Type: text/plain; charset="utf-8" From: julia For instance, QEMUs newer than b6ecc63c569bb88c0fcadf79fb92bf4b88aefea8 would silently treat this akin to an unmapped page (as required by the RISC-V spec, admittedly). However, not all hardware platforms do (e.g. CVA6) which leads to an apparent QEMU bug. Instead, log a guest error so that in future, incorrectly set up page tables can be debugged without bisecting QEMU. Signed-off-by: julia Reviewed-by: Daniel Henrique Barboza Message-ID: <20250203061852.2931556-1-midnight@trainwit.ch> Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 356e84b9a2..3f5fd861a8 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -1472,14 +1472,27 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, ppn =3D pte >> PTE_PPN_SHIFT; } else { if (pte & PTE_RESERVED) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: reserved bits set in P= TE: " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FM= T_lx "\n", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } =20 if (!pbmte && (pte & PTE_PBMT)) { + /* Reserved without Svpbmt. */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: PBMT bits set in PTE, " + "and Svpbmt extension is disabled: " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FM= T_lx "\n", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } =20 if (!riscv_cpu_cfg(env)->ext_svnapot && (pte & PTE_N)) { + /* Reserved without Svnapot extension */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: N bit set in PTE, " + "and Svnapot extension is disabled: " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FM= T_lx "\n", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } =20 @@ -1490,14 +1503,19 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, /* Invalid PTE */ return TRANSLATE_FAIL; } + if (pte & (PTE_R | PTE_W | PTE_X)) { goto leaf; } =20 - /* Inner PTE, continue walking */ if (pte & (PTE_D | PTE_A | PTE_U | PTE_ATTR)) { + /* D, A, and U bits are reserved in non-leaf/inner PTEs */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: D, A, or U bits set in non= -leaf PTE: " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FMT_lx= "\n", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } + /* Inner PTE, continue walking */ base =3D ppn << PGSHIFT; } =20 @@ -1507,10 +1525,17 @@ static int get_physical_address(CPURISCVState *env,= hwaddr *physical, leaf: if (ppn & ((1ULL << ptshift) - 1)) { /* Misaligned PPN */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: PPN bits in PTE is misaligned:= " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FMT_lx "\n= ", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } if (!pbmte && (pte & PTE_PBMT)) { /* Reserved without Svpbmt. */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: PBMT bits set in PTE, " + "and Svpbmt extension is disabled: " + "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FMT_lx "\n= ", + __func__, pte_addr, pte); return TRANSLATE_FAIL; } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140433; cv=none; d=zohomail.com; s=zohoarc; b=lT4YAkq2PUUd8j+6qwNYCMn/esS63AEIr7U4LGLl4+GuF5C7l2CsZx3sRFipoTYmuq5DXWnaTZ3u5XqQLw5IlpOlWPyaBfNlymF90L0Eqj0sQZzGuiJNUkrN1HzmibgDmNi0vFMs1T9z9odjnQXhY8bNcwpqMXZm1OUf2O3EOxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140433; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=u6HXX61COAmfBBR7go9A4btoEcUxOWhbvQ+kPo4OZ+c=; b=f0s+gYC7XFcXzItGlb3CB6MmXLZxUD838PMnseo34ASj0BAmnTPb12tBFxGpAEFZBKGAiBDSsDdt5UWldiBrFwolvIil98tk2AGwj31KqqUbPolTOon+zZVUN5uzEmdg4PXE0n89E5370kSPxstIIKDTvplwEcCfYX4ESCEx3sA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140433566363.46224326746653; Tue, 4 Mar 2025 18:07:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyM-0005Ka-Sd; Tue, 04 Mar 2025 20:54:59 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdy7-0004wF-5h for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:44 -0500 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdy5-00006X-5f for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:42 -0500 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-2feb96064e4so10321978a91.1 for ; Tue, 04 Mar 2025 17:54:40 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139679; x=1741744479; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=u6HXX61COAmfBBR7go9A4btoEcUxOWhbvQ+kPo4OZ+c=; b=HpbZVgmfPbm5I9euX3+apRGtB0G+q2hcorzg2lYBN2v+OPvGGYC7DfOoyLigboFA/g zGbJeJ4EYFgOpNbeM6yoDDYoSjB2bAzS6xs1Hb3/qgxgutcaj29515qzMkcyq4rH3GTA vm92qoDZEHwDT38xZRU2euP1izYyJOAnyuICp3WZW6CuzFrKy5cD3UqRukOtcW7uBXeh wFHlViGenqiAVp2gR8Vn6Mzh+Xe0QLPuCs2cTkv5qfuZi25szINaWOn2g04LzRGFWoUC K3Uyo1tUC4jCBAvSQhEWYi8W+Gp5m2L2zYcyvzmpNtPBSLXCt8f7dDzlzW1mAqm0SA1f yVtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139679; x=1741744479; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u6HXX61COAmfBBR7go9A4btoEcUxOWhbvQ+kPo4OZ+c=; b=pyJyj8K3jMzdwQTJZwG7U166e44gZVciuiXqvesWmlZm2gYZ1ytxlmmvyw/bEjBpM/ CLP14OoZ46qnI9Ut9HeS3+Dvx4/XDXaxEPl1Iu0Sfndt5Qw2VLjfW+TkWlzFvdhY++Wf CzdpaQBmJHaROSoamw7LNGtYsoiylkAOU4huvz6c3xwtzJv2jsHXLALheS79HwaRalZg TPu814WnjR+9EFGmS/9hhy9G+AL8Sa2/1IPjrYWLKfxEPSF4edCSC0pVq80/LNU5md8O 6YIvUNR8Bd6yBh9M7AIgetykso7R4Zdw1Peci530UQ4VaRQpHUjaWjUriHpp5jgJEYKx dpGA== X-Gm-Message-State: AOJu0YyglYfEkBeTwOD+yLDneIufeRLAs8ie8ww1SQ4j1kK9KZ0/VfIM pBDEto5VA8pUHdnWARGNmNNVDKERJeoOujM5/6pR0gt5kAppHB9G21yiBFmDUNA= X-Gm-Gg: ASbGncv6QcRrE8LqZvYBSDF400EEzrzJhpzmr54+kKdDwvzsRglPC+YtgmhWn40XNY4 9Ch/1f627w1yYKElTcYd0UrvPIm1ecTvrASLTTe4mYSfdt0pzX41vAv7+Rdb7ytsdPw2aDYmhKR 5fzsP+nwAR9aX/qtA8tsY8/GgUr7IECZLHyWceuc3AFtmsNKh+kMLiFr7FYzuWs9tAIMLiDjWAB ydWeGdaI8A902A9t0e6L1AjSwYKY+ZiQiyCSdrwBEm9KVHuYvJoqIfbmFoI+A40jaucrIheiqyf w+wnXFpdNA5wos+XEBRQCbdt3EZ86G28OAqpCHwrbC+muT2Sb4l7QAs5CIcd0wfcOKWxE5xKXTR 9FLIeDPJ6sHJ2JUMSOF/jSSu+jycNq1imfUQ0OnnLTf3Cpykx4W4= X-Google-Smtp-Source: AGHT+IFjailxShMx19oQvKAPGUQuLVA5PORWb1FhlDLamvYWNpM0nJss6tZ/++a08VKg5ra6iK6HjA== X-Received: by 2002:a17:90b:264c:b0:2ee:db1a:2e3c with SMTP id 98e67ed59e1d1-2ff4978cfd8mr2360094a91.1.1741139679313; Tue, 04 Mar 2025 17:54:39 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rob Bradford , Alistair Francis Subject: [PULL 29/59] disas/riscv: Fix minor whitespace issues Date: Wed, 5 Mar 2025 11:52:37 +1000 Message-ID: <20250305015307.1463560-30-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::102e; envelope-from=alistair23@gmail.com; helo=mail-pj1-x102e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140435473019100 Content-Type: text/plain; charset="utf-8" From: Rob Bradford Some extra spaces made into into the RISC-V opcode data table. Signed-off-by: Rob Bradford Reviewed-by: Alistair Francis Message-ID: <20250206153410.236636-2-rbradford@rivosinc.com> Signed-off-by: Alistair Francis --- disas/riscv.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/disas/riscv.c b/disas/riscv.c index 4075ed6bfe..305dd40ac4 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -1662,7 +1662,7 @@ const rv_opcode_data rvi_opcode_data[] =3D { { "aes32esi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, { "aes32dsmi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, { "aes32dsi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "aes64ks1i", rv_codec_k_rnum, rv_fmt_rd_rs1_rnum, NULL, 0, 0, 0 }, + { "aes64ks1i", rv_codec_k_rnum, rv_fmt_rd_rs1_rnum, NULL, 0, 0, 0 }, { "aes64ks2", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, { "aes64im", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, { "aes64esm", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, @@ -2214,11 +2214,11 @@ const rv_opcode_data rvi_opcode_data[] =3D { { "mop.rr.5", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, { "mop.rr.6", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, { "mop.rr.7", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "c.mop.1", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.3", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.5", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.7", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.9", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.1", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.3", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.5", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.7", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "c.mop.9", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, { "c.mop.11", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, { "c.mop.13", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, { "c.mop.15", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139711; cv=none; d=zohomail.com; s=zohoarc; b=DINzqbDHNKvzPwiBeIWIIJMdys6ptoaf4xnI+HGtLPrcTYbx1n5Ek0DsvNjSYKNAqERiNvqVCylFdusDF2Cd6JTmOAHgQH44H5+iCctmQeNLlDhesjd7I0rZ19GSduNcgl6BMJvkBYjnk+bjr9+ZAmmtftTqtkvx/qXvKa/w81U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139711; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7mXzu/q/STb5uoLRSBRxYvW5KroRtvT4LUQ7GK2i/JE=; b=LJqNxGOI/zT0Z6F9P+kCt1KiN7HlXsJd7dPX7uIpDkm+HA+a1idtTbaZGIfwI/1+trskMVbYe03LmAF/8N+oXKvDuLzIlRusPuw0RC0EgilcvBApD1atPS9PGjkqroLXDB1K9RKd/iK11HWEmFHo/PoqfcibiVG827dMEW/hIXs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139711344960.914204723246; Tue, 4 Mar 2025 17:55:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyT-0005kJ-Os; Tue, 04 Mar 2025 20:55:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyA-00057n-7R for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:48 -0500 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdy8-00007H-Ow for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:45 -0500 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-2fce3b01efcso9113675a91.3 for ; Tue, 04 Mar 2025 17:54:43 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139682; x=1741744482; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7mXzu/q/STb5uoLRSBRxYvW5KroRtvT4LUQ7GK2i/JE=; b=dmm+eAEExD1uQ7D5LUVuMmPoO9yD52YwrrOr3yqU3kh9c9ZQFXxowNuaIeP12SZ9kd iGWDO3fK5oWMXv0Vw1Txwbt5kFO02G4lPsDnz3RsEU96ponWaAfAkH8CIBdoyTVATFws 7ncoYq6iLaoFwbV9jhPFXqexZEuBsAmqqO1upuAAj6waWJVqYMP7FCaTngW5bxe7m5Xi 18DzPPw6N+xRGIps7PFrA9oTyKHYiWvBXKppKAECVN69de4BzqV4PeKd2V3VmhOFO5TU 59yJvHHx8g52SHY0LEPbVLz7Hzt8vPk9lm4wJ6A3ecLJ9bQ9zptaaOt8bn69pw04BbGb hwFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139682; x=1741744482; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7mXzu/q/STb5uoLRSBRxYvW5KroRtvT4LUQ7GK2i/JE=; b=mJW+yaidNvT7LjpEtIMCzCXxvebmdDo02UXUJy7IEQpWtqQifbpBCsbXc3+q+R+KIr ufFN9BxQgv9FpfceH9bPbhAh2wHHwtzDOUcaH5K13vlJE2dZa47pQxmsjaEnJ9nFGlSX 28yKswM1occ8Jkg9+ISNckIJS3BIz/oQugAAbm4qPqZPmO16S6igofHqugiQWRxU547d UNzZG7ssoKN665QnGLpXTkchnunr8KUtGptccGcYBybSZ3Y5eHLxJWic1Di96zeaQzy3 dqkouGgX2d+SzVURUO6lO616TB1qA+rICz/nTXjjLS0brlJ1nYPBB3eAUINVNaZjj7Ed JBcg== X-Gm-Message-State: AOJu0YywpiaWZXfciWEhIkaTQ861CA0c795avaz647DGD29KfXaBp6B7 kLLJ86ErNmoK8gGHwcrn/QeP64sHG3ncpOrGCTQ9lN108fOG61X83NvnnTtffVo= X-Gm-Gg: ASbGncuusWg9ewLSlX7psVJ2G1SGVGSaVM1Ef3yv1IBXpNSvaF/ymz/MuDh8LohwJLK QO6zzmP+2QWVqzK80mvzcUkA7NjH1M6I72kDFjfB+VpLdhL/iWeIgRZHQHFPk9G14fRMcVikyiI qzq8elnCS6nTpu8fZvU40PyGoGLNVhsKXCC5mjNF98aGZ9G9AzUkaudgqtjZjLG+++nEJ4NJWJR xLuYDj5xG4EGNSAly+9wT0nFSD1waCyIElVhRgfsGVFLuWFdAUPgHmj2KWTyxe2dnjAG1rTX6Uu gNyZHplxYFozTyE6uYQXty3ZyYGieX3KREcAe/OVNiIrFf8c6Zp0sUE0aQ9yAuHIBl3PnK5rYig ReKPsaMvMm33Cut6G9McO2fok2A43kfGKuwIiTfIvB6Mi3h02teg= X-Google-Smtp-Source: AGHT+IFcSNMMq41FUWQ0kKGvgJs4ZxC70p7Plz6a3MV2la6Cwi3+srqjq8Iq5ZKFO0shxnwVKv8ObQ== X-Received: by 2002:a17:90b:3ec4:b0:2fe:a76c:ffd0 with SMTP id 98e67ed59e1d1-2ff497ff897mr2448212a91.27.1741139681988; Tue, 04 Mar 2025 17:54:41 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rob Bradford , Alistair Francis Subject: [PULL 30/59] disas/riscv: Add missing Sdtrig CSRs Date: Wed, 5 Mar 2025 11:52:38 +1000 Message-ID: <20250305015307.1463560-31-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::102a; envelope-from=alistair23@gmail.com; helo=mail-pj1-x102a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139712251019000 Content-Type: text/plain; charset="utf-8" From: Rob Bradford This reflects the latest frozen version of the RISC-V Debug specification (1.0.0-rc4) which includes the Sdtrig extension. Signed-off-by: Rob Bradford Acked-by: Alistair Francis Message-ID: <20250206153410.236636-3-rbradford@rivosinc.com> Signed-off-by: Alistair Francis --- disas/riscv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/disas/riscv.c b/disas/riscv.c index 305dd40ac4..85cd2a9c2a 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -2438,9 +2438,11 @@ static const char *csr_name(int csrno) case 0x07a1: return "tdata1"; case 0x07a2: return "tdata2"; case 0x07a3: return "tdata3"; + case 0x07a4: return "tinfo"; case 0x07b0: return "dcsr"; case 0x07b1: return "dpc"; - case 0x07b2: return "dscratch"; + case 0x07b2: return "dscratch0"; + case 0x07b3: return "dscratch1"; case 0x0b00: return "mcycle"; case 0x0b01: return "mtime"; case 0x0b02: return "minstret"; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139996; cv=none; d=zohomail.com; s=zohoarc; b=ZyBpkxhKtHNTjcGkY9mDbOSVIDY2vK6DIDRCk9psO3MS3fMLlRY8ZXH07z/438RgGJHcUgyiY0/lUcMCqimUW/yojeUwh43XARr5+5Pic0Wa5b4ycPTxHxhQRg/lvZxj76KqeCwdROecUZ4+Bybgsejbg+VUY8WQLwFhM0q2AoE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139996; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=o2tk+IDQAaFexLh32/3aSUR3dERRACns7VIzSWEBYTg=; b=YnIVOWnmq9ABfqN2YjlT4YFzb6GEunCNtKv4w3ywk7YcTExvSbwMevsqtCCMh7knraHm9U+WGXWeL1v6zvpWLcrJjZHdN8ZuYJNU6TieBUaOk9hoM8GTBYT35xYyV/paQqRSv4ZRJ4CW6s6Ck/fkVm+hN4E4R4/ya0jdPBYigso= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139996838430.19175503066174; Tue, 4 Mar 2025 17:59:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyO-0005WS-SH; Tue, 04 Mar 2025 20:55:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyC-0005B9-7E for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:50 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyA-00007t-Ka for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:47 -0500 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-223f4c06e9fso2333395ad.1 for ; Tue, 04 Mar 2025 17:54:46 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139685; x=1741744485; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=o2tk+IDQAaFexLh32/3aSUR3dERRACns7VIzSWEBYTg=; b=i7jLdxgotlIlYjPG3i8pamr8QVfWwLJeB60tg1hPFFQspxr9OeHlQzONQrdE1d1C0t 1VnIp776dA5Ix7zrQA3eRY5RJuWky4H2b16bTMgLxWQ6GfRAXqOMcKaUnYcS5gEDKlWs JG1NZ7NdPe/mepMG/c9TgVSsZEWTDbhBrsyeqFqJPlL6Jhm6pcVBfnBJrK2Epo2SYdS3 KsIEskxxiyN/hZpkMFCjKmVb5bMjRkvleAPrqDDqnGjIMtMSKos/HjO9OLvm3r9GqFZK ccFqWmWwZJ4x4wpUGQsy55rJ+YuyVF4io18G7FYUyUMsG5R3rwUWClpsNPrTxLNO58fa p57Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139685; x=1741744485; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=o2tk+IDQAaFexLh32/3aSUR3dERRACns7VIzSWEBYTg=; b=TY0pqVKWzm5CW04yPc9qFdetcRvzkmuRX8irXFavXp2/rqH2dY2XKh6RLGlzahTumQ 2xOrrIlfYyRYCD+1zxXr2TBzbWLcyDYWbfjebCr4sQe0iZ3b3w32b7HZ1t6zCr/KBbBF viQFHq1sAVeNAqrF6Y9nZNzxFKnUR6tWTisObWRNzjS3hYvufGWVHEZNHJC0JWoGtM5j W8hBh7bsMIeLILhiBeirewefpKth4I4YZ3iBCQPAyliBoijJ6wOxtCLLQmXIhqpGta8+ Zk1dp4lazxK0r3jPAraE6YMoiPJfpsnC14Ns8itjg/jst0wQWAN0fCNDWOGZPE1y7iSi JKkg== X-Gm-Message-State: AOJu0YyqjV3Q0gu5TFf6zxld+kDj5wr2THBPsDGuTlMMstTz9bgMKkKI +zck2ZkrdaGcPyavz3esv691C0ygPHRyDv8zD2u1ycebPAPNDie2k0IAAxytJJs= X-Gm-Gg: ASbGnctpVI3qmH71zE6ItUR0e0gmwrTDhhb86cenquHLHkHJ68eK3rZR0bwSmiCdGO4 CowZUiyfytg4E2ehE99EjtwMgO/yNbJ4Nfl1a3OzJ7yTVyR2qJDo48QYxcf6elNKIYn/lu/8R7H 8i56TD2KIvxdxLiKq7vHI1MMNpcYykXb0wTM0zPlS5i7zswcPvk7ScSQ+zfV/DcRW4WzAfrD4p0 /0S2uDpffb7g8Z/W7Dc6NV+cVAYbLlQipvfiYkzZXkZH5LK0b9GCQfn8o0d0P7mSAWD3YGY54Fh +g1kG3f0A3wiJ90L9ryJ33fB8aG4QgjMX7GFW/Gl29/PAqgCut+C/zlZ2OENrTwUoF6rLQrHAAJ Xptt+sJPKIxBaEBb2DSUgxXVgXvZvFlleRBOkuQsmF8S1jOP+VQI= X-Google-Smtp-Source: AGHT+IEaQosfOnW/G9cyn9jwnO1QLqXSVHa3KmXKcLlhDEAd4giTyDST7lILTOo8cJjqedE2yY3/dw== X-Received: by 2002:a17:903:41cd:b0:220:fe36:650c with SMTP id d9443c01a7336-223f1e074e1mr21109925ad.23.1741139685042; Tue, 04 Mar 2025 17:54:45 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Atish Patra , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 31/59] target/riscv: Fix the hpmevent mask Date: Wed, 5 Mar 2025 11:52:39 +1000 Message-ID: <20250305015307.1463560-32-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62c; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139997741019000 Content-Type: text/plain; charset="utf-8" From: Atish Patra As per the latest privilege specification v1.13[1], the sscofpmf only reserves first 8 bits of hpmeventX. Update the corresponding masks accordingly. [1]https://github.com/riscv/riscv-isa-manual/issues/1578 Reviewed-by: Daniel Henrique Barboza Signed-off-by: Atish Patra Acked-by: Alistair Francis Message-ID: <20250206-pmu_minor_fixes-v2-1-1bb0f4aeb8b4@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_bits.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 70ef443c99..a30317c617 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -1078,9 +1078,8 @@ typedef enum CTRType { MHPMEVENTH_BIT_VSINH | \ MHPMEVENTH_BIT_VUINH) =20 -#define MHPMEVENT_SSCOF_MASK _ULL(0xFFFF000000000000) -#define MHPMEVENT_IDX_MASK 0xFFFFF -#define MHPMEVENT_SSCOF_RESVD 16 +#define MHPMEVENT_SSCOF_MASK MAKE_64BIT_MASK(63, 56) +#define MHPMEVENT_IDX_MASK (~MHPMEVENT_SSCOF_MASK) =20 /* RISC-V-specific interrupt pending bits. */ #define CPU_INTERRUPT_RNMI CPU_INTERRUPT_TGT_EXT_0 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140143; cv=none; d=zohomail.com; s=zohoarc; b=J9lwvMIUZnimvhVH1VHGWDklFnMThSQOMjo1R6iWuKQDv6I14yeR99g+QVzUQp6zPG1yGD26BbmaI4MtDnwkswaljD+Qre5AqlJWON0S30DezpGi/3Np8N+vQEGmeBhTJHvJCGcW4fXdXyXeCgEEDAwipH2NuNa7rmtGxVNJt0c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140143; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tGFBC54uGrka6BKNJV2LE5BwEafI9r/taUzH7CwogWE=; b=djGo0ZgmfyLaAq8JlwlZaU96Qn6scYhitYqeKq1F6UV0sWhwfiC1+pZ0CFytfIZKUryYSgahXJQq/feLdZmzAqBh76jc2zH8tOjN/R4lopcsyT/0MCbGOQw5gRQ/Y7taYj5CDeUFAFWAlxuzHf2+s+m7AoMMXDQD4AzIeEro8tA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140143120488.0999424739398; Tue, 4 Mar 2025 18:02:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyW-000643-Nt; Tue, 04 Mar 2025 20:55:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyF-0005Cr-7d for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:54 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyD-00008N-L4 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:50 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-223cc017ef5so40561775ad.0 for ; Tue, 04 Mar 2025 17:54:49 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139688; x=1741744488; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tGFBC54uGrka6BKNJV2LE5BwEafI9r/taUzH7CwogWE=; b=A6A/eJreC686lP1fQazHE7yD3u4Pu2qG672cVFIeXV7rYMLM6y7cmtC4d4XXAtjy6Q Mbh4J3YK6oWAS8Qk8cW9n7ZyUJ5GkdsmAP9FXWSCsiVCR6K20aaEKGi1Oy6SBDXsvX5x cY4aCE6bVnXOu0UvBYaBZSqeTcV9HwIlpTmwvQoOpuMV0HK9+wvshN072HdiEYcaINox NrGIa+ISouGX0XNY9yZkffy1edV8QoyRepULGdemaUdHtdZzhHEh5PLoWChPpyz/87d+ GssXAm4UpI1PdXCqKGNcMqGmGGu++D99xhES+eCubBzGYYQixFWEWffRDsv7ht6ypQhR 15hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139688; x=1741744488; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tGFBC54uGrka6BKNJV2LE5BwEafI9r/taUzH7CwogWE=; b=kFyUVgjB4qkVqMP2FWo6hZ1OZcDKscr+2Bn28rDZSJfV6hbjsyzsZVRVTpYfK42eH5 7xxfwAiETu3gKMkTPZqyE1hFd4pjZzYMDudf9bZTLZUSMaUCyONi6dwOIpp37d4N/G9a tHsl8Khj8NfgQxAt0dSjZjV2Z2+WZibbcBKb9O9ON80rAIrMZ8gTYjIpuhZ0opSY+tuI 3SWwvP40Tq9T++kV0WVUPRwBAnN94oYEwb4YiUox/OJ25b74/UvoCfQAB/YZyLoWlbnX dNufkv5FhE7r2VcmcJdJTIERUgZ2PVLsYIhW+JFL+fZ8ytEB9tXZTioVRbDfnLk2rsuP sKng== X-Gm-Message-State: AOJu0YxOZdFeV3DW2Xh8lkBmYSky0gl0+nm6SfVKb51XMG8emNvOs2Dh fjq86KFbLN4HOjU2IuI+bnR2atLFLZMvdtw0uZy4mmjzDKcBgHBJVOxeuofw8Tg= X-Gm-Gg: ASbGncsJ4AxKa2I0kwRChxDZq7ehG/fQsAuWAjxdNPcTcy8sZLliPhr/dGIx4PN33Ow o03pyiOmOISRm5qAeNcFwVHLSX74WovOYWmIHqcBiu/7j/YMeSKUgO75o0ELHVp42jaspN5fsEE LYhkvxgQqNCOKNT+LWPCWhiOy1kvcouTsSX8HM8zCIXoDZpwvv/T62dFzsbuAxSa/5/FhjAbaRf G/T1PsBBPWBOHv/qFLTr3/lBJ75PE2n5UJdyz+jJzXz9MORAp1txKFLRCkBysf/LZX3GuGK080o cuCt17djarkrJ1ihDOKybbKBUG+XyzkLdPG05IMffRJDpMWfDKqTxTnFZB9JqOYxDoNZc1YuGvl qfINcfiC1nJ+wc5F1lPkDAaACyodVdjnDjAAKCCvWPsdY//A4V1s= X-Google-Smtp-Source: AGHT+IHk3w5Iv/CU4r96wBkZ3HuEl6kJQJAws+ZMowqkRhZalmkkI07LoTVHEeW2mBLfRuy5mZ5uDg== X-Received: by 2002:a17:902:f682:b0:223:37b8:c213 with SMTP id d9443c01a7336-223f1d359fdmr18115805ad.52.1741139688023; Tue, 04 Mar 2025 17:54:48 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Atish Patra , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 32/59] target/riscv: Mask out upper sscofpmf bits during validation Date: Wed, 5 Mar 2025 11:52:40 +1000 Message-ID: <20250305015307.1463560-33-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::633; envelope-from=alistair23@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140144321019000 Content-Type: text/plain; charset="utf-8" From: Atish Patra As per the ISA definition, the upper 8 bits in hpmevent are defined by Sscofpmf for privilege mode filtering and overflow bits while the lower 56 bits are desginated for platform specific hpmevent values. For the reset case, mhpmevent value should have zero in lower 56 bits. Software may set the OF bit to indicate disable interrupt. Ensure that correct value is checked after masking while clearing the event encodings. Reviewed-by: Daniel Henrique Barboza Acked-by: Alistair Francis Signed-off-by: Atish Patra Message-ID: <20250206-pmu_minor_fixes-v2-2-1bb0f4aeb8b4@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c index cf713663ee..0408f96e6a 100644 --- a/target/riscv/pmu.c +++ b/target/riscv/pmu.c @@ -390,7 +390,7 @@ int riscv_pmu_update_event_map(CPURISCVState *env, uint= 64_t value, * Expected mhpmevent value is zero for reset case. Remove the current * mapping. */ - if (!value) { + if (!(value & MHPMEVENT_IDX_MASK)) { g_hash_table_foreach_remove(cpu->pmu_event_ctr_map, pmu_remove_event_map, GUINT_TO_POINTER(ctr_idx)); --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140405; cv=none; d=zohomail.com; s=zohoarc; b=mEKHyDwYEDI8edbAdLoVJdFL4wIHEnpUI6xCn5a5MQjvkPVdg5NLgVoGXJV9yoaX7mZYD65xijPum7Enj1pZVKs2IJfcx1G9uWH71VuKTMZtwRcGKgI7xjiLb0tua1OSWu9nCc3Zcs3HgEwtLTlZW1jqY1UOEH0zq7KWbQv7p3k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140405; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=rqop8PPVqxF5+D/vsaWdvEQZlfBAqDTL4yZtnsLbGME=; b=ebKIegvVmkNt+jJdH3cv8uN9ONl5uYhDwxPH7754JPWBclTTQNPnAHKpOMnxRjhZl1Q3Ri5V0RZwRjVvil7GQQtv4IVCV+BvJVreEXtNYmnZnClS8rDszbKEhnd7g+s5UGoLNTOZcXbdPDQwniolaV6Jc2+mJIaUiyh1jPEY4Ng= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140405908514.6400098359969; Tue, 4 Mar 2025 18:06:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyV-0005vh-50; Tue, 04 Mar 2025 20:55:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyI-0005HX-7z for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:55 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyG-00008n-Kv for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:53 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-2235c5818a3so88430055ad.1 for ; Tue, 04 Mar 2025 17:54:52 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139691; x=1741744491; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rqop8PPVqxF5+D/vsaWdvEQZlfBAqDTL4yZtnsLbGME=; b=bIdNTOw/6FNTGGK/NNcxFDJyIkdty2hyGInqicnRKmZmgv0TKHlLzw4bzjKTj4Y3NH RVX8CPKmzV/j3LDcZXnr050WoTmoY2oUpcsq2VSVYTtAL8IakzXOlvesjV8qcD6DOzN2 KjFl15q5V/nGfjXcSTLNveDoUvKcx8HKP2PZhPXZDv3AGczCsD/afqnNJc2E0ED/yGvC nmiD3uc9pCkmSr1blLXqTAUdihdupmvIymB4/UoCTVkChV2jVN/cnsI7xxva3p5Dgt0z xVsPIdi+FbuoLin7cmIkeK2NGM3Xb8yEjgtZIzBWpawnsTwbOncQjULliscJwJ2crrlB uvFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139691; x=1741744491; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rqop8PPVqxF5+D/vsaWdvEQZlfBAqDTL4yZtnsLbGME=; b=w4J0XA5YWfYqOt776V/071posCkWJyk/w614+zZAcAFhMidEJdeg2klGPqZVEfxd4A nq+mu8JDIq/jahJtk6vwnuEUlJp6NKQdqA6/TCQvSPxXdgtGKNTLTCvOGVBhY291aQlX 7mgiLBD5VSMjhw/gzH3u1PmlzDArHVp7ny+OUrc+8Pp4MiAsiik8C/OOIgIu1wFU9Hkm ae0jP6Kkbmiads3PLOu8hpKtfAtxQYRsMPIzB6gM1lvj4wPSP5GLb/CXsTHf35elAnuE ch1jQfAglAgtC3MGxRU81ON4c71pdcLO/r9cXEkYTxl5uP+lWdsQ2c5Vf4DaZMHxueAD eL8w== X-Gm-Message-State: AOJu0YzFGswUpoypDGItew59LP6YgAjIx/cjSUJokarO4GxEFtwaECak 7Ay9Xsr4BAUgmMX00TMtIH5u4E1Wzmb/LWim0tPiX64hI1ZWtZjk0G1dxra3lmg= X-Gm-Gg: ASbGncvEVcef1LOQhOfDz9dssKKiLYCWMBF7ZjEijrCg37+pL1dAKs9LgmRVacbvB7r Vmz8ts/zhyIswboRWX3xrmgO5p4vp3WovIpQ05dyLivcT9vqUGdkH54FzSXGEVXPTcuOdqQWp3O eb/HgnZVXEYbUniRGQAyYIKwB492RIlS1cld2UpXCqFqWVQ1W7/LkT6sJ6ozUTuFw8Zp38xVuyv ERrd3S7f39DIGL16nbqK4o9EAXflWM36nHlB9Hmkr1mgJAauDMtUlOXPX2IxZqofbRTHZjHQ2Fl QkootgC+QRc2HkC0KJ49eTy9z+kPVgQKN6u3n9k/UTL3bhQxCnv2AsI/WFIeU/Iw9MxtMJTXnN5 qka8r69SoDRgx3QqJshO36+JICLVPxe7yK21rKAwcwA3SdhY/xFg= X-Google-Smtp-Source: AGHT+IHykGsT2wYYk3LARp1CvuXPloYxEdvmquBWEQf2a/fcgcKCieRQejAwC3HL26TFjOeCXym8rA== X-Received: by 2002:a17:902:f691:b0:223:5a6e:b10 with SMTP id d9443c01a7336-223f1ca5a0cmr20739215ad.27.1741139690994; Tue, 04 Mar 2025 17:54:50 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 33/59] target/riscv: remove warnings about Smdbltrp/Smrnmi being disabled Date: Wed, 5 Mar 2025 11:52:41 +1000 Message-ID: <20250305015307.1463560-34-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140407440019100 From: Cl=C3=A9ment L=C3=A9ger As raised by Richard Henderson, these warnings are displayed in user only as well. Since they aren't really useful for the end-user, remove them and add a "TODO" note in the leading comments. Signed-off-by: Cl=C3=A9ment L=C3=A9ger Reviewed-by: Daniel Henrique Barboza Message-ID: <20250213145640.117275-1-cleger@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/tcg/tcg-cpu.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index cb9b504012..53c9998553 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1458,22 +1458,20 @@ static void riscv_init_max_cpu_extensions(Object *o= bj) } =20 /* - * ext_smrnmi requires OpenSBI changes that our current + * TODO: ext_smrnmi requires OpenSBI changes that our current * image does not have. Disable it for now. */ if (cpu->cfg.ext_smrnmi) { isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_smrnmi), false); - qemu_log("Smrnmi is disabled in the 'max' type CPU\n"); } =20 /* - * ext_smdbltrp requires the firmware to clear MSTATUS.MDT on startup = to - * avoid generating a double trap. OpenSBI does not currently support = it, + * TODO: ext_smdbltrp requires the firmware to clear MSTATUS.MDT on st= artup + * to avoid generating a double trap. OpenSBI does not currently suppo= rt it, * disable it for now. */ if (cpu->cfg.ext_smdbltrp) { isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_smdbltrp), false); - qemu_log("Smdbltrp is disabled in the 'max' type CPU\n"); } } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140403; cv=none; d=zohomail.com; s=zohoarc; b=jC7mF4NRNeoWyUJxx26RpXmbfpF6csWQz+hxqBP0hOFXhSRCHVys+41GPff3+szpz5kwF1ZFJ74xGJUpadhzMnVUUO8RyvR8qvnk4d1+359ChxDq2PpSJO2h0CDw6eUYSv1u5HPmIgcQx3HlrUwQTP9h90V0Yn+aN16YcNDGV8M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140403; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lub386ALtAm+GMJ0XC8M1yYYevXSKd2evXQR+VIuGA0=; b=Tl39BCKbtoa6SOc+d2QgIQjmDCd0npjaMcxG5HkGzQux1IykUjmKy7ihLjIRNG3ttn8KddX/g7eb8x9e09elU/p4eZliyGHJUNFqvC8tRVPNlZejbZHBNqID7A4PHGxgb4D+iBfSnSRlJWlHO+Z3AhTX5rcBxDYjVv8Ip9Sqj7Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140403064277.06770504855206; Tue, 4 Mar 2025 18:06:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyV-0005wS-51; Tue, 04 Mar 2025 20:55:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyL-0005Kc-Ia for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:58 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyJ-000099-9i for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:57 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-22113560c57so118911405ad.2 for ; Tue, 04 Mar 2025 17:54:54 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139694; x=1741744494; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lub386ALtAm+GMJ0XC8M1yYYevXSKd2evXQR+VIuGA0=; b=nlusZ5nT76sz086bqH1+ltE5BVTmC7PZAC7IFQYlh6zYDQIUGvROZ115sRLE75nhH4 sefj/lI4tw5dV6yHdBczeaNMoyGdr0AEMU01pRa5wLFoPMCwKAqrpFxmB7zI+0X7qcaQ /RhDf9dvjMPad2NZvhEW8uNuqBS3mC97CHB1H2Eo5ULE8FEI2ANgV9+b+425eLO1C+sz VrXpEr6Wc7QG4nbXLAfCLUVcsEYP21gtCBQ0pyXX4V18GXpex7Pe56/yyjSyaPkjj70r asip9X/J+4C+mjokq1SDa1GB3SGSV6OgDpwLgqWGbRS6AMjYXhNHL9M3M5Pyu1Szy3M/ C0pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139694; x=1741744494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lub386ALtAm+GMJ0XC8M1yYYevXSKd2evXQR+VIuGA0=; b=H+WiUmutfRf9f7veT5lltcW5IN2RfPy8Cw/KGPcbrR/hWT9ETxC/EhTcEsGyvsp2cI u/W2LBb1GXL79saPz7RHkxaXgGtm7HSTX+/3A5i416earfE21jtXQBuhka4rsFgQTFF3 06YE6wPLqgqkcDBX/bzL9MouXus6DbPus38nV8+yzEpdCC98hNrV77c8+u35RLeWoT1d +AP6W0BISk0+onVrj0Pa+590Wq/0h57TeKaTndOeYqblNSa3cl+y4KsNjoGtP6kUoShn yCW9/uI078578/FfOfYQteFbwxF9pZSUVerJxcZsrwEvGchhMyQlORLBxP8MSmmB1sYu eqVg== X-Gm-Message-State: AOJu0YxlUAtQ1sNsOwtqBQEneBkybWgWQ72veToVe8go0ZXBrVRZDdOa T+6xFSkIw0G0aIyApzGZb0kNHnVBtIpBIRv9QU6lKzEq8rnk0JD2N2MagPtAPSo= X-Gm-Gg: ASbGncvQz+okdNModH0cQnuLXLsn5ul+N6oOsos28hVXO85VvArp+LfjwnWi2oGTl1M t9KK+NQAk/0IkQMxRgSD1nWeFTTBY2JG6633ZY+Rw3APN7EYVgdX7VMawgliq1mbHXt7MMGJf+c VCzSNX4SKBXJbo2CiccNpMvm+IVPhYhBaGQzULXit7RJqmy9oOxtupXWkkmv48HWMVWtf2WolH4 dsvG/lj97JjjQAnR45RtLeIdXliGN7m0Mia2gIYL3sgQI28OhnsN5HgThxHTUaVRKB9ebbkXDT0 5oLPYZ+g4+o+5r1SMZh2d2PYvroMfvwd998a2q7wLTtQRZecbSYmJUTSgAx93+kJE1rJFkERddO co9qxB9m2ZLlavpPUgAcAVvuzHQd5PGGFhmcGRpZz0mW34zGQ4E0= X-Google-Smtp-Source: AGHT+IGWeNK8w8fx0B0BBhn0sYN5MD9krY/0t675CiZjElkDuNGXIvSIxHeAxE9y0RusU/4blGrebg== X-Received: by 2002:a17:902:e5c4:b0:223:90ec:80f0 with SMTP id d9443c01a7336-223f1c9b4e0mr25342315ad.22.1741139693708; Tue, 04 Mar 2025 17:54:53 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rajnesh Kanwal , Alistair Francis Subject: [PULL 34/59] target/riscv: Add support to access ctrsource, ctrtarget, ctrdata regs. Date: Wed, 5 Mar 2025 11:52:42 +1000 Message-ID: <20250305015307.1463560-35-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140405553019100 Content-Type: text/plain; charset="utf-8" From: Rajnesh Kanwal CTR entries are accessed using ctrsource, ctrtarget and ctrdata registers using smcsrind/sscsrind extension. This commits extends the csrind extension to support CTR registers. ctrsource is accessible through xireg CSR, ctrtarget is accessible through xireg1 and ctrdata is accessible through xireg2 CSR. CTR supports maximum depth of 256 entries which are accessed using xiselect range 0x200 to 0x2ff. This commits also adds properties to enable CTR extension. CTR can be enabled using smctr=3Dtrue and ssctr=3Dtrue now. Signed-off-by: Rajnesh Kanwal Acked-by: Alistair Francis Message-ID: <20250212-b4-ctr_upstream_v6-v7-1-4e8159ea33bf@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 26 ++++++- target/riscv/csr.c | 150 ++++++++++++++++++++++++++++++++++++- target/riscv/tcg/tcg-cpu.c | 11 +++ 3 files changed, 185 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 3624ffb6d9..a4ee381a07 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -216,6 +216,8 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(ssu64xl, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(supm, PRIV_VERSION_1_13_0, ext_supm), ISA_EXT_DATA_ENTRY(svade, PRIV_VERSION_1_11_0, ext_svade), + ISA_EXT_DATA_ENTRY(smctr, PRIV_VERSION_1_12_0, ext_smctr), + ISA_EXT_DATA_ENTRY(ssctr, PRIV_VERSION_1_12_0, ext_ssctr), ISA_EXT_DATA_ENTRY(svadu, PRIV_VERSION_1_12_0, ext_svadu), ISA_EXT_DATA_ENTRY(svinval, PRIV_VERSION_1_12_0, ext_svinval), ISA_EXT_DATA_ENTRY(svnapot, PRIV_VERSION_1_12_0, ext_svnapot), @@ -1592,6 +1594,8 @@ const RISCVCPUMultiExtConfig riscv_cpu_extensions[] = =3D { MULTI_EXT_CFG_BOOL("smcdeleg", ext_smcdeleg, false), MULTI_EXT_CFG_BOOL("sscsrind", ext_sscsrind, false), MULTI_EXT_CFG_BOOL("ssccfg", ext_ssccfg, false), + MULTI_EXT_CFG_BOOL("smctr", ext_smctr, false), + MULTI_EXT_CFG_BOOL("ssctr", ext_ssctr, false), MULTI_EXT_CFG_BOOL("zifencei", ext_zifencei, true), MULTI_EXT_CFG_BOOL("zicfilp", ext_zicfilp, false), MULTI_EXT_CFG_BOOL("zicfiss", ext_zicfiss, false), @@ -2856,6 +2860,26 @@ static RISCVCPUImpliedExtsRule SSPM_IMPLIED =3D { }, }; =20 +static RISCVCPUImpliedExtsRule SMCTR_IMPLIED =3D { + .ext =3D CPU_CFG_OFFSET(ext_smctr), + .implied_misa_exts =3D RVS, + .implied_multi_exts =3D { + CPU_CFG_OFFSET(ext_sscsrind), + + RISCV_IMPLIED_EXTS_RULE_END + }, +}; + +static RISCVCPUImpliedExtsRule SSCTR_IMPLIED =3D { + .ext =3D CPU_CFG_OFFSET(ext_ssctr), + .implied_misa_exts =3D RVS, + .implied_multi_exts =3D { + CPU_CFG_OFFSET(ext_sscsrind), + + RISCV_IMPLIED_EXTS_RULE_END + }, +}; + RISCVCPUImpliedExtsRule *riscv_misa_ext_implied_rules[] =3D { &RVA_IMPLIED, &RVD_IMPLIED, &RVF_IMPLIED, &RVM_IMPLIED, &RVV_IMPLIED, NULL @@ -2874,7 +2898,7 @@ RISCVCPUImpliedExtsRule *riscv_multi_ext_implied_rule= s[] =3D { &ZVFH_IMPLIED, &ZVFHMIN_IMPLIED, &ZVKN_IMPLIED, &ZVKNC_IMPLIED, &ZVKNG_IMPLIED, &ZVKNHB_IMPLIED, &ZVKS_IMPLIED, &ZVKSC_IMPLIED, &ZVKSG_IMPLIED, &SSCFG_IMPLIED, - &SUPM_IMPLIED, &SSPM_IMPLIED, + &SUPM_IMPLIED, &SSPM_IMPLIED, &SMCTR_IMPLIED, &SSCTR_IMPLIED, NULL }; =20 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index ab295d2ef3..0ebcca4597 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -2427,6 +2427,13 @@ static bool xiselect_cd_range(target_ulong isel) return (ISELECT_CD_FIRST <=3D isel && isel <=3D ISELECT_CD_LAST); } =20 +static bool xiselect_ctr_range(int csrno, target_ulong isel) +{ + /* MIREG-MIREG6 for the range 0x200-0x2ff are not used by CTR. */ + return CTR_ENTRIES_FIRST <=3D isel && isel <=3D CTR_ENTRIES_LAST && + csrno < CSR_MIREG; +} + static int rmw_iprio(target_ulong xlen, target_ulong iselect, uint8_t *iprio, target_ulong *val, target_ulong new_val, @@ -2472,6 +2479,124 @@ static int rmw_iprio(target_ulong xlen, return 0; } =20 +static int rmw_ctrsource(CPURISCVState *env, int isel, target_ulong *val, + target_ulong new_val, target_ulong wr_mask) +{ + /* + * CTR arrays are treated as circular buffers and TOS always points to= next + * empty slot, keeping TOS - 1 always pointing to latest entry. Given = entry + * 0 is always the latest one, traversal is a bit different here. See = the + * below example. + * + * Depth =3D 16. + * + * idx [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [A] [B] [C] [D] [E] = [F] + * TOS H + * entry 6 5 4 3 2 1 0 F E D C B A 9 8 = 7 + */ + const uint64_t entry =3D isel - CTR_ENTRIES_FIRST; + const uint64_t depth =3D 16 << get_field(env->sctrdepth, SCTRDEPTH_MAS= K); + uint64_t idx; + + /* Entry greater than depth-1 is read-only zero */ + if (entry >=3D depth) { + if (val) { + *val =3D 0; + } + return 0; + } + + idx =3D get_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK); + idx =3D (idx - entry - 1) & (depth - 1); + + if (val) { + *val =3D env->ctr_src[idx]; + } + + env->ctr_src[idx] =3D (env->ctr_src[idx] & ~wr_mask) | (new_val & wr_m= ask); + + return 0; +} + +static int rmw_ctrtarget(CPURISCVState *env, int isel, target_ulong *val, + target_ulong new_val, target_ulong wr_mask) +{ + /* + * CTR arrays are treated as circular buffers and TOS always points to= next + * empty slot, keeping TOS - 1 always pointing to latest entry. Given = entry + * 0 is always the latest one, traversal is a bit different here. See = the + * below example. + * + * Depth =3D 16. + * + * idx [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [A] [B] [C] [D] [E] = [F] + * head H + * entry 6 5 4 3 2 1 0 F E D C B A 9 8 = 7 + */ + const uint64_t entry =3D isel - CTR_ENTRIES_FIRST; + const uint64_t depth =3D 16 << get_field(env->sctrdepth, SCTRDEPTH_MAS= K); + uint64_t idx; + + /* Entry greater than depth-1 is read-only zero */ + if (entry >=3D depth) { + if (val) { + *val =3D 0; + } + return 0; + } + + idx =3D get_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK); + idx =3D (idx - entry - 1) & (depth - 1); + + if (val) { + *val =3D env->ctr_dst[idx]; + } + + env->ctr_dst[idx] =3D (env->ctr_dst[idx] & ~wr_mask) | (new_val & wr_m= ask); + + return 0; +} + +static int rmw_ctrdata(CPURISCVState *env, int isel, target_ulong *val, + target_ulong new_val, target_ulong wr_mask) +{ + /* + * CTR arrays are treated as circular buffers and TOS always points to= next + * empty slot, keeping TOS - 1 always pointing to latest entry. Given = entry + * 0 is always the latest one, traversal is a bit different here. See = the + * below example. + * + * Depth =3D 16. + * + * idx [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [A] [B] [C] [D] [E] = [F] + * head H + * entry 6 5 4 3 2 1 0 F E D C B A 9 8 = 7 + */ + const uint64_t entry =3D isel - CTR_ENTRIES_FIRST; + const uint64_t mask =3D wr_mask & CTRDATA_MASK; + const uint64_t depth =3D 16 << get_field(env->sctrdepth, SCTRDEPTH_MAS= K); + uint64_t idx; + + /* Entry greater than depth-1 is read-only zero */ + if (entry >=3D depth) { + if (val) { + *val =3D 0; + } + return 0; + } + + idx =3D get_field(env->sctrstatus, SCTRSTATUS_WRPTR_MASK); + idx =3D (idx - entry - 1) & (depth - 1); + + if (val) { + *val =3D env->ctr_data[idx]; + } + + env->ctr_data[idx] =3D (env->ctr_data[idx] & ~mask) | (new_val & mask); + + return 0; +} + static RISCVException rmw_xireg_aia(CPURISCVState *env, int csrno, target_ulong isel, target_ulong *val, target_ulong new_val, target_ulong wr_mask) @@ -2624,6 +2749,27 @@ done: return ret; } =20 +static int rmw_xireg_ctr(CPURISCVState *env, int csrno, + target_ulong isel, target_ulong *val, + target_ulong new_val, target_ulong wr_mask) +{ + if (!riscv_cpu_cfg(env)->ext_smctr && !riscv_cpu_cfg(env)->ext_ssctr) { + return -EINVAL; + } + + if (csrno =3D=3D CSR_SIREG || csrno =3D=3D CSR_VSIREG) { + return rmw_ctrsource(env, isel, val, new_val, wr_mask); + } else if (csrno =3D=3D CSR_SIREG2 || csrno =3D=3D CSR_VSIREG2) { + return rmw_ctrtarget(env, isel, val, new_val, wr_mask); + } else if (csrno =3D=3D CSR_SIREG3 || csrno =3D=3D CSR_VSIREG3) { + return rmw_ctrdata(env, isel, val, new_val, wr_mask); + } else if (val) { + *val =3D 0; + } + + return 0; +} + /* * rmw_xireg_csrind: Perform indirect access to xireg and xireg2-xireg6 * @@ -2635,11 +2781,13 @@ static int rmw_xireg_csrind(CPURISCVState *env, int= csrno, target_ulong isel, target_ulong *val, target_ulong new_val, target_ulong wr_mask) { - int ret =3D -EINVAL; bool virt =3D csrno =3D=3D CSR_VSIREG ? true : false; + int ret =3D -EINVAL; =20 if (xiselect_cd_range(isel)) { ret =3D rmw_xireg_cd(env, csrno, isel, val, new_val, wr_mask); + } else if (xiselect_ctr_range(csrno, isel)) { + ret =3D rmw_xireg_ctr(env, csrno, isel, val, new_val, wr_mask); } else { /* * As per the specification, access to unimplented region is undef= ined diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 53c9998553..929ed5fd2c 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -681,6 +681,17 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, = Error **errp) return; } =20 + if ((cpu->cfg.ext_smctr || cpu->cfg.ext_ssctr) && + (!riscv_has_ext(env, RVS) || !cpu->cfg.ext_sscsrind)) { + if (cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_smctr)) || + cpu_cfg_ext_is_user_set(CPU_CFG_OFFSET(ext_ssctr))) { + error_setg(errp, "Smctr and Ssctr require S-mode and Sscsrind"= ); + return; + } + cpu->cfg.ext_smctr =3D false; + cpu->cfg.ext_ssctr =3D false; + } + /* * Disable isa extensions based on priv spec after we * validated and set everything we need. --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140148; cv=none; d=zohomail.com; s=zohoarc; b=EEvDK+xEGn1CpBUYp/s2rBhNcu0cZwQaMHCnyxQ+Jad8slJzHOJuyozadGMurOMa0YBh+nBT/CgGbhOzKCp3eh5SHd7qQsSfjDrgNgBwEirljSIyeeZse0G6pvEo2hoqQtjSiMm8EDcqyflJ6uxlVMxdozRAkyOhiYlv17q79l8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140148; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=1SZhtP1YziV6oMY93SHLjzBNolt0hd4qce4gnNXPEjc=; b=UmiG37F6W9oXVHEk9+6SmBIosNBohCGv2XaW8pfIT4h+OD7um+9Ur/VOgnlRq6oOWuZ9qPiNj3sV9Ba/wKdg5s7kEMv46MGjVFg4uuZPiSEwARRZxmU8vJQZWZ6fdqBt7Iu80ulOdbg7pz6H1epNsEwA7F5UMlr4xkBHeAfzBQo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114014837494.38221919252965; Tue, 4 Mar 2025 18:02:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyb-0006Yj-Ee; Tue, 04 Mar 2025 20:55:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyO-0005V6-0S for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:00 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyM-00009l-Bk for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:54:59 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2234e4b079cso115243135ad.1 for ; Tue, 04 Mar 2025 17:54:57 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139697; x=1741744497; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1SZhtP1YziV6oMY93SHLjzBNolt0hd4qce4gnNXPEjc=; b=Xh5ORFq0dhRKD+Z7ZkjEtWzMeNmbUYSIhOI5JwEFMlop6VdcC/YdztbDeQP4100rCQ Clpe4D6gjGH92CvBEiISgyjz5FQj3rae6PZT4AvAI8xU2jhGW4dVOSo2jBqQHbkh+ail fKYZ1bi+xAc5s0NESHDDLSGAFMbIynWCzRg4xTls24dWxcQUpOl2ZwyviQZD7SAvepUs hLTYJjbzkR9q3xpYQXdF0UgT2FlgI3ZUXos05XgV/OyPV2YGZCKJ8LDXEBaT/DnX0aT+ qFonbIn/t0ZivRX+PTU7rMvrPxDKc0+XMd8UySIfR5T8L7ldlUdscF3loH4c4dLEbphI osuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139697; x=1741744497; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1SZhtP1YziV6oMY93SHLjzBNolt0hd4qce4gnNXPEjc=; b=uG9q2INDDRZ/EcfXnL8oypL+kaPZYkd4g0HLlIo5wLIxpOCuLrxNjPYVkp8azIAenI lKjQUsCG+3sNe9hmQqyfYZ5x9iMCblC91gLtbO+9D4mwegiRegkIjXvmts0m3bUSOWQh 6AhaLaozU7ZH+J1VXC6VOeXz2AKAkFkBFY++Q3KH2j6EQxDdhdb7p/IpVcgPXY89ZVlk IzMH0aq2D05Az/+8M+KD3YGtC2F0TX9aLllzkji30rUEZ9tQT36ZS2iBZyVqXQirkymT dwOBfYD4UNfWx0b2j9VdCnCaYsCi/RAY+dHMiH0TvW1kcm52alm4wH7yJqYP3sdHHEfT MebQ== X-Gm-Message-State: AOJu0Yx0LbrI/3dzlgbe2x6Z6keXOuiiw9MpqOq3SPzsUjXdjOuRCSiq i7Zqco05kBF/T1GduLILntlO/Ek+fpqwqJUIicC6CqZ01kc6nIWaf4D08CqMETY= X-Gm-Gg: ASbGncvy/OeLJIvUQsT2WwZiw1/asGJCdxZ/DFYMW79z1tGGr5ny7yERfQF1mpn3tfw 6XhjzHPMlUhP0Vw5+07kwjbQnTLasmGs//dIqnH50yG6EifNb+6HYQDaQlKr+ef/8HtdMlBy4K5 mQcJEvskVnhrTRU5et/nWn7liLVwAoIm44EY6w+wzh8Zqayw1XjYhUI7WdftW3NtqaYPP7dHdbK Qf4mzwObQqK9PLczETv0RpqkBqlr4YF8ubsyubG6HdewG7cvzaJ687jPMBP2pIw37fmqXH8zZ64 jIQ/LNJp+7hCV4CTTw2yGFMvzUte5b6sMyYUVO4dKcybN1YREKJhsmdOCEmHX/pYxnabdJfQ8hu zias8s9GJixqn0+ziw86qvf7Darmb4y/Zpx0OnIljrmfvexKBk0E= X-Google-Smtp-Source: AGHT+IHJrMrUM/MXxaJIERX2pWevGA57YbDNrAN3ct7SOqI0kQJ+mn2z4FdOMGJugknoKN5dyjHIVA== X-Received: by 2002:a17:902:d2c1:b0:223:66bc:f1de with SMTP id d9443c01a7336-223f1cdace9mr22614255ad.21.1741139696654; Tue, 04 Mar 2025 17:54:56 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Rob Bradford , Alistair Francis , Daniel Henrique Barboza Subject: [PULL 35/59] target/riscv: Respect mseccfg.RLB bit for TOR mode PMP entry Date: Wed, 5 Mar 2025 11:52:43 +1000 Message-ID: <20250305015307.1463560-36-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140150352019000 Content-Type: text/plain; charset="utf-8" From: Rob Bradford When running in TOR mode (Top of Range) the next PMP entry controls whether the entry is locked. However simply checking if the PMP_LOCK bit is set is not sufficient with the Smepmp extension which now provides a bit (mseccfg.RLB (Rule Lock Bypass)) to disregard the lock bits. In order to respect this bit use the convenience pmp_is_locked() function rather than directly checking PMP_LOCK since this function checks mseccfg.RLB. Signed-off-by: Rob Bradford Reviewed-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza Message-ID: <20250210153713.343626-1-rbradford@rivosinc.com> Signed-off-by: Alistair Francis --- target/riscv/pmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index a185c246d6..85ab270dad 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -524,7 +524,7 @@ void pmpaddr_csr_write(CPURISCVState *env, uint32_t add= r_index, uint8_t pmp_cfg =3D env->pmp_state.pmp[addr_index + 1].cfg_reg; is_next_cfg_tor =3D PMP_AMATCH_TOR =3D=3D pmp_get_a_field(pmp_= cfg); =20 - if (pmp_cfg & PMP_LOCK && is_next_cfg_tor) { + if (pmp_is_locked(env, addr_index + 1) && is_next_cfg_tor) { qemu_log_mask(LOG_GUEST_ERROR, "ignoring pmpaddr write - pmpcfg + 1 locked\= n"); return; --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139736; cv=none; d=zohomail.com; s=zohoarc; b=f8Uqq89twkO+bcfiFPD5XUsa+SLXt7C5596+lMKiz/FEMjZGKFLZ/R0YDpijbvkRsgZ0uk8VRKscTilD3OabTxdXV+Cry3kdB8/8Cga/uZswWxL7nAC5j/Vw3ZkHiKi5jn+FuceWPfil0xh9AwjjXk/mjDlXel6kWvV4ZywI1jc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139736; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ibhnpkmuVp9eXDuKrzAQioC6/yCyg6gSMoQoNDKUnis=; b=IZgMTJW8CtuKgQefFipIDRG81qzgAh1AlmlfJKZUaGSvkpckRslOjYRTZQdE6KpMTyaHKyAC+BHOm9FChPDmpPe8L/9sX9SPvQze5wOfauCkh5aeP8U0oLkfIjpqrQWJwfjMMO4FB21/IxbKdF4fC00LS7MjYZyjYis1bPGRiA4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17411397365208.00920449733485; Tue, 4 Mar 2025 17:55:36 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdya-0006Nz-On; Tue, 04 Mar 2025 20:55:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyS-0005lf-Bh for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:05 -0500 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyP-0000AK-AY for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:04 -0500 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-22349dc31bcso110909385ad.3 for ; Tue, 04 Mar 2025 17:55:00 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:54:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139700; x=1741744500; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ibhnpkmuVp9eXDuKrzAQioC6/yCyg6gSMoQoNDKUnis=; b=U6hlA5i8rvIdNl+Rx9nHwL/MIYRZB6/tpdoxSlQDJLJQV0UV+A8K3iVny6ohta+bfO X19G3X/H8yzEDYrqn97ywk1YsDflcPO7SMf66uWvtcPlzoGt4iN2Pi5F9qyvDRwXHUTe aAknrbPEsErJzvslywLT/sCYlLpuKJE8mnftaU0RWAGW6h2j75XpJ2mj+9ggyyBghVZ2 kMps076Ob+kRCvHsYEskydaE7oneWlAAeZxK+TWGKK/fdExMebteGTJs9sdVTDTY6vgu bS2QUzd7gmO8eUWwCOfAuHwNjrQAFGhv4fe9WsACZJGGQ5QLSt4wG2a9GF7185fjch0L sF/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139700; x=1741744500; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ibhnpkmuVp9eXDuKrzAQioC6/yCyg6gSMoQoNDKUnis=; b=JCTDMSzjk/pZ1xnZkOMxyMjU4EIoiSr2FdDfmQAGDrA6EcDNfWjEGq9B10VGxiAlrk /jN6WkMsWjr9kQEJ4DXb+S3ewg06fG6H5oiwYEVCHlTQGGbsi5D4fej7wpXEMqD73EOa CCsPFUOBybN2qfYvZd2lbvXcOjmBIUXBnHM0yCikd21MHBgn7l2DXddGXrbIP5lv5PYW fhvobQYkVlR8m550osiULZ4jvdrQHYg3PT0PEjKIO0QCHQorQ3DGs5klCCI+6Vv8HN14 tOyiyWTUPuYlvBoJG/P3F1kcWeE+itjG5vTH2v59Qf1HFXZF/iOvaSJ6kzH73mWfDLmV DNkw== X-Gm-Message-State: AOJu0YwB0QCbBuyFcAicJ+y8Mma5YLOv2TlKNHeOi7y3bAgbXY0CpxuY x+pDmxZA/FgCxNCiIhGRMk3SorvleGlmSm1j6cXGNIFwMofm8q/3ARLvwF++lFs= X-Gm-Gg: ASbGncuIofH1TIz48DTgtX/j3sowhP5/C+kbpmC6fgfn4KBwHZWGtsnVtRm0+vgiK+Q inn0Fy91Wv/GQBoKB1anAlDeaa3pgOAYYz98e9PQTB/oJr3u7/Ewj5U5CN7aO1ljhdV2i0MkYn3 RQEzlypmjGw7yREw4jpYX4fw3f54/KyK93Td2S/I8PLBMd0FK2Qgxy6mLi8BIGUrOxI0gLH3NoI KSn03iHLqzI2uHYH7pI2XciaXLCZSQHo4taYYuq8rVfr5NMna3Hb4HUBsyFVDXqccDsw5SgAKml NFZVU5ipyxDDPX5bDSyRIugaHQ2rBqYkOM57L1uSBKMCjxzVLuwROdMLUR+bGxBUBcbogxNB9/k GtN+DVwwNddHjYRLM2fNY3gCzmkuxeA62zfB3AA+/l86XlmCdoME= X-Google-Smtp-Source: AGHT+IHSroadFcml7NhExpJfz/VcglpTmAIJrFQ+4cxRxX1F1YOSeUPPeh0Xv6svqFsJkokns+FsmQ== X-Received: by 2002:a17:903:32c8:b0:21f:4144:a06f with SMTP id d9443c01a7336-223f1c8097emr23135475ad.13.1741139699476; Tue, 04 Mar 2025 17:54:59 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 36/59] linux-headers: Update to Linux v6.14-rc3 Date: Wed, 5 Mar 2025 11:52:44 +1000 Message-ID: <20250305015307.1463560-37-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139737598019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Update headers to retrieve the latest KVM caps for RISC-V. Signed-off-by: Daniel Henrique Barboza Message-ID: <20250221153758.652078-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- include/standard-headers/linux/ethtool.h | 4 + include/standard-headers/linux/fuse.h | 76 ++++++++++++++++++- .../linux/input-event-codes.h | 1 + include/standard-headers/linux/pci_regs.h | 16 ++-- include/standard-headers/linux/virtio_pci.h | 14 ++++ linux-headers/asm-arm64/kvm.h | 3 - linux-headers/asm-loongarch/kvm_para.h | 1 + linux-headers/asm-riscv/kvm.h | 7 +- linux-headers/asm-x86/kvm.h | 1 + linux-headers/linux/iommufd.h | 35 ++++++--- linux-headers/linux/kvm.h | 8 +- linux-headers/linux/stddef.h | 13 +++- linux-headers/linux/vduse.h | 2 +- 13 files changed, 146 insertions(+), 35 deletions(-) diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-he= aders/linux/ethtool.h index 67c47912e5..e83382531c 100644 --- a/include/standard-headers/linux/ethtool.h +++ b/include/standard-headers/linux/ethtool.h @@ -681,6 +681,8 @@ enum ethtool_link_ext_substate_module { * @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics * @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics * @ETH_SS_STATS_RMON: names of RMON statistics + * @ETH_SS_STATS_PHY: names of PHY(dev) statistics + * @ETH_SS_TS_FLAGS: hardware timestamping flags * * @ETH_SS_COUNT: number of defined string sets */ @@ -706,6 +708,8 @@ enum ethtool_stringset { ETH_SS_STATS_ETH_MAC, ETH_SS_STATS_ETH_CTRL, ETH_SS_STATS_RMON, + ETH_SS_STATS_PHY, + ETH_SS_TS_FLAGS, =20 /* add new constants above here */ ETH_SS_COUNT diff --git a/include/standard-headers/linux/fuse.h b/include/standard-heade= rs/linux/fuse.h index 889e12ad15..d303effb2a 100644 --- a/include/standard-headers/linux/fuse.h +++ b/include/standard-headers/linux/fuse.h @@ -220,6 +220,15 @@ * * 7.41 * - add FUSE_ALLOW_IDMAP + * 7.42 + * - Add FUSE_OVER_IO_URING and all other io-uring related flags and data + * structures: + * - struct fuse_uring_ent_in_out + * - struct fuse_uring_req_header + * - struct fuse_uring_cmd_req + * - FUSE_URING_IN_OUT_HEADER_SZ + * - FUSE_URING_OP_IN_OUT_SZ + * - enum fuse_uring_cmd */ =20 #ifndef _LINUX_FUSE_H @@ -251,7 +260,7 @@ #define FUSE_KERNEL_VERSION 7 =20 /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 41 +#define FUSE_KERNEL_MINOR_VERSION 42 =20 /** The node ID of the root inode */ #define FUSE_ROOT_ID 1 @@ -421,6 +430,7 @@ struct fuse_file_lock { * FUSE_HAS_RESEND: kernel supports resending pending requests, and the hi= gh bit * of the request ID indicates resend requests * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts + * FUSE_OVER_IO_URING: Indicate that client supports io-uring */ #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) @@ -467,6 +477,7 @@ struct fuse_file_lock { /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP #define FUSE_ALLOW_IDMAP (1ULL << 40) +#define FUSE_OVER_IO_URING (1ULL << 41) =20 /** * CUSE INIT request/reply flags @@ -1202,4 +1213,67 @@ struct fuse_supp_groups { uint32_t groups[]; }; =20 +/** + * Size of the ring buffer header + */ +#define FUSE_URING_IN_OUT_HEADER_SZ 128 +#define FUSE_URING_OP_IN_OUT_SZ 128 + +/* Used as part of the fuse_uring_req_header */ +struct fuse_uring_ent_in_out { + uint64_t flags; + + /* + * commit ID to be used in a reply to a ring request (see also + * struct fuse_uring_cmd_req) + */ + uint64_t commit_id; + + /* size of user payload buffer */ + uint32_t payload_sz; + uint32_t padding; + + uint64_t reserved; +}; + +/** + * Header for all fuse-io-uring requests + */ +struct fuse_uring_req_header { + /* struct fuse_in_header / struct fuse_out_header */ + char in_out[FUSE_URING_IN_OUT_HEADER_SZ]; + + /* per op code header */ + char op_in[FUSE_URING_OP_IN_OUT_SZ]; + + struct fuse_uring_ent_in_out ring_ent_in_out; +}; + +/** + * sqe commands to the kernel + */ +enum fuse_uring_cmd { + FUSE_IO_URING_CMD_INVALID =3D 0, + + /* register the request buffer and fetch a fuse request */ + FUSE_IO_URING_CMD_REGISTER =3D 1, + + /* commit fuse request result and fetch next request */ + FUSE_IO_URING_CMD_COMMIT_AND_FETCH =3D 2, +}; + +/** + * In the 80B command area of the SQE. + */ +struct fuse_uring_cmd_req { + uint64_t flags; + + /* entry identifier for commits */ + uint64_t commit_id; + + /* queue the command is for (queue index) */ + uint16_t qid; + uint8_t padding[6]; +}; + #endif /* _LINUX_FUSE_H */ diff --git a/include/standard-headers/linux/input-event-codes.h b/include/s= tandard-headers/linux/input-event-codes.h index 50b2b7497e..09ba0ad878 100644 --- a/include/standard-headers/linux/input-event-codes.h +++ b/include/standard-headers/linux/input-event-codes.h @@ -519,6 +519,7 @@ #define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center= */ #define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ #define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ +#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ =20 #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-h= eaders/linux/pci_regs.h index 1601c7ed5f..3445c4970e 100644 --- a/include/standard-headers/linux/pci_regs.h +++ b/include/standard-headers/linux/pci_regs.h @@ -533,7 +533,7 @@ #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link = end here */ #define PCI_EXP_LNKCAP 0x0c /* Link Capabilities */ -#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ +#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Max Link Speed (prior to PCIe r3= .0: Supported Link Speeds) */ #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */ #define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */ @@ -665,6 +665,7 @@ #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */ #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */ +#define PCI_EXP_DEVCAP2_EE_PREFIX_MAX 0x00c00000 /* Max End-End TLP Prefi= xes */ #define PCI_EXP_DEVCTL2 0x28 /* Device Control 2 */ #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */ #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disab= le */ @@ -789,10 +790,11 @@ /* Same bits as above */ #define PCI_ERR_CAP 0x18 /* Advanced Error Capabilities & Ctrl*/ #define PCI_ERR_CAP_FEP(x) ((x) & 0x1f) /* First Error Pointer */ -#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */ -#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */ -#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ -#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ +#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */ +#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */ +#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ +#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ +#define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Prese= nt */ #define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */ #define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */ #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting E= nable */ @@ -808,6 +810,7 @@ #define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ #define PCI_ERR_ROOT_AER_IRQ 0xf8000000 /* Advanced Error Interrupt Mess= age Number */ #define PCI_ERR_ROOT_ERR_SRC 0x34 /* Error Source Identification */ +#define PCI_ERR_PREFIX_LOG 0x38 /* TLP Prefix LOG Register (up to 16 bytes= ) */ =20 /* Virtual Channel */ #define PCI_VC_PORT_CAP1 0x04 @@ -1001,9 +1004,6 @@ #define PCI_ACS_CTRL 0x06 /* ACS Control Register */ #define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */ =20 -#define PCI_VSEC_HDR 4 /* extended cap - vendor-specific */ -#define PCI_VSEC_HDR_LEN_SHIFT 20 /* shift for length field */ - /* SATA capability */ #define PCI_SATA_REGS 4 /* SATA REGs specifier */ #define PCI_SATA_REGS_MASK 0xF /* location - BAR#/inline */ diff --git a/include/standard-headers/linux/virtio_pci.h b/include/standard= -headers/linux/virtio_pci.h index b177ed8972..91fec6f502 100644 --- a/include/standard-headers/linux/virtio_pci.h +++ b/include/standard-headers/linux/virtio_pci.h @@ -116,6 +116,8 @@ #define VIRTIO_PCI_CAP_PCI_CFG 5 /* Additional shared memory capability */ #define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8 +/* PCI vendor data configuration */ +#define VIRTIO_PCI_CAP_VENDOR_CFG 9 =20 /* This is the PCI capability header: */ struct virtio_pci_cap { @@ -130,6 +132,18 @@ struct virtio_pci_cap { uint32_t length; /* Length of the structure, in bytes. */ }; =20 +/* This is the PCI vendor data capability header: */ +struct virtio_pci_vndr_data { + uint8_t cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */ + uint8_t cap_next; /* Generic PCI field: next ptr. */ + uint8_t cap_len; /* Generic PCI field: capability length */ + uint8_t cfg_type; /* Identifies the structure. */ + uint16_t vendor_id; /* Identifies the vendor-specific format. */ + /* For Vendor Definition */ + /* Pads structure to a multiple of 4 bytes */ + /* Reads must not have side effects */ +}; + struct virtio_pci_cap64 { struct virtio_pci_cap cap; uint32_t offset_hi; /* Most sig 32 bits of offset */ diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h index dccd5d965f..ec1e82bdc8 100644 --- a/linux-headers/asm-arm64/kvm.h +++ b/linux-headers/asm-arm64/kvm.h @@ -43,9 +43,6 @@ #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 #define KVM_DIRTY_LOG_PAGE_OFFSET 64 =20 -#define KVM_REG_SIZE(id) \ - (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) - struct kvm_regs { struct user_pt_regs regs; /* sp =3D sp_el0 */ =20 diff --git a/linux-headers/asm-loongarch/kvm_para.h b/linux-headers/asm-loo= ngarch/kvm_para.h index 4ba4ad8db1..fd7f40713d 100644 --- a/linux-headers/asm-loongarch/kvm_para.h +++ b/linux-headers/asm-loongarch/kvm_para.h @@ -17,5 +17,6 @@ #define KVM_FEATURE_STEAL_TIME 2 /* BIT 24 - 31 are features configurable by user space vmm */ #define KVM_FEATURE_VIRT_EXTIOI 24 +#define KVM_FEATURE_USER_HCALL 25 =20 #endif /* _ASM_KVM_PARA_H */ diff --git a/linux-headers/asm-riscv/kvm.h b/linux-headers/asm-riscv/kvm.h index 3482c9a73d..f06bc5efcd 100644 --- a/linux-headers/asm-riscv/kvm.h +++ b/linux-headers/asm-riscv/kvm.h @@ -179,6 +179,9 @@ enum KVM_RISCV_ISA_EXT_ID { KVM_RISCV_ISA_EXT_SSNPM, KVM_RISCV_ISA_EXT_SVADE, KVM_RISCV_ISA_EXT_SVADU, + KVM_RISCV_ISA_EXT_SVVPTC, + KVM_RISCV_ISA_EXT_ZABHA, + KVM_RISCV_ISA_EXT_ZICCRSE, KVM_RISCV_ISA_EXT_MAX, }; =20 @@ -198,6 +201,7 @@ enum KVM_RISCV_SBI_EXT_ID { KVM_RISCV_SBI_EXT_VENDOR, KVM_RISCV_SBI_EXT_DBCN, KVM_RISCV_SBI_EXT_STA, + KVM_RISCV_SBI_EXT_SUSP, KVM_RISCV_SBI_EXT_MAX, }; =20 @@ -211,9 +215,6 @@ struct kvm_riscv_sbi_sta { #define KVM_RISCV_TIMER_STATE_OFF 0 #define KVM_RISCV_TIMER_STATE_ON 1 =20 -#define KVM_REG_SIZE(id) \ - (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) - /* If you need to interpret the index values, here is the key: */ #define KVM_REG_RISCV_TYPE_MASK 0x00000000FF000000 #define KVM_REG_RISCV_TYPE_SHIFT 24 diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h index 96589490c4..86f2c34e7a 100644 --- a/linux-headers/asm-x86/kvm.h +++ b/linux-headers/asm-x86/kvm.h @@ -923,5 +923,6 @@ struct kvm_hyperv_eventfd { #define KVM_X86_SEV_VM 2 #define KVM_X86_SEV_ES_VM 3 #define KVM_X86_SNP_VM 4 +#define KVM_X86_TDX_VM 5 =20 #endif /* _ASM_X86_KVM_H */ diff --git a/linux-headers/linux/iommufd.h b/linux-headers/linux/iommufd.h index 37aae16502..ccbdca5e11 100644 --- a/linux-headers/linux/iommufd.h +++ b/linux-headers/linux/iommufd.h @@ -297,7 +297,7 @@ struct iommu_ioas_unmap { * ioctl(IOMMU_OPTION_HUGE_PAGES) * @IOMMU_OPTION_RLIMIT_MODE: * Change how RLIMIT_MEMLOCK accounting works. The caller must have pri= vilege - * to invoke this. Value 0 (default) is user based accouting, 1 uses pr= ocess + * to invoke this. Value 0 (default) is user based accounting, 1 uses p= rocess * based accounting. Global option, object_id must be 0 * @IOMMU_OPTION_HUGE_PAGES: * Value 1 (default) allows contiguous pages to be combined when genera= ting @@ -390,7 +390,7 @@ struct iommu_vfio_ioas { * @IOMMU_HWPT_ALLOC_PASID: Requests a domain that can be used with PASID.= The * domain can be attached to any PASID on the dev= ice. * Any domain attached to the non-PASID part of t= he - * device must also be flaged, otherwise attachin= g a + * device must also be flagged, otherwise attachi= ng a * PASID will blocked. * If IOMMU does not support PASID it will return * error (-EOPNOTSUPP). @@ -558,16 +558,25 @@ struct iommu_hw_info_vtd { * For the details of @idr, @iidr and @aidr, please refer to the chapters * from 6.3.1 to 6.3.6 in the SMMUv3 Spec. * - * User space should read the underlying ARM SMMUv3 hardware information f= or - * the list of supported features. + * This reports the raw HW capability, and not all bits are meaningful to = be + * read by userspace. Only the following fields should be used: * - * Note that these values reflect the raw HW capability, without any insig= ht if - * any required kernel driver support is present. Bits may be set indicati= ng the - * HW has functionality that is lacking kernel software support, such as B= TM. If - * a VMM is using this information to construct emulated copies of these - * registers it should only forward bits that it knows it can support. + * idr[0]: ST_LEVEL, TERM_MODEL, STALL_MODEL, TTENDIAN , CD2L, ASID16, TTF + * idr[1]: SIDSIZE, SSIDSIZE + * idr[3]: BBML, RIL + * idr[5]: VAX, GRAN64K, GRAN16K, GRAN4K * - * In future, presence of required kernel support will be indicated in fla= gs. + * - S1P should be assumed to be true if a NESTED HWPT can be created + * - VFIO/iommufd only support platforms with COHACC, it should be assumed= to be + * true. + * - ATS is a per-device property. If the VMM describes any devices as ATS + * capable in ACPI/DT it should set the corresponding idr. + * + * This list may expand in future (eg E0PD, AIE, PBHA, D128, DS etc). It is + * important that VMMs do not read bits outside the list to allow for + * compatibility with future kernels. Several features in the SMMUv3 + * architecture are not currently supported by the kernel for nesting: HTT= U, + * BTM, MPAM and others. */ struct iommu_hw_info_arm_smmuv3 { __u32 flags; @@ -766,7 +775,7 @@ struct iommu_hwpt_vtd_s1_invalidate { }; =20 /** - * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cahce invalidati= on + * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cache invalidati= on * (IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3) * @cmd: 128-bit cache invalidation command that runs in SMMU CMDQ. * Must be little-endian. @@ -859,6 +868,7 @@ enum iommu_hwpt_pgfault_perm { * @pasid: Process Address Space ID * @grpid: Page Request Group Index * @perm: Combination of enum iommu_hwpt_pgfault_perm + * @__reserved: Must be 0. * @addr: Fault address * @length: a hint of how much data the requestor is expecting to fetch. F= or * example, if the PRI initiator knows it is going to do a 10MB @@ -874,7 +884,8 @@ struct iommu_hwpt_pgfault { __u32 pasid; __u32 grpid; __u32 perm; - __u64 addr; + __u32 __reserved; + __aligned_u64 addr; __u32 length; __u32 cookie; }; diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h index 3bcd4eabe3..27181b3dd8 100644 --- a/linux-headers/linux/kvm.h +++ b/linux-headers/linux/kvm.h @@ -609,10 +609,6 @@ struct kvm_ioeventfd { #define KVM_X86_DISABLE_EXITS_HLT (1 << 1) #define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2) #define KVM_X86_DISABLE_EXITS_CSTATE (1 << 3) -#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT = | \ - KVM_X86_DISABLE_EXITS_HLT | \ - KVM_X86_DISABLE_EXITS_PAUSE = | \ - KVM_X86_DISABLE_EXITS_CSTATE) =20 /* for KVM_ENABLE_CAP */ struct kvm_enable_cap { @@ -1062,6 +1058,10 @@ struct kvm_dirty_tlb { =20 #define KVM_REG_SIZE_SHIFT 52 #define KVM_REG_SIZE_MASK 0x00f0000000000000ULL + +#define KVM_REG_SIZE(id) \ + (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT)) + #define KVM_REG_SIZE_U8 0x0000000000000000ULL #define KVM_REG_SIZE_U16 0x0010000000000000ULL #define KVM_REG_SIZE_U32 0x0020000000000000ULL diff --git a/linux-headers/linux/stddef.h b/linux-headers/linux/stddef.h index 96aa341942..e1416f7937 100644 --- a/linux-headers/linux/stddef.h +++ b/linux-headers/linux/stddef.h @@ -8,6 +8,13 @@ #define __always_inline __inline__ #endif =20 +/* Not all C++ standards support type declarations inside an anonymous uni= on */ +#ifndef __cplusplus +#define __struct_group_tag(TAG) TAG +#else +#define __struct_group_tag(TAG) +#endif + /** * __struct_group() - Create a mirrored named and anonyomous struct * @@ -20,13 +27,13 @@ * and size: one anonymous and one named. The former's members can be used * normally without sub-struct naming, and the latter can be used to * reason about the start, end, and size of the group of struct members. - * The named struct can also be explicitly tagged for layer reuse, as well - * as both having struct attributes appended. + * The named struct can also be explicitly tagged for layer reuse (C only), + * as well as both having struct attributes appended. */ #define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \ union { \ struct { MEMBERS } ATTRS; \ - struct TAG { MEMBERS } ATTRS NAME; \ + struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \ } ATTRS =20 #ifdef __cplusplus diff --git a/linux-headers/linux/vduse.h b/linux-headers/linux/vduse.h index 6d2ca064b5..f46269af34 100644 --- a/linux-headers/linux/vduse.h +++ b/linux-headers/linux/vduse.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Cl= ause) */ #ifndef _VDUSE_H_ #define _VDUSE_H_ =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139940; cv=none; d=zohomail.com; s=zohoarc; b=c6iZbmt+Glf+FKnX1cTrRrRQRyP8TMPq5He4Lvp1w4hash+i0M7ttADMZHjl4UkTZjDt/t2gQGd1psWZwMcBlTaZmHi2V9Uk2g0I0FRkh2+RVI1QqZR8y0+BVQzIEYD71YVDXJ7cAOV4dFsS7vY7BHLM7xjsMJ/eY8Vfhwmjw4o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139940; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NVR/Huqfaq4TbGUsXCBBJHlbyJU+hGBoWuEhfaSp23c=; b=GK7npG9Y4Zojd658vnah/OyNJ8J9qZqI9RvlolXtO7m6tfy2xCBkX8MlqmdvzWCzjk5AKEQu9TJTT/ZQ4nrOSSL4qsoaJgjOG2JA7Ei7Yqnbw14uJw5p293V5FISlACw8kqJf2JmiJpZyMP53/dma7ZomvT4uLRIi9W/3/c+bTY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139940192277.48595642279497; Tue, 4 Mar 2025 17:59:00 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdyv-00077K-24; Tue, 04 Mar 2025 20:55:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyU-0005xN-PZ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:06 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyT-0000H9-00 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:06 -0500 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2238d965199so61667435ad.2 for ; Tue, 04 Mar 2025 17:55:04 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.54.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139703; x=1741744503; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NVR/Huqfaq4TbGUsXCBBJHlbyJU+hGBoWuEhfaSp23c=; b=L0toRI6uzfnihUsDxs25fnVtgzyH9lhaFv0QIXCRAjlUuWs1SW+CouxYLONelggg9H vVE7qLwxClbaQB+NXvxwuQlKSioxJqsaiOpUv+k3IqvJyzgygVn9QzUv0RSwwrPDixWt WdP0E6Ub8WkWecPKI0Jw9N2ytISMtmjo2GWEK1ehu3gUju+of4VKc3gPBSkr+u+aMcXQ cra3hPWIKj7KIpTrBvWN+z/jY5CNLf2Jv+s9mNw+dPN7x8cH1eOpphIZ3g1XJ6QHXrjr n35l8Z/KjEHAmPy+R/AeIsaa8wYTORhkVmOJDYW6S+4u4JQMuOq3fubMhBawHDCcc2lL ZSeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139703; x=1741744503; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NVR/Huqfaq4TbGUsXCBBJHlbyJU+hGBoWuEhfaSp23c=; b=S59OLifTabO1ooAEqVncFOqL+I0qnspcnEjIlDc+jCorjHfI1FvtilOei1EBAprj/J s+HnvCQ0hAoahiBZOn4Lgt5sK683mMT0x9VbMoDb1zrWByfODd5PE6+ev5Ra3aStBdAP DdrQLghNNzKVtI50xWtJVM45LYDvDKCH1JBMkyhdsIJsGz8LdxsgcpRhZsS2oCoToSfg 7l3sXhSN8OlZLW1kG8sVZ5JO53vfF8QqkCEi8L/4bpRBKsg6rE77h7LA+WaW+7E95hqG r0rS1iCMKMUp3LUu+5gbzpb7WkwYdfRxFpDxfJCwXLCKj+JFJynJpvnnrQ9BVUU+7xZZ hq+w== X-Gm-Message-State: AOJu0YziLDvByztD9SRTrCegVnJhNRAgLzUDQSZW6KINn05XwFgNhObk wMVMIaJ4K19D5TCrr9DkCDuywG6XsDB6i2hNZA/eEszdA/7SymeMf++/Klb8e2g= X-Gm-Gg: ASbGncuXY/NULN2mH+3ado/Xg6l8bvVpXYVW1H01qn4jYTyHVVgfndYRsSOIuVzazd8 X/hp+gcKNG+19DSxL8ifeM5kFDBZBVssTF00zqhyTeAKY11EX0f0wqhlVfVujdvumrEC4KcVEjh Zem3SnYJqnb9yxzj9TxPiX9abB00bHWfcdEhKm5Fr6BOMV29MtsXdsNAhJWCBJ8eA3+N8Po2xnR qqOu9T3AkQ2ie6152gRrYWj0NV/06B9qfrPktN+3hO+D7lwTNLWH0dC1CTEZ5+cOGUR3G3FOavh fgTREuzv78+m2Wx2xWJHwGGVdPuz+Z4hcuRsVn0onU2JKilbXD/Qivb5nT5eCbKYY3Ex7ZxSrma bxfpep6r0Vnl9MIbIIMjzXG/IsMCuP9ceeubW44Jl+MJ8nZs/5wM= X-Google-Smtp-Source: AGHT+IH7ma15kAKOu/g8ri6xiOrrtyDf2eHBhR4uXRETmNOocxQr3pZ6aez8CQ7aymlR+l6PJTRfFw== X-Received: by 2002:a17:902:c951:b0:220:cb1a:da5 with SMTP id d9443c01a7336-223f1d0fa09mr21705455ad.40.1741139702727; Tue, 04 Mar 2025 17:55:02 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 37/59] target/riscv/cpu.c: create flag for ziccrse Date: Wed, 5 Mar 2025 11:52:45 +1000 Message-ID: <20250305015307.1463560-38-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62c; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139941863019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza At this moment ziccrse is a TCG always enabled named feature for priv_ver > 1.11 that has no exclusive flag. In the next patch we'll make the KVM driver turn ziccrse off if the extension isn't available in the host, and we'll need an ext_ziccrse flag in the CPU state for that. Create an exclusive flag for it like we do with other named features. As with any named features we already have, it won't be exposed to users. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Message-ID: <20250221153758.652078-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_cfg.h | 3 +++ target/riscv/cpu.c | 3 ++- target/riscv/tcg/tcg-cpu.c | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index 3f3c1118c0..8a843482cc 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -166,6 +166,9 @@ struct RISCVCPUConfig { bool has_priv_1_12; bool has_priv_1_11; =20 + /* Always enabled for TCG if has_priv_1_11 */ + bool ext_ziccrse; + /* Vendor-specific custom extensions */ bool ext_xtheadba; bool ext_xtheadbb; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index a4ee381a07..47424fd5e2 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -105,7 +105,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(ziccamoa, PRIV_VERSION_1_11_0, has_priv_1_11), ISA_EXT_DATA_ENTRY(ziccif, PRIV_VERSION_1_11_0, has_priv_1_11), ISA_EXT_DATA_ENTRY(zicclsm, PRIV_VERSION_1_11_0, has_priv_1_11), - ISA_EXT_DATA_ENTRY(ziccrse, PRIV_VERSION_1_11_0, has_priv_1_11), + ISA_EXT_DATA_ENTRY(ziccrse, PRIV_VERSION_1_11_0, ext_ziccrse), ISA_EXT_DATA_ENTRY(zicfilp, PRIV_VERSION_1_12_0, ext_zicfilp), ISA_EXT_DATA_ENTRY(zicfiss, PRIV_VERSION_1_13_0, ext_zicfiss), ISA_EXT_DATA_ENTRY(zicond, PRIV_VERSION_1_12_0, ext_zicond), @@ -1742,6 +1742,7 @@ const RISCVCPUMultiExtConfig riscv_cpu_named_features= [] =3D { MULTI_EXT_CFG_BOOL("zic64b", ext_zic64b, true), MULTI_EXT_CFG_BOOL("ssstateen", ext_ssstateen, true), MULTI_EXT_CFG_BOOL("sha", ext_sha, true), + MULTI_EXT_CFG_BOOL("ziccrse", ext_ziccrse, true), =20 { }, }; diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 929ed5fd2c..f1d971eec1 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -360,6 +360,8 @@ static void riscv_cpu_update_named_features(RISCVCPU *c= pu) =20 cpu->cfg.ext_sha =3D riscv_has_ext(&cpu->env, RVH) && cpu->cfg.ext_ssstateen; + + cpu->cfg.ext_ziccrse =3D cpu->cfg.has_priv_1_11; } =20 static void riscv_cpu_validate_g(RISCVCPU *cpu) --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139772; cv=none; d=zohomail.com; s=zohoarc; b=aSo7UjhskFPBTLhuK2zOK6tsOT5PAT+bFf7Cd7eADkP3IhjPRiCzSPWa1AxRLMpOpCd2HHUG3yWgMAVh2GQqvpzsTsA5UqfhqRB9IGyvd6MFcVtfMeZpnXZmKs2hk7qEAW3DszjAdZ0UyY2bxCTi7x12PWpbzvmRgK6T6S+VxJg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139772; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZiODDY/366gqEbz3qx1fab9KEQDWoxxeKu1jXAINex8=; b=Q/HNMfX7qlrurFt468OFq3crwRybEaYFx7s3FjnMMISMaONycShXGKz+pb6p0c/7hcorqDbKPh9rlSBY3aMAZy8U4s5p9V7XkIErWIMk5pCD1kn4935eoDe1EZmy/QyvBc9+SXVt+nsyextlm+AToBpCSjSE6FHojhqNmNbZTyI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139772616340.92382441276743; Tue, 4 Mar 2025 17:56:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzJ-0007fF-3a; Tue, 04 Mar 2025 20:55:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyX-0006ER-A7 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:09 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyV-0000NP-Co for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:08 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-22398e09e39so58667885ad.3 for ; Tue, 04 Mar 2025 17:55:06 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139706; x=1741744506; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZiODDY/366gqEbz3qx1fab9KEQDWoxxeKu1jXAINex8=; b=CdSjHsAdgDsdZmpVfJ1yg3zicdDfK3GKX6m/jTOZUvcG3NwALDcL2yqOwkr9iFxvsl OznaFah+vthWqu5P7KGPtlpEcNmOleDx6rwhT320uEbpZYy/d03xxNeZa0g7v3bF4lfa X/i2xYKu821esWPMTbWaH8Y1qnlp6uU4wl0mB2jj5SqgoK4TBJmUAZe9svOyVrB8PINV dKQXlWRscyFLvTTuK/1PhyPhNB3JLBzTdeFb7dPrTHWb98dM6vaP8o1D2fzasRlu02mI 12jUBPE5Ud803SLP6UtSOYxvgG2NSxNcB+MpLwjdQRURnqaGKhAaRFUyPZ+vziAjVOKO FcnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139706; x=1741744506; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZiODDY/366gqEbz3qx1fab9KEQDWoxxeKu1jXAINex8=; b=txW3POo+kjKhNEG2w7UKwyGEFXHNMFuhMS+QvPIMIL3qataGoPkh2hXEK1wKS4wiNk 24VrbcGoVaPkv1id0pvVgBhgXzk7slmDEj8PhQKlEOKtgKySW9E7uSU1y4zb+FZFKkJk BVCr8xiwpiG0aZirEh5IsJ24QphEtCnacXI1VkgvCDPDgrc36sYbChpS8DHg2tNYY1oy RRF8XIYaVA9Gye4qLQj1baoYeW0HDT79zNJdZpF1/ljPDZ2jDG3jDS37OVYahfoP4Vly eE86dLeWIL14EjX72GJhIr3LN8eGSHMjBae0iSO8QY3oXI5mLWDoZVBXtqouuTBqdSwI ac4w== X-Gm-Message-State: AOJu0Ywf3vyEu2JE+iSvC+38ZoS8GliJV2hDiy8ZUP5DTG7GWbPvmuzh Jcwov4oa543xtd/Qx2Bd3TMPBMP0KdBw5eKcN67QsiuapDfo9G5wbDXwuhflfk4= X-Gm-Gg: ASbGncuD5gLxFUQCbcO2MxL/tK2d4jX6CIzx+525W3Kn9yAShtGApdBGUow9RQW9N53 2m5O0zR9FRgKtCiVyaCzp2wSs5ew2llYjG2aZ8plpT/xNTQxdfRGWNq+AGM/dkT61u5eVgxNUfz Kt8JPZKRud6cADmh/tjxprnZ6Hi+hl1xK+5vNuc8g19Mg6Q4stNtHr61uz32eKC0mrK3xUNPnb1 FxT6IcQFN09ne/7wXVIoHU9g8wsL9km2f4tShwHv87sBgzPngysowZWRHkrvUZSMySpqqzN3QKk zL2jswD8Mp7t8AeEBwIFhM78+/rLw4Z0Dx/P6yCGyW4uqzctXSlltXJBjLvqwSA9kqshW2ZsxOL T5vbMmeA6jNGVo2owQSsKX6j9LoOP5CkpJN0IANaEuo35tke9vFs= X-Google-Smtp-Source: AGHT+IFRM+CsB9vCeKqOmLx353E055ooYdaB87yK4mkQ8jaN74xzhKsdYU4bgBofWs3fvm4tPtV0iA== X-Received: by 2002:a17:903:8c4:b0:220:f91a:4650 with SMTP id d9443c01a7336-223f1c95712mr18682595ad.19.1741139705719; Tue, 04 Mar 2025 17:55:05 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 38/59] target/riscv/kvm: add extensions after 6.14-rc3 update Date: Wed, 5 Mar 2025 11:52:46 +1000 Message-ID: <20250305015307.1463560-39-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139774299019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Expose ziccrse, zabha and svvptc. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Message-ID: <20250221153758.652078-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index 23ce779359..471fd554b3 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -274,6 +274,7 @@ static void kvm_riscv_update_cpu_misa_ext(RISCVCPU *cpu= , CPUState *cs) static KVMCPUConfig kvm_multi_ext_cfgs[] =3D { KVM_EXT_CFG("zicbom", ext_zicbom, KVM_RISCV_ISA_EXT_ZICBOM), KVM_EXT_CFG("zicboz", ext_zicboz, KVM_RISCV_ISA_EXT_ZICBOZ), + KVM_EXT_CFG("ziccrse", ext_ziccrse, KVM_RISCV_ISA_EXT_ZICCRSE), KVM_EXT_CFG("zicntr", ext_zicntr, KVM_RISCV_ISA_EXT_ZICNTR), KVM_EXT_CFG("zicond", ext_zicond, KVM_RISCV_ISA_EXT_ZICOND), KVM_EXT_CFG("zicsr", ext_zicsr, KVM_RISCV_ISA_EXT_ZICSR), @@ -283,6 +284,7 @@ static KVMCPUConfig kvm_multi_ext_cfgs[] =3D { KVM_EXT_CFG("zihpm", ext_zihpm, KVM_RISCV_ISA_EXT_ZIHPM), KVM_EXT_CFG("zimop", ext_zimop, KVM_RISCV_ISA_EXT_ZIMOP), KVM_EXT_CFG("zcmop", ext_zcmop, KVM_RISCV_ISA_EXT_ZCMOP), + KVM_EXT_CFG("zabha", ext_zabha, KVM_RISCV_ISA_EXT_ZABHA), KVM_EXT_CFG("zacas", ext_zacas, KVM_RISCV_ISA_EXT_ZACAS), KVM_EXT_CFG("zawrs", ext_zawrs, KVM_RISCV_ISA_EXT_ZAWRS), KVM_EXT_CFG("zfa", ext_zfa, KVM_RISCV_ISA_EXT_ZFA), @@ -325,6 +327,7 @@ static KVMCPUConfig kvm_multi_ext_cfgs[] =3D { KVM_EXT_CFG("svinval", ext_svinval, KVM_RISCV_ISA_EXT_SVINVAL), KVM_EXT_CFG("svnapot", ext_svnapot, KVM_RISCV_ISA_EXT_SVNAPOT), KVM_EXT_CFG("svpbmt", ext_svpbmt, KVM_RISCV_ISA_EXT_SVPBMT), + KVM_EXT_CFG("svvptc", ext_svvptc, KVM_RISCV_ISA_EXT_SVVPTC), }; =20 static void *kvmconfig_get_cfg_addr(RISCVCPU *cpu, KVMCPUConfig *kvmcfg) --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139941; cv=none; d=zohomail.com; s=zohoarc; b=euQzxiHBMWUrkF3w5bXjQwI89fj1T7jnRgynRtKS0zJUJJrtrBIL2jbnzf8qe6f+GgJNxTLaiGYdy9snoHISLAWS5qsGOiXnx/Sa99YEpqofLWwnsOlXuYx08ECXQKcwXCuxdg4V6tDVPbFQgJH/bykUdPxntYQz77LAePD0rEY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139941; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=geC3U75yXm61oV1WPeiHQMiW6u0uu3Ls5xAzTiODQ6A=; b=SNPQbq3V+3wXb1jf8+MT+3F8e2zqtM+P0YNIf6jq/d7P8PKBxmroemuAqksh+A7Ee/82PyBRznl93ZoJf+ic2RYsnHRYnUZswHoUDuAKZJb2K5QlICny0kGaDYZvu9JF4uk5nezDovj+sRZnzi3kTf0nua1ThBclJOTsm1mmnnk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139941522977.5393535145365; Tue, 4 Mar 2025 17:59:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdz8-0007TQ-2c; Tue, 04 Mar 2025 20:55:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdya-0006Rl-48 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:12 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyY-0000OC-7z for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:11 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2238d965199so61668545ad.2 for ; Tue, 04 Mar 2025 17:55:09 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139708; x=1741744508; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=geC3U75yXm61oV1WPeiHQMiW6u0uu3Ls5xAzTiODQ6A=; b=ZXFQg7g7+V891TG94WnW6BqqpS56WxXCY077iY6Dld6qz3qrNRlEYd+ZIqSfr7z4+K h8K4vdUOv7nxYZqDbeVFDdmE0aDZsN659IiVz4dw0CPTKEIkDOnQDV8Ow16X9FvzdVI4 vv0g9B466GxfPqIevW3lmy+DHyhRFxVEJYowKPJCwByWmq56M43tpvwiruXeJbpXb8s4 nJLdvmAAbpfg4jBFGXr/5Mo8pIgD5HBgUC7efgLSFPrfyR7BfVwHgiozJ/9XPnFPHr8/ hDLFksSrd8vB8CM5vYhiN2vpX5vo2rR1UhuNAU7sP0BYm/5Uprks/nzAx+ov6ggYoRkQ TJtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139708; x=1741744508; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=geC3U75yXm61oV1WPeiHQMiW6u0uu3Ls5xAzTiODQ6A=; b=nrU7gCzJpFwJ8O8X0XJ+gQmW0a0tsXe23/Eoy5p8uUpJCCbNWSMbdUyPhMkPSE7fvv RgF73qyKhyST3PXf7fu13LvGpBSc52mX16PWBpqJtudPOtoZz8w89G96ioYyOArmEh40 2xTR4GfU36CDGldR2A7EcNxT/s6YOVy4ZOn0UGJRIi6Qwm/py+dJIfDCKQWZ338Hj8KZ 9x3jLfKRCJzBtGSsvOnjlNc4HrSVlA7lCShBmK6Wicq6HOmhvXMr6Jv6gWbyBxb2SupA vrQNO1LVTNipOuZMLRlMFQlbAaJCgLg8SD2YiBlpHY34GJqqzpYgaflkkev+gbGMAq66 9tUQ== X-Gm-Message-State: AOJu0YyK/ABU007+kwuv2HAEXsmN06qYCCxmETprDQNgERsK55d24lbm kfURN5IQFNq9fk2A1ZEma+AL7MsSkNCj/w3E3M0Q/QaLmGX379KhASjQJCOdnL4= X-Gm-Gg: ASbGncufaHp3xDzR16IBJWsNhu8/lAMPuslLbxQKsXGMNCT3mlNkRj4MpGGuG6HX36b w6E4Nhxyrac5SFbvCjfCLrj4wUSqWiWgFZ08jOYF5CcShvqTpEqYoeG5RorspgY7uaduUCUIXf0 8v4kTBPx/dYqgrxt4FJJXpj7DtNab1fCN4HdGR2gZcxzX+J6WATHlyrhyp5oFsoF4NGUxkJSbSM SBOJKATukZ1kc1evaGF1lRMez9eMm9T4gPYLeg4xX5KkehoBSpnVJZGEtIv0yhUJWriWI4iEsxF 0MjKI68A7yW7QEBif76szmQbcy/ptM7QHQEtnnR4ewtK7DA2XQ0qA8nURfRGBnWj+X/ib8GVnpQ Zn98ry3VxQ+mmX1k2nqbL8QOooJEy+CDCs6u4hprU5MntI2+zrZQ= X-Google-Smtp-Source: AGHT+IEWTl1/CoGcnaeNYvn7fnYILo7umEFWSa9BsUKsMARmYD2c3QD/hr4QtlPEYg9J061thkjsbQ== X-Received: by 2002:a17:903:186:b0:21a:8300:b9d5 with SMTP id d9443c01a7336-223f1ca5aecmr17107215ad.23.1741139708455; Tue, 04 Mar 2025 17:55:08 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 39/59] hw/riscv/riscv-iommu.h: add missing headers Date: Wed, 5 Mar 2025 11:52:47 +1000 Message-ID: <20250305015307.1463560-40-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139942880019000 From: Daniel Henrique Barboza This header is incomplete, i.e. it is using definitions that are being supplied by the .c files that are including it. Adding this header into a fresh .c file will result in errors: /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:30:17: error: field =E2=80= =98parent_obj=E2=80=99 has incomplete type 30 | DeviceState parent_obj; | ^~~~~~~~~~ /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:50:5: error: unknown type n= ame =E2=80=98dma_addr_t=E2=80=99; did you mean =E2=80=98in_addr_t=E2=80=99? 50 | dma_addr_t cq_addr; /* Command queue base physical address */ | ^~~~~~~~~~ | in_addr_t (...) /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:62:5: error: unknown type n= ame =E2=80=98QemuThread=E2=80=99; did you mean =E2=80=98GThread=E2=80=99? 62 | QemuThread core_proc; /* Background processing thread */ | ^~~~~~~~~~ | GThread /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:63:5: error: unknown type n= ame =E2=80=98QemuCond=E2=80=99 63 | QemuCond core_cond; /* Background processing wake up signal */ | ^~~~~~~~ /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:71:18: error: field =E2=80= =98trap_as=E2=80=99 has incomplete type 71 | AddressSpace trap_as; | ^~~~~~~ /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:72:18: error: field =E2=80= =98trap_mr=E2=80=99 has incomplete type 72 | MemoryRegion trap_mr; | ^~~~~~~ /home/danielhb/work/qemu/hw/riscv/riscv-iommu.h:80:18: error: field =E2=80= =98regs_mr=E2=80=99 has incomplete type 80 | MemoryRegion regs_mr; | ^~~~~~~ Fix it by adding the missing headers for these definitions. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250224190826.1858473-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index fa8a50fa24..d2608d2f9b 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -20,6 +20,8 @@ #define HW_RISCV_IOMMU_STATE_H =20 #include "qom/object.h" +#include "hw/qdev-properties.h" +#include "system/dma.h" #include "hw/riscv/iommu.h" #include "hw/riscv/riscv-iommu-bits.h" =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140434; cv=none; d=zohomail.com; s=zohoarc; b=e2DvidzXVpl/nLJ5+MfpAQK+0K7J0spWdOscUKjngL7TM6eGBsflvgf0lF8+i6AzeYaKTj3rXCPmdxoqqdLYEy9c+6nTLPjigzhHco2CvWAhfst3uPgh+s1qNhgXrnGMZ6ozVDpA1NJWYXAiSHnuqZw5G8FeDfDmUm8roe3/75Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140434; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HQNVj2T2mfEf1ChTebr01tmxgkp7uoU2ummH0YbKr2Y=; b=aezaRTN4uRy0JIubTahSBEAijn7AUfvWj4pFzTzoZmdZxgGm7KAyrAyQKfABxVmQk6cOWwMHbYeyL4eOgsux9f1wB6a/jQf4fHd2c0PpjknwN1Z6ws/BRnxlhUOsCVkgHHI9wRj27vX7egMWIAWHfRtGEXTS9FzBjPn5CbtdSjQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140434709485.1203722457884; Tue, 4 Mar 2025 18:07:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzM-00080S-5g; Tue, 04 Mar 2025 20:56:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyd-0006nZ-Rr for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:17 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyb-0000Oh-5b for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:14 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22374f56453so116383555ad.0 for ; Tue, 04 Mar 2025 17:55:12 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139711; x=1741744511; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HQNVj2T2mfEf1ChTebr01tmxgkp7uoU2ummH0YbKr2Y=; b=Mak9qQgOGrOsj/lG2MrRDUMzBGK+J1KDPH+OfdESOz0FxDEJCy94HTPP78FqwVBpfo a31YsP4p/p9kgd3wUgCrBxm7Dxan49rE93eubzYEU4/rUloFNYGr07L54YYMm+qMjXWV qCgSod1Aq6WbG/dTlZpgyOS1/3tSrRqYXnxeLtAeqxbN8c/MidcGh08aoE/TeHsklvFa W9w8eZeLY9wOTY4Js7DeGE9SS84i4DXq/tZnkPsBs+0EmtFasBXg5w0V5mm8xeBrAIHX m8q1n3Ynui4gotXx+ka6+WXdZArQ/Y7IggNILIvrG8rEiPXrVXjBBmJfCkpbUUCSx5GE fM7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139711; x=1741744511; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HQNVj2T2mfEf1ChTebr01tmxgkp7uoU2ummH0YbKr2Y=; b=M6/pN2LB+vKHO05GxNzJet3WDqlv1FDILxARc1mNRwF4ES/JnyGV6xq3BA578dWwAV rNK7VPfNklew7+dMTgdDwOJZPt3zZ7ZOumpTbYZ7iHQncfxHmkmpM8b5tq88rhHtqhM5 g05mgMhTuWnNhGNn3d7RD26CJ5+sAaMEnKWvF5a1cga8CBZMpA9Me7xD7LrFGPqzoyMW upqfnOd9ljIGeZsD09f4q9gUtuercp3ffx5NLhYUA/JitSkxu0VNBvpa7yEZWXOmypAo SmHpS28q4ARenopFu7vIgbWtc+IdS8Q+U51Tei8G+ABTnAAnfTOzTU+MmG6fRomEd1ew ygDQ== X-Gm-Message-State: AOJu0Yxz4kbkcNyGdqPb8kCSVwJQa2ZUMQ5svztrM3ZZvJWzYsOmAaQI 5rsrozGATFDV9wlTVLCaicDsepqmIkcAmf83Whm9V4nl0slLKQFcLP09CHueSso= X-Gm-Gg: ASbGnctiFujIEC06/auSBlX0zwY+kN5RdYD7BcgFRukANofeX8pZGzeWmGPvyKeXqsv IiAw/ZUVpburmCxqEkiSwbXSeEydSyFnhdxa+TwqME1xSKRs3RcpNIIaAPLJJ3OqU5YqOQWyte9 EVcv7V8LOgw46IZKBFcqVNhUOKh+wvmKxu7M67xqK1N+qOWlYaQohUy9fYESqmbtVApsQEaDWdc p4CtnVXPatrhrG0Y81XAfGafKsfTFiBcF8SNuzkJ2KCLYx0OTyRJzdjgQTKfGLYb8fwJpakDuCU HfvcOWiKsbC1rMiye+gEtYHgZkM0g14c4NHcCwdSrkVynrnJfyXYjx4rxiQie9vpQZUbRIdKXUA fBx1Y62yxPYMgE6CmjxyKxnw5d8wu8S/x2oa/qUj8d1bl+/sjNDg= X-Google-Smtp-Source: AGHT+IE7FsfLZHCg3zDQ1Odt4oanj5JZK3dYTBX1OZH175zD6zbeEKoGdPI7QoAaRSjBVExVUtDCkA== X-Received: by 2002:a17:902:d485:b0:220:c164:6ee1 with SMTP id d9443c01a7336-223f1d20341mr21954115ad.32.1741139711446; Tue, 04 Mar 2025 17:55:11 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 40/59] hw/riscv/riscv-iommu-bits.h: HPM bits Date: Wed, 5 Mar 2025 11:52:48 +1000 Message-ID: <20250305015307.1463560-41-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_50_75=0.008 autolearn=no 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140435603019100 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach Add the relevant HPM (High Performance Monitor) bits that we'll be using in the next patches. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-bits.h | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/hw/riscv/riscv-iommu-bits.h b/hw/riscv/riscv-iommu-bits.h index de599b80d6..b7cb1bc736 100644 --- a/hw/riscv/riscv-iommu-bits.h +++ b/hw/riscv/riscv-iommu-bits.h @@ -88,6 +88,7 @@ struct riscv_iommu_pq_record { #define RISCV_IOMMU_CAP_ATS BIT_ULL(25) #define RISCV_IOMMU_CAP_T2GPA BIT_ULL(26) #define RISCV_IOMMU_CAP_IGS GENMASK_ULL(29, 28) +#define RISCV_IOMMU_CAP_HPM BIT_ULL(30) #define RISCV_IOMMU_CAP_DBG BIT_ULL(31) #define RISCV_IOMMU_CAP_PAS GENMASK_ULL(37, 32) #define RISCV_IOMMU_CAP_PD8 BIT_ULL(38) @@ -197,6 +198,52 @@ enum { RISCV_IOMMU_INTR_COUNT }; =20 +#define RISCV_IOMMU_IOCOUNT_NUM 31 + +/* 5.19 Performance monitoring counter overflow status (32bits) */ +#define RISCV_IOMMU_REG_IOCOUNTOVF 0x0058 +#define RISCV_IOMMU_IOCOUNTOVF_CY BIT(0) + +/* 5.20 Performance monitoring counter inhibits (32bits) */ +#define RISCV_IOMMU_REG_IOCOUNTINH 0x005C +#define RISCV_IOMMU_IOCOUNTINH_CY BIT(0) + +/* 5.21 Performance monitoring cycles counter (64bits) */ +#define RISCV_IOMMU_REG_IOHPMCYCLES 0x0060 +#define RISCV_IOMMU_IOHPMCYCLES_COUNTER GENMASK_ULL(62, 0) +#define RISCV_IOMMU_IOHPMCYCLES_OVF BIT_ULL(63) + +/* 5.22 Performance monitoring event counters (31 * 64bits) */ +#define RISCV_IOMMU_REG_IOHPMCTR_BASE 0x0068 +#define RISCV_IOMMU_REG_IOHPMCTR(_n) \ + (RISCV_IOMMU_REG_IOHPMCTR_BASE + (_n * 0x8)) + +/* 5.23 Performance monitoring event selectors (31 * 64bits) */ +#define RISCV_IOMMU_REG_IOHPMEVT_BASE 0x0160 +#define RISCV_IOMMU_REG_IOHPMEVT(_n) \ + (RISCV_IOMMU_REG_IOHPMEVT_BASE + (_n * 0x8)) +#define RISCV_IOMMU_IOHPMEVT_EVENT_ID GENMASK_ULL(14, 0) +#define RISCV_IOMMU_IOHPMEVT_DMASK BIT_ULL(15) +#define RISCV_IOMMU_IOHPMEVT_PID_PSCID GENMASK_ULL(35, 16) +#define RISCV_IOMMU_IOHPMEVT_DID_GSCID GENMASK_ULL(59, 36) +#define RISCV_IOMMU_IOHPMEVT_PV_PSCV BIT_ULL(60) +#define RISCV_IOMMU_IOHPMEVT_DV_GSCV BIT_ULL(61) +#define RISCV_IOMMU_IOHPMEVT_IDT BIT_ULL(62) +#define RISCV_IOMMU_IOHPMEVT_OF BIT_ULL(63) + +enum RISCV_IOMMU_HPMEVENT_id { + RISCV_IOMMU_HPMEVENT_INVALID =3D 0, + RISCV_IOMMU_HPMEVENT_URQ =3D 1, + RISCV_IOMMU_HPMEVENT_TRQ =3D 2, + RISCV_IOMMU_HPMEVENT_ATS_RQ =3D 3, + RISCV_IOMMU_HPMEVENT_TLB_MISS =3D 4, + RISCV_IOMMU_HPMEVENT_DD_WALK =3D 5, + RISCV_IOMMU_HPMEVENT_PD_WALK =3D 6, + RISCV_IOMMU_HPMEVENT_S_VS_WALKS =3D 7, + RISCV_IOMMU_HPMEVENT_G_WALKS =3D 8, + RISCV_IOMMU_HPMEVENT_MAX =3D 9 +}; + /* 5.24 Translation request IOVA (64bits) */ #define RISCV_IOMMU_REG_TR_REQ_IOVA 0x0258 =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140406; cv=none; d=zohomail.com; s=zohoarc; b=cx6yGYCimYvk5mzIcN/fJlmVCJhLhFAMMyeZ9Rn5I72Y873b5480BHItMEOqaPijkOj2uJj9NnD+NVv2WZTu0SBCl6YlRV3z5CYLrCH8jCoSlDhlOa2Sd3bQFJ/K091EDHE3tnNH2O4nLRN/INCAcYq8MLqq+XU7y5QJoNbdf1k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140406; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2MuoPRm7oJhyjx8pmnjodkk7DZxmD/8R71thvj8Act8=; b=X2dnDHccAntMaETJaBvPKZk10EduhnHpe5Cx0VUxxapHxnwCsl3VN/e1y0f1/vuC6Gqre7AEgDmmm+rusTh4wM28dtgrVBOr4e0UGUYx1tVTSYJwvBlgbYnClLMDy/uouqQwllSnonc5yRj16+e98zW+ypxPedBdwtnJbrrUi0U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114040682279.54744331157076; Tue, 4 Mar 2025 18:06:46 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzj-00022e-PZ; Tue, 04 Mar 2025 20:56:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyh-0006vf-KC for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:25 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyf-0000PE-70 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:19 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-223f4c06e9fso2337975ad.1 for ; Tue, 04 Mar 2025 17:55:15 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139715; x=1741744515; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2MuoPRm7oJhyjx8pmnjodkk7DZxmD/8R71thvj8Act8=; b=ca24bDgXIXPpR5vAZ9/JYQN8rS7lu5MvCD46rExrbTyq4v1nGL9EajnfLBZ1Uq0h70 fZJBMEiaLtBIGYSolr2Dk2vZ7XmlC7lRGfs9b9/p/Rbq8L/vSNmb9ab9sMRslwIpBCdo f6TAQod6ychviEO7oNPQqIXOuUVVJqVu8hBASf/QXAN/OQ66vDWx5hD8NyDtZz+YCzoc UB6Lncvm914SphCEChQDBlxMu8v5RbZrnRLvaNeR8IdTKqf8uTkYLdobwqODYyaxYjwc FMjSQUlT4b9QJJovLlsPH2f97zSrt53Uk1ifD+TWtj/AyG+QQdb/dJDCJnCnu4LO0ED+ mPSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139715; x=1741744515; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2MuoPRm7oJhyjx8pmnjodkk7DZxmD/8R71thvj8Act8=; b=QNwAlluvG4Y8myvBiUzihHDsY8iUtALOyy6TzKcKRCp+z5BkgDFcuCWc/Dyk6lB2Gi V0J2P465x8+kVHn7nO0rL6WCzmsJT0fy7INORpD4DSRBAxQq4Gvxr1cqzHucsfpPpHjd UPYs+nMUjCkYtHjdMqplzhFDBTHAFVMr6ELD8vEXiHh2RBOTh626OcWkjEFr5ENomNSL yVfRzX9v6V3sQhs3fq7aXl8NSwxrevRk3a2DXiEmDpsA1dXOdmMTWZG5gy+6U2Y3HxVO 3Gfc7Xd0z1fYWUA+B1PH85mLZE8rukL2EP0EShb8/EL6EwQzdUQRH6foG5GGSuQD0ZfA JnuQ== X-Gm-Message-State: AOJu0Yz9EUbMS5UvEElXLn6ZcrBUANC/9iBTpA5XikPKopG5DZc18Qav CNLyhYab2xQGCRh22CLB9OaBAPz17i8YSd4ygHUWTkFA7qVqO7hmY8cz1PONhdc= X-Gm-Gg: ASbGncuG8ZmMyRha/YwNq/34UTCwS1ISVJq8tTmqgUJhK5YSfOGpS20y7YwzywXg5Ls 4m73XRjOKUQACRcpDNpHWy+asDjRWGqi6N3Z/OWzaL4G3e3fCZyhgScOmkXaHzeGLYsl2nHozaw M61OJtHgJ9vkXPilmzCyy8cEbfISDOVbjAekwdZCK49SQvkWX+ZrggKVPQhU/C+/VpI+PNUtnSc XEOuh+TJrCtQp1dcxJoLv1fZmplwYi24eAXWA4onwL54tAltvAayiD7NKGzNHNzpEG+7QPvf2tC kJHJGv7Q6NSjzCXVeZJ/NG5oVgRK8XTCC5k5QdnfmwhZ0n9iQhAsqs6ZtThWR6B05prwipN2im+ KouCUn9TMQLGP1DtYJopsPdD1Tunv9IvTeAALBg1LRVgZKHDQW+g= X-Google-Smtp-Source: AGHT+IG2E8FUakRmatVkGEQSTEBOrh8rv1r4nmSTWyMgaf9apXYBXfLr1Tw0+ujxGzzPSn0JQMi9mw== X-Received: by 2002:a17:902:f54d:b0:21f:3823:482b with SMTP id d9443c01a7336-223d97c0029mr84963165ad.25.1741139714427; Tue, 04 Mar 2025 17:55:14 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 41/59] hw/riscv/riscv-iommu: add riscv-iommu-hpm file Date: Wed, 5 Mar 2025 11:52:49 +1000 Message-ID: <20250305015307.1463560-42-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::633; envelope-from=alistair23@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140407475019000 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach The HPM (Hardware Performance Monitor) support consists of almost 7 hundred lines that would be put on top of the base riscv-iommu emulation. To avoid clogging riscv-iommu.c, add a separated riscv-iommu-hpm file that will contain HPM specific code. We'll start by adding riscv_iommu_hpmcycle_read(), a helper that will be called during the riscv_iommu_mmio_read() callback. This change will have no effect on the existing emulation since we're not declaring HPM feature support. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 27 +++++++++++++++++++ hw/riscv/riscv-iommu.h | 4 +++ hw/riscv/riscv-iommu-hpm.c | 54 ++++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 24 ++++++++++++++++- hw/riscv/meson.build | 3 ++- 5 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 hw/riscv/riscv-iommu-hpm.h create mode 100644 hw/riscv/riscv-iommu-hpm.c diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h new file mode 100644 index 0000000000..231c110ff2 --- /dev/null +++ b/hw/riscv/riscv-iommu-hpm.h @@ -0,0 +1,27 @@ +/* + * RISC-V IOMMU - Hardware Performance Monitor (HPM) helpers + * + * Copyright (C) 2022-2023 Rivos Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#ifndef HW_RISCV_IOMMU_HPM_H +#define HW_RISCV_IOMMU_HPM_H + +#include "qom/object.h" +#include "hw/riscv/riscv-iommu.h" + +uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s); + +#endif diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index d2608d2f9b..59db3fd02a 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -81,6 +81,10 @@ struct RISCVIOMMUState { =20 QLIST_ENTRY(RISCVIOMMUState) iommus; QLIST_HEAD(, RISCVIOMMUSpace) spaces; + + /* HPM cycle counter */ + uint64_t hpmcycle_val; /* Current value of cycle register */ + uint64_t hpmcycle_prev; /* Saved value of QEMU_CLOCK_VIRTUAL clock= */ }; =20 void riscv_iommu_pci_setup_iommu(RISCVIOMMUState *iommu, PCIBus *bus, diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c new file mode 100644 index 0000000000..5833ab8956 --- /dev/null +++ b/hw/riscv/riscv-iommu-hpm.c @@ -0,0 +1,54 @@ +/* + * RISC-V IOMMU - Hardware Performance Monitor (HPM) helpers + * + * Copyright (C) 2022-2023 Rivos Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "qemu/osdep.h" +#include "qemu/timer.h" +#include "cpu_bits.h" +#include "riscv-iommu-hpm.h" +#include "riscv-iommu.h" +#include "riscv-iommu-bits.h" +#include "trace.h" + +/* For now we assume IOMMU HPM frequency to be 1GHz so 1-cycle is of 1-ns.= */ +static inline uint64_t get_cycles(void) +{ + return qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); +} + +uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s) +{ + const uint64_t cycle =3D riscv_iommu_reg_get64( + s, RISCV_IOMMU_REG_IOHPMCYCLES); + const uint32_t inhibit =3D riscv_iommu_reg_get32( + s, RISCV_IOMMU_REG_IOCOUNTINH); + const uint64_t ctr_prev =3D s->hpmcycle_prev; + const uint64_t ctr_val =3D s->hpmcycle_val; + + if (get_field(inhibit, RISCV_IOMMU_IOCOUNTINH_CY)) { + /* + * Counter should not increment if inhibit bit is set. We can't re= ally + * stop the QEMU_CLOCK_VIRTUAL, so we just return the last updated + * counter value to indicate that counter was not incremented. + */ + return (ctr_val & RISCV_IOMMU_IOHPMCYCLES_COUNTER) | + (cycle & RISCV_IOMMU_IOHPMCYCLES_OVF); + } + + return (ctr_val + get_cycles() - ctr_prev) | + (cycle & RISCV_IOMMU_IOHPMCYCLES_OVF); +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index e7568ca227..0fbd50bb52 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -29,6 +29,7 @@ #include "cpu_bits.h" #include "riscv-iommu.h" #include "riscv-iommu-bits.h" +#include "riscv-iommu-hpm.h" #include "trace.h" =20 #define LIMIT_CACHE_CTX (1U << 7) @@ -2153,7 +2154,28 @@ static MemTxResult riscv_iommu_mmio_read(void *opaqu= e, hwaddr addr, return MEMTX_ACCESS_ERROR; } =20 - ptr =3D &s->regs_rw[addr]; + /* Compute cycle register value. */ + if ((addr & ~7) =3D=3D RISCV_IOMMU_REG_IOHPMCYCLES) { + val =3D riscv_iommu_hpmcycle_read(s); + ptr =3D (uint8_t *)&val + (addr & 7); + } else if ((addr & ~3) =3D=3D RISCV_IOMMU_REG_IOCOUNTOVF) { + /* + * Software can read RISCV_IOMMU_REG_IOCOUNTOVF before timer + * callback completes. In which case CY_OF bit in + * RISCV_IOMMU_IOHPMCYCLES_OVF would be 0. Here we take the + * CY_OF bit state from RISCV_IOMMU_REG_IOHPMCYCLES register as + * it's not dependent over the timer callback and is computed + * from cycle overflow. + */ + val =3D ldq_le_p(&s->regs_rw[addr]); + val |=3D (riscv_iommu_hpmcycle_read(s) & RISCV_IOMMU_IOHPMCYCLES_O= VF) + ? RISCV_IOMMU_IOCOUNTOVF_CY + : 0; + ptr =3D (uint8_t *)&val + (addr & 3); + } else { + ptr =3D &s->regs_rw[addr]; + } + val =3D ldn_le_p(ptr, size); =20 *data =3D val; diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build index 3c7e083aca..c22f3a7216 100644 --- a/hw/riscv/meson.build +++ b/hw/riscv/meson.build @@ -10,7 +10,8 @@ riscv_ss.add(when: 'CONFIG_SIFIVE_U', if_true: files('sif= ive_u.c')) riscv_ss.add(when: 'CONFIG_SPIKE', if_true: files('spike.c')) riscv_ss.add(when: 'CONFIG_MICROCHIP_PFSOC', if_true: files('microchip_pfs= oc.c')) riscv_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c')) -riscv_ss.add(when: 'CONFIG_RISCV_IOMMU', if_true: files('riscv-iommu.c', '= riscv-iommu-pci.c', 'riscv-iommu-sys.c')) +riscv_ss.add(when: 'CONFIG_RISCV_IOMMU', if_true: files( + 'riscv-iommu.c', 'riscv-iommu-pci.c', 'riscv-iommu-sys.c', 'riscv-iommu-h= pm.c')) riscv_ss.add(when: 'CONFIG_MICROBLAZE_V', if_true: files('microblaze-v-gen= eric.c')) =20 hw_arch +=3D {'riscv': riscv_ss} --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139971; cv=none; d=zohomail.com; s=zohoarc; b=F6w9+tL+f403PM+y6fKv0anu6mAWqPelw926NHFQ6V9WshtglGXLAqOfQE2sg2c1SuBVzBY96bY1whPRpdur1hf7TOuYG/eAlQRaBN585D9iLAv1pQOjUxeKjFliDHw9eWoTdHdDfH0ETiK/Bea7um0d8K4EVVDCRrAhll0ECJw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139971; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=waHiBsQHcDvHNZymY9pi8A1HMdBUTLG1FFlGIB1D400=; b=huJIvzk+L7J5WaBa0QErha0zwr7uDrfMxltaw400ueXSvzDuRXbg6H2AeV7fexJ24bEvltpX8tz443dXtAFHxt1SYYu2hNffdb1Ar0mUGiu6mxLC36LgbjX3PcSPbdZnvkQBsGSC9FPWjStJEJRUyqhxaDDVJBVLZmMDfXEElmw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139971943926.0847662755828; Tue, 4 Mar 2025 17:59:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzh-0001k7-N0; Tue, 04 Mar 2025 20:56:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyk-0006zj-5U for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:26 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyh-0000Ph-D7 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:21 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-22356471820so101633145ad.0 for ; Tue, 04 Mar 2025 17:55:18 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139718; x=1741744518; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=waHiBsQHcDvHNZymY9pi8A1HMdBUTLG1FFlGIB1D400=; b=EL6Xc/ARJpLJ88WO0Mfg6MY66aBtiaO1dK8URtqP3YKXLNsJ9zDg3mT/yRgcb6m4Bq C0Nd0r2NOViTyCN0QXztPQ5nZxrxtnM5GJTH7OF6S7CbfdOTvAvPTYXCAr89uzhqgVgc hVOxBgPx3jO4RGPG2UMHVgDnLebHAEu8oJMwSFMkc6vDQGfV78LFItn48dB/zGMW8uq6 ySm8UF2HJtdTuxd3n6398e953YNVrbdXamiFn0FgEEZ4a/zM9MGg5FXn6ezudyvHW72n hRrgwqi0ryLDe9gjobQ2xf1E5Lk8608WFs7iUugebBCYHKe0jWRjk6YERfdDN3CGtzwf RKwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139718; x=1741744518; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=waHiBsQHcDvHNZymY9pi8A1HMdBUTLG1FFlGIB1D400=; b=ssHQxQecJfCuHwIfGeNZSvWhwN5NmPuqLENqFJpdPF83W9QfGOpkh5vnd5ytZi1Jmu IAjOiIbLZiTF1XbHHIgFJnXWDs7m5q3+P46kUTObGcLjZbTxhZY4lS2mbW3NKFePQfyJ k62TUNNafio0miL7gGgCfkImAcvcxRDzO0Zli00hkpSRVSSDRO++SmEyl/BC9yAgORtG K9GX8ufHZehSdcbJw4r87l5YA/KlBwS6lLkWOPJcBIGhhlT8sNFxosqx+/RkyJUtoa60 Xec9JxiKWhNpmMV3hdedXPBPMXSi7Yy8jffzXdZaVDm8YHWgr3HKROnvwgo/xySEQ6JB Oiew== X-Gm-Message-State: AOJu0YzX9MiKpOpaU0Jqw95IiPqpUhiYlKKAgY6CzAyezxi5vMqkzG1a jpn0yaoQN6wQ/zGYzgOurgPvAc/J8YfzaDGbYaAAHAhyj3krDZuzsvgZ6TfEtDc= X-Gm-Gg: ASbGncsJ4xYgfbmBca/CiyKl9FH2fZp3amIo0sLqzBcAQdifFl8VKOdSHM2KSxvPzA9 E94ADXrDo6xr9m6TWPdNZn4rn3+52cRKmy9ftzWy6NBpSL0NhLsSrZL2SX9x5VTrsG18Z4LU//p BETJ2+DtXC36Qvawp3ZtfZyHpZhYsJkyXYrwaVQxtsJJLl6aiutpbJM89U4t0d7lpes5RORSnhY wJ1x2PZDH4RXYr/kEQ7mev28c0U7pdh3ciL47D+EOts7KQbS7q6KWXbnfX3rXQ1iODpSbwdlEPD gxXDSmEKECe2Kjk+ug8VByPZieNYAlmtRyAgQePnMxBt2WJQt38UD35DdIcHsqt+PrQss0VRPl+ /DU6uDlPxa8COgfl/CpgDLsGarimvOZ9kcjm5OnqtW9KtkgBL8rQ= X-Google-Smtp-Source: AGHT+IFhGUbmOTQ8wtOLodOwq/boDE++iezmvJkKYYYhn2hNqJRJPSoO1DfGmsorbRM/r6hyFtfDDw== X-Received: by 2002:a17:903:41cb:b0:216:3466:7414 with SMTP id d9443c01a7336-223f1d397ecmr28378985ad.44.1741139717618; Tue, 04 Mar 2025 17:55:17 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 42/59] hw/riscv/riscv-iommu: add riscv_iommu_hpm_incr_ctr() Date: Wed, 5 Mar 2025 11:52:50 +1000 Message-ID: <20250305015307.1463560-43-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139973058019000 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach This function will increment a specific counter, generating an interrupt when an overflow occurs. Some extra changes in riscv-iommu.c were required to add this new helper in riscv-iommu-hpm.c: - RISCVIOMMUContext was moved to riscv-iommu.h, making it visible in riscv-iommu-hpm.c; - riscv_iommu_notify() is now public. No behavior change is made since HPM support is not being advertised yet. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-5-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 2 + hw/riscv/riscv-iommu.h | 18 ++++++ hw/riscv/riscv-iommu-hpm.c | 114 +++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 43 +++++++++----- 4 files changed, 162 insertions(+), 15 deletions(-) diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h index 231c110ff2..411d869dce 100644 --- a/hw/riscv/riscv-iommu-hpm.h +++ b/hw/riscv/riscv-iommu-hpm.h @@ -23,5 +23,7 @@ #include "hw/riscv/riscv-iommu.h" =20 uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s); +void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIOMMUContext *ctx, + unsigned event_id); =20 #endif diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index 59db3fd02a..4384f39515 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -85,12 +85,30 @@ struct RISCVIOMMUState { /* HPM cycle counter */ uint64_t hpmcycle_val; /* Current value of cycle register */ uint64_t hpmcycle_prev; /* Saved value of QEMU_CLOCK_VIRTUAL clock= */ + + /* HPM event counters */ + GHashTable *hpm_event_ctr_map; /* Mapping of events to counters */ }; =20 void riscv_iommu_pci_setup_iommu(RISCVIOMMUState *iommu, PCIBus *bus, Error **errp); void riscv_iommu_set_cap_igs(RISCVIOMMUState *s, riscv_iommu_igs_mode mode= ); void riscv_iommu_reset(RISCVIOMMUState *s); +void riscv_iommu_notify(RISCVIOMMUState *s, int vec_type); + +typedef struct RISCVIOMMUContext RISCVIOMMUContext; +/* Device translation context state. */ +struct RISCVIOMMUContext { + uint64_t devid:24; /* Requester Id, AKA device_id */ + uint64_t process_id:20; /* Process ID. PASID for PCIe */ + uint64_t tc; /* Translation Control */ + uint64_t ta; /* Translation Attributes */ + uint64_t satp; /* S-Stage address translation and protect= ion */ + uint64_t gatp; /* G-Stage address translation and protect= ion */ + uint64_t msi_addr_mask; /* MSI filtering - address mask */ + uint64_t msi_addr_pattern; /* MSI filtering - address pattern */ + uint64_t msiptp; /* MSI redirection page table pointer */ +}; =20 /* private helpers */ =20 diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 5833ab8956..8eca5ee17e 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -52,3 +52,117 @@ uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s) return (ctr_val + get_cycles() - ctr_prev) | (cycle & RISCV_IOMMU_IOHPMCYCLES_OVF); } + +static void hpm_incr_ctr(RISCVIOMMUState *s, uint32_t ctr_idx) +{ + const uint32_t off =3D ctr_idx << 3; + uint64_t cntr_val; + + cntr_val =3D ldq_le_p(&s->regs_rw[RISCV_IOMMU_REG_IOHPMCTR_BASE + off]= ); + stq_le_p(&s->regs_rw[RISCV_IOMMU_REG_IOHPMCTR_BASE + off], cntr_val + = 1); + + /* Handle the overflow scenario. */ + if (cntr_val =3D=3D UINT64_MAX) { + /* + * Generate interrupt only if OF bit is clear. +1 to offset the cy= cle + * register OF bit. + */ + const uint32_t ovf =3D + riscv_iommu_reg_mod32(s, RISCV_IOMMU_REG_IOCOUNTOVF, + BIT(ctr_idx + 1), 0); + if (!get_field(ovf, BIT(ctr_idx + 1))) { + riscv_iommu_reg_mod64(s, + RISCV_IOMMU_REG_IOHPMEVT_BASE + off, + RISCV_IOMMU_IOHPMEVT_OF, + 0); + riscv_iommu_notify(s, RISCV_IOMMU_INTR_PM); + } + } +} + +void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIOMMUContext *ctx, + unsigned event_id) +{ + const uint32_t inhibit =3D riscv_iommu_reg_get32( + s, RISCV_IOMMU_REG_IOCOUNTINH); + uint32_t did_gscid; + uint32_t pid_pscid; + uint32_t ctr_idx; + gpointer value; + uint32_t ctrs; + uint64_t evt; + + if (!(s->cap & RISCV_IOMMU_CAP_HPM)) { + return; + } + + value =3D g_hash_table_lookup(s->hpm_event_ctr_map, + GUINT_TO_POINTER(event_id)); + if (value =3D=3D NULL) { + return; + } + + for (ctrs =3D GPOINTER_TO_UINT(value); ctrs !=3D 0; ctrs &=3D ctrs - 1= ) { + ctr_idx =3D ctz32(ctrs); + if (get_field(inhibit, BIT(ctr_idx + 1))) { + continue; + } + + evt =3D riscv_iommu_reg_get64(s, + RISCV_IOMMU_REG_IOHPMEVT_BASE + (ctr_idx << 3)); + + /* + * It's quite possible that event ID has been changed in counter + * but hashtable hasn't been updated yet. We don't want to increme= nt + * counter for the old event ID. + */ + if (event_id !=3D get_field(evt, RISCV_IOMMU_IOHPMEVT_EVENT_ID)) { + continue; + } + + if (get_field(evt, RISCV_IOMMU_IOHPMEVT_IDT)) { + did_gscid =3D get_field(ctx->gatp, RISCV_IOMMU_DC_IOHGATP_GSCI= D); + pid_pscid =3D get_field(ctx->ta, RISCV_IOMMU_DC_TA_PSCID); + } else { + did_gscid =3D ctx->devid; + pid_pscid =3D ctx->process_id; + } + + if (get_field(evt, RISCV_IOMMU_IOHPMEVT_PV_PSCV)) { + /* + * If the transaction does not have a valid process_id, counter + * increments if device_id matches DID_GSCID. If the transacti= on + * has a valid process_id, counter increments if device_id + * matches DID_GSCID and process_id matches PID_PSCID. See + * IOMMU Specification, Chapter 5.23. Performance-monitoring + * event selector. + */ + if (ctx->process_id && + get_field(evt, RISCV_IOMMU_IOHPMEVT_PID_PSCID) !=3D pid_ps= cid) { + continue; + } + } + + if (get_field(evt, RISCV_IOMMU_IOHPMEVT_DV_GSCV)) { + uint32_t mask =3D ~0; + + if (get_field(evt, RISCV_IOMMU_IOHPMEVT_DMASK)) { + /* + * 1001 1011 mask =3D GSCID + * 0000 0111 mask =3D mask ^ (mask + 1) + * 1111 1000 mask =3D ~mask; + */ + mask =3D get_field(evt, RISCV_IOMMU_IOHPMEVT_DID_GSCID); + mask =3D mask ^ (mask + 1); + mask =3D ~mask; + } + + if ((get_field(evt, RISCV_IOMMU_IOHPMEVT_DID_GSCID) & mask) != =3D + (did_gscid & mask)) { + continue; + } + } + + hpm_incr_ctr(s, ctr_idx); + } +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 0fbd50bb52..0b15acf4e6 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -39,7 +39,6 @@ #define PPN_PHYS(ppn) ((ppn) << TARGET_PAGE_BITS) #define PPN_DOWN(phy) ((phy) >> TARGET_PAGE_BITS) =20 -typedef struct RISCVIOMMUContext RISCVIOMMUContext; typedef struct RISCVIOMMUEntry RISCVIOMMUEntry; =20 /* Device assigned I/O address space */ @@ -52,19 +51,6 @@ struct RISCVIOMMUSpace { QLIST_ENTRY(RISCVIOMMUSpace) list; }; =20 -/* Device translation context state. */ -struct RISCVIOMMUContext { - uint64_t devid:24; /* Requester Id, AKA device_id */ - uint64_t process_id:20; /* Process ID. PASID for PCIe */ - uint64_t tc; /* Translation Control */ - uint64_t ta; /* Translation Attributes */ - uint64_t satp; /* S-Stage address translation and protect= ion */ - uint64_t gatp; /* G-Stage address translation and protect= ion */ - uint64_t msi_addr_mask; /* MSI filtering - address mask */ - uint64_t msi_addr_pattern; /* MSI filtering - address pattern */ - uint64_t msiptp; /* MSI redirection page table pointer */ -}; - typedef enum RISCVIOMMUTransTag { RISCV_IOMMU_TRANS_TAG_BY, /* Bypass */ RISCV_IOMMU_TRANS_TAG_SS, /* Single Stage */ @@ -101,7 +87,7 @@ static uint8_t riscv_iommu_get_icvec_vector(uint32_t icv= ec, uint32_t vec_type) } } =20 -static void riscv_iommu_notify(RISCVIOMMUState *s, int vec_type) +void riscv_iommu_notify(RISCVIOMMUState *s, int vec_type) { uint32_t ipsr, icvec, vector; =20 @@ -423,6 +409,13 @@ static int riscv_iommu_spa_fetch(RISCVIOMMUState *s, R= ISCVIOMMUContext *ctx, } } =20 + + if (pass =3D=3D S_STAGE) { + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_S_VS_WAL= KS); + } else { + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_G_WALKS); + } + /* Read page table entry */ if (sc[pass].ptesize =3D=3D 4) { uint32_t pte32 =3D 0; @@ -941,6 +934,7 @@ static int riscv_iommu_ctx_fetch(RISCVIOMMUState *s, RI= SCVIOMMUContext *ctx) =20 /* Device directory tree walk */ for (; depth-- > 0; ) { + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_DD_WALK); /* * Select device id index bits based on device directory tree level * and device context format. @@ -968,6 +962,8 @@ static int riscv_iommu_ctx_fetch(RISCVIOMMUState *s, RI= SCVIOMMUContext *ctx) addr =3D PPN_PHYS(get_field(de, RISCV_IOMMU_DDTE_PPN)); } =20 + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_DD_WALK); + /* index into device context entry page */ addr |=3D (ctx->devid * dc_len) & ~TARGET_PAGE_MASK; =20 @@ -1033,6 +1029,8 @@ static int riscv_iommu_ctx_fetch(RISCVIOMMUState *s, = RISCVIOMMUContext *ctx) } =20 for (depth =3D mode - RISCV_IOMMU_DC_FSC_PDTP_MODE_PD8; depth-- > 0; )= { + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_PD_WALK); + /* * Select process id index bits based on process directory tree * level. See IOMMU Specification, 2.2. Process-Directory-Table. @@ -1050,6 +1048,8 @@ static int riscv_iommu_ctx_fetch(RISCVIOMMUState *s, = RISCVIOMMUContext *ctx) addr =3D PPN_PHYS(get_field(de, RISCV_IOMMU_PC_FSC_PPN)); } =20 + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_PD_WALK); + /* Leaf entry in PDT */ addr |=3D (ctx->process_id << 4) & ~TARGET_PAGE_MASK; if (dma_memory_read(s->target_as, addr, &dc.ta, sizeof(uint64_t) * 2, @@ -1419,6 +1419,8 @@ static int riscv_iommu_translate(RISCVIOMMUState *s, = RISCVIOMMUContext *ctx, GHashTable *iot_cache; int fault; =20 + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_URQ); + iot_cache =3D g_hash_table_ref(s->iot_cache); /* * TC[32] is reserved for custom extensions, used here to temporarily @@ -1429,6 +1431,7 @@ static int riscv_iommu_translate(RISCVIOMMUState *s, = RISCVIOMMUContext *ctx, =20 /* Check for ATS request. */ if (iotlb->perm =3D=3D IOMMU_NONE) { + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_ATS_RQ); /* Check if ATS is disabled. */ if (!(ctx->tc & RISCV_IOMMU_DC_TC_EN_ATS)) { enable_pri =3D false; @@ -1447,6 +1450,8 @@ static int riscv_iommu_translate(RISCVIOMMUState *s, = RISCVIOMMUContext *ctx, goto done; } =20 + riscv_iommu_hpm_incr_ctr(s, ctx, RISCV_IOMMU_HPMEVENT_TLB_MISS); + /* Translate using device directory / page table information. */ fault =3D riscv_iommu_spa_fetch(s, ctx, iotlb); =20 @@ -2375,6 +2380,10 @@ static void riscv_iommu_realize(DeviceState *dev, Er= ror **errp) memory_region_init_io(&s->trap_mr, OBJECT(dev), &riscv_iommu_trap_ops,= s, "riscv-iommu-trap", ~0ULL); address_space_init(&s->trap_as, &s->trap_mr, "riscv-iommu-trap-as"); + + if (s->cap & RISCV_IOMMU_CAP_HPM) { + s->hpm_event_ctr_map =3D g_hash_table_new(g_direct_hash, g_direct_= equal); + } } =20 static void riscv_iommu_unrealize(DeviceState *dev) @@ -2383,6 +2392,10 @@ static void riscv_iommu_unrealize(DeviceState *dev) =20 g_hash_table_unref(s->iot_cache); g_hash_table_unref(s->ctx_cache); + + if (s->cap & RISCV_IOMMU_CAP_HPM) { + g_hash_table_unref(s->hpm_event_ctr_map); + } } =20 void riscv_iommu_reset(RISCVIOMMUState *s) --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139965; cv=none; d=zohomail.com; s=zohoarc; b=Xqk4KyD4s0uZHaVNWuq++A3lC3hNidCj//28FxGV0FhE5IrSh2HoTes7wW7pw4C/9Wg3VY7gfhLXCPXHMMkzRgalnsyOdUk7ym74C+OurU5FW6IFCeIYki0daa/I40zsnqZjvLhwStKruGN4df5xqY7BthN0ihRpFyXFcJCq7nM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139965; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A73XJ0Y/Xq4uZE3+xdi4gk31mZXLIPaNqu/XCdbpndo=; b=Szbn6oLNqih9JY+4gcKNhyQlZ6qxpSP7i2OgqlBu1eZSb8yXzE4JSsC6Ir0PJombj1JyyXunYxVu2RVdmazm5yuIoAMfc1ydfjpsh65uBLJwecyYdo6O57c23o1jRnR2Fs3Gh83Tj864x9awrkaVS7qhnZZGLtYD5cLusZnGVCU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139964956800.7523290855152; Tue, 4 Mar 2025 17:59:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzP-0008TI-HJ; Tue, 04 Mar 2025 20:56:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdym-00070H-DM for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:28 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyk-0000Q7-PT for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:24 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2239aa5da08so54604715ad.3 for ; Tue, 04 Mar 2025 17:55:22 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139721; x=1741744521; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=A73XJ0Y/Xq4uZE3+xdi4gk31mZXLIPaNqu/XCdbpndo=; b=jbW8h2j+uaOgBm8bjzmkWUk47kH1Wf8H7CUD7tupR9MSDKluHgm8MhoCso5U1lbf72 nfH7slgtRJK8wTltLDzMqiZa99owN+MolO54ygy7ZVfO5fwW7dV3z7Y638xiVB0ip1nZ TeLvb/RjxJRs6gdVKFAEvL6W9PeCK//irii3ZNEVrYdL/3wjscZFV/c401tbVAJyrIe8 UQXb5aWVWQMSCSgi8BhjPz/aXptyo5nnYx65I07CrCmmgpWgAifGiZU3p0sjpnialddY oTKBgHXOGnCcvxUDnKc55XBR71U1kz8irKVsNxcoeSeaUpY1h6XoTutV4erV6z4uMaKs 6vIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139721; x=1741744521; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=A73XJ0Y/Xq4uZE3+xdi4gk31mZXLIPaNqu/XCdbpndo=; b=p20OxmapvHfDp2MlgWRzKj5bY7SWWL0PNGv1QS2Qw799ooNVlqHKbIiGSaeSAK4uY9 IaQ5BQPskt0uurY1w+ONJQfU/7RukaGLCFKNd0z9MgK+Z7ak6TqVAEVOUn4R0DNFkh23 QaDVDm6FsYHftXSuqUJycHXUS5z0wFpZq1T66uWaUdDli9CP/wehpgq00wmubUeph8BS aXkpIQ3c8KWSEdx4e7L4t6+7aq+dWnZtJDZJBhoCoIEvgdqmUs6tWWHaE3xn3sEaBfU0 Llp3eyVNtWr7PfNw8Fsba7Hkjmrb4mAOw7am9/0g8c4gyfkZp3hZ4qD3QzQGurl4Z6Nu 9CbA== X-Gm-Message-State: AOJu0Yy1xLjBagX5tqZBGS60Rv4jVl4oxRzLYPq3VQ3yAEGkQ4oe9S1H zyTN2csHfWu6G8zKI06fv8r4DcejEA6vKLQGqy7vlW01ddRQk8GJgDzxcbtywSU= X-Gm-Gg: ASbGncuEVRrdFG3XW0jZ2dptWdLpzYPOw1X+n3EcM/YV46WMz2QrG8Cdc31TfxC8PYp ZFwDYSR74hT41xtfa9xXY9MAcOys0wgFbcm5mKDhFxQtpFZ64arxlx5sdjvTbw6639nb2sHMTZZ Y3GQDPqqIBIQ9YV+9nxKsXxtPzx61ABMg96wc7srHRddP541uSsd3moMGamI+DK+Omy3pGOXIRD zgvvn6IIMMpyjBzqBEUZrs5s69LyFAOzIZfWzfBRz2gZygjOGwjAR01txCU5IXGbALOJfBVv0IW lf9Jk9JstN9T+0QKpgWvuzku+UdnUj3EipBKGJVVk0mjrkwFmC2W9TDubA7U33EzRYiPUemdDCU QWhnERFrB9cVkYmKh1uCNSVYaBtq2FGpvjR3v4XeKQwgUGyVpxeE= X-Google-Smtp-Source: AGHT+IH1pCGYjXFm6zL6OMokGQOVg+wtJBPP6+wXUdTjoOnnY/iRqQuJzDEEufAHcHtqfJ9EY5GyxQ== X-Received: by 2002:a17:902:f548:b0:21f:6cb2:e949 with SMTP id d9443c01a7336-223f1d8427cmr16366715ad.52.1741139720962; Tue, 04 Mar 2025 17:55:20 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 43/59] hw/riscv/riscv-iommu: instantiate hpm_timer Date: Wed, 5 Mar 2025 11:52:51 +1000 Message-ID: <20250305015307.1463560-44-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139972966019100 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach The next HPM related changes requires the HPM overflow timer to be initialized by the riscv-iommu base emulation. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-6-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 1 + hw/riscv/riscv-iommu.h | 2 ++ hw/riscv/riscv-iommu-hpm.c | 36 ++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 3 +++ 4 files changed, 42 insertions(+) diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h index 411d869dce..cd896d3b7c 100644 --- a/hw/riscv/riscv-iommu-hpm.h +++ b/hw/riscv/riscv-iommu-hpm.h @@ -25,5 +25,6 @@ uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s); void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIOMMUContext *ctx, unsigned event_id); +void riscv_iommu_hpm_timer_cb(void *priv); =20 #endif diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index 4384f39515..2fef6eed27 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -83,8 +83,10 @@ struct RISCVIOMMUState { QLIST_HEAD(, RISCVIOMMUSpace) spaces; =20 /* HPM cycle counter */ + QEMUTimer *hpm_timer; uint64_t hpmcycle_val; /* Current value of cycle register */ uint64_t hpmcycle_prev; /* Saved value of QEMU_CLOCK_VIRTUAL clock= */ + uint64_t irq_overflow_left; /* Value beyond INT64_MAX after overflow */ =20 /* HPM event counters */ GHashTable *hpm_event_ctr_map; /* Mapping of events to counters */ diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 8eca5ee17e..325088333e 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -166,3 +166,39 @@ void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISC= VIOMMUContext *ctx, hpm_incr_ctr(s, ctr_idx); } } + +/* Timer callback for cycle counter overflow. */ +void riscv_iommu_hpm_timer_cb(void *priv) +{ + RISCVIOMMUState *s =3D priv; + const uint32_t inhibit =3D riscv_iommu_reg_get32( + s, RISCV_IOMMU_REG_IOCOUNTINH); + uint32_t ovf; + + if (get_field(inhibit, RISCV_IOMMU_IOCOUNTINH_CY)) { + return; + } + + if (s->irq_overflow_left > 0) { + uint64_t irq_trigger_at =3D + qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + s->irq_overflow_left; + timer_mod_anticipate_ns(s->hpm_timer, irq_trigger_at); + s->irq_overflow_left =3D 0; + return; + } + + ovf =3D riscv_iommu_reg_get32(s, RISCV_IOMMU_REG_IOCOUNTOVF); + if (!get_field(ovf, RISCV_IOMMU_IOCOUNTOVF_CY)) { + /* + * We don't need to set hpmcycle_val to zero and update hpmcycle_p= rev to + * current clock value. The way we calculate iohpmcycs will overfl= ow + * and return the correct value. This avoids the need to synchroni= ze + * timer callback and write callback. + */ + riscv_iommu_reg_mod32(s, RISCV_IOMMU_REG_IOCOUNTOVF, + RISCV_IOMMU_IOCOUNTOVF_CY, 0); + riscv_iommu_reg_mod64(s, RISCV_IOMMU_REG_IOHPMCYCLES, + RISCV_IOMMU_IOHPMCYCLES_OVF, 0); + riscv_iommu_notify(s, RISCV_IOMMU_INTR_PM); + } +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 0b15acf4e6..f26aa15f55 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2382,6 +2382,8 @@ static void riscv_iommu_realize(DeviceState *dev, Err= or **errp) address_space_init(&s->trap_as, &s->trap_mr, "riscv-iommu-trap-as"); =20 if (s->cap & RISCV_IOMMU_CAP_HPM) { + s->hpm_timer =3D + timer_new_ns(QEMU_CLOCK_VIRTUAL, riscv_iommu_hpm_timer_cb, s); s->hpm_event_ctr_map =3D g_hash_table_new(g_direct_hash, g_direct_= equal); } } @@ -2395,6 +2397,7 @@ static void riscv_iommu_unrealize(DeviceState *dev) =20 if (s->cap & RISCV_IOMMU_CAP_HPM) { g_hash_table_unref(s->hpm_event_ctr_map); + timer_free(s->hpm_timer); } } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140434; cv=none; d=zohomail.com; s=zohoarc; b=G7YzwTwmtyhjplXoTVzSSoYbQ1UE30ejLo3GxgWYranJ3DFCB5/1BcnX02UDCRPg+fqPwN6nflp+1XDj/jOPn5v+msH9WRB2WrMYsT2y4JOs1CvZfRZJD9iWQP0dre1+SHcUNT1dQamtU2oe1wWuaJg8NrVFka4MGk/PuHNH6po= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140434; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=TdcLLvpFN1+Z9B+s54N+xpwueNucZWMefLhcdyHr3hI=; b=j5u6ZSjUrDnD788c2hSGhncljRpDGOB2K3SmOoyoPmiKPgFSWx47JSzpEJn2e4O9Ua6vgr4V6kz09E4uB+xtnmzWSk38F7ZuO9714SE+xMS86vnQj0JOz8QdNt7ONVgKtcCAcEKjriVNL2ENmTFWql7VQzcJchGRnu0PeKMiZzU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114043454996.9346093058715; Tue, 4 Mar 2025 18:07:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzN-00087q-9Z; Tue, 04 Mar 2025 20:56:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyq-00075l-AK for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:28 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyo-0000Qz-HF for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:28 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-22113560c57so118917285ad.2 for ; Tue, 04 Mar 2025 17:55:26 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139725; x=1741744525; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TdcLLvpFN1+Z9B+s54N+xpwueNucZWMefLhcdyHr3hI=; b=AWIbw8hdE4Z7MRIKib/zEwjkQlmfxATzImt5qSCWjjp4b0LxncFfOUXW+XX3OPFGKw ZhhFDogxYNhq14RlaIjgQ6waEKHDJ2TE1RkAln5hsZtD95HXAFwxDgL0d7EJzViOLjxV hNIwz0i+CBtnjtPMQIRVbNNxZTEjP3WkBnCLtaBTX4366a/KsTkSeF3LdHQVG2Daiy8E YeYEJQXlP7QIx1Z6u1HBsiLKziqv/bIb3l9/V4vCppfRGgcJVxzspmOiuzZVB06bD7lb qcgLezx2gFQvp8iPwIJyL5SCzp9jomH8dxhFPVukK8WSBOhcRgoJLXWFefgtSzAWSe5b OO3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139725; x=1741744525; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TdcLLvpFN1+Z9B+s54N+xpwueNucZWMefLhcdyHr3hI=; b=Fnx/06+m5XlzJwOROU60sLXbMYb7SHhhPu+JNda9pC5uekU4FpSHT4GFXHwZ0I+IbN QvD3DlmFgIlVx/8k4+eSXOXvn52OBrvJRsvuGtTiXxZfSCJ4SO3tMQ3R2Ba8zcp+ZAXG LnEI0N79OpQmtOSdfXnplMneN+etKebu5ZKHftzColT0oaHp0j+gLrEawEoGmcEIgDic Ira/7TnNkF+RvwGwVKmfVt8wBSjel500sy76DC2jZq0JR2GR1NFggwkgK3OK0uVYcmiO ALPPSO+Kzpt+JBpWHMFq2KJY+j0WFryLZh63NrZwdwbSoyEYMPqu/QdvOt7QL1WFAfFH fAHQ== X-Gm-Message-State: AOJu0YwPpzIgm5+2EgLzNTRG5byrmKj4FxcW8glAnv4SI6TjT2FlkEE4 Sd5OIYuiHEELWjHXWzGvStIH2LQUqNoW7Fdb91X7SetiW4TWvK2lvsPr8ygTecY= X-Gm-Gg: ASbGnctXhbo7kIngRpqXUfON4404sA0v8Wd7//V3OekIAcYnwgY4mn7tDgWY+srQD57 tJPRwIpdqgWuSxhYY8cl8KeNwtuxYX69+0iK45hhdnADSFPyJrPIdBhHwoho6zUUGlbP3dA90+V ZjTm/C2qGFwSqQUc5ODBfxPLigoUo9BbDTCXlbeXYXYDaL06I2FFGKXI0WJcber1pkYvWCOQfaz cEpj+oN+xLhNlMkRFlus9t01KqKGxSm9wVJJB9YLgd3ag/Y37wMUWR7VG1vmDmyJZARkHg5uYAc H9WpwTagfXkMeP8EHzomW8KVattB0qooNUMKb5remwckdhsBp7rQkO+xNTDFnw+TRIh6HcepO7N /7kULHW3TmTaSP5GUjlkH++N8ozOKkG6/++Uqm2H5Yx1+OHHFUF8= X-Google-Smtp-Source: AGHT+IGSgFzyddFBTl/O3MrTXMI5DRqZsVYwV+hkmn5qD+3hPwF6ljorS0ri4FBVOHKxg/LAif0SIQ== X-Received: by 2002:a17:902:e881:b0:223:6744:bfb9 with SMTP id d9443c01a7336-223f1d20e54mr22347475ad.41.1741139724005; Tue, 04 Mar 2025 17:55:24 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 44/59] hw/riscv/riscv-iommu: add IOCOUNTINH mmio writes Date: Wed, 5 Mar 2025 11:52:52 +1000 Message-ID: <20250305015307.1463560-45-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140435510019000 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach RISCV_IOMMU_REG_IOCOUNTINH is done by riscv_iommu_process_iocntinh_cy(), which is called during riscv_iommu_mmio_write() callback via a new riscv_iommu_pricess_hpm_writes() helper. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-7-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 1 + hw/riscv/riscv-iommu-hpm.c | 60 ++++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 38 ++++++++++++++++++++++++ 3 files changed, 99 insertions(+) diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h index cd896d3b7c..ee888650fb 100644 --- a/hw/riscv/riscv-iommu-hpm.h +++ b/hw/riscv/riscv-iommu-hpm.h @@ -26,5 +26,6 @@ uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s); void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIOMMUContext *ctx, unsigned event_id); void riscv_iommu_hpm_timer_cb(void *priv); +void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *s, bool prev_cy_inh); =20 #endif diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 325088333e..70814b942d 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -202,3 +202,63 @@ void riscv_iommu_hpm_timer_cb(void *priv) riscv_iommu_notify(s, RISCV_IOMMU_INTR_PM); } } + +static void hpm_setup_timer(RISCVIOMMUState *s, uint64_t value) +{ + const uint32_t inhibit =3D riscv_iommu_reg_get32( + s, RISCV_IOMMU_REG_IOCOUNTINH); + uint64_t overflow_at, overflow_ns; + + if (get_field(inhibit, RISCV_IOMMU_IOCOUNTINH_CY)) { + return; + } + + /* + * We are using INT64_MAX here instead to UINT64_MAX because cycle cou= nter + * has 63-bit precision and INT64_MAX is the maximum it can store. + */ + if (value) { + overflow_ns =3D INT64_MAX - value + 1; + } else { + overflow_ns =3D INT64_MAX; + } + + overflow_at =3D (uint64_t)qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + over= flow_ns; + + if (overflow_at > INT64_MAX) { + s->irq_overflow_left =3D overflow_at - INT64_MAX; + overflow_at =3D INT64_MAX; + } + + timer_mod_anticipate_ns(s->hpm_timer, overflow_at); +} + +/* Updates the internal cycle counter state when iocntinh:CY is changed. */ +void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *s, bool prev_cy_inh) +{ + const uint32_t inhibit =3D riscv_iommu_reg_get32( + s, RISCV_IOMMU_REG_IOCOUNTINH); + + /* We only need to process CY bit toggle. */ + if (!(inhibit ^ prev_cy_inh)) { + return; + } + + if (!(inhibit & RISCV_IOMMU_IOCOUNTINH_CY)) { + /* + * Cycle counter is enabled. Just start the timer again and update + * the clock snapshot value to point to the current time to make + * sure iohpmcycles read is correct. + */ + s->hpmcycle_prev =3D get_cycles(); + hpm_setup_timer(s, s->hpmcycle_val); + } else { + /* + * Cycle counter is disabled. Stop the timer and update the cycle + * counter to record the current value which is last programmed + * value + the cycles passed so far. + */ + s->hpmcycle_val =3D s->hpmcycle_val + (get_cycles() - s->hpmcycle_= prev); + timer_del(s->hpm_timer); + } +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index f26aa15f55..a4580dca0b 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2024,6 +2024,27 @@ static void riscv_iommu_update_ipsr(RISCVIOMMUState = *s, uint64_t data) riscv_iommu_reg_mod32(s, RISCV_IOMMU_REG_IPSR, ipsr_set, ipsr_clr); } =20 +static void riscv_iommu_process_hpm_writes(RISCVIOMMUState *s, + uint32_t regb, + bool prev_cy_inh) +{ + switch (regb) { + case RISCV_IOMMU_REG_IOCOUNTINH: + riscv_iommu_process_iocntinh_cy(s, prev_cy_inh); + break; + + case RISCV_IOMMU_REG_IOHPMCYCLES: + case RISCV_IOMMU_REG_IOHPMCYCLES + 4: + /* not yet implemented */ + break; + + case RISCV_IOMMU_REG_IOHPMEVT_BASE ... + RISCV_IOMMU_REG_IOHPMEVT(RISCV_IOMMU_IOCOUNT_NUM) + 4: + /* not yet implemented */ + break; + } +} + /* * Write the resulting value of 'data' for the reg specified * by 'reg_addr', after considering read-only/read-write/write-clear @@ -2051,6 +2072,7 @@ static MemTxResult riscv_iommu_mmio_write(void *opaqu= e, hwaddr addr, uint32_t regb =3D addr & ~3; uint32_t busy =3D 0; uint64_t val =3D 0; + bool cy_inh =3D false; =20 if ((addr & (size - 1)) !=3D 0) { /* Unsupported MMIO alignment or access size */ @@ -2118,6 +2140,16 @@ static MemTxResult riscv_iommu_mmio_write(void *opaq= ue, hwaddr addr, busy =3D RISCV_IOMMU_TR_REQ_CTL_GO_BUSY; break; =20 + case RISCV_IOMMU_REG_IOCOUNTINH: + if (addr !=3D RISCV_IOMMU_REG_IOCOUNTINH) { + break; + } + /* Store previous value of CY bit. */ + cy_inh =3D !!(riscv_iommu_reg_get32(s, RISCV_IOMMU_REG_IOCOUNTINH)= & + RISCV_IOMMU_IOCOUNTINH_CY); + break; + + default: break; } @@ -2136,6 +2168,12 @@ static MemTxResult riscv_iommu_mmio_write(void *opaq= ue, hwaddr addr, stl_le_p(&s->regs_rw[regb], rw | busy); } =20 + /* Process HPM writes and update any internal state if needed. */ + if (regb >=3D RISCV_IOMMU_REG_IOCOUNTOVF && + regb <=3D (RISCV_IOMMU_REG_IOHPMEVT(RISCV_IOMMU_IOCOUNT_NUM) + 4))= { + riscv_iommu_process_hpm_writes(s, regb, cy_inh); + } + if (process_fn) { process_fn(s); } --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140115; cv=none; d=zohomail.com; s=zohoarc; b=kJSEcQzMgnvN+r2r4loc2hKbSpHrRwGmWT1sZ3of2z1adRVX5coAD/TGzUczkv7lJCCchYahRAnryEJGMTWqIZB7kp2jC/rPMeDnb+SbCmLMf3Z1pLjXi3f+jFE5MH1jt9+fs7Spen1AkFXV122TQ2DWKz1bYGizqky9SPTfWTA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140115; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e7fic5ApTylR4PI06x/G/v7IZ/lFGLmPIIZhQKKAKjY=; b=IqjGmBwU0DrlEHHB9pSmi+D7d6Q3p502BvO6vMUw71kvpvShERdWlXfsYBmcZdp2IhzVfPnhbjIBuj11yYa0mfNxYfdYLdsFhJu8BGtZZebrwe8X8vJafxZjBLlYzdcT006yG82TVkzncOi2deZCxamlNInVTyuJhwI+zkjdE5o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114011596485.23244235233255; Tue, 4 Mar 2025 18:01:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0P-0003dx-Nv; Tue, 04 Mar 2025 20:57:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdys-00077N-6p for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:31 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyq-0000RG-JH for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:29 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-22355618fd9so108723975ad.3 for ; Tue, 04 Mar 2025 17:55:28 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139727; x=1741744527; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=e7fic5ApTylR4PI06x/G/v7IZ/lFGLmPIIZhQKKAKjY=; b=EFCNHXhhqXsrVJT1a840dJoUpbSMZrJID3bAZSHyfdLbZ+e9yeJqpwoM7AFgXh//T5 DpJzqh6eDW/l6KggDAI86Ey+xCnGGQX9pj96pL0pjQSTrZ/uBMQSEDktU034/5xraM4B 3nona8a5BYQjHnT90IHw9+UFjV+icfP39XuIlGV0b4UWAijbrdsMtqKcYG0uYGQ0yXK4 w9PbDzSqCs8/HMx819kgtj4nPzFV45GnlQ+HIIGLP8PZ7Zja4tgH00+fJYURLIhNzY3B A/2w7ufsdOG5e9SZ8NJVdHubyOOgv8WvUPK3KRZP6mvE1+FToaUH8qxLE/9RZjwkKGBO KF/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139727; x=1741744527; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e7fic5ApTylR4PI06x/G/v7IZ/lFGLmPIIZhQKKAKjY=; b=NBgY+sklY+wDC0Oau2AK3G/Kud2if11U3jkCixG2/wfEn7gMMS3Ge1TykALqyPcHlr 2wCsjlISOs+bRHWzkZo6HQ/sqkv9CpdhdtocUnth5Ux/YKbnux3Y7xmVZc3tzwUmSFyg T1uGcgX1ZWbIWJQHks0yhxVNzwcFUiaHUek3cNOs58tAetPf5atKOYsb3esCYJAn2MEP kF1sENjgjldyeVF1aBioDHQv4WDL25+y1Cu7UhWtYtcH8Ajt8mH7cuCkmEuUgZXUFpOK ebF9G2FcDj8fulEJWhUuNqq9po8Nz9cyJbF4ADKFpOp84fDFc2+h8QCiFIfvdt0V18Nf 7qfw== X-Gm-Message-State: AOJu0YykMoL8ssoqQ4xeyNicGlYF88dFaeUQxZpM26h4Yfj0wBwWYjXy stjvHgqgI/7eOtxEqdo2iTuPO3toacvq9n9hCllHOtc1RQyJMR/DwpfgA7HkxSM= X-Gm-Gg: ASbGnct0vZNZgGQ+w0HvJxGNYZ72pz3U07DB3I5e9w6gU9VCnHCq/61Ff4UZIrepYYI VtbiWdiA1Tw8z5k1H7YdpqnZjKNn1k9xuzZCHoD6GkjU4k+7HpnSvG84jQ2ybIIZWd88WckbjRo W4BnTFlDcFQCFKkOEcdL6ZU5fa1vLNipkG9RkHP+u0opBad+tIYT0FHdZUd1sn2r3FBphvLYx13 /cyKur0KWJ7EA6OF4CL4x/MiSTZgr321wmJYfKVVn8jxw4FT9VqllE+UtoTTdBAK1Wl/gyuUIlV w6kyzVPoEfxyyXaNUwJQ/EE89enJQFlz/OOvdhfZw/1a9Sm7IS3qVs5ocGHl67TzUTpUwzr7p2w ByJKDmwCFNjWUo+Eb3vkrg8Vuq/0UN6ptIb4IT//Ozvx8poUQ+/M= X-Google-Smtp-Source: AGHT+IHyQKiLzLEm1sDf+XLBvUZQ6U11u+76gQVWBbmHm0PgFxdgaPX1c48XGiJ2WO63NsGgR/2YOQ== X-Received: by 2002:a17:903:182:b0:223:2630:6b82 with SMTP id d9443c01a7336-223f1c6903amr26913875ad.10.1741139727108; Tue, 04 Mar 2025 17:55:27 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 45/59] hw/riscv/riscv-iommu: add IOHPMCYCLES mmio write Date: Wed, 5 Mar 2025 11:52:53 +1000 Message-ID: <20250305015307.1463560-46-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140118591019100 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach RISCV_IOMMU_REG_IOHPMCYCLES writes are done by riscv_iommu_process_hpmcycle_write(), called by the mmio write callback via riscv_iommu_process_hpm_writes(). Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250224190826.1858473-8-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 1 + hw/riscv/riscv-iommu-hpm.c | 19 +++++++++++++++++++ hw/riscv/riscv-iommu.c | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h index ee888650fb..0cd550975d 100644 --- a/hw/riscv/riscv-iommu-hpm.h +++ b/hw/riscv/riscv-iommu-hpm.h @@ -27,5 +27,6 @@ void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIO= MMUContext *ctx, unsigned event_id); void riscv_iommu_hpm_timer_cb(void *priv); void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *s, bool prev_cy_inh); +void riscv_iommu_process_hpmcycle_write(RISCVIOMMUState *s); =20 #endif diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 70814b942d..1cea6b1df1 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -262,3 +262,22 @@ void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *= s, bool prev_cy_inh) timer_del(s->hpm_timer); } } + +void riscv_iommu_process_hpmcycle_write(RISCVIOMMUState *s) +{ + const uint64_t val =3D riscv_iommu_reg_get64(s, RISCV_IOMMU_REG_IOHPMC= YCLES); + const uint32_t ovf =3D riscv_iommu_reg_get32(s, RISCV_IOMMU_REG_IOCOUN= TOVF); + + /* + * Clear OF bit in IOCNTOVF if it's being cleared in IOHPMCYCLES regis= ter. + */ + if (get_field(ovf, RISCV_IOMMU_IOCOUNTOVF_CY) && + !get_field(val, RISCV_IOMMU_IOHPMCYCLES_OVF)) { + riscv_iommu_reg_mod32(s, RISCV_IOMMU_REG_IOCOUNTOVF, 0, + RISCV_IOMMU_IOCOUNTOVF_CY); + } + + s->hpmcycle_val =3D val & ~RISCV_IOMMU_IOHPMCYCLES_OVF; + s->hpmcycle_prev =3D get_cycles(); + hpm_setup_timer(s, s->hpmcycle_val); +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index a4580dca0b..821ecba3a4 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2035,7 +2035,7 @@ static void riscv_iommu_process_hpm_writes(RISCVIOMMU= State *s, =20 case RISCV_IOMMU_REG_IOHPMCYCLES: case RISCV_IOMMU_REG_IOHPMCYCLES + 4: - /* not yet implemented */ + riscv_iommu_process_hpmcycle_write(s); break; =20 case RISCV_IOMMU_REG_IOHPMEVT_BASE ... --=20 2.48.1 From nobody Wed Apr 2 13:40:46 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139930; cv=none; d=zohomail.com; s=zohoarc; b=U8iU4UxUeppTnfBbNSZjBSRjdif0/3mqKuv3gS8d1ElOkpxBZS2cVZtsxNhGCeGWtqKZlTgXT2Dw6ry/gkCuBV7HiS38HnI6N+NJnYL0OcIREyafPNe/xmUMCUDsmtQgNMrq5O0lQlVOzwKgvLfgbT/umHL+zXVtsP7CXal7wAo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139930; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hg6ctHTleBalPPYSEjbmnNlFJNx67RnPs15e9jCuTs8=; b=CyVp3mAGHwXQImMzbGXOnjXeXsPLuP97AEcTecBh/uKbCYFihqordNzZhPbslix3tzblKCNyduY1AZdtTUZ5uOl7MyMCzD/WaymwUNdWrbIfi7kscPKFJZPHlp5TooWfGxIJJeHGJ+yzVRKupuVaXPE/ZPs2QGFI7DGX+JiCXfM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139930918600.2109286044057; Tue, 4 Mar 2025 17:58:50 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzc-0001Bu-5W; Tue, 04 Mar 2025 20:56:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdyv-0007Ip-Ue for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:34 -0500 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyt-0000Rn-OM for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:33 -0500 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-22337bc9ac3so119457645ad.1 for ; Tue, 04 Mar 2025 17:55:31 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139730; x=1741744530; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hg6ctHTleBalPPYSEjbmnNlFJNx67RnPs15e9jCuTs8=; b=kMZctoyoO6C1xbc05MAAIDw1b0X3rM35kCbLJRuKmB85C5MWqV2+kwTFHycmsAx9ZN Cy9BgpS4YLYd9uqvpl9FMA+IzHKdhQBHOLeeILSR0roAzg5LHDmJiV+6XnJyFIpp9fLn JdyVZr9x4UyyXqZefs0xNgNoYNzuqGzLFAfT6yjFyyrjxMaxsTNVluGKttyvpgPyweAc krXzyGmIWC7u81R3RdWcEp1FRMdO1GXSwr7ecTaEJ1GivNDILjnkAH9L+iOS2nIVr8Xq clc3xxSSpvL7XqHnb+Rbi2uq7CCF4Zapc/3YL6mio4dB47eYLjtPrgoEIzcvLXbF0w6j nolg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139730; x=1741744530; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hg6ctHTleBalPPYSEjbmnNlFJNx67RnPs15e9jCuTs8=; b=BDIbJy7q9RLhtbzDJhOlzTqkaCNR5q8U/WFHEYoApSjLDifYJ5hfBEMmH05ziXJ829 qz1NRdMc8bEX/utptQ3D1aCUTcaeIzOEEVSEbhpXNWKyRGc5TSLH+ZEGE7XyDe4HMF1I /FwstsHLt4rlNVGGM7JopiKuJJz9GxsmopOYkNPJwCbd/ydfZZ/V4kMxSDgrphZh1Erd NmZDnWvalDy6zkhPnpJ93XK+VSbznpOYOQREAmecEN1q9uDBzQQheB8Va6RBmt5dvsBp N9HSNIJTkBPOkeA0ojXG950MAnQVyqfObhvXoJeiPI/bbdhVlDTkJHA41hjsxxd19Q3F ddEQ== X-Gm-Message-State: AOJu0YyvOXi2WzWJxkbt/tSwYZjEssTp50Axn/YxYAgSpctdcTmX+Gtn 1pEIeSeqTEsOAxKcmlf5n7U/q52FZJtSunjNlgEIn8G1g6wv4ippSfmwQ+XiU9I= X-Gm-Gg: ASbGncvT+19OtnSSIZum2sZo3N1DfQmIKz1FpbgWM8Awt0q6kXTP8lYD4JqOC16Fcxm Gwr5yY8Tumyi8QtxdCix6seX8OJwrAKya9Rd6l9z1pVAHZ74HDhrvTPrr7JPmvcWExD3r2Ftfvy SbCcxe/wgI7b4AWl8gs6FStwtI7FP08ugbL6XrzSnydo4as7X8AVMyag2tHVT9W0WWV9i8s5gqG aqJyy4ghVZ4TVGv5CrqmKZHy9MH2nVqWRSvHDReMg7pDZXs7BF3mjhSBUeZBBmsFMGCyeDvIfkQ KiO/AXNOeXPsCkWhtSUylShE20gzPNGKOYhJdiDrIpz2WEXHTx4qJIG6YApX4G5czt6UmPUdnAy aJuqgadObvt+Li3GTOVH3TQi9lCrUB3GRhVGNkJjYesVxHxJmYSI= X-Google-Smtp-Source: AGHT+IEaf+xPuBDhoyTq9BBMPhv3jgUAwKTHGAKqti1UvoLK0ddcLYhNEOmRUWxx2/gAi4zIr2F4QA== X-Received: by 2002:a17:902:e787:b0:223:f408:c3cf with SMTP id d9443c01a7336-223f408c554mr14459675ad.21.1741139730116; Tue, 04 Mar 2025 17:55:30 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 46/59] hw/riscv/riscv-iommu: add hpm events mmio write Date: Wed, 5 Mar 2025 11:52:54 +1000 Message-ID: <20250305015307.1463560-47-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62c; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139931916019100 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach To support hpm events mmio writes, done via riscv_iommu_process_hpmevt_write(), we're also adding the 'hpm-counters' IOMMU property that are used to determine the amount of counters available in the IOMMU. Note that everything we did so far didn't change any IOMMU behavior because we're still not advertising HPM capability to software. This will be done in the next patch. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-9-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.h | 1 + hw/riscv/riscv-iommu.h | 1 + hw/riscv/riscv-iommu-hpm.c | 88 ++++++++++++++++++++++++++++++++++++++ hw/riscv/riscv-iommu.c | 4 +- 4 files changed, 93 insertions(+), 1 deletion(-) diff --git a/hw/riscv/riscv-iommu-hpm.h b/hw/riscv/riscv-iommu-hpm.h index 0cd550975d..5fc4ef2e8b 100644 --- a/hw/riscv/riscv-iommu-hpm.h +++ b/hw/riscv/riscv-iommu-hpm.h @@ -28,5 +28,6 @@ void riscv_iommu_hpm_incr_ctr(RISCVIOMMUState *s, RISCVIO= MMUContext *ctx, void riscv_iommu_hpm_timer_cb(void *priv); void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *s, bool prev_cy_inh); void riscv_iommu_process_hpmcycle_write(RISCVIOMMUState *s); +void riscv_iommu_process_hpmevt_write(RISCVIOMMUState *s, uint32_t evt_reg= ); =20 #endif diff --git a/hw/riscv/riscv-iommu.h b/hw/riscv/riscv-iommu.h index 2fef6eed27..a31aa62144 100644 --- a/hw/riscv/riscv-iommu.h +++ b/hw/riscv/riscv-iommu.h @@ -90,6 +90,7 @@ struct RISCVIOMMUState { =20 /* HPM event counters */ GHashTable *hpm_event_ctr_map; /* Mapping of events to counters */ + uint8_t hpm_cntrs; }; =20 void riscv_iommu_pci_setup_iommu(RISCVIOMMUState *iommu, PCIBus *bus, diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 1cea6b1df1..5518c287a5 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -281,3 +281,91 @@ void riscv_iommu_process_hpmcycle_write(RISCVIOMMUStat= e *s) s->hpmcycle_prev =3D get_cycles(); hpm_setup_timer(s, s->hpmcycle_val); } + +static inline bool check_valid_event_id(unsigned event_id) +{ + return event_id > RISCV_IOMMU_HPMEVENT_INVALID && + event_id < RISCV_IOMMU_HPMEVENT_MAX; +} + +static gboolean hpm_event_equal(gpointer key, gpointer value, gpointer uda= ta) +{ + uint32_t *pair =3D udata; + + if (GPOINTER_TO_UINT(value) & (1 << pair[0])) { + pair[1] =3D GPOINTER_TO_UINT(key); + return true; + } + + return false; +} + +/* Caller must check ctr_idx against hpm_ctrs to see if its supported or n= ot. */ +static void update_event_map(RISCVIOMMUState *s, uint64_t value, + uint32_t ctr_idx) +{ + unsigned event_id =3D get_field(value, RISCV_IOMMU_IOHPMEVT_EVENT_ID); + uint32_t pair[2] =3D { ctr_idx, RISCV_IOMMU_HPMEVENT_INVALID }; + uint32_t new_value =3D 1 << ctr_idx; + gpointer data; + + /* + * If EventID field is RISCV_IOMMU_HPMEVENT_INVALID + * remove the current mapping. + */ + if (event_id =3D=3D RISCV_IOMMU_HPMEVENT_INVALID) { + data =3D g_hash_table_find(s->hpm_event_ctr_map, hpm_event_equal, = pair); + + new_value =3D GPOINTER_TO_UINT(data) & ~(new_value); + if (new_value !=3D 0) { + g_hash_table_replace(s->hpm_event_ctr_map, + GUINT_TO_POINTER(pair[1]), + GUINT_TO_POINTER(new_value)); + } else { + g_hash_table_remove(s->hpm_event_ctr_map, + GUINT_TO_POINTER(pair[1])); + } + + return; + } + + /* Update the counter mask if the event is already enabled. */ + if (g_hash_table_lookup_extended(s->hpm_event_ctr_map, + GUINT_TO_POINTER(event_id), + NULL, + &data)) { + new_value |=3D GPOINTER_TO_UINT(data); + } + + g_hash_table_insert(s->hpm_event_ctr_map, + GUINT_TO_POINTER(event_id), + GUINT_TO_POINTER(new_value)); +} + +void riscv_iommu_process_hpmevt_write(RISCVIOMMUState *s, uint32_t evt_reg) +{ + const uint32_t ctr_idx =3D (evt_reg - RISCV_IOMMU_REG_IOHPMEVT_BASE) >= > 3; + const uint32_t ovf =3D riscv_iommu_reg_get32(s, RISCV_IOMMU_REG_IOCOUN= TOVF); + uint64_t val =3D riscv_iommu_reg_get64(s, evt_reg); + + if (ctr_idx >=3D s->hpm_cntrs) { + return; + } + + /* Clear OF bit in IOCNTOVF if it's being cleared in IOHPMEVT register= . */ + if (get_field(ovf, BIT(ctr_idx + 1)) && + !get_field(val, RISCV_IOMMU_IOHPMEVT_OF)) { + /* +1 to offset CYCLE register OF bit. */ + riscv_iommu_reg_mod32( + s, RISCV_IOMMU_REG_IOCOUNTOVF, 0, BIT(ctr_idx + 1)); + } + + if (!check_valid_event_id(get_field(val, RISCV_IOMMU_IOHPMEVT_EVENT_ID= ))) { + /* Reset EventID (WARL) field to invalid. */ + val =3D set_field(val, RISCV_IOMMU_IOHPMEVT_EVENT_ID, + RISCV_IOMMU_HPMEVENT_INVALID); + riscv_iommu_reg_set64(s, evt_reg, val); + } + + update_event_map(s, val, ctr_idx); +} diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index 821ecba3a4..cdbb848181 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2040,7 +2040,7 @@ static void riscv_iommu_process_hpm_writes(RISCVIOMMU= State *s, =20 case RISCV_IOMMU_REG_IOHPMEVT_BASE ... RISCV_IOMMU_REG_IOHPMEVT(RISCV_IOMMU_IOCOUNT_NUM) + 4: - /* not yet implemented */ + riscv_iommu_process_hpmevt_write(s, regb & ~7); break; } } @@ -2487,6 +2487,8 @@ static const Property riscv_iommu_properties[] =3D { DEFINE_PROP_BOOL("g-stage", RISCVIOMMUState, enable_g_stage, TRUE), DEFINE_PROP_LINK("downstream-mr", RISCVIOMMUState, target_mr, TYPE_MEMORY_REGION, MemoryRegion *), + DEFINE_PROP_UINT8("hpm-counters", RISCVIOMMUState, hpm_cntrs, + RISCV_IOMMU_IOCOUNT_NUM), }; =20 static void riscv_iommu_class_init(ObjectClass *klass, void* data) --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140150; cv=none; d=zohomail.com; s=zohoarc; b=YuiLuu2ogH+bbm1Ala5Iaug5FSy7Tm8wRIboYKgE05A+4acPmyhhjuWAejmATCHrxqxrduSnIvrjIeCXciN0F4OI61LOnthOsiOaKCwYtsrQkXJixIyY0Ww+zceuUZYCWG+tbukk0sNKfesijBPDkpqCvKy/LGJbr2mgsk5QSts= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140150; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/+pVAm+qdHHoPEozzQnAWofmyOHOLCO+Ul/WzzNiW7U=; b=ijy4cjc9OOWlzNMhqJnsrPyKBKCAyAMOkU4ufCkttrp72BW04hgfpwJllzLyR2Swii7ypJIf4HLiq1jBDjVT5rItM32G7hheN57dOJtCORv+kynv32DGCcYypda7XTa3lN3DIMelQDplfrvrbmso2XQaGXTLHyUBOr4dssthZjo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140150205957.8486703034149; Tue, 4 Mar 2025 18:02:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzl-0002GT-FV; Tue, 04 Mar 2025 20:56:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdz0-0007V0-HQ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:43 -0500 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdyx-0000SB-L3 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:37 -0500 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-22355618fd9so108724855ad.3 for ; Tue, 04 Mar 2025 17:55:34 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139733; x=1741744533; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/+pVAm+qdHHoPEozzQnAWofmyOHOLCO+Ul/WzzNiW7U=; b=ITQaqPk2PhrvWiAktMtU7iNku3iudkjvxBs3AsI9s3WyUYyHqln0jKwA59smvtP4jf FODBBxyBH7sBtQ6HPY43Rk8n2DAE9iKjTPT59zPTQjA/dYWpETdfIA5lt8tYLgdbPxc4 Hl46G+mHL73qcgPd8GYf9Dl0lIv7ylj+n31Ouj9pLpRFNszum1WlYvn+qUacJROy+SJp Srk8CAwJXfB3PwGTtOew46sP4/GfPLfNB+4JAdZCwPYhx3zyma5iKlkewsL5+C6a/X3G 8qUEpJOqlqyTNnZGcPau0597f7yMIqlNy68O/DL2qChI5/kTrA6PxwmwZnJRoy8uYjwA 45ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139733; x=1741744533; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/+pVAm+qdHHoPEozzQnAWofmyOHOLCO+Ul/WzzNiW7U=; b=V7p4zI5v2nDW0QVyrMQE63WdaAelxanccj3YJaekYsjs5NOPSb5d6OR//uSmlqmKkN NzMTz3+SgwxDUdP8jY2qRiVZ5N73zeKTUgYbyIsUBK0uQ+cbDFAZ92hbcCrwZuaaTLh0 uNILMP1P7dac+ZYgkn15Vn3yKbPAs0M0riB9xCy23PvYGKZOZ1coHg/5fr1soEcY6xx5 c+BOBFVf9HjY0exNGHTWSSfag6h/iuTlj4WoFuRvpyqIjtz6knENMksTI5OVa/iQMyFl CLpd8pS2f3LxxP3UUrFik6DQ2yVh1kSrxhsKNnQUEZNWa6sbaE4EcTw5kL/wYCuk6i1t kANg== X-Gm-Message-State: AOJu0Ywu7xzUHMYzmHsbS5FOBV41+5gHK0KyiHqhx68qIBun0htJwAve A6W9eIZF7HsLU4BerUnVwmAhuwAtTLNhwwlvbJKt6VffNg85Zaw7ry1b33f0rPQ= X-Gm-Gg: ASbGncs8fBwoxnEInRIgCoCknce4PtjnUmkTrM7dbXbc7Y9F4TdILxsHQ7PnNREqEdk HWS3O9plfoDNaONP29P4OYzkGnuDXNx3xrP08DHJ0jxvqyH2uYflh0odNxtjR9gc+MA9zCCb6lR QX5mUucIufsb+N0LMtYGJw6/7d07DJv+MXWnsNMBzxc+T0TBnlXv2J3cDOX1+r1oV+/EbC7Z0GS rzg4EFxqGa9fKuDe2u67s/Z/q13wX2PWTFUyNOIaQ/gC0HY8m9CCs3LI1Xp6DF0fjSH6Oj38F3O 6tju6SJnD7S18UrSUF1ADINVzpx8k7cCaZGvsiXw9G60LvODlQCqO7QMSR+EjnKM5OHZDTRebQ3 hmW2T0JGy7W+eSZdXNTswHYZDsJHEkLAyaTkx+XZkUHWTEOBjGZ4= X-Google-Smtp-Source: AGHT+IG9Qa6W+2RZ8jDp06RQZ2+2ktmK7g3N8ol7rVfFdEKCFnyGnOGoFKPqguFToxwPbsL34mgeTQ== X-Received: by 2002:a17:903:182:b0:223:2630:6b82 with SMTP id d9443c01a7336-223f1c6903amr26918465ad.10.1741139733120; Tue, 04 Mar 2025 17:55:33 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Tomasz Jeznach , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 47/59] hw/riscv/riscv-iommu.c: add RISCV_IOMMU_CAP_HPM cap Date: Wed, 5 Mar 2025 11:52:55 +1000 Message-ID: <20250305015307.1463560-48-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::635; envelope-from=alistair23@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140152689019100 Content-Type: text/plain; charset="utf-8" From: Tomasz Jeznach Now that we have every piece in place we can advertise CAP_HTM to software, allowing any HPM aware driver to make use of the counters. HPM is enabled/disabled via the 'hpm-counters' attribute. Default value is 31, max value is also 31. Setting it to zero will disable HPM support. Signed-off-by: Tomasz Jeznach Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-10-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index cdbb848181..d46beb2d64 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2357,6 +2357,15 @@ static void riscv_iommu_realize(DeviceState *dev, Er= ror **errp) RISCV_IOMMU_CAP_SV48X4 | RISCV_IOMMU_CAP_SV57X4; } =20 + if (s->hpm_cntrs > 0) { + /* Clip number of HPM counters to maximum supported (31). */ + if (s->hpm_cntrs > RISCV_IOMMU_IOCOUNT_NUM) { + s->hpm_cntrs =3D RISCV_IOMMU_IOCOUNT_NUM; + } + /* Enable hardware performance monitor interface */ + s->cap |=3D RISCV_IOMMU_CAP_HPM; + } + /* Out-of-reset translation mode: OFF (DMA disabled) BARE (passthrough= ) */ s->ddtp =3D set_field(0, RISCV_IOMMU_DDTP_MODE, s->enable_off ? RISCV_IOMMU_DDTP_MODE_OFF : RISCV_IOMMU_DDTP_MODE_= BARE); @@ -2404,6 +2413,18 @@ static void riscv_iommu_realize(DeviceState *dev, Er= ror **errp) RISCV_IOMMU_TR_REQ_CTL_GO_BUSY); } =20 + /* If HPM registers are enabled. */ + if (s->cap & RISCV_IOMMU_CAP_HPM) { + /* +1 for cycle counter bit. */ + stl_le_p(&s->regs_ro[RISCV_IOMMU_REG_IOCOUNTINH], + ~((2 << s->hpm_cntrs) - 1)); + stq_le_p(&s->regs_ro[RISCV_IOMMU_REG_IOHPMCYCLES], 0); + memset(&s->regs_ro[RISCV_IOMMU_REG_IOHPMCTR_BASE], + 0x00, s->hpm_cntrs * 8); + memset(&s->regs_ro[RISCV_IOMMU_REG_IOHPMEVT_BASE], + 0x00, s->hpm_cntrs * 8); + } + /* Memory region for downstream access, if specified. */ if (s->target_mr) { s->target_as =3D g_new0(AddressSpace, 1); --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140144; cv=none; d=zohomail.com; s=zohoarc; b=MIZpJE2gX+qFK87t6MJdaipsZJZWGFQG1oN6MXIyF5W6jCbaeqip23wJvNYNNG1pr6R4EuzbsaIe8shR0G1SbDupRBr9rDvzH85ie9qucXR0DqGCUbVjvJutvkHQy6VWDjOb0dbw6NY+8VIT7IeNcW0cgGzRV3yNlnzquY7t0gw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140144; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vfQRyN/xN8XAWj3zfMJIH9rgEdaZ3OiHYiZVgE3ckyQ=; b=O0xXG8VD8tNa2EzUpHP5QblUX5YeCkJywAVqSMOTZAZlxCdQrZMoU98Vg1fDL6i+roiHwHo5zVo43LrlKMkUvsb9QcAloby246eLoekkQr7se/whFBF4fRRYLuX2GRCMiNbEpYVQFnLgU45PsyOr1KyzbH/xmKK48phW/9Ib6BQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140144318795.2575792219288; Tue, 4 Mar 2025 18:02:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzQ-0008VP-C0; Tue, 04 Mar 2025 20:56:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdz2-0007Y5-0F for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:46 -0500 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdz0-0000Sm-A3 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:39 -0500 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-2f9b91dff71so10116302a91.2 for ; Tue, 04 Mar 2025 17:55:37 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139736; x=1741744536; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vfQRyN/xN8XAWj3zfMJIH9rgEdaZ3OiHYiZVgE3ckyQ=; b=Otb4IGQk3ksakcUgwb+rY1miqLEc2fgjyoOXI3+vvm9bwhj1kN95H1DCsBVnREUqGY KNg3WewfyHi/5Z+j+7JZ1pPHbcR9rDIYatix7BxdUVmUv/d4D8WET5juhOLwS4HDw9F3 0d0UB9eRJk6sp6kV6v3ao0IRhehNtGtPwd6DFK0hnCVpi1q3QBAZRR3sJDCZ7ApZEjOC JMpPD4cg7iUjxo8tDHdj59qjIwz5GkpwG42xVpRUM6fZI3X5jwS+i+RJ/hts6YFZCZ5h /Pelno1lcvrfoIWj9o8D24fu8rZZBV2na4wT01FwnV7LpOFFslKzvpOQiU2sUrsg1E+Q cMkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139736; x=1741744536; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vfQRyN/xN8XAWj3zfMJIH9rgEdaZ3OiHYiZVgE3ckyQ=; b=n9xAYR2yboPwfeNbfOAyYCbQz4a6nCk+Z8LOJt82Xo4Yh9C4VcopYMYG+8nCT77lqE te+iW2k+j7Kodw5dPDJU3aS+EzCTSe0ANpG9RVMK9St2Nx5mNjo1ncyPgB/fBnLG1PAC 50x7nZ+H675V71FmPK+n6X+FGVlJluEKv37XGF3sJtdSH08s1EzgH459u7mr0yS7SlGu TTeEp3FFpajDYErpihtWA9eaam0mcVspYrw/ZeB5iMP4pQleQThTzm/XT8ZpxCQEzYZR YzRMezwS5WlFmDjEkZUYLCu8xgm7kFAq8ol74/Atb3BWtcpFjDaX+nhbeDDTqrFsJjKR FrPw== X-Gm-Message-State: AOJu0Ywk+H88OupYe4NC5ZHydle2apSejwzgxS4wSRquoV2lGGpBoRMR EUO0oIVgBjbUEQvlAXz+B5MZ2sVtt3vjjOgi4viByIB95n3W3rZjQODrtPjN+BU= X-Gm-Gg: ASbGncv/VNIm+eeif9W8XCAWv0TsTeNI9lR25hH8O8At2eDMqeZuahcW0se1f2pF/pd P9o2r/Dn5Ql6CrSetAO/k7mHfnxIgYzijjOVDW6Dhxk+3YMwJSwFfJQqgAgxB1DVSGwvuKypCvg 8P9eTnKTL/2DL3pW60MZUy81WiumiojrpNwKHoaHfk6MeCYI+0l63B0kO68G8ZNHkSF0f0Zw223 C9R1ZVYSRcmEtuM4N0EPM3ZGA43iPXk6vlnK6slTuqn6+TIz2WSZrlKq/qJqQOvDHZnudH4dTHe HnN5gcaTS62rZFReOwzOMYgyBWQk6sPsAGZ02G0e5cObJpGerLdHOhqzMf4P7LWEV1FZucQqCkg uiirAa4GB2HMtVJfHpe8uaj+oekfLjPss1h7ljCcbMosydMUIDyQ= X-Google-Smtp-Source: AGHT+IHEw3as2pbON/PWvHehLC2D8fnuVJygciAdwM0+4+Z9oxf6awgfltuvIigFkZDzx2FeJclpNQ== X-Received: by 2002:a17:90a:e7d2:b0:2ee:3cc1:793a with SMTP id 98e67ed59e1d1-2ff497c2e0amr2496745a91.29.1741139735783; Tue, 04 Mar 2025 17:55:35 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 48/59] hw/riscv: add IOMMU HPM trace events Date: Wed, 5 Mar 2025 11:52:56 +1000 Message-ID: <20250305015307.1463560-49-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::1033; envelope-from=alistair23@gmail.com; helo=mail-pj1-x1033.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140146753019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Add a handful of trace events to allow for an easier time debugging the HPM feature. Signed-off-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250224190826.1858473-11-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-hpm.c | 10 ++++++++++ hw/riscv/trace-events | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/hw/riscv/riscv-iommu-hpm.c b/hw/riscv/riscv-iommu-hpm.c index 5518c287a5..c5034bff79 100644 --- a/hw/riscv/riscv-iommu-hpm.c +++ b/hw/riscv/riscv-iommu-hpm.c @@ -39,6 +39,8 @@ uint64_t riscv_iommu_hpmcycle_read(RISCVIOMMUState *s) const uint64_t ctr_prev =3D s->hpmcycle_prev; const uint64_t ctr_val =3D s->hpmcycle_val; =20 + trace_riscv_iommu_hpm_read(cycle, inhibit, ctr_prev, ctr_val); + if (get_field(inhibit, RISCV_IOMMU_IOCOUNTINH_CY)) { /* * Counter should not increment if inhibit bit is set. We can't re= ally @@ -61,6 +63,8 @@ static void hpm_incr_ctr(RISCVIOMMUState *s, uint32_t ctr= _idx) cntr_val =3D ldq_le_p(&s->regs_rw[RISCV_IOMMU_REG_IOHPMCTR_BASE + off]= ); stq_le_p(&s->regs_rw[RISCV_IOMMU_REG_IOHPMCTR_BASE + off], cntr_val + = 1); =20 + trace_riscv_iommu_hpm_incr_ctr(cntr_val); + /* Handle the overflow scenario. */ if (cntr_val =3D=3D UINT64_MAX) { /* @@ -244,6 +248,8 @@ void riscv_iommu_process_iocntinh_cy(RISCVIOMMUState *s= , bool prev_cy_inh) return; } =20 + trace_riscv_iommu_hpm_iocntinh_cy(prev_cy_inh); + if (!(inhibit & RISCV_IOMMU_IOCOUNTINH_CY)) { /* * Cycle counter is enabled. Just start the timer again and update @@ -268,6 +274,8 @@ void riscv_iommu_process_hpmcycle_write(RISCVIOMMUState= *s) const uint64_t val =3D riscv_iommu_reg_get64(s, RISCV_IOMMU_REG_IOHPMC= YCLES); const uint32_t ovf =3D riscv_iommu_reg_get32(s, RISCV_IOMMU_REG_IOCOUN= TOVF); =20 + trace_riscv_iommu_hpm_cycle_write(ovf, val); + /* * Clear OF bit in IOCNTOVF if it's being cleared in IOHPMCYCLES regis= ter. */ @@ -352,6 +360,8 @@ void riscv_iommu_process_hpmevt_write(RISCVIOMMUState *= s, uint32_t evt_reg) return; } =20 + trace_riscv_iommu_hpm_evt_write(ctr_idx, ovf, val); + /* Clear OF bit in IOCNTOVF if it's being cleared in IOHPMEVT register= . */ if (get_field(ovf, BIT(ctr_idx + 1)) && !get_field(val, RISCV_IOMMU_IOHPMEVT_OF)) { diff --git a/hw/riscv/trace-events b/hw/riscv/trace-events index 7bcbb03d08..b50b14a654 100644 --- a/hw/riscv/trace-events +++ b/hw/riscv/trace-events @@ -19,3 +19,8 @@ riscv_iommu_sys_irq_sent(uint32_t vector) "IRQ sent to ve= ctor %u" riscv_iommu_sys_msi_sent(uint32_t vector, uint64_t msi_addr, uint32_t msi_= data, uint32_t result) "MSI sent to vector %u msi_addr 0x%"PRIx64" msi_data= 0x%x result %u" riscv_iommu_sys_reset_hold(int reset_type) "reset type %d" riscv_iommu_pci_reset_hold(int reset_type) "reset type %d" +riscv_iommu_hpm_read(uint64_t cycle, uint32_t inhibit, uint64_t ctr_prev, = uint64_t ctr_val) "cycle 0x%"PRIx64" inhibit 0x%x ctr_prev 0x%"PRIx64" ctr_= val 0x%"PRIx64 +riscv_iommu_hpm_incr_ctr(uint64_t cntr_val) "cntr_val 0x%"PRIx64 +riscv_iommu_hpm_iocntinh_cy(bool prev_cy_inh) "prev_cy_inh %d" +riscv_iommu_hpm_cycle_write(uint32_t ovf, uint64_t val) "ovf 0x%x val 0x%"= PRIx64 +riscv_iommu_hpm_evt_write(uint32_t ctr_idx, uint32_t ovf, uint64_t val) "c= tr_idx 0x%x ovf 0x%x val 0x%"PRIx64 --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140139; cv=none; d=zohomail.com; s=zohoarc; b=Mbro1ynDYziiRyFidAfcccW4AT/nlCCxjV7ZehCkTk+S2fECRg3x6odTOWByOu3jEaD0ENyMR7slwDK3ZNtnm4PoNt+yrICbJcoZbLyjXD8I3CRVv5nOKeJzVEngvBMPqVmHZ7zpIveZ0U0Lzs7lsfksrqItpVCLI3njH1uq0vY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140139; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=d3zuvc+TIwfGC7tGTY1ujp7Iyzr2eu5EHoP7COySjgo=; b=jVNeKRLtEu2R9N1cGelC+FB2Jj9S9RxSnUcdQTV35/AIncvUapXdyNzn+Wa2H3MuhQrzF2G46Xxu/6E2lDxNWkWzCHO8WQy9YOd/IBxQJI2NVo2XkxgRcTWZErjMuXOPaJ91SDDI2SIY7Ac7QRTXc2JFumGzDrVwjtRGkObAnWk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114013988238.389894079417104; Tue, 4 Mar 2025 18:02:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzV-0000bL-Op; Tue, 04 Mar 2025 20:56:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdz3-0007Zh-I2 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:46 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdz1-0000TC-VS for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:41 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2239f8646f6so64313095ad.2 for ; Tue, 04 Mar 2025 17:55:39 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139738; x=1741744538; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=d3zuvc+TIwfGC7tGTY1ujp7Iyzr2eu5EHoP7COySjgo=; b=WPFSDxUx4+jUcygZ0u4opqdH0Cu4CjN/XgXLEH2ZSnwf5AGCOnBSMa5eNoe7GcKDHZ hOFHAQcXeKGmAz3NoH5wzfYOnu7U85yMaTGBnJ7s8tYj9PYgIQJj+57Xm10TQV3gPnpB WRWUoIQL0J3ygBe3gb7hyd1Z2nAAxgu/AFJ3xzqez8D2mz+NvQG7kh7CrSmDEEpBBK1l QgV2g7NhfW5TycEzxoidRMGSUIdefFD4qr+9bShWkm7j46VfQZIQ6N0i7qCIzu3QKPkN yHgPgGuXBcbViYaiUY9f96BwYrJ2IuWGhW/0iaDydjJvIZzoN3pww2d8/mq/kQwxk2ds we4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139738; x=1741744538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d3zuvc+TIwfGC7tGTY1ujp7Iyzr2eu5EHoP7COySjgo=; b=nSpX3UNmrwzCfwtknQCVlRHQ1L/O9slrgWe3wlANNbaxyLF/vkLEao2UoAWIk2Yf2Z tuvn5ijpwtLSEKQKIuz4SU9qjbqINGTGoBV+xjpTjwU2RgTO56kFbrbAbdCOx4fKcbnr ZZEbfjG1iDVKxZjKOEwSwydMAdl/RuhKNlG6xBxE/3WL+/250yksqagnhIwbW/hg8D5P dYDcde9yhEXYN5qKiX/KK4NpUR7ya5uaJgUBy7VQc663GtJ94do4r0SZBrbq7HOFaDHu K6T/y/t0CIKwsB7E56y8OLOKotlYuiMXvF1U2abrCV7brrV7eAvSpbbgeqg0QaGrAlLt 3Fvw== X-Gm-Message-State: AOJu0YzIVuAi3f/XyZtRj8XUF3x0/bZrkPH6lKUMqwWnQGwvnuitQl4V iuRu8qrSwDdcu87nu6kf74EfweaiteRlC+0FE6ER9iPgQYst3FfFA5seuiVGuIQ= X-Gm-Gg: ASbGncsuGYhltMLBHOJIELKP1Rlr68mAHA9RsWykw1OEwJueK82brRDYSKpeqbTTEF1 CI0vDAsmQZoFpf4/qmjrmG5Npwo4GpDf7Ml3mTl/iKWWAI+mWxKCaPOj9Jx5XiwfCijAJ1d4i2Z xHzomGtdP2CY4AiChvsIG0XdKxw1Rb+BtXIESqOhAkU90RDJU/zPPviXRmdfCzTtY8CPL4dV/MB Kb/pkPW4COVec689KZBSq9rw9slCnzTVlt8Q7RUJgeRTpV65TdJFM3Nol3Re7K+qnWx6snmBahe ibivy8GN/jk6BaVMI9qPP6StI9xZQtOxgQ2mE+ZuQmhbHAGszd65gskVhm1MzYoi1bguAdULlZO YHrQLrEzIgn5jZ5Pq4K60dJvcHbdG7lvMUWklJjmf1ri/AkTr54E= X-Google-Smtp-Source: AGHT+IG7niash8CzsEgFsFDPMMChksVmExG1JyYiTOo3zE3YBSCRrXqdD/rV8ReJQXOLwxWXxzTN7A== X-Received: by 2002:a17:902:ec83:b0:223:669f:ca2d with SMTP id d9443c01a7336-223f1cf1fc5mr20681395ad.35.1741139738469; Tue, 04 Mar 2025 17:55:38 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Alistair Francis Subject: [PULL 49/59] docs/specs/riscv-iommu.rst: add HPM support info Date: Wed, 5 Mar 2025 11:52:57 +1000 Message-ID: <20250305015307.1463560-50-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140140388019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250224190826.1858473-12-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- docs/specs/riscv-iommu.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/specs/riscv-iommu.rst b/docs/specs/riscv-iommu.rst index b1538c9ead..000c7e1f57 100644 --- a/docs/specs/riscv-iommu.rst +++ b/docs/specs/riscv-iommu.rst @@ -82,6 +82,8 @@ Several options are available to control the capabilities= of the device, namely: - "off" (Out-of-reset translation mode: 'on' for DMA disabled, 'off' for '= BARE' (passthrough)) - "s-stage": enable s-stage support - "g-stage": enable g-stage support +- "hpm-counters": number of hardware performance counters available. Maxim= um value is 31. + Default value is 31. Use 0 (zero) to disable HPM support =20 riscv-iommu-sys device ---------------------- --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140160; cv=none; d=zohomail.com; s=zohoarc; b=eq1tZpdhq7La1LNzjByhvXsqFsxi2kZY26kKQlYWgqRHkzcyNWp88TGOweCcbGKnN1sZOC0FQd4YgD0VWu/Xy7YpOA6OlXylvVNjvkL1kTmIqvaR+P3o1vtTHuk3S19yBQpKg9egfEzFtWASRF4+D+QgkvtTeu0ZLRYxc0NxwMY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140160; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JXG/wl75wWZct8Q4+yC2guW2Q8+SpXtJAlKS1h2kzlA=; b=ll4U0i4iPcG5/kU4lLLMLbfZFWDMROpwm/FSUm9QJD0F1M9LmaZyQyVCKEz/JGfpAP7SZbuloAft+fOvwXehvzGwbVuUu+9TX2CPEMELtnQCNOAwIeGB8pVJC35R8iBoI/IEHrtY4MXLfbGmz595CiGzBw0IRcDYrrxNvlUjLhs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140160854733.6269509276204; Tue, 4 Mar 2025 18:02:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0I-0002nv-EB; Tue, 04 Mar 2025 20:56:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdz6-0007br-F9 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:51 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdz5-0000Tl-0Y for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:44 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-223594b3c6dso108683905ad.2 for ; Tue, 04 Mar 2025 17:55:42 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139741; x=1741744541; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JXG/wl75wWZct8Q4+yC2guW2Q8+SpXtJAlKS1h2kzlA=; b=l3VAfiDEVeM4dFINqfJGmk4FouBTKGtWynKs0qbHnwXGChnv0HYBdbnBZyEQLWycX1 XkMDIiKxI7kRhEyddc0LbfQVaP610ETrhPMdF7E//ogTygfTHHx1bZYN2iusSTipukQp aUT/V8OP9HE/kD6n1QJk8qTk7y5jKHDIlMfzMLG7RqFD88tPURhkJ4oRNjZMG8/bDnP6 tKb7j89iZw29RjTAjTaXtbvdHMwTS7B9KueO//Td5uq1Fh1e5sfxq8nPQoI5YJLLgDMk gJDbrIu1UqT7Ute33eq9fBntjTjL43OA+m7Vq1iiw+Sc9T17H5h+f+DMh07S1PhJ6gqa KEpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139741; x=1741744541; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JXG/wl75wWZct8Q4+yC2guW2Q8+SpXtJAlKS1h2kzlA=; b=rXE+cj5T2cSGh2hr45/pgmwFrV0/oeM+CYLzR037cPTYcRyF2pxD+XQwnCM108+NVK HguEVM55QCAWaNHLyg+3Fr3Sk49lBG87bnpL6fPqO+5qQ6TvMDnKAuIFoXKX1RFBo3RK C3JF3Lc3ZNZz5FRETa7mRfS2MqgR/RxF6VwBGBtOWX01n2e5p2lP7PDJPUF10DZmtqYN W69lHmfkCXOE/sBcXqtdQyIQuX6b2zd6R67jSjb4eaS0CrnjgtWY5zCzNyHaBZUlM52Q W1aKSwcVD7KdKlBpycxg+Lpb4kgKrayWpTv4153u0gA7CKMF/ctUGI1bfeu7/tMgCqFX /J/w== X-Gm-Message-State: AOJu0Yy2vAbfwRxF5gaFQnPwkFgSLNLe1wkRkcsiPujMagSG6khwHF7i sTt5FMmi8tITSvZc0ku5GRHVFeS+1yuFgZk5wyp4A1hi3wAVED10K42Vkx233JA= X-Gm-Gg: ASbGncsgOh91w0poo3Hyy1NKYEEtaJVJB0k5GQlcxalZexdTiVYyCRdSh0O9xR9yl6P ad7R1g+MOLwp0df5ftCAT27bGHxHv+aQa9pYRwI/XTaqxtqKMOxnAbK/em1E70liIM8C8xrlFJB Y7NFUanhZbzgvb+e8w4vuuW3IGd+oT+XU0X8BgHsEZfQLSM83cI21/TQrys3KIFFsABRTHQAFpZ PRgjbLYfNkza4ucPGEFo/EgyPs0Gu0vuV+efQFKipvjbTfKAolok3NA4yieJDG58s0lJ7upsUEX YuynxalQfbfPW0bR/ol+KZ5KFYbK6xy9spMUjHbFRZwN9F2Yfxfh2U4JPMuEBHzR04BdVgH9s8x vDCVDsRiwZo81AaXOxHXxDOTdHgUr+8Vh3WtCukThxCbisUIi4Ow= X-Google-Smtp-Source: AGHT+IFB6kbq5G3KU0UnwInKMGhUAeeFrIBCFokWVQB5GysbU4Y1HNte5wg2F9q+ua4ld3pJ/zZWWQ== X-Received: by 2002:a17:903:41d2:b0:21f:9107:fca3 with SMTP id d9443c01a7336-223f1cfd17emr22656545ad.30.1741139741443; Tue, 04 Mar 2025 17:55:41 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Quan Zhou , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 50/59] target/riscv/kvm: Add some exts support Date: Wed, 5 Mar 2025 11:52:58 +1000 Message-ID: <20250305015307.1463560-51-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140162877019100 Content-Type: text/plain; charset="utf-8" From: Quan Zhou When the Sscofpmf/Svade/Svadu/Smnpm/Ssnpm exts is available expose it to the guest so that guest can use it. Signed-off-by: Quan Zhou Reviewed-by: Daniel Henrique Barboza Message-ID: <303616ccad2b5309768157b50d93b3e89fecc9cb.1740371468.git.zhouqu= an@iscas.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index 471fd554b3..e436083dbb 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -321,9 +321,14 @@ static KVMCPUConfig kvm_multi_ext_cfgs[] =3D { KVM_EXT_CFG("zvksed", ext_zvksed, KVM_RISCV_ISA_EXT_ZVKSED), KVM_EXT_CFG("zvksh", ext_zvksh, KVM_RISCV_ISA_EXT_ZVKSH), KVM_EXT_CFG("zvkt", ext_zvkt, KVM_RISCV_ISA_EXT_ZVKT), + KVM_EXT_CFG("smnpm", ext_smnpm, KVM_RISCV_ISA_EXT_SMNPM), KVM_EXT_CFG("smstateen", ext_smstateen, KVM_RISCV_ISA_EXT_SMSTATEEN), KVM_EXT_CFG("ssaia", ext_ssaia, KVM_RISCV_ISA_EXT_SSAIA), + KVM_EXT_CFG("sscofpmf", ext_sscofpmf, KVM_RISCV_ISA_EXT_SSCOFPMF), + KVM_EXT_CFG("ssnpm", ext_ssnpm, KVM_RISCV_ISA_EXT_SSNPM), KVM_EXT_CFG("sstc", ext_sstc, KVM_RISCV_ISA_EXT_SSTC), + KVM_EXT_CFG("svade", ext_svade, KVM_RISCV_ISA_EXT_SVADE), + KVM_EXT_CFG("svadu", ext_svadu, KVM_RISCV_ISA_EXT_SVADU), KVM_EXT_CFG("svinval", ext_svinval, KVM_RISCV_ISA_EXT_SVINVAL), KVM_EXT_CFG("svnapot", ext_svnapot, KVM_RISCV_ISA_EXT_SVNAPOT), KVM_EXT_CFG("svpbmt", ext_svpbmt, KVM_RISCV_ISA_EXT_SVPBMT), --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140151; cv=none; d=zohomail.com; s=zohoarc; b=JuGoJ+54u+nPDn92o1TZoL+y0Ec6k6yqt81wD1lRR+5nwJ6rFOCNJ2EtWfLlGxIGwPy/etkVZkEPdPPxvt1WCrPSJyUNQI36O0qwKHYPg/QOe3m1CtbHomUvalzNbNkPuMXag3AyJvdO/mzHpLbX8zi3u9SSkLcADDvLzTCjNSU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140151; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IHxwppqX+NiAR+OZkag50+4l/nth1KdlivI6n/xfrDA=; b=WR+A8GnXwBdLgcHz1/Nw4n9JMAZWIfOy6qDKnHIpNI3RLd8L4Jtjq2Xc/YA5wE16PMOlpc5OsCGuOCQ14Wn5TpLif3XPuGU2rDBM1C6TSD5Y5rgXawBYKdmSi+zCsYPo4j8CxsEpBcI20nXOgpsqMArdZdQyiczfDAVW/74EbLU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174114015165337.653730239830224; Tue, 4 Mar 2025 18:02:31 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzd-0001Cr-3A; Tue, 04 Mar 2025 20:56:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzB-0007cX-81 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:52 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdz9-0000UH-Mx for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:49 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-22349bb8605so121888685ad.0 for ; Tue, 04 Mar 2025 17:55:45 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139744; x=1741744544; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IHxwppqX+NiAR+OZkag50+4l/nth1KdlivI6n/xfrDA=; b=WAY+67opqid26yhsuIUZLsU05eecKgT6YdE2iD9u2Hy1SyygthXeRE9rDcxfOWZ5Bb PGmnQZubyR/zTXbP8Tuk48aL97zy//3D3c0FGA/ZlOadR8q01PLN2tESTH9o4NfQSwO/ TXPY0UIhDod6ZZgyUpdwGMaWRAK8sg4RnW9jK3UONklaguSNJq18UmFRbT/2++SeqRNn 3O+REVHu0TrPcA2Gvnz23TJ4mnqOsHI4rbLYZQaKdjx5r+Knt1olqKftTpnTPFniLoVS uCKCRu4K+Vfa/dclXZCeUTxhvqJzG2F033S3f2HHjhU9pGzWaluyq549kgCP+GDqWl9g eSgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139744; x=1741744544; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IHxwppqX+NiAR+OZkag50+4l/nth1KdlivI6n/xfrDA=; b=CnAUX1qwoktRrNeNmgUiTYBuHXsrwRy6HfdEGNhVYhGtqzUYKyOehO2ZTeCFDCeaJ7 63NKK60k/Wt3H1Clr04nTaoVZGQteYS5QC9n36onq5TH9GpOHJSoM4q6UalqS3bKyWMl cyhOgUJCWjtar9JPMA9TmKWrucpjGYBY2xVyPhYlUXR5PftfakfQX8vFkjN7NRlRKYgo Gxt7DNUwRdmKF2yk1uDJ6XSFGUBe1tb/rjAeb9kPvgvwjrh184apY1wnlp01aUarwdS2 m73JFeT4o3ECIObF9OopFwDRg39RjJqKIH9YQwAxnY5R9ONa33lG8AlS7aObgZLDElY9 nVsA== X-Gm-Message-State: AOJu0Yzr6F8dNDd5VK5Ky/ZaSQA31Moz05x4r/EHF9FVYkQI/FQ8ggMk hLMeHNbiBfGteU1C17p/Oc4Ne2mIUXk104TFJCBx/9qcCcE28vY2eDxfw3WxQY8= X-Gm-Gg: ASbGncsFL6hZL6OgTmARp2RtVUj4B9fHrRnuXPDbdlbVoDiyuhoVDEZs/TVtY41wlhm 0BGy7iaiKyRnfNBLgBDxzRZNh3hjOtHJgw3+t8Aw/THWZc6LmlLm4vC2AbWZYAzxwp4Wqt89dsU YvXeAJ4FbTq9QPAJCYBrdjX/RNePsGXl9wsJjWGEmebR6Y8S8yTHv41TKvJwdAwLZxYAxw+3GNF X8Wu9Q/w7tSJJATjk1biVIaVZrCu0iOj89TE1KXNw/S5xYrSrPOTlM5aH1poqMzZpyjyLNsCcCd 7NBU4KEe1Frn7eg6jTqaNWiigs7TZ6WRwcUpmNYq6m/oimGS6XeSfkH8fqK4LE6jCLsFegLmvcg TwaUZGuiyszSf7KOmQabMc2DOb1m7mEhpfkdFy1sS9ltakZvnmTs= X-Google-Smtp-Source: AGHT+IEBh7OaYWDy5GEVy0u3nnuUs8+yQ/Hb/75MJcCvd4RA71i270h2Gy9tivzE9kcEoJtOXWaY/g== X-Received: by 2002:a17:903:2312:b0:21f:9c48:254b with SMTP id d9443c01a7336-223f1c9945amr23211635ad.24.1741139744431; Tue, 04 Mar 2025 17:55:44 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Andrea Bolognani , Alistair Francis , Laurent Vivier Subject: [PULL 51/59] binfmt: Shuffle things around Date: Wed, 5 Mar 2025 11:52:59 +1000 Message-ID: <20250305015307.1463560-52-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140152684019100 Content-Type: text/plain; charset="utf-8" From: Andrea Bolognani This should make no difference from the functional point of view and it's just preparation for upcoming changes. Signed-off-by: Andrea Bolognani Reviewed-by: Alistair Francis Reviewed-by: Laurent Vivier Message-ID: <20250127182924.103510-2-abologna@redhat.com> Signed-off-by: Alistair Francis --- scripts/qemu-binfmt-conf.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 6ef9f118d9..426f075e31 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -318,20 +318,23 @@ qemu_set_binfmts() { mask=3D$(eval echo \$${cpu}_mask) family=3D$(eval echo \$${cpu}_family) =20 + target=3D"$cpu" + if [ "$cpu" =3D "i486" ] ; then + target=3D"i386" + fi + + qemu=3D"$QEMU_PATH/qemu-$target$QEMU_SUFFIX" + if [ "$magic" =3D "" ] || [ "$mask" =3D "" ] || [ "$family" =3D ""= ] ; then echo "INTERNAL ERROR: unknown cpu $cpu" 1>&2 continue fi =20 - qemu=3D"$QEMU_PATH/qemu-$cpu" - if [ "$cpu" =3D "i486" ] ; then - qemu=3D"$QEMU_PATH/qemu-i386" + if [ "$host_family" =3D "$family" ] ; then + continue fi =20 - qemu=3D"$qemu$QEMU_SUFFIX" - if [ "$host_family" !=3D "$family" ] ; then - $BINFMT_SET - fi + $BINFMT_SET done } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140320; cv=none; d=zohomail.com; s=zohoarc; b=K0Ld4m1PpVlpHN9acaHxEa9eWfGO4SUs8p0A92YzpVNRduXNnb9Lx0ZY9b7WDZbd9ncdWFXTD1oa40yJT7QmlK1C8ZP+ixQ1zdmGuHmOtofdneBDBKc/4rTFIf6nAOArD1++vO8bx9kHsrLaymTyZQ+n/QDedZw5qhB9uHZBquM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140320; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=552MSFU/T799YJkWKsYbkSBXDrPDP/uDH7GO5H2sxJ4=; b=VoW27jKmA5V44asusG48ecHY1+QLHODkWOr657MWXyuV9QYngY4aXymn62ajLyGPs1LbbDvf44U2lRmF3eGr7Scl/pPWEMqVyTcVfhfh5eU/qfXxhD6Hc4CnvzEqwwvLaYyuptIKGAhWikkZIWWhIPjICgxuRnOhdzSmj70lkDQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140320322696.8633660764908; Tue, 4 Mar 2025 18:05:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzW-0000kL-Re; Tue, 04 Mar 2025 20:56:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzC-0007cn-L3 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:53 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzA-0000Uf-TE for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:50 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-223cc017ef5so40570025ad.0 for ; Tue, 04 Mar 2025 17:55:48 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139747; x=1741744547; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=552MSFU/T799YJkWKsYbkSBXDrPDP/uDH7GO5H2sxJ4=; b=MPm+TJWwQvO/afgkXVQMmO9UH1LhtPvwIlzosBOnRemV37m3cHCLyj7SOqduqrcZbb fWDw/XQ+dHNHVZlBpviiwT1KBWO/gcgsWfBHi8T+uBAr+j9kMnX/tXdX5/elqOXvIJuE BTeV9kW/7GXxB40ILOFusdzCmb3DyObENk1nk6UNLIo6spCJa1XqUeGNzFVGJHNxVUVm dcMnL+NHxLiW6SMIqADprve+BehS7v8zA+YP3pLDUkWqtCTpaVIFDG2WZ4F+YVonOV7E J0zxgVmRxxqV7pwPwqI5HvVRa5wMHg278Owv8Jprg3MgyR0bAuqpJxxxBij4lYuilzFn Qkjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139747; x=1741744547; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=552MSFU/T799YJkWKsYbkSBXDrPDP/uDH7GO5H2sxJ4=; b=MFPO4kx7yO4npP2Cyl/OvyT5uwvFobdCsutYsE2IjNNk2NvS+8hZ1khjxakB/YgyMU YDGcBv8b1txE0kvnTKJ4Xh+OdHqScRopRZ3bDXW8DANDUWWBZdfvE2kWjnVZV82/CTbR OhRlSEs4n/Oi3BJ1D+VhvG+WZ8swUq+/eAx+HdEKYMDikF1fiaDsJWroJwpIxLCXvkT2 eYx+w8IY4qxelfybOi0WPG759apQ6i+aVGfHXzHOAIlK/Aze1qzJgaZZbwwqIh8h0+dJ axPT2b5Ddr52sMoQSqt7Za5uo86q3SwGhWx02u31Nxb7di9VvI0AP3C1xI7rSmAeNHGG LTSQ== X-Gm-Message-State: AOJu0Yws913BW/VmLEFvHyCcvPwu06lr5KDHCRkDD187+ZzaWwfuFYJM dWLagDxG8WUQDuOjYJ+XJEvrG7oyz9P9v9Y15Q6Jtz5bIB4vry8mSX0D7UWz75E= X-Gm-Gg: ASbGncsdb+cnT74KfjRIUTPMTCsH/ZnIrBH41YFY3Cuu/hEOgyAE+bQr6+4/36Rydvo mtJ5NIPhfBKH7KNa8bN+WhvrxUTxhNrfMF5VUr6ebDpXS5KSXJylS6V6NM9J2lL8rfEayha4OvX 8Eu6eEB55RftnYCp5SOPGJaExGCclX50SsbVDnuEr8IQRFGS1ppjbNe3RljDhga/ISIznd6f9c8 Zvtb3FYQXIcnW3+UdULfYRjgcqzBTVWbt+TCz6Ly59hDuaV6VBM4Ap5vM19kVAkMphYkmRtv8yn qBsipzOapJv3ZKfOv3UA1a4BHouthxiunX912aGJHJJBsvWoq9FbqOkm/Bryjd4DT+FltNoogzo fb2eeooeSUA6wkyTMYZSO5jwdUPzS1XeH50oz2GeGrAAtVkQANmM= X-Google-Smtp-Source: AGHT+IEDJZ6cXlON7JEGLXxfMLEx6n7BXo+rx4KwuwyyPBXPIyHjVQzJ2LHfZ7CU6MTw2LNVOx3wHQ== X-Received: by 2002:a17:902:fc4f:b0:220:d439:2485 with SMTP id d9443c01a7336-223f1ca901bmr28643585ad.29.1741139747373; Tue, 04 Mar 2025 17:55:47 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Andrea Bolognani , Alistair Francis , Laurent Vivier Subject: [PULL 52/59] binfmt: Normalize host CPU architecture Date: Wed, 5 Mar 2025 11:53:00 +1000 Message-ID: <20250305015307.1463560-53-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140323342019100 Content-Type: text/plain; charset="utf-8" From: Andrea Bolognani Right now information regarding the family each CPU type belongs to is recorded in two places: the large data table at the top of the script, and the qemu_host_family() function. We can make things better by mapping host CPU architecture to QEMU target in the few cases where the two don't already match and then using the data table to look up the family, same as we're already doing for the guest CPU architecture. Being able to reason in terms of QEMU target regardless of whether we're looking at the host or guest CPU architecture will come in handy to implement upcoming changes. A couple of entries are dropped in the process: BePC and Power Macintosh. I'm quite certain neither of those have ever been reported as CPU architectures by Linux. I believe many more of the entries that are carried forward could be dropped as well, but I don't have the same level of confidence there so I decided to play it safe just in case. Signed-off-by: Andrea Bolognani Reviewed-by: Alistair Francis Reviewed-by: Laurent Vivier Message-ID: <20250127182924.103510-3-abologna@redhat.com> Signed-off-by: Alistair Francis --- scripts/qemu-binfmt-conf.sh | 44 +++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 426f075e31..8d9136a29f 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -144,35 +144,35 @@ loongarch64_magic=3D'\x7fELF\x02\x01\x01\x00\x00\x00\= x00\x00\x00\x00\x00\x00\x02\x loongarch64_mask=3D'\xff\xff\xff\xff\xff\xff\xff\xfc\x00\xff\xff\xff\xff\x= ff\xff\xff\xfe\xff\xff\xff' loongarch64_family=3Dloongarch =20 -qemu_get_family() { - cpu=3D${HOST_ARCH:-$(uname -m)} +# Converts the name of a host CPU architecture to the corresponding QEMU +# target. +# +# FIXME: This can probably be simplified a lot by dropping most entries. +# Remember that the script is only used on Linux, so we only need to +# handle the strings Linux uses to report the host CPU architecture. +qemu_normalize() { + cpu=3D"$1" case "$cpu" in - amd64|i386|i486|i586|i686|i86pc|BePC|x86_64) + i[3-6]86) echo "i386" ;; - mips*) - echo "mips" + amd64) + echo "x86_64" ;; - "Power Macintosh"|ppc64|powerpc|ppc) + powerpc) echo "ppc" ;; - ppc64el|ppc64le) - echo "ppcle" + ppc64el) + echo "ppc64le" ;; - arm|armel|armhf|arm64|armv[4-9]*l|aarch64) + armel|armhf|armv[4-9]*l) echo "arm" ;; - armeb|armv[4-9]*b|aarch64_be) + armv[4-9]*b) echo "armeb" ;; - sparc*) - echo "sparc" - ;; - riscv*) - echo "riscv" - ;; - loongarch*) - echo "loongarch" + arm64) + echo "aarch64" ;; *) echo "$cpu" @@ -309,7 +309,13 @@ EOF =20 qemu_set_binfmts() { # probe cpu type - host_family=3D$(qemu_get_family) + host_cpu=3D$(qemu_normalize ${HOST_ARCH:-$(uname -m)}) + host_family=3D$(eval echo \$${host_cpu}_family) + + if [ "$host_family" =3D "" ] ; then + echo "INTERNAL ERROR: unknown host cpu $host_cpu" 1>&2 + exit 1 + fi =20 # register the interpreter for each cpu except for the native one =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139996; cv=none; d=zohomail.com; s=zohoarc; b=huuLfqIUR/51yH5Db4O22NGYX198H2Y4YyXGZ6x+3YMkddIgJRAU4mK9by1kHkKzfv69y9h41bDlrBtgTbwann/Ccp4UZ7/3yjCudGgeZSAS0bNOw5XMOAzHBYsPJyicjAxb8tIsITydZWjKS+w/m8dras07kBtw9Zug6HUPUO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139996; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=sqlXuHoQttbFjb7GklM7QN7V3vl4gqchpKqjbHsAjDg=; b=BDVuk2r+2ZFKiwyDzZBoqiDD2xFM04umqC8cgPwwDoXK8mx0kbeZmAgGw12aNKHmR+QyV42O5/xjbCqpG5wg/4u0PKOP9cHzCGu31HCUsS808EPLMAPbElq+rqvg/NAmorcAqcNcYQBEy6lQqtCue30UXFa/Vx9DOlEV4aOveAs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139996241127.02981018818423; Tue, 4 Mar 2025 17:59:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdze-0001Hf-6s; Tue, 04 Mar 2025 20:56:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzH-0007hk-T1 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:56 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzD-0000VT-VE for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:54 -0500 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-223480ea43aso156445295ad.1 for ; Tue, 04 Mar 2025 17:55:51 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139750; x=1741744550; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sqlXuHoQttbFjb7GklM7QN7V3vl4gqchpKqjbHsAjDg=; b=WHGwnhJAMz9Hz01LrcvmmbhcTeIlxGwRKJ4KEi26YfxTl9m5UKKrDalR52VW4EyD23 ZpuFdzPGZudbs2SNrKKo4VIH1gerNKoc5qJMd+JNz6NEADsEhb28zCJzvoYCDPHEH0D6 fXkAv4Y51TFrjRML0lfRRXuuUCo5ydQ6DPK2ZznZOuHrizOme+r+dTo0CWWSdq2JCmyo TgqfRqkYb8N88+U8D8kwBTLvMT091+vuTW/dWJO0+ZgDLztJifTKFnS+mKYQc9agZoTJ Z3TOLOMdGMbapmXGFgiUGyIgLB3XBiqHR7S6yJI0OSyRwkYIdxp0pX3SY2lPryWacDen VpFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139750; x=1741744550; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sqlXuHoQttbFjb7GklM7QN7V3vl4gqchpKqjbHsAjDg=; b=I65yO3+XDHo9o6jw2Oto/P/NeV6jb1TvBn+4qUvz5PECMT9mFPYeJQdqZTA/UUwRjx sgxivZrvAe1jv8jU35/VAbHyF+aGYxtg2wspvnNAiXPgelCgzirX5b6VCZ5nc65xbOEJ sieMtxXTBHKkASRcCmg7ombkbaoOPLeojjvxOjooSmpoXvmfPzFSvnm/srRKJZQM3w3q ZR1aMy6KzBicbceImnub85FJCLHkgo+Jf4hCfnFhkvs7hM4kIg1qpJ52OJoPVwZR1tkO Z2xSjGEDtK5LzNb2j9Sw9KVIIHFGd8t23P0+K8sHatXIlXjRXZeCvRFj0Ywpqe7N2St5 GtMw== X-Gm-Message-State: AOJu0YzaeaDWCGCA86UalXJBDE+pl3fWcNO6N2ZvNdcMa1luKbyelVsg ORkfNDuQi/mUGerPZ33pwOczPDIWDe2g+OndD2LWVMrkBIYUD0mxB1/txnUN8ac= X-Gm-Gg: ASbGncugwHcbG85mWxe0VQt0we7UiqCEZCjzD3gUR3ORGlVVkLMvyeRm0TaDNF1+xAc 0P9FNRuvjgLeeXEdv/U1oF+Q1RDOBTolp1qMG3mqMdSqdvhja6j++H0zcRQIpdiHSt1UveTEB56 hGU3SfkxoGNDMDqrcmivdEqDlOF/C6qTznGRyT6SinR4B6lMbKR2HeUv5dAef96nOCvDiVYhQc8 k83kfpJoEdJ3vu2UMWe25OYtI2Fch4Tttsvs1TnXMVpjcHr2N8qIdW2f6aiGtrW85szC/3b7W1r GP7/k/xlDUtMW+nhbqXYzfrlrHnTrKAUB53e62Rvlhvdu2ZqL/JLz91X1gCc3g06CQKyBcmRYAC YTKk0orGh+Wbi+lMqkvh/Gz1REKb2pRrei74oEISOeb0KiqQAsMc= X-Google-Smtp-Source: AGHT+IHRnoyiFNoA8awxrW/PPd7PJ8O8t/G0gu5rkTWbtmiitsaRy3uMY/u9QqvKlpfnBiur9GKBEg== X-Received: by 2002:a17:903:2f8d:b0:223:6180:1bea with SMTP id d9443c01a7336-223f1d212bamr23886325ad.37.1741139750341; Tue, 04 Mar 2025 17:55:50 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Andrea Bolognani , Alistair Francis , Laurent Vivier Subject: [PULL 53/59] binfmt: Add --ignore-family option Date: Wed, 5 Mar 2025 11:53:01 +1000 Message-ID: <20250305015307.1463560-54-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139998013019100 From: Andrea Bolognani Until now, the script has worked under the assumption that a host CPU can run binaries targeting any CPU in the same family. That's a fair enough assumption when it comes to running i386 binaries on x86_64, but it doesn't quite apply in the general case. For example, while riscv64 CPUs could theoretically run riscv32 applications natively, in practice there exist few (if any?) CPUs that implement the necessary silicon; moreover, even if you had one such CPU, your host OS would most likely not have enabled the necessary kernel bits. This new option gives distro packagers the ability to opt out of the assumption, likely on a per-architecture basis, and make things work out of the box for a larger fraction of their user base. As an interesting side effect, this makes it possible to enable execution of 64-bit binaries on 32-bit CPUs of the same family, which is a perfectly valid use case that apparently hadn't been considered until now. Link: https://src.fedoraproject.org/rpms/qemu/pull-request/72 Thanks: David Abdurachmanov Thanks: Daniel P. Berrang=C3=A9 Signed-off-by: Andrea Bolognani Reviewed-by: Alistair Francis Reviewed-by: Laurent Vivier Message-ID: <20250127182924.103510-4-abologna@redhat.com> Signed-off-by: Alistair Francis --- scripts/qemu-binfmt-conf.sh | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 8d9136a29f..5fd462b1d1 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -205,6 +205,9 @@ Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian]= [--systemd CPU] --persistent: if yes, the interpreter is loaded when binfmt is configured and remains in memory. All future uses are cloned from the open file. + --ignore-family: if yes, it is assumed that the host CPU (e.g. risc= v64) + can't natively run programs targeting a CPU that is + part of the same family (e.g. riscv32). --preserve-argv0 preserve argv[0] =20 To import templates with update-binfmts, use : @@ -337,7 +340,12 @@ qemu_set_binfmts() { fi =20 if [ "$host_family" =3D "$family" ] ; then - continue + # When --ignore-family is used, we have to generate rules even + # for targets that are in the same family as the host CPU. The + # only exception is of course when the CPU types exactly match + if [ "$target" =3D "$host_cpu" ] || [ "$IGNORE_FAMILY" =3D "no= " ] ; then + continue + fi fi =20 $BINFMT_SET @@ -355,10 +363,11 @@ CREDENTIAL=3Dno PERSISTENT=3Dno PRESERVE_ARG0=3Dno QEMU_SUFFIX=3D"" +IGNORE_FAMILY=3Dno =20 _longopts=3D"debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,crede= ntial:,\ -persistent:,preserve-argv0:" -options=3D$(getopt -o ds:Q:S:e:hc:p:g:F: -l ${_longopts} -- "$@") +persistent:,preserve-argv0:,ignore-family:" +options=3D$(getopt -o ds:Q:S:e:hc:p:g:F:i: -l ${_longopts} -- "$@") eval set -- "$options" =20 while true ; do @@ -418,6 +427,10 @@ while true ; do shift PRESERVE_ARG0=3D"$1" ;; + -i|--ignore-family) + shift + IGNORE_FAMILY=3D"$1" + ;; *) break ;; --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140400; cv=none; d=zohomail.com; s=zohoarc; b=BbOyzT1Cy9/zCWLWt+T/75OC29EUFmo4ey5zKGzzplA8NhO1IWjZMAoec7wk3rfKIkiCJe2MW1KodwzP1A3VgJXO7P5yvCQV/+d2IBhAjJUkh1ejDwXWRfq7nxalVx1UPyfkv4YlGV15uAKwS83s5fUIyXWLX43itiDevTABFNU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140400; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OjTF1ZGD6+FxtdMflNGzLhj5EB+HlRI1B/aKHXZtkpY=; b=CtjycEutvo6BLTWx1mYdlzc0iuaoT6+0B40z7jxLWydvkZyYe5Ar2LT8fBiw/Oxju/j228JUcESZpYy5g1FHT7e4/uIOQjbA6DdO0k6rFYsqbvuM2QqOsh9Rj+3QTxvB6dl5egb6lINpLLx1uVEePfUTEcnUiOQud66XiVxRMhQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140400433862.4613720221471; Tue, 4 Mar 2025 18:06:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzg-0001W1-3k; Tue, 04 Mar 2025 20:56:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzJ-0007pi-Mx for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:57 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzH-0000Vu-MN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:57 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-223480ea43aso156445905ad.1 for ; Tue, 04 Mar 2025 17:55:54 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139753; x=1741744553; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OjTF1ZGD6+FxtdMflNGzLhj5EB+HlRI1B/aKHXZtkpY=; b=cLjp4UzkXCdPAoUeY5A1qG21FCpUKnWFSJl3p/Y/umO9Wa6ocV+dkoSgcDmiloBhjR 6J8bagWHe8oE2OMkVbK67lVz23IwUIxBLOXNA14VGYj4oCWeySyAwnYaqUroT1vhjssV KULl7TMoqISvHzWo88uFP+2S316zbmwtHNtFDOOInP7sw4ZVajyuzDjUc2CS5k6KFDx5 wwQsltEES3BIphSdHAQLuORhmFa9lzdZ3ldrBzCknKVFQO8vWOdjk0uROW2utk1u4bjG oKUY2sEU6//CUbA1vKOZkIk/0gbQMHgH3p1xk2h7AKOK3ljEAgWAmDyj11zgrUNdQ2kN fKyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139753; x=1741744553; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OjTF1ZGD6+FxtdMflNGzLhj5EB+HlRI1B/aKHXZtkpY=; b=WqG73FoumpaNyGfupofTlP+S1y/3a2e1Z/5YNi52d6e0cX49L9byKfvXC6edBaQtgP EQFOAMJK33Y4BC2KhvQroGG2Dx8xVp4gPG09Rjm+/+V989FmzU/a3UEHyfrEXbKOitot 3JXRnJfyYuG425nXLSjpPZiqx4JOV0S8ZOJPnf1dQhdZfh/Eb3Mg5NZBiUaeP7Q52Qw5 vq2mryakNAUsibkf0ktexn21lOZuuxWSLBoCs8UlTM4Q1yrAPqxAmNv6Kp64KpHs1Dl4 pMotYBNOOlnXtoVhgEy6W5hfWEcHlLaL4oTovd7hYM3p+xK3FXtisOpnaOp0OZiId31U vd2w== X-Gm-Message-State: AOJu0YxRp0C//bassOSZeYC6BdweF310i3T1lbEkJJs+vVImOm0vsBj9 Rv7z3Gr1aptoJ1hl3SHOMTWwg7S6NIgFaxW+FJ1Hl/e4jfb4j2GcBDb6vpyGoDU= X-Gm-Gg: ASbGnctXqUYoZjmKPxATr7Zck56wQ/nqOSg0V6nqhL7Zu2i/NwWtlqjyk1vRNo5TZ8D TIlym0Uy7BM5JhxN3R8095UkcjQopnAB6FFmNkFVEtHb2HlmqHSNt63yNmblqNO462r2EjU1t4S OfulYfFlZZSCSuP733uT91JVh4uwJ0wT97VkZZZUZbxpXmlR4NlLK3PYqtKFGs3QfNRFOOHtxi4 KjYI4SScW5SwTYa3thlviykv7KlWcGKnoc7wpbLCWEtmQnKXlQdo+i8rkA7H9fWTH9ZrZmNwf+w Z/kDjkjdMtgdKlQKyqGFCIEK/eLQDAa3KgleSuGgi8wMGlkUoQSwKkSZv7wPflEoSvg+Bsq45Cx kDdK5PvRDrnR6M9+oc0RB9aKsMHyLgX/SFc4nEAvQHbYaTGLcaao= X-Google-Smtp-Source: AGHT+IFPIhbI4cXZ/URIE8uzDGLhv57ez5uVDyMC5/j2icF2uHlzUoToLQ4AMZV/aZQf2cQkRN1uUQ== X-Received: by 2002:a17:903:f83:b0:220:d078:eb33 with SMTP id d9443c01a7336-223f1d1f10bmr21937995ad.36.1741139753315; Tue, 04 Mar 2025 17:55:53 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yong-Xuan Wang , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 54/59] hw/intc/imsic: refine the IMSIC realize Date: Wed, 5 Mar 2025 11:53:02 +1000 Message-ID: <20250305015307.1463560-55-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140403542019100 Content-Type: text/plain; charset="utf-8" From: Yong-Xuan Wang When the IMSIC is emulated in the kernel, the GPIO output lines to CPUs and aia_ireg_rmw_fn setting can be remove. In this case the IMSIC trigger CPU interrupts by KVM APIs, and the RMW of IREG is handled in kernel. This patch also move the code that claim the CPU interrupts to the beginning of IMSIC realization. This can avoid the unnecessary resource allocation before checking failed. Signed-off-by: Yong-Xuan Wang Reviewed-by: Daniel Henrique Barboza Message-ID: <20250224025722.3999-2-yongxuan.wang@sifive.com> Signed-off-by: Alistair Francis --- hw/intc/riscv_imsic.c | 47 ++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/hw/intc/riscv_imsic.c b/hw/intc/riscv_imsic.c index dc8162c0a7..241b12fef0 100644 --- a/hw/intc/riscv_imsic.c +++ b/hw/intc/riscv_imsic.c @@ -349,7 +349,19 @@ static void riscv_imsic_realize(DeviceState *dev, Erro= r **errp) CPUState *cpu =3D cpu_by_arch_id(imsic->hartid); CPURISCVState *env =3D cpu ? cpu_env(cpu) : NULL; =20 + /* Claim the CPU interrupt to be triggered by this IMSIC */ + if (riscv_cpu_claim_interrupts(rcpu, + (imsic->mmode) ? MIP_MEIP : MIP_SEIP) < 0) { + error_setg(errp, "%s already claimed", + (imsic->mmode) ? "MEIP" : "SEIP"); + return; + } + if (!kvm_irqchip_in_kernel()) { + /* Create output IRQ lines */ + imsic->external_irqs =3D g_malloc(sizeof(qemu_irq) * imsic->num_pa= ges); + qdev_init_gpio_out(dev, imsic->external_irqs, imsic->num_pages); + imsic->num_eistate =3D imsic->num_pages * imsic->num_irqs; imsic->eidelivery =3D g_new0(uint32_t, imsic->num_pages); imsic->eithreshold =3D g_new0(uint32_t, imsic->num_pages); @@ -361,18 +373,6 @@ static void riscv_imsic_realize(DeviceState *dev, Erro= r **errp) IMSIC_MMIO_SIZE(imsic->num_pages)); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &imsic->mmio); =20 - /* Claim the CPU interrupt to be triggered by this IMSIC */ - if (riscv_cpu_claim_interrupts(rcpu, - (imsic->mmode) ? MIP_MEIP : MIP_SEIP) < 0) { - error_setg(errp, "%s already claimed", - (imsic->mmode) ? "MEIP" : "SEIP"); - return; - } - - /* Create output IRQ lines */ - imsic->external_irqs =3D g_malloc(sizeof(qemu_irq) * imsic->num_pages); - qdev_init_gpio_out(dev, imsic->external_irqs, imsic->num_pages); - /* Force select AIA feature and setup CSR read-modify-write callback */ if (env) { if (!imsic->mmode) { @@ -381,8 +381,11 @@ static void riscv_imsic_realize(DeviceState *dev, Erro= r **errp) } else { rcpu->cfg.ext_smaia =3D true; } - riscv_cpu_set_aia_ireg_rmw_fn(env, (imsic->mmode) ? PRV_M : PRV_S, - riscv_imsic_rmw, imsic); + + if (!kvm_irqchip_in_kernel()) { + riscv_cpu_set_aia_ireg_rmw_fn(env, (imsic->mmode) ? PRV_M : PR= V_S, + riscv_imsic_rmw, imsic); + } } =20 msi_nonbroken =3D true; @@ -464,15 +467,17 @@ DeviceState *riscv_imsic_create(hwaddr addr, uint32_t= hartid, bool mmode, sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); =20 - for (i =3D 0; i < num_pages; i++) { - if (!i) { - qdev_connect_gpio_out_named(dev, NULL, i, - qdev_get_gpio_in(DEVICE(cpu), + if (!kvm_irqchip_in_kernel()) { + for (i =3D 0; i < num_pages; i++) { + if (!i) { + qdev_connect_gpio_out_named(dev, NULL, i, + qdev_get_gpio_in(DEVICE(cpu), (mmode) ? IRQ_M_EXT : IRQ_S_EX= T)); - } else { - qdev_connect_gpio_out_named(dev, NULL, i, - qdev_get_gpio_in(DEVICE(cpu), + } else { + qdev_connect_gpio_out_named(dev, NULL, i, + qdev_get_gpio_in(DEVICE(cpu), IRQ_LOCAL_MAX + i - 1)); + } } } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140140; cv=none; d=zohomail.com; s=zohoarc; b=eZkAmxlMcFiZzgoAc42psIISJVxs6VrKgfaEKiZsa3UzwGRIpM7w0S+fFYidsojg2P/jI7/+WkdDaWhvTEwrHqiV31vkAkVzn/ufwYIamoHdJYFDtf7Wk3DAH8gNH0MveLjLyPYVvREL4nbsaxm0l/QQDzZdxLY30F72fhAYGxE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140140; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uA9/qkL7QiKfu9QsEJoocWtmDkHHjX3b28F0moNSlvo=; b=YYtg9AhUDay2Rb23lYSo19Tc46dr6l+DJKogD14FeVi/vkrOvNm74cXOM3mnqpMlUFQ0LCl+wSJDxhDHUoxjz6FlI63mY/ArmmKjBp4Aot7ZufMLk9KGxHCbPRZUgRYyjLDlA+xOnXX1Bn+U77dYbb9mclZKyxh86IZeB28hI6U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140140972792.0773016933706; Tue, 4 Mar 2025 18:02:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0L-0003IZ-AL; Tue, 04 Mar 2025 20:57:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzL-00082M-QV for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:59 -0500 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzK-0000WV-0T for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:55:59 -0500 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-22349dc31bcso110917995ad.3 for ; Tue, 04 Mar 2025 17:55:57 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139756; x=1741744556; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uA9/qkL7QiKfu9QsEJoocWtmDkHHjX3b28F0moNSlvo=; b=ZgP8cZ98cdXiXxqE4R3zFs5EDVlHG7FtGIuv7VyFuQxzLzWn+vOwOEeiJnvT37Fafa LuUGlqGbub3EZNqMuRAf/dRf7mGAfUHqJO7jhAAz1wkvZAySDRW03DNUEESIp+fgAXyL s25IEeIPv1B94q+Q2Z3GucMPCRty1e0pYz7oAwpHdaVisPHKh/W+Evux4mT5VXdobiIf qDm2HgidwAX59uoGPuA+ob+ehcdBZ+i10co+IMJFbtJ+zqTcSJZm4/EwIjeJDH4y8rbw 3hLVqLjVWUfTwz02a0nZjkSTuyflnhs7nWvlPrSiIaIN+dIfclkX3Iw6AhFfP3OFtwA0 dELQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139756; x=1741744556; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uA9/qkL7QiKfu9QsEJoocWtmDkHHjX3b28F0moNSlvo=; b=fKeQYyDDoX3dN3yoBieskWUVhFS4CGjvq1u7N8yVJtQzQmBpBIG4bp+XNHZeop4Z5P 6unRoWRZa24di9xsWnkEXZpWH67nfxN/MK6GEh+h+w0g4W2HsDxu4sPvqTUFt7IiKHjJ j7d204iL5wZZKPhf5pqjHj0jdcu/ZE2iI1PMacIwD+u6UIqdbAr0HR+SO6X7I+vKo4fc IMDtpGHzzOtNth8TA8mO20sUShFbAbGmhuTxPVOq6UugI9MKuThS3T86D+QlidNJBeKN ZymiyhDzavo9R1/0iaKaUFKANhocySyF59JmMJ3cK1K2RkWAg5DBrZRb3uJ9pAfj1Vc8 eERg== X-Gm-Message-State: AOJu0YzdGMt0aM1OXTZHO42pHf3BH5fYmog0XB1l3eINyrOCEvgqhmpJ x0ESdICWKjZa6FdjY14og4phi9X578zdiXJ0gn4khP8zuxwTebj14lfGm+RRAOM= X-Gm-Gg: ASbGncvPsTTVDqGkBbhUgTmXj+p47w3FeUHcRucECIqY0hghBcg6vzSVpE/RvyHxGlX nQopXTHbGHcDcqo3coBzqd7y8A5OE+58HAglDo9gzxvPo4HivWJKOVSaOnB+h4sIj+3V8kz0dlN XK7N8b5kNGhh2o/XouAMz1Z2itkI4kT6HYkvOcB8NoO+l3if+hCu3QkCXEQEYWfMJIo38EYwOpM r3sl92KeqE9zpRCTe0utD+PXMpV/kVlrwWlaq28qDW4OGqgot6xTMWDUUuApgpnoEAv+ORLwPsD KBCYIq9a8IiPwlCmiBZz8S96Zgr0nxhKaMMeFoIlOB7GlsvOvBMB9VkG3SKw9TjnSlh546vABqG 5YEWjAW06oUN/BJZTsH8LCE9QLYkMTbp4XQCUNcNEVRnAeIJRjNE= X-Google-Smtp-Source: AGHT+IGkS27zoc6gJSs9Ai4ZPrg2LUumSWCx6JnjxHRri6uF909kQpCIqom0nvXDPc3PXxHn+dfnJg== X-Received: by 2002:a17:902:db0c:b0:220:fb23:48dd with SMTP id d9443c01a7336-223f1d18c76mr21495755ad.50.1741139756353; Tue, 04 Mar 2025 17:55:56 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yong-Xuan Wang , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 55/59] hw/intc/aplic: refine the APLIC realize Date: Wed, 5 Mar 2025 11:53:03 +1000 Message-ID: <20250305015307.1463560-56-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140142575019000 Content-Type: text/plain; charset="utf-8" From: Yong-Xuan Wang When the APLIC is emulated in the kernel, the GPIO output lines to CPUs can be remove. In this case the APLIC trigger CPU interrupts by KVM APIs. This patch also move the code that claim the CPU interrupts to the beginning of APLIC realization. This can avoid the unnecessary resource allocation before checking failed. Signed-off-by: Yong-Xuan Wang Reviewed-by: Daniel Henrique Barboza Message-ID: <20250224025722.3999-3-yongxuan.wang@sifive.com> Signed-off-by: Alistair Francis --- hw/intc/riscv_aplic.c | 49 +++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index 0974c6a5db..e5714267c0 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -893,6 +893,26 @@ static void riscv_aplic_realize(DeviceState *dev, Erro= r **errp) RISCVAPLICState *aplic =3D RISCV_APLIC(dev); =20 if (riscv_use_emulated_aplic(aplic->msimode)) { + /* Create output IRQ lines for non-MSI mode */ + if (!aplic->msimode) { + /* Claim the CPU interrupt to be triggered by this APLIC */ + for (i =3D 0; i < aplic->num_harts; i++) { + RISCVCPU *cpu; + + cpu =3D RISCV_CPU(cpu_by_arch_id(aplic->hartid_base + i)); + if (riscv_cpu_claim_interrupts(cpu, + (aplic->mmode) ? MIP_MEIP : MIP_SEIP) < 0) { + error_report("%s already claimed", + (aplic->mmode) ? "MEIP" : "SEIP"); + exit(1); + } + } + + aplic->external_irqs =3D g_malloc(sizeof(qemu_irq) * + aplic->num_harts); + qdev_init_gpio_out(dev, aplic->external_irqs, aplic->num_harts= ); + } + aplic->bitfield_words =3D (aplic->num_irqs + 31) >> 5; aplic->sourcecfg =3D g_new0(uint32_t, aplic->num_irqs); aplic->state =3D g_new0(uint32_t, aplic->num_irqs); @@ -927,23 +947,6 @@ static void riscv_aplic_realize(DeviceState *dev, Erro= r **errp) } } =20 - /* Create output IRQ lines for non-MSI mode */ - if (!aplic->msimode) { - aplic->external_irqs =3D g_malloc(sizeof(qemu_irq) * aplic->num_ha= rts); - qdev_init_gpio_out(dev, aplic->external_irqs, aplic->num_harts); - - /* Claim the CPU interrupt to be triggered by this APLIC */ - for (i =3D 0; i < aplic->num_harts; i++) { - RISCVCPU *cpu =3D RISCV_CPU(cpu_by_arch_id(aplic->hartid_base = + i)); - if (riscv_cpu_claim_interrupts(cpu, - (aplic->mmode) ? MIP_MEIP : MIP_SEIP) < 0) { - error_report("%s already claimed", - (aplic->mmode) ? "MEIP" : "SEIP"); - exit(1); - } - } - } - msi_nonbroken =3D true; } =20 @@ -1067,15 +1070,15 @@ DeviceState *riscv_aplic_create(hwaddr addr, hwaddr= size, =20 if (riscv_use_emulated_aplic(msimode)) { sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); - } =20 - if (!msimode) { - for (i =3D 0; i < num_harts; i++) { - CPUState *cpu =3D cpu_by_arch_id(hartid_base + i); + if (!msimode) { + for (i =3D 0; i < num_harts; i++) { + CPUState *cpu =3D cpu_by_arch_id(hartid_base + i); =20 - qdev_connect_gpio_out_named(dev, NULL, i, - qdev_get_gpio_in(DEVICE(cpu), + qdev_connect_gpio_out_named(dev, NULL, i, + qdev_get_gpio_in(DEVICE(cpu), (mmode) ? IRQ_M_EXT : IRQ_S_EX= T)); + } } } =20 --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139941; cv=none; d=zohomail.com; s=zohoarc; b=g13vqfW7bUEIzyjSMVF4RnryYw56YAb6H8OhYHyZ+Z5nveUM5ycVk4fR9buE6QrOW6I4TBar9K2oWKK6FttLUrCw9zEIdgcInpThbT8XO7QDtrpmgOQD/InFJOvtXN7elyzm9QNTKb6lJAe62vhVz8HDrIc85xfBkIZIWxkElb8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139941; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VAz0w2Fj1wiUkIo5uE4zLw8kc6g0zMh9BHxqDhSaD/4=; b=LFqw9DLeSMhfsqqa8yVSLhvoLG9mRdpbYzIvzmDLKC2/dLoV3/U2urYBSVDAlqRO4e3fSvDGfCkmqdRUjOBwp0kT4mGgrGWfMQiaRPgvNEJMNpf5F2Tq4ng/hDFexGE5X0za8Qb56oL09yjD2fooEt4JpX5UEH8VJXUeKCiVmKI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139941561553.6852883298099; Tue, 4 Mar 2025 17:59:01 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0E-0002dT-KY; Tue, 04 Mar 2025 20:56:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzO-0008NP-MN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:02 -0500 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzM-0000XO-Tm for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:02 -0500 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-22349bb8605so121890605ad.0 for ; Tue, 04 Mar 2025 17:56:00 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:55:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139759; x=1741744559; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VAz0w2Fj1wiUkIo5uE4zLw8kc6g0zMh9BHxqDhSaD/4=; b=hdf4MiMKu5pWMyTr/OamRh9rc+sxEwg8U6XJiikXdQs3uxl/UezQkGjU4dJL6Rksgl HPgE11bzAZhH17xbK7ISZ5t0yO8s3IOCnkLaEzhzmPHAVVLuCMfNz9DmVtrkRgfYh76y IrmUOhAIeXPiRMl7x3bXWUFjoH6bVdYWVt4S98ZUfXq6OzfNY0Gw3nu6aDRb7nsWE7/Z JLGP1y4jl95ojVr7CYXmET0Rsm3xC+auG4VcrJxfbZ8+6HHtPMtVlb4lsfkrFJWmpQEa IJdcyqYAI5FYvg+Ttf87Hq2Fg5VInz6UVYSvXj6no82YMQeWgJsMtleGMquI5Hbt/nV7 8g0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139759; x=1741744559; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VAz0w2Fj1wiUkIo5uE4zLw8kc6g0zMh9BHxqDhSaD/4=; b=FmgR+KKhHX67xZyaFDL+rHT6Q7oHxzmUH4xwIXoAQp75bdMbknJokJVezVEv98cj84 IXPF9+I/zJ6XlXbOxxdwJsliTiaE8b6h223YzdH18VJxwS39cP9+O3GuUqxkFQ4u2948 MuX/ioqGYz45MCmd2nlk1bVeNMXKDgQ02PxDQACs5RXXI2K++2ujsTXuEM+McWTlqY5+ saw2nBGjtnAozxVbyPQeAhTxrxMpStshp4CUPXXuCXogZo2kr6nCrVhJOrbRqwBYQ3D9 fDuDiIojaXVPNosUYfd1x6V5dkpsI1RcFF4eQxTDvAdDMCgCHbYrgBdV0m/HOceOHubF Fz7w== X-Gm-Message-State: AOJu0YwsdkkYmIW61MaU8d9+qM8JceYfAZC1BDqbC8dQ6t0XUX/bU08Y hR7EyAYPZ0HLSaG6MRqwx3KX6QzkQeUn5ezeKJq0WkqwKw/ptl6sYy8ThXADtqY= X-Gm-Gg: ASbGncs4k1STJNayOVPsvftxoXJ76eAtDnoyfYoa9s6rLY7hPPl67Y56+E7RlWEdNSK qEPbLvOQxs0jGZQQCMTiqVyC4K81Qt2CzAfJpMr4mKCOc5pENH+7Eav+yvv4Ceb7kW/gfD6P6Qf KWhRTTAi4fhCbB7IZOTzQt7Tg4hMnT10xmQPUH/7NOcqATcABgBb4pSJjtTEfu78kSNSdgiCqvc pGEK3mBUQDw7yk+Onieb1v7koEUOT9RbHhft6Z76DyK4joRDAGjtYNYdiK6HAnaGcCn7Xl3coQs iyxfBe9qwAHuuWyzw6OjzAkzic/yNoxEVG1Y9h9XTd3HceDw541vJlHf0thp11bnDkeleLwDPKx 4oHABBBmSU9mZIB1zICLk6qYxBtapz4ucRAgH3HhYid2JRx2pPRw= X-Google-Smtp-Source: AGHT+IGjFeKe5oU+8GcnXHr7LTkWz1JzXvqeXogGKhqYmxwJZ5W+PuCNvvMP6QGO67d42IKQUsic9A== X-Received: by 2002:a17:903:183:b0:223:569d:9a8b with SMTP id d9443c01a7336-223f1c82585mr15700715ad.18.1741139759279; Tue, 04 Mar 2025 17:55:59 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yong-Xuan Wang , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 56/59] hw/intc/aplic: refine kvm_msicfgaddr Date: Wed, 5 Mar 2025 11:53:04 +1000 Message-ID: <20250305015307.1463560-57-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139943988019100 Content-Type: text/plain; charset="utf-8" From: Yong-Xuan Wang Let kvm_msicfgaddr use the same format with mmsicfgaddr and smsicfgaddr. Signed-off-by: Yong-Xuan Wang Reviewed-by: Daniel Henrique Barboza Message-ID: <20250224025722.3999-4-yongxuan.wang@sifive.com> Signed-off-by: Alistair Francis --- hw/intc/riscv_aplic.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index e5714267c0..5964cde7e0 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -181,8 +181,10 @@ void riscv_aplic_set_kvm_msicfgaddr(RISCVAPLICState *a= plic, hwaddr addr) { #ifdef CONFIG_KVM if (riscv_use_emulated_aplic(aplic->msimode)) { + addr >>=3D APLIC_xMSICFGADDR_PPN_SHIFT; aplic->kvm_msicfgaddr =3D extract64(addr, 0, 32); - aplic->kvm_msicfgaddrH =3D extract64(addr, 32, 32); + aplic->kvm_msicfgaddrH =3D extract64(addr, 32, 32) & + APLIC_xMSICFGADDRH_VALID_MASK; } #endif } @@ -403,12 +405,17 @@ static void riscv_aplic_msi_send(RISCVAPLICState *apl= ic, } } =20 - if (aplic->mmode) { - msicfgaddr =3D aplic_m->mmsicfgaddr; - msicfgaddrH =3D aplic_m->mmsicfgaddrH; + if (aplic->kvm_splitmode) { + msicfgaddr =3D aplic->kvm_msicfgaddr; + msicfgaddrH =3D ((uint64_t)aplic->kvm_msicfgaddrH << 32); } else { - msicfgaddr =3D aplic_m->smsicfgaddr; - msicfgaddrH =3D aplic_m->smsicfgaddrH; + if (aplic->mmode) { + msicfgaddr =3D aplic_m->mmsicfgaddr; + msicfgaddrH =3D aplic_m->mmsicfgaddrH; + } else { + msicfgaddr =3D aplic_m->smsicfgaddr; + msicfgaddrH =3D aplic_m->smsicfgaddrH; + } } =20 lhxs =3D (msicfgaddrH >> APLIC_xMSICFGADDRH_LHXS_SHIFT) & @@ -431,11 +438,6 @@ static void riscv_aplic_msi_send(RISCVAPLICState *apli= c, addr |=3D (uint64_t)(guest_idx & APLIC_xMSICFGADDR_PPN_HART(lhxs)); addr <<=3D APLIC_xMSICFGADDR_PPN_SHIFT; =20 - if (aplic->kvm_splitmode) { - addr |=3D aplic->kvm_msicfgaddr; - addr |=3D ((uint64_t)aplic->kvm_msicfgaddrH << 32); - } - address_space_stl_le(&address_space_memory, addr, eiid, MEMTXATTRS_UNSPECIFIED, &result); if (result !=3D MEMTX_OK) { --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741139996; cv=none; d=zohomail.com; s=zohoarc; b=WUHEWPQqKtHfgcPEM0AB5DfElg1M2+Ijs89lv2AlI/IDD9JNOs9Vyv3LaxraMT8244m0ot65/Bc2AXXxXfEIPjsHDlNKUQ43p0RU3Gt+FhEChMoGjB8N/lFG80CKCaq1bc3FER3fjcZIRSeVz/xuG//JUYjg5bdh7bsfktykOkg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741139996; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CwnFGXQgJ850S3H1p6IaPijGGzDxuh3yBXRCUGnBbro=; b=g82Ers0IY3dPWD8qD6+aeOyE0EiZbIr902zeReaPVK63wqcLQkXsB2BcnvHAtWEj+q1AD83VnKwx+yrxPcnazF5tMbp38jrp6NU6JhJI14nbL0zNRNXpep4I0LxJJRhOHpnEeuEcVaTYziFChWbYaYxtBZeRBAMVqa3FeGdVzD4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741139996796931.9404460395085; Tue, 4 Mar 2025 17:59:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdzk-0002AS-OU; Tue, 04 Mar 2025 20:56:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzR-0000Nv-Jv for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:06 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzP-0000YB-Ut for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:05 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-2234daaf269so102538095ad.3 for ; Tue, 04 Mar 2025 17:56:03 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.55.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139762; x=1741744562; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CwnFGXQgJ850S3H1p6IaPijGGzDxuh3yBXRCUGnBbro=; b=Po5T21P2edlZK9J7Pau5PoWYvWsmj/ObKRZwiAq4GF2unWAxdKT2lUA3tDgbmImsG7 0qt+CwB+CS7FEJ6svP2bEe8QUkUj2eZdD+0V1J8MEmT9cuB6iyE/s/ePqKPvwnKbygGU XEftM3tsptL2SH8tCBT2L+Iv3fbF1MYF4ur2ZaH6zSD7nPS0faHxUZGO6J4jsAxSad6E uT3q0uwKlCyrm3RL5mL1vkY+pkl2j/L3D9wFouhvk5YUV0Y2b4vqyer3m+TXaJYT19ni DIOtcEJV7UpY21814a2f8QVjXOtkfVtFFsHKSFc3L3FcRFHhZ2Yv4mNygvQoKgezFB1k KGGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139762; x=1741744562; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CwnFGXQgJ850S3H1p6IaPijGGzDxuh3yBXRCUGnBbro=; b=CsLCrbj2c9aYDVtOpBX+zpSmgqhNjyIK+JOd5OwmChiuGT2XW3JV69H1BE2fqeMV+I 0+NFlolGS/3Y/LA4Uqxp9kOHOqiU3nvWVaHjx1Y9wvkSGOmxXd9divp8UXcD3PYKPgGA haKoFHZrpPrknr5MJMA2i8CmSFkg0r0IGVLt2a4Ljz8S+IDnOy74QdWwG3H2LxSYnmnt huT2tYqITv2zyITQk00pbeOuLtzb5XVVCyd+l/vnraRnz1sYTdKQR5CyIwTPB6iNveJs FwpvbiY4UuGGEM3zjWssXPyCSO/0qnrMcdoYJyYdQgu/Q9OIcUw1PSftKGNrJ8kfrfID aI7g== X-Gm-Message-State: AOJu0Yxwzzl6VuWmemq9bBetYbl0RN3jBI1grVfuetLCqrzUb8Z9GLsM Pw9eJWIcvDJW7y/nynq0D9/AXmHKJy6Z8ED2XkUe+Zx9zPuSTibre+sy1zojFLE= X-Gm-Gg: ASbGncs1LIxmTQUJXYtIj6hZzElCmgMvZCBII22ze7z25UaBvWTgUfh+Kr27wYejPgz +Djl42NVPENILHJFULDFAHiNQxkC3XvlNy1V/9DodbG3/Mv8CekcbWNN2UHJLWC2VZ58cu0CHrm vt/830bCi9xNMCB3mSMrE3VNOqNneWWFSuhx5Az84YTq0qGVVHQSJM9No98m7oySX2S76kWq9i2 gGs7vmOFnSUFLqbkkzKaC9ZMpBrE9Tf2jQva2GtJtikuszgsTBQhvg9MWv0dQQBjw5rzXk1bqsR tAiPBtGtjOPkjI7H+fja9/0Vdhk6HRCD3TnP2vq+4c9DHls1TDhpMJQqS/ogwhSqFs7o8oRqJC3 kxVh+v+4BVRZzmDDKKhWiRzYG2RyXInydkpYTVQ8NhygFWLDKHUY= X-Google-Smtp-Source: AGHT+IHQLcCScilRE4lM0OCKVidcJC2L89suDgjYYASTWBlxAxipNt8F85MNy99UfOeZWA8mQu8GNw== X-Received: by 2002:a17:903:244f:b0:223:5379:5e4e with SMTP id d9443c01a7336-223f1c79b6amr23867015ad.10.1741139762254; Tue, 04 Mar 2025 17:56:02 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 57/59] target/riscv/cpu: remove unneeded !kvm_enabled() check Date: Wed, 5 Mar 2025 11:53:05 +1000 Message-ID: <20250305015307.1463560-58-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741139997934019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Remove the !kvm_enabled() check in kvm_riscv_reset_vcpu() since the function is already being gated by kvm_enabled() in riscv_cpu_reset_hold(). Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250224123120.1644186-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index e436083dbb..e110e0b909 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -1611,9 +1611,6 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) CPURISCVState *env =3D &cpu->env; int i; =20 - if (!kvm_enabled()) { - return; - } for (i =3D 0; i < 32; i++) { env->gpr[i] =3D 0; } --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140409; cv=none; d=zohomail.com; s=zohoarc; b=mxWvV9VuTrbWBXxExHfBcgjtTmD6w0k+ySi4m6so1C7NyZ2i4lmuMG6JkfIoCkhlksxJ5h8CKZugV6EslqKBgJWpjoAFvpUNwu0Qc23dLSk07uF4JKOXa/6TJGZbGIrUssDaVbssHcqT649exQCxiTZHr2EwyeOnHka54Y4gJcI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140409; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/0hW3+S9jfzX+T8NcB6yuMJZPB70RRZojkSXgIHsNM0=; b=TPfM2TiVtngR95VCRij3mF+IhHZ2mkaYxKN7XgFNIp/1oQlYge6AD00jqqDA3+GG2HRbZFSgKkiBqO2epgc94EtakW3vHAyQOdxalN3sAr3EPFTEuhvSbCZRBQJPmxxg1XpLRkWmYRY2lmRspDoaC11WqsR1VfYdIaGwMeCMXNM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140409304290.95634500304766; Tue, 4 Mar 2025 18:06:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0Z-0003eV-Fk; Tue, 04 Mar 2025 20:57:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzU-0000Z2-Ge for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:08 -0500 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzS-0000Ye-P3 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:08 -0500 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2238d965199so61677015ad.2 for ; Tue, 04 Mar 2025 17:56:06 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139765; x=1741744565; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/0hW3+S9jfzX+T8NcB6yuMJZPB70RRZojkSXgIHsNM0=; b=lMzQbpOIKNk7bUzzyLmIDFUHFC1Ml13nW/LG+6cMUlZJ5TYs9Lm0CPNYRJRgJntDqU u84BSfApeM+ZoISTb+sCBZDVsjqLT+5b4y4QMvKd3G+PeRXJFaqFb+o3c4+cSV8ZES0C JtNkX04yE9ePqBusCR0xJSyjIvwuKDPEFhQMlRWkv7onq+uAPHB7vtHEqNX+zSHxdsta c5f26ujh9BtIoTFmUWDIkoVGg7E4TEa10HbnHKZzv1uUlFwLU5AUke0VPtyNulaHwrts zMy6jxcStyr1xHQYW85ZgpSQJ3Nw1UHi0/u2ZIyY9RCAUvTKFJ3Tbnl3Rxo+YG5Ay050 1mcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139765; x=1741744565; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/0hW3+S9jfzX+T8NcB6yuMJZPB70RRZojkSXgIHsNM0=; b=Rc49QCkVUCi1IgqXGrgAVNUiBGf8QhTqiZ/KRSxbwSDHVKh+chFFfBQ7VYJzNnz/jm oAWaAOTQDglQr+9uXLDm6+TF0kmyBx2xGX3CRkJX6QtTtXOhsT3sWitwF64pU5X1rNFi WMq+NzkkJEn+7H2k1rfRqQNfLEg71HcshThGaVPbb0Dj/DOrIavwAMsLBorg0jTX8lMK 0sr/R1KLqM7ij7rKXZm9YlRkNREVBuDwwpp4aeCVxD1x0n9NKlPCXBnrlhlX+qLUFTiB Di4VZuPLYeuW/QeOb0yzd/5YuDaEGm7Gx/uAC5QzB8A6M7HPrHL/VxR1L5F5n4xK+N6k BjIw== X-Gm-Message-State: AOJu0Yy5rVLm903Vl+Crg1S7+vWGG1GlNW32LdqV+RGMzTDm6HSQT3YT Q6r7O6WYV9xMArzKG1RppOin1FRUYYGNeYtiawUI6fEXY9q7EEjPdIxqpdphcyc= X-Gm-Gg: ASbGncvpv/Ud/tfYHy6CKfgaXG5PzJq5Y0OfgWwtJOuaAmd1XBcKH8b7XKeQ5EegmoA 776rLqfiwabD7QHydP/6qdmU9GaoBMi0zMFZzohrkRkf0QN2HvIvPcbq581+fr/xZSM4LJTvFQ7 MF0As4eLPt1bz/tVCv5YB31c0+fEwKLsKjO97BXrN6b6WHSFQ2t1YTuuyapJ1YavGJV9CJLKLoy 5CvR6pIe50T5ztjt2ICbNCEl5pepKJrcckrHqsJH3Qj3Od+KpA0FVokjL11fcQqJkDqor7A6NYv 66Is/2mYDtOxU1eZwvVUm5WGf7TEO+pAnnQPJFsYq5YxLemUfnBy9q7WBDorgw8cfaRpLL6M5hB iaRjYV96+qv85znspzdYXq4KQd3xEZ5vyDFJFpEYn7eCnDDWBPzU= X-Google-Smtp-Source: AGHT+IHhrQa70jXqY3HaeAlDaFR3sqvwJvJdIuSZcHgq/FFkznwx5+AXc9EE3bxEx3vJLgAlGbH8sg== X-Received: by 2002:a17:902:c951:b0:220:cb1a:da5 with SMTP id d9443c01a7336-223f1d0fa09mr21741235ad.40.1741139765171; Tue, 04 Mar 2025 17:56:05 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 58/59] target/riscv/kvm: add kvm_riscv_reset_regs_csr() Date: Wed, 5 Mar 2025 11:53:06 +1000 Message-ID: <20250305015307.1463560-59-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140411447019100 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza We're setting reset vals for KVM csrs during kvm_riscv_reset_vcpu(), but in no particular order and missing some of them (like env->mstatus). Create a helper to do that, unclogging reset_vcpu(), and initialize env->mstatus as well. Keep the regs in the same order they appear in struct kvm_riscv_csr from the KVM UAPI, similar to what kvm_riscv_(get|put)_regs_csr are doing. This will make a bit easier to add new KVM CSRs and to verify which values we're writing back to KVM during vcpu reset. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Message-ID: <20250224123120.1644186-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index e110e0b909..ba54eaa0b4 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -613,6 +613,19 @@ static int kvm_riscv_put_regs_core(CPUState *cs) return ret; } =20 +static void kvm_riscv_reset_regs_csr(CPURISCVState *env) +{ + env->mstatus =3D 0; + env->mie =3D 0; + env->stvec =3D 0; + env->sscratch =3D 0; + env->sepc =3D 0; + env->scause =3D 0; + env->stval =3D 0; + env->mip =3D 0; + env->satp =3D 0; +} + static int kvm_riscv_get_regs_csr(CPUState *cs) { CPURISCVState *env =3D &RISCV_CPU(cs)->env; @@ -1617,14 +1630,8 @@ void kvm_riscv_reset_vcpu(RISCVCPU *cpu) env->pc =3D cpu->env.kernel_addr; env->gpr[10] =3D kvm_arch_vcpu_id(CPU(cpu)); /* a0 */ env->gpr[11] =3D cpu->env.fdt_addr; /* a1 */ - env->satp =3D 0; - env->mie =3D 0; - env->stvec =3D 0; - env->sscratch =3D 0; - env->sepc =3D 0; - env->scause =3D 0; - env->stval =3D 0; - env->mip =3D 0; + + kvm_riscv_reset_regs_csr(env); } =20 void kvm_riscv_set_irq(RISCVCPU *cpu, int irq, int level) --=20 2.48.1 From nobody Wed Apr 2 13:40:47 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1741140265; cv=none; d=zohomail.com; s=zohoarc; b=hiBs/XizFPits+BGwc67MRU4KGrbXp+ibJCDyStiPQVzyc6CgjL+B212EuUQul9bNf6wD3qk/bq/w/gOACm6YW1OYLDKNmNL4M20H22azFTX7DvXG8CZsG5LDk+Sbozd1+zZGkgWn4jnCpvYL44yyBdIDItgJpFdJX70KA20Hcg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1741140265; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QoiFdbbJTlFWZLwqC1xUIWOhoGHSOkQ9ZUT/2MtQZn0=; b=Dw4AqJ3RPfUsFFi5dmwb7HPsg4O3QczlDnUd9cCW5t1i8ofbYSmeU4a9Wy/S/8Ji0idet+F7hodTFN1/3XZzusahTCktSRX+V9/6P/pC4hDZwCRzo5vXWdU4Bdu8lmnV8zLP06JLnSgmZ7dOJ8OKEDOXVmJSa+dek1RN+OPET6A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1741140265454552.7002888150708; Tue, 4 Mar 2025 18:04:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpe0r-0003pr-Qm; Tue, 04 Mar 2025 20:57:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpdzX-0000tB-8v for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:12 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdzV-0000ZJ-ND for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:56:10 -0500 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-223785beedfso79532405ad.1 for ; Tue, 04 Mar 2025 17:56:09 -0800 (PST) Received: from toolbox.alistair23.me (2403-580b-97e8-0-82ce-f179-8a79-69f4.ip6.aussiebb.net. [2403:580b:97e8:0:82ce:f179:8a79:69f4]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501f9e04sm102583695ad.87.2025.03.04.17.56.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Mar 2025 17:56:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741139768; x=1741744568; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QoiFdbbJTlFWZLwqC1xUIWOhoGHSOkQ9ZUT/2MtQZn0=; b=cy9NDum2PKxtXuATKdp3n6Y8CbObMggu4BHktEIQrKU/Fvjq2Jw3LcP2NZGfeeeAPB RedKGKFZKJjiyq7bREQ6XGu9An0BWAo6fxNPOjjTJkgTe7S5zcDcUXdvNj2RjhbFmvL/ HWjnqafESjByxhv4hhWH9J67nl9Axt7W7Z1OW6pDxdi6/lCrYgWLU53+P8xZxvNrCCGR 5CS0dZb4HZ8uoGZHHpMb8gpq/Y5nOLPHAOaGrWvi/FF3hWYeJf7ir5cGasstPvhuB64Q h6Y2hzkEBYmdtIzrImFdDw+6GazWj7ycYpXXq6kdLpPk64iuolmKG7ZE6wiGw4+MUYoN Idww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741139768; x=1741744568; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QoiFdbbJTlFWZLwqC1xUIWOhoGHSOkQ9ZUT/2MtQZn0=; b=sn6Q0BfUdgA4xX2UOoLpNGEwQPj5a853GSJzsNTV07LYja9PSasvO3Zwi+n5em5M5p gH5qScy/1nJK8Zr1IH9ptQkIBVG54lmPRVpmYofc3HkXSS3xxJNTmux/FVWRyd+ao//k 0daztkEo92K4++qCRZdnv1WzPr73cm8kc5qKy/bzI35Srnugb4+TCi/vnX3kS0i8w5Ps dHYZdTi5taHQMpiLe0T3RhAU3Ghasl3FZO21e5YMzuq03LzR3cNZ7bVLAxgfd/D2tFvY TYinbtJoOtepMw2MH/lbrxKINIb/5JEoRBNL99iGO/NcZWDgW56HjNQjpLYefSdNH3El 9S7g== X-Gm-Message-State: AOJu0Yx13RJjjUFi8OHG3mCxswmi+ct5H7/xzuaLmJ8k6jG/Bj5FvY50 e5S51O9I3Y4FbJq0DbX82lWVbCMzk+r3yEv5WWqvR/hlK14mXYfaojYqPiRsxGs= X-Gm-Gg: ASbGncsXjJu7kfAUFPLc7id2OPk0PwsUqdXdK+FdWMJKtgFFtkE8F5sZHyMEppMuTno 2tWRmds8i2EMKvyoIOwMN9U0iWRGW+ajXRy0kNYcWm1+X7d5YqbqBJNgB0ty0k34+GkQH7/eCcK ZHmRtJIGUXUOoEwFadmPCJmhprqTxpjKiWQulx/FZEyJ4WR3pJ31KcTPmYdefmLGQaCw1i4vgeB ct404iTgA2VatFnWZB++ly8w47w7mXN5ckmESfQvRSQL9SAZFXctOfhbCxMkd4G+rwYwEmw0iaa C9Hhdit7abzY9T+pHWp2o3gQ7dwzR00FwLmhgkbd1HEZ5uzHhoupnyWi84AlybKMbyadHQCdaYI yOBZkw+8P8I9UXuaCUmejgTsgr2BW5Sco2h3TpL4d+qGc+Std+II= X-Google-Smtp-Source: AGHT+IFFm/Wer26YIDZDSNWLTXVY1RVZ4XZHLvWeOaMCwQtnQ1BXqpgJEFzMohhjTp1uRLINnOYYtA== X-Received: by 2002:a17:902:f691:b0:223:653e:eb06 with SMTP id d9443c01a7336-223f1ca7c4cmr26259985ad.26.1741139768121; Tue, 04 Mar 2025 17:56:08 -0800 (PST) From: Alistair Francis X-Google-Original-From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Andrew Jones , Alistair Francis Subject: [PULL 59/59] target/riscv/kvm: add missing KVM CSRs Date: Wed, 5 Mar 2025 11:53:07 +1000 Message-ID: <20250305015307.1463560-60-alistair.francis@wdc.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250305015307.1463560-1-alistair.francis@wdc.com> References: <20250305015307.1463560-1-alistair.francis@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=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1741140266846019000 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza We're missing scounteren and senvcfg CSRs, both already present in the KVM UAPI. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Acked-by: Alistair Francis Message-ID: <20250224123120.1644186-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index ba54eaa0b4..7f3b59cb72 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -624,6 +624,8 @@ static void kvm_riscv_reset_regs_csr(CPURISCVState *env) env->stval =3D 0; env->mip =3D 0; env->satp =3D 0; + env->scounteren =3D 0; + env->senvcfg =3D 0; } =20 static int kvm_riscv_get_regs_csr(CPUState *cs) @@ -639,6 +641,8 @@ static int kvm_riscv_get_regs_csr(CPUState *cs) KVM_RISCV_GET_CSR(cs, env, stval, env->stval); KVM_RISCV_GET_CSR(cs, env, sip, env->mip); KVM_RISCV_GET_CSR(cs, env, satp, env->satp); + KVM_RISCV_GET_CSR(cs, env, scounteren, env->scounteren); + KVM_RISCV_GET_CSR(cs, env, senvcfg, env->senvcfg); =20 return 0; } @@ -656,6 +660,8 @@ static int kvm_riscv_put_regs_csr(CPUState *cs) KVM_RISCV_SET_CSR(cs, env, stval, env->stval); KVM_RISCV_SET_CSR(cs, env, sip, env->mip); KVM_RISCV_SET_CSR(cs, env, satp, env->satp); + KVM_RISCV_SET_CSR(cs, env, scounteren, env->scounteren); + KVM_RISCV_SET_CSR(cs, env, senvcfg, env->senvcfg); =20 return 0; } --=20 2.48.1