From nobody Sat Nov 15 08:45:03 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=1753837690; cv=none; d=zohomail.com; s=zohoarc; b=GRCsrgQfqX8E1f2ZvSdRf+iw6MJU7ma1SZbjnPWq1NcqBG7s3VNjBbDj8n7sZSZZOVLR1KKbdj4bmkrMs/hsW4ezkGxU+cmROeEbbOrYxcbPSGaOdGfCtOfOSyXEJ2XBpwFgrjTJrx1WoxQfZjONSyArvsIfLez8HErh9FK+IEA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837690; 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=z9Rc+6thE21wnYNbJPK/4zcbD+cK53gSa/IlvV/VG5A=; b=du731rfV+pRuJn8JxWUK4imlpifeBrohtk/wIzQQrpZz98bngfrAenZRBaBjnPnM/J7hDNb9uh0KEAdyV4EAXRgj5KlJSzu25Asq4cR9H5E33yyoTrZay5yrctykrXrgiQ1lhwfxH91yuicTUCRVuZgCDYeFm5lmkyy/xlLCfNk= 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 1753837690746341.3202820366673; Tue, 29 Jul 2025 18:08:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvIM-00060O-6f; Tue, 29 Jul 2025 21:07:50 -0400 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 1ugvCO-0002vw-2L for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:40 -0400 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 1ugvCM-0004hg-7l for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:39 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-3190fbe8536so5893164a91.3 for ; Tue, 29 Jul 2025 18:01:37 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837295; x=1754442095; 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=z9Rc+6thE21wnYNbJPK/4zcbD+cK53gSa/IlvV/VG5A=; b=dXAoqA81Tv/davqpYXNZrAJRQvsae/K2VUYN8wk1/eSoVUmJ8oxkxdYMRcbFvZsoOG KRyKwCSbHLKUWCAWKQclA+Lw56wBR596F4/StoQhuZucIUjP33gE85RDUemfkUab4LPb MEFl5RmdSYAWQPXUqa8uQAk3QFwSP3Y20H8JeKCS1OrAE5N6K7BrFG1QHJoHCbWUvSyG bmA/ipUhfN2RagJIL4JoFwd7fHZxQNN1sGyUE2jAghbFC1CLBEpmmevySBXzORjybW0g g1hhLko1TdO6oM+uWwSEeozgua/DESnniqwTKmXI+9RV+iyve0mtnk1iGlcnxHKwnZ7K wtiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837295; x=1754442095; 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=z9Rc+6thE21wnYNbJPK/4zcbD+cK53gSa/IlvV/VG5A=; b=PYlQ/3zBuLNsmSolzPUT+vBqBaTSeMPoKFeoAvyihv34ewdA/ujWi9dxPoscOSVYAG 997XyC+Udvrds00YQKJoAF+IUcGOLMZMMcn5i3TRMQ/mJHPtFyrEMLGWo/iwZuMqkcQs er10BB+igGv2zWmBCnmNfTbZya/M65WdSFPBotd3HjqR72MFs5c/67r+xiEXhwaW8Fqn 7v23+vUpoUrtPHeemsoVjo8Ix3MgkvIng7azKbqNhU0aW5pDark4KOlO0c0O+jaI2TpW LiVynE9rlM2JsdO9EmjM0wRtii0U2S3GoOOMR0JsoaHk4w29ngOss/bkYWx3qhV3viIW VPDA== X-Gm-Message-State: AOJu0YyftgxfM4Vcz8XYnLRh4KS9u1nvr8JExup3ns2MsaET3/AenfXn ThhpwvsidSvGMP2hIH5Z11hIT5A25QAwtOF5zVQUK8xpmFnjhRmtkPB+3tkQ6g== X-Gm-Gg: ASbGncuUZkjbvKpmPgesBfMEk4BfdB7gLuQvzqsNI+qBbcSOS3MFvgx0KNaYpiuMhBr sVPDU3J5Ib/79KpmOVtEEWQNUK41fq6DBAvuB8Hd0IuUvYiPeZvx6nhYeGHDMK9yGFggDWPFdDW UnspgW+IvbRPG7Fhw3kSQAhHoGjllt8ejgANvfDzQdyRpb47GXZY2gsGbF61YjLtLGxrzPtnLjz e9TMi4mOaGHH3fKge2UhaYpHHSOmQU8/PPjLufj0SO6vMUGWIhjwarpBBpKSLOEFgCHrY4PZPCy 7TuTfFBTukAYXSvTfLHuJF/9FA39SaNf2YSQqBH4rzoUzIBrodUojlCRhXNI17FAM8Hb8dCLb28 1p84y3iNZAk0IGZ2MBfPtlBO7PD/QTbiYJzhPZQXxuf8jyXW2jWy3bb+pStgYvlmgTflLP1HFmf 8+7LyQFjJbJ5kHnD4Pm9GCgCQICuf1we1+oQRH6A== X-Google-Smtp-Source: AGHT+IEKA8otmbwQfeZzBZtkDd7RSqjQDp8+hFYv6Cks9s2r8mPGtP/hv++itdLJkyHDBSPZuB3Kkw== X-Received: by 2002:a17:90b:562b:b0:31f:336a:f0e1 with SMTP id 98e67ed59e1d1-31f5de315a9mr2065504a91.17.1753837292676; Tue, 29 Jul 2025 18:01:32 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Vac Chen , Alistair Francis Subject: [PULL 01/11] target/riscv: Fix pmp range wraparound on zero Date: Wed, 30 Jul 2025 11:01:12 +1000 Message-ID: <20250730010122.4193496-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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: 1753837691916116600 Content-Type: text/plain; charset="utf-8" From: Vac Chen pmp_is_in_range() prefers to match addresses within the interval [start, end]. To archieve this, pmpaddrX is decremented during the end address update. In TOR mode, a rule is ignored if its start address is greater than or equal to its end address. However, if pmpaddrX is set to 0, this decrement operation causes the calulated end address to wrap around to UINT_MAX. In this scenario, the address guard for this PMP entry would become ineffective. This patch addresses the issue by moving the guard check earlier, preventing the problematic wraparound when pmpaddrX is zero. Signed-off-by: Vac Chen Reviewed-by: Alistair Francis Message-ID: <20250706065554.42953-1-vacantron@gmail.com> Signed-off-by: Alistair Francis --- target/riscv/pmp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index 3540327c9a..72f1372a49 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -211,11 +211,12 @@ void pmp_update_rule_addr(CPURISCVState *env, uint32_= t pmp_index) break; =20 case PMP_AMATCH_TOR: - sa =3D prev_addr << 2; /* shift up from [xx:0] to [xx+2:2] */ - ea =3D (this_addr << 2) - 1u; - if (sa > ea) { + if (prev_addr >=3D this_addr) { sa =3D ea =3D 0u; + break; } + sa =3D prev_addr << 2; /* shift up from [xx:0] to [xx+2:2] */ + ea =3D (this_addr << 2) - 1u; break; =20 case PMP_AMATCH_NA4: --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837431; cv=none; d=zohomail.com; s=zohoarc; b=bk9nBwmdwbGgDQP+EIANI/jq5TkrlM33MwSCMLSnZoCGptIgCC1BsO5DYd0jTm1pZVR0yb8dttl08AMvVsHSgwCuE7rxjyLb2essaIlIfC9npmefZLgx991PhZ97nnYxfsOovRJKqgB0wn9IjT7qHj1YGcuP2nLY3ZrAx1sai7w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837431; 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=aCYPR2FiJ1QAY3BBIXtKExP1YeShrtPgpJYXL8zq0L0=; b=kemC38sAWcn07tYpBSvQ4JKNYN7a25o40aLOhQRCakKhqDadcShcG7ElHnpwDBQplDHWKfcpDk50zZD+wfGyAARJfU6GwpBmCNc/aWU9FBy0b0jROtXJiO6K4Pw+VrLtuhB/uW+Dexu+5Qu61A35wwotXE5RX8TbmdSsbtY0hJI= 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 1753837431454690.3687494609754; Tue, 29 Jul 2025 18:03:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvDx-0005L4-NJ; Tue, 29 Jul 2025 21:03:17 -0400 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 1ugvCO-0002vy-2q for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:40 -0400 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCM-0004hk-7n for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:39 -0400 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-315f6b20cf9so6775258a91.2 for ; Tue, 29 Jul 2025 18:01:37 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837296; x=1754442096; 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=aCYPR2FiJ1QAY3BBIXtKExP1YeShrtPgpJYXL8zq0L0=; b=PSn13BwEVf4X8fMKDoyle71WhTLY18XUqnAmLbcjuj+F/uUg0/lYDwp46QNFDVtdCU 7uwIpQikATaFzX9N82wXiXZNtRhCH532e8jMmeu1jNl3mxwtR8aDEbUQu9Poe9kAx259 y+4yc3VAGxk4VORQmUOf1VXdAJVfNtYYfp37patvX+WGEF3uo8yB2b5i8lMqSGh9yrGb vCSyndTeQko2i6wzmYuQ/v8tQCGZkFwH9bmJmA5sR/p+dJNb/ktMzkoEtdo4OdOF8Vhu nqNMLutYseRFMwcuGR8FS07t+1xno/GpO/jzcU5Ej4ZDZ8xw6mLJIFvxuyZv7qzKGJBv u2fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837296; x=1754442096; 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=aCYPR2FiJ1QAY3BBIXtKExP1YeShrtPgpJYXL8zq0L0=; b=fN31iX5aQtKOYhlyuhDSusmFv0pMmoja2X8mkjZKFJMMKzDcpu7XuvbXmrYcZvsVIc ZcJ1i0YTtH4UY5w4sbiZLnplseorLwc2y5B+JR28HTqZTa205+koF2VHivCP/TNueLMG 9/RrKwva2+nGC/qerHFG54Yxuc9yVxr4VwKbVegVTTYmTKJDdqIzPdLnsCaACJmUWwE6 l4pEdLWtHxeaDSBNAXSvYJTnDIkKb8V9OqjG7+jemOxY9Mx4iuXtYehgksuaeZxdTZqB 87zXfLl4Zd6Viu1wSYT2fUyw6gvwHWYrfHzUr+xlyze7v6H1P+OiiW9eKGJWHfWrBnHD /jJA== X-Gm-Message-State: AOJu0Yy5kI/8qnE6N5/lwpS59GSLfFqNS2BsywkoS11yOBB95P4quhCc tC7A3T2mPxUZR1cQ8/F/heD2HbxHjdVu+Gq1O3huduFqoP5JadeJx9BtYeqAcQ== X-Gm-Gg: ASbGnctUOabJKlQubCPTewPtAEMZrAHc1Pm1qil9oXoA5Nv6mUlQeZdc6CRZnPCqLzo GIrJ7txsHqyq+ggS+Un7VU1nXh3ll7jWsKA+2khPNnml271IjRy8X6tv46LSEEV76/U6l6pKOCB BmhVCtSmb8vTOQg3I8y0Afb0DFkl35CdjcDBtcdxxZAGe9FZqvGD6WVk0dKrzvhXalEgxLK/l4G cedMdGLwaDfPLb+hQEa5lvSnJXf8AuP1eRyLVtzgsASGtynlfXnsFrMIEJCdMlBCVSFdhpzy3M8 kKWCcP7pXtZ3alE7h3oPt1xxJW+h8V6HJuY2WyHZVMf9ofqUQCmn4j5nNqaTXd5rSCF76VxSkGO fN5G457FaxVHx1MNOBfFgig5TbLV1hq3/W9Z7u7HwbjO65S0RBzFZjwamX1v8uM9cBW3qJWq4YW 5D9r9PKoEXaSwgh54hV97xYFiLNTg= X-Google-Smtp-Source: AGHT+IFlQlGf3DIp9bOWYiGllUc9T8tEATH2DhGIJGkCizb41uBhgPYHijpEzP4g430cdlil5jJlfg== X-Received: by 2002:a17:90b:1ccc:b0:31e:d2a5:c099 with SMTP id 98e67ed59e1d1-31f5ea4a331mr1886794a91.30.1753837296190; Tue, 29 Jul 2025 18:01:36 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Sunil V L , "Michael S. Tsirkin" , Daniel Henrique Barboza , Nutty Liu , Alistair Francis Subject: [PULL 02/11] bios-tables-test-allowed-diff.h: Allow RISC-V FADT and MADT changes Date: Wed, 30 Jul 2025 11:01:13 +1000 Message-ID: <20250730010122.4193496-3-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::1030; envelope-from=alistair23@gmail.com; helo=mail-pj1-x1030.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: 1753837433264116600 Content-Type: text/plain; charset="utf-8" From: Sunil V L Signed-off-by: Sunil V L Acked-by: Michael S. Tsirkin Reviewed-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Message-ID: <20250724110350.452828-2-sunilvl@ventanamicro.com> Signed-off-by: Alistair Francis --- tests/qtest/bios-tables-test-allowed-diff.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index dfb8523c8b..0c3f7a6cac 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,3 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/riscv64/virt/APIC", +"tests/data/acpi/riscv64/virt/FACP", --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837690; cv=none; d=zohomail.com; s=zohoarc; b=Ywq/iLHXnuxcwkIWqKwq9S/9AHlovT2L2WGopZ/fGjTF4Lzxl/V6ZJy6vBPZt1pUkqN2Z24K2+m2EJhQWKAsOqbZCjzzQWXfAJerMWEzuWseZg5Pnz3uquhv5oRxF4r3Y4gFoI5D38j9jgos1d+cOTDFZSkellOPlb91GW1PSAE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837690; 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=4aIWN5OnX9/GMC6APQFtk8p77iCVg7Chzcce/9d2M6A=; b=RUhxWNFqs+Eye++/hRuNcSP3oNuun6fh+4My9q/E12KlO4F4b6TGMAZCrKFtBs648FdAY/rCn/EQ2iLDqNfHd2BipKtJDcErXLlI1uoCdAhYLtAOJ3FLlG9vKd6RnH6IN8Vx2wtEl2EI76vx0Ul6oDe8bapCaSUbfgNpFv7Rt2w= 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 175383769094869.12027618229524; Tue, 29 Jul 2025 18:08:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvIO-00066q-S5; Tue, 29 Jul 2025 21:07:53 -0400 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 1ugvCS-00033M-Qi for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:44 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCQ-0004iV-Q2 for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:44 -0400 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-7494999de5cso4359896b3a.3 for ; Tue, 29 Jul 2025 18:01:42 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837301; x=1754442101; 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=4aIWN5OnX9/GMC6APQFtk8p77iCVg7Chzcce/9d2M6A=; b=SvkLI1gmqZyyofKjkPZ9SOw8QmGLRrdQofHeYO5WLgLIi4tyOCZTEIckSJ56E+W456 b1zQS4OkAJiL47OunYe6rOm52/FVg1UBoe0czOlwuctY05VAl0SB34m/68H/nYGxiXDm utQ3ulEecRQURgYNyyYU18xkk9SMYPWTPQEr+Lal+5FQYbqVTWLtSd+3vw6yh2iURbko IP5p3pbaxi60uh0L0DRR1cfVQmKcAQIyRIy7MJB2GCByoU5qiOoRkW550S20W35emTLo z+NRwYdkhB6SqKP2I4H1maOdoaqZipBRI8gbZFImH9h4q5YF64/j6XzYGcD3Ul0/GMZH MpUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837301; x=1754442101; 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=4aIWN5OnX9/GMC6APQFtk8p77iCVg7Chzcce/9d2M6A=; b=JAVFl8ke41AA+G/s4wdqKvvZ3r42L20zMIXwWUsxc/c43qFkUljWevSXst11ht/+P3 PqegzxF9HGnEpvo6MFml0jBcfiK87ac+3bvS1VfyKsD/t86JOS4RF9gvm/1OY2fY1SSV JAQvPEJQzg33tfn7yOvh/CnXWkczB6M4T9o4T73VDk4iu27t+8nGBfPJQbzjzWWQxgZl HEh2b7sjvWJCTr0jDxB/nUma7IDRYrUBeDEW5JldGQmXtM8oz+ysmeGbMjYLQneCWJs7 P8tfZ056OWw5LegZZB/KwbC4s8dHylFX1e8vrfC+w871EQeI3vu3D3yTHuxcuqKMsjsP Stbw== X-Gm-Message-State: AOJu0YzUSZ6EcPyAirvszwMX8LJggAQ4Nr0d92oz83qC+ZpCqyG/CrhO 40PrRapa0U84Znt7y8NreB1wXxlAxMTWvCuGNfZQFEV8v1IcIy12xL80d/bjfQ== X-Gm-Gg: ASbGncvog/h6o+JzI/diQIskyK4/aDhrnehdvS+XhJSPcYkUZJv4HWjdwYr+qg3K/N4 5TbGsyNfagVMD30m5reBRL8lcDzpKjDfFR3ptqyLmqaC8hhS4YCRlxKb9m7MVV2vWqhjE6N8Fzj X3ypiqg/wUQ9iFIbNDxzk6o8PISVbKpRJOAMgw2h7C5vuu0Od8pmdmnWzmRgmazkHC2hvzv3XV7 8U9G9LNwRWWVjRrjFfsBmubYm2RIvqem58keAu8anFTp7+Y6aQPVkMfjuxqfJ5AXVAWiU9l8ZVN wKN73t7aDnp+rDbkjzLjkf9GrXklzfepL0PK1XvRq5p/nzrUA0+mD93Ipxt9n7kbNI3tlQOoRLx Hu8m6lt/UfMBLKZf5GDF7V6B6MiWeCPHKu9ox9tRstM8CVc7HTw4365RgAKhbgvTTs+ME7t7y6P LZfQPaIJLkyZjqYv6ODT8B4BBjPyI= X-Google-Smtp-Source: AGHT+IGO5+dWwvxKlGWZjHjzWJbplJrycQOQWKLE673qmnxy3f79EGF0fqMSgITxrplJXNK3GaVR7Q== X-Received: by 2002:a05:6a20:3d06:b0:22b:8f7f:5cb2 with SMTP id adf61e73a8af0-23dc0cf7867mr2163901637.8.1753837299835; Tue, 29 Jul 2025 18:01:39 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Sunil V L , "Michael S. Tsirkin" , Daniel Henrique Barboza , Nutty Liu , Alistair Francis Subject: [PULL 03/11] hw/riscv/virt-acpi-build.c: Update FADT and MADT versions Date: Wed, 30 Jul 2025 11:01:14 +1000 Message-ID: <20250730010122.4193496-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::435; envelope-from=alistair23@gmail.com; helo=mail-pf1-x435.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: 1753837691994116600 Content-Type: text/plain; charset="utf-8" From: Sunil V L RISC-V support is added only in ACPI 6.6. According to the ACPI 6.6 specification, the minor version of the Fixed ACPI Description Table (FADT) should be 6, and the Multiple APIC Description Table (MADT) should use revision 7. So, update the RISC-V FADT and MADT to reflect correct versions. Update the code comments to reflect ACPI 6.6 version details. Signed-off-by: Sunil V L Acked-by: Michael S. Tsirkin Reviewed-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Message-ID: <20250724110350.452828-3-sunilvl@ventanamicro.com> Signed-off-by: Alistair Francis --- hw/riscv/virt-acpi-build.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c index ee1416d264..f1406cb683 100644 --- a/hw/riscv/virt-acpi-build.c +++ b/hw/riscv/virt-acpi-build.c @@ -270,11 +270,8 @@ spcr_setup(GArray *table_data, BIOSLinker *linker, RIS= CVVirtState *s) #define RHCT_NODE_ARRAY_OFFSET 56 =20 /* - * ACPI spec, Revision 6.5+ - * 5.2.36 RISC-V Hart Capabilities Table (RHCT) - * REF: https://github.com/riscv-non-isa/riscv-acpi/issues/16 - * https://drive.google.com/file/d/1nP3nFiH4jkPMp6COOxP6123DCZKR-tia/= view - * https://drive.google.com/file/d/1sKbOa8m1UZw1JkquZYe3F1zQBN1xXsaf/= view + * ACPI spec, Revision 6.6 + * 5.2.37 RISC-V Hart Capabilities Table (RHCT) */ static void build_rhct(GArray *table_data, BIOSLinker *linker, @@ -421,7 +418,10 @@ static void build_rhct(GArray *table_data, acpi_table_end(linker, &table); } =20 -/* FADT */ +/* + * ACPI spec, Revision 6.6 + * 5.2.9 Fixed ACPI Description Table (MADT) + */ static void build_fadt_rev6(GArray *table_data, BIOSLinker *linker, RISCVVirtState *s, @@ -429,7 +429,7 @@ static void build_fadt_rev6(GArray *table_data, { AcpiFadtData fadt =3D { .rev =3D 6, - .minor_ver =3D 5, + .minor_ver =3D 6, .flags =3D 1 << ACPI_FADT_F_HW_REDUCED_ACPI, .xdsdt_tbl_offset =3D &dsdt_tbl_offset, }; @@ -508,11 +508,8 @@ static void build_dsdt(GArray *table_data, } =20 /* - * ACPI spec, Revision 6.5+ + * ACPI spec, Revision 6.6 * 5.2.12 Multiple APIC Description Table (MADT) - * REF: https://github.com/riscv-non-isa/riscv-acpi/issues/15 - * https://drive.google.com/file/d/1R6k4MshhN3WTT-hwqAquu5nX6xSEqK2l/= view - * https://drive.google.com/file/d/1oMGPyOD58JaPgMl1pKasT-VKsIKia7zR/= view */ static void build_madt(GArray *table_data, BIOSLinker *linker, @@ -537,7 +534,7 @@ static void build_madt(GArray *table_data, =20 hart_index_bits =3D imsic_num_bits(imsic_max_hart_per_socket); =20 - AcpiTable table =3D { .sig =3D "APIC", .rev =3D 6, .oem_id =3D s->oem_= id, + AcpiTable table =3D { .sig =3D "APIC", .rev =3D 7, .oem_id =3D s->oem_= id, .oem_table_id =3D s->oem_table_id }; =20 acpi_table_begin(&table, table_data); @@ -812,10 +809,8 @@ static void build_rimt(GArray *table_data, BIOSLinker = *linker, } =20 /* - * ACPI spec, Revision 6.5+ + * ACPI spec, Revision 6.6 * 5.2.16 System Resource Affinity Table (SRAT) - * REF: https://github.com/riscv-non-isa/riscv-acpi/issues/25 - * https://drive.google.com/file/d/1YTdDx2IPm5IeZjAW932EYU-tUtgS08tX/= view */ static void build_srat(GArray *table_data, BIOSLinker *linker, RISCVVirtState *vms) --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837431; cv=none; d=zohomail.com; s=zohoarc; b=N1Kjma3Ljp8bU2ywEneneEZFH8XWubB9P7ZNf9El1JKDDBC35tLwZCuHVsBSzHivUKWJdarvyEFiSO0MxO7YvQd76+K1As3gEjhF9IQiN0csndBEpTIogvdZq8RHWTRDPPx1sT0080EBG7BpSI0c1aQYVPZPwpFFI5jUZKkP8Io= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837431; 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=ifEoAXRng5a+xRiHUCEEy4t4IHwKmHWTZK+mMwPSJPw=; b=KXpMfgzmlfd1S4lWXgkI+4nUkxTMMus5O7zn9w9gSu+soLPBDUPuSmWErGZCv/by2nMnzT3z6YLFhCd7nE6dfnfCXEWCVXa+zta3Hyrh8l1tPCG4jUcR141o90wByfzRr0v/CiUTDX6DNSD/vmQ793L8hV2GGmrljn2DwL+O66I= 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 1753837431752351.3467906471624; Tue, 29 Jul 2025 18:03:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvDz-0005OR-AY; Tue, 29 Jul 2025 21:03:19 -0400 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 1ugvCV-0003AO-Vz for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:48 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCT-0004is-VR for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:47 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-7494999de5cso4359933b3a.3 for ; Tue, 29 Jul 2025 18:01:45 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837304; x=1754442104; 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=ifEoAXRng5a+xRiHUCEEy4t4IHwKmHWTZK+mMwPSJPw=; b=YfGPu5OAh8edeohXSCV2jIBNuIoYg6ztP6E/7GLPqmPpNeZgePaMUBhPzzNoMHRut8 OtbrLA7v5lljTByelYU/mn4LcNp1dfrdZeZueb7lc4CuLEgbFa7CYLi7FwQ/JGTKY0Q8 piGZwFR6JkVqDqwUNeGoKGqEe4AY0R/1+MGnj/26OoPgeF8Jm+JePffhL9WR9+PZNt2p rn0Wq9Pc8S3JtKEAfFN4Nr/QBWFYtPPr0eWx7O5PyoJfE55EOgMWqrUyL6cZW/jyjSYE 45T3x1sOr+PG8AYirUAd5k9RlTtI4V/EqaZnNvI6uFqZeeB+g152v4b6wZY4DWYeYxgf nVcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837304; x=1754442104; 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=ifEoAXRng5a+xRiHUCEEy4t4IHwKmHWTZK+mMwPSJPw=; b=BpqkgrGEKxJxcz5rvuuIpt2bOH8K9Sggs3ck1O6cStzYKruur6KCPmXwrsIkxiKpRp iIegXUEXZ1sb/GL644ID9nSm4DZMjhLzA4l3oM1jQKS9YYP/tKoW5P7bS6YnqtRVAfU3 f3L9mWrqMTZmx6gD6IlRyKNhUdawZfQK2GxnD6Qta5bFoqoVCcO3tFpdXLIG6ThYVfTA aMCQZXQJ0ynhsYY+bQ8bQHlcVBJvXdIl0X/Hn5aPLzO4jzbdRdnFKIUxveMzI7DLTZa4 XyKd7WXb9aOEtJly+tdU7jVAZa3hg+qtytVFyNYjqJ8NkjeigDpI3/oqutC1nzv4rHrA ZdZw== X-Gm-Message-State: AOJu0YyKz1QKq0ZSUQUUWs/6pqOYiRg4KfmuXpovfSYi9sNRX6UiLqi4 OnKvTJCTz6ievK+SvOAR9lGnMUe+ynO2zPPv2AVCjEqbzF8wTuXhCntd5Xzq3A== X-Gm-Gg: ASbGncujJwTLMsC+MqxJKldhzuovUidQ8bIbtmDHShatzSapF9f7tnCp1ms1bDkTaAY YRnIQ70yggBYngq5EIHXbQAMEFX6qoupjWJIYQbQXEnmgw42SVteHUxrCy9TOa6D2ehy8+vN1OR dCaYFS2nxSokyVLEzDkrrXWv9YFwACvHegy/YgF1QEaZIE0LeW9B1AyBlo/hbL9wB0P35beD0E6 PypdOXkDTWA/W2/VioQnGx0Mqh4GUW7aSxMLzGEkjB7r1h6mhQHBkyeIXH43vq/8ktKQMADhC40 xzVuMpjth9+NVKxiq0YUcyXCOfuZYm11mF139juOfQlNRkKmlvGg0E+X7P4XMjdJt62McIExza/ iE3y+Oy1ihgGC5rn6OR70/pYnpeLAaTWSA7FftCquLiU8wfIOa+vxBZIAalNfbcSCzXTV97nj8y U66Ves+TC7TMvnSg/DkmhFcRhcD34= X-Google-Smtp-Source: AGHT+IFqpEwXvArcCmWQqfDv3uLCvp39+9Zo1F+yEWcjKR8TAMVeXRXjSOEYA2qU6kF8IGiZHmLw6Q== X-Received: by 2002:a05:6a21:339d:b0:218:96ad:720d with SMTP id adf61e73a8af0-23dc0cf784dmr1748861637.1.1753837303601; Tue, 29 Jul 2025 18:01:43 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Sunil V L , "Michael S. Tsirkin" , Daniel Henrique Barboza , Nutty Liu , Alistair Francis Subject: [PULL 04/11] tests/data/acpi/riscv64: Update expected FADT and MADT Date: Wed, 30 Jul 2025 11:01:15 +1000 Message-ID: <20250730010122.4193496-5-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::42f; envelope-from=alistair23@gmail.com; helo=mail-pf1-x42f.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: 1753837433369116600 Content-Type: text/plain; charset="utf-8" From: Sunil V L Update the expected tables for the version change. /* * * ACPI Data Table [FACP] * * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (i= n hex) */ [000h 0000 004h] Signature : "FACP" [Fixed ACPI Descr= iption Table (FADT)] [004h 0004 004h] Table Length : 00000114 [008h 0008 001h] Revision : 06 -[009h 0009 001h] Checksum : 13 +[009h 0009 001h] Checksum : 12 [00Ah 0010 006h] Oem ID : "BOCHS " [010h 0016 008h] Oem Table ID : "BXPC " [018h 0024 004h] Oem Revision : 00000001 [01Ch 0028 004h] Asl Compiler ID : "BXPC" [020h 0032 004h] Asl Compiler Revision : 00000001 [024h 0036 004h] FACS Address : 00000000 [028h 0040 004h] DSDT Address : 00000000 [02Ch 0044 001h] Model : 00 [02Dh 0045 001h] PM Profile : 00 [Unspecified] [02Eh 0046 002h] SCI Interrupt : 0000 [030h 0048 004h] SMI Command Port : 00000000 [034h 0052 001h] ACPI Enable Value : 00 [035h 0053 001h] ACPI Disable Value : 00 [036h 0054 001h] S4BIOS Command : 00 [037h 0055 001h] P-State Control : 00 @@ -86,33 +86,33 @@ Use APIC Physical Destination Mode (V4) : 0 Hardware Reduced (V5) : 1 Low Power S0 Idle (V5) : 0 [074h 0116 00Ch] Reset Register : [Generic Address Structure] [074h 0116 001h] Space ID : 00 [SystemMemory] [075h 0117 001h] Bit Width : 00 [076h 0118 001h] Bit Offset : 00 [077h 0119 001h] Encoded Access Width : 00 [Undefined/Legacy] [078h 0120 008h] Address : 0000000000000000 [080h 0128 001h] Value to cause reset : 00 [081h 0129 002h] ARM Flags (decoded below) : 0000 PSCI Compliant : 0 Must use HVC for PSCI : 0 -[083h 0131 001h] FADT Minor Revision : 05 +[083h 0131 001h] FADT Minor Revision : 06 [084h 0132 008h] FACS Address : 0000000000000000 [...] /* * * ACPI Data Table [APIC] * * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (i= n hex) */ [000h 0000 004h] Signature : "APIC" [Multiple APIC De= scription Table (MADT)] [004h 0004 004h] Table Length : 00000074 -[008h 0008 001h] Revision : 06 -[009h 0009 001h] Checksum : B4 +[008h 0008 001h] Revision : 07 +[009h 0009 001h] Checksum : B3 [00Ah 0010 006h] Oem ID : "BOCHS " [010h 0016 008h] Oem Table ID : "BXPC " [...] Signed-off-by: Sunil V L Acked-by: Michael S. Tsirkin Reviewed-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Message-ID: <20250724110350.452828-4-sunilvl@ventanamicro.com> Signed-off-by: Alistair Francis --- tests/qtest/bios-tables-test-allowed-diff.h | 2 -- tests/data/acpi/riscv64/virt/APIC | Bin 116 -> 116 bytes tests/data/acpi/riscv64/virt/FACP | Bin 276 -> 276 bytes 3 files changed, 2 deletions(-) diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios= -tables-test-allowed-diff.h index 0c3f7a6cac..dfb8523c8b 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,3 +1 @@ /* List of comma-separated changed AML files to ignore */ -"tests/data/acpi/riscv64/virt/APIC", -"tests/data/acpi/riscv64/virt/FACP", diff --git a/tests/data/acpi/riscv64/virt/APIC b/tests/data/acpi/riscv64/vi= rt/APIC index 66a25dfd2d..3fb5b75359 100644 Binary files a/tests/data/acpi/riscv64/virt/APIC and b/tests/data/acpi/risc= v64/virt/APIC differ diff --git a/tests/data/acpi/riscv64/virt/FACP b/tests/data/acpi/riscv64/vi= rt/FACP index a5276b65ea..78e1b14b1d 100644 Binary files a/tests/data/acpi/riscv64/virt/FACP and b/tests/data/acpi/risc= v64/virt/FACP differ --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837574; cv=none; d=zohomail.com; s=zohoarc; b=ULk6SJ2rMNOaezrEn1yoYl1IEBKtud+I+H/AxCDVS22zQBn49GVyhXemjHOa9Gq7z7r8dZDGQD6imzTw/VwZEYb+jwyTAVikY1/D4ur2RVc85vtDYI2J6NBPC/Wu6aKVztQ409wUwMEYEt2qZkfghlb+i5Ea+TQN2x8N4BS90jc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837574; 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=43YL6LeHtMqajzX1/nmmW+RggwtVTRuMuUjwY036hyw=; b=KaeWgTKS2JBBWco8rupCqCOs0ouaxCUU89jyqXAdEIYGzII08xVLPEdhi8kMptHwj82tx84bEZcFXCMro4CfJXHbjT8Kx+KyGGv9xsMaL58QSIcpNILAlBvw3VGmZ6SGXRKrDS7UzRkj/VF2uENpHO6Fxpvj9tRuXVfQqdRM8H0= 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 1753837574185171.23532519574394; Tue, 29 Jul 2025 18:06:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvFY-0000VN-9C; Tue, 29 Jul 2025 21:04:56 -0400 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 1ugvCY-0003Fq-Jj for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:50 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCW-0004jm-IX for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:50 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-b3bdab4bf19so323122a12.2 for ; Tue, 29 Jul 2025 18:01:48 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837307; x=1754442107; 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=43YL6LeHtMqajzX1/nmmW+RggwtVTRuMuUjwY036hyw=; b=L5aD0G/9r9PBakSsOxWpBdHL8AxuGsJ9zEFW8HMZedSdUzrb0dVf9aIJWC7HeKnohA MDc3J1ylRueTBWYZAlt8LGQ02h0nEfDc5vDKk5n6Kx8wDMazSCErq6SzkVazlo8HDSIW FNHZIcE+TZba1XRJq4uNjmNEqaW5NDz5411S0o7ICdaNVNb6SQ3DZskt8huNq+bN+4jC O+zqB3/eBIgeGjfW4rbV+EXzTKDTKMLPexUDks4W4sidP/+4lqrAQ0HqBRHlfccXvsl0 HgKKVgH0994KofWaQL/wLTpYNRw4XxADQGronSJTCFGj0aFAOuh7420GMSFsfkCNU1AO ihtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837307; x=1754442107; 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=43YL6LeHtMqajzX1/nmmW+RggwtVTRuMuUjwY036hyw=; b=lnN7eK+8ikWQoaU311xJhIHS4uqovdRUAMvEMFPuBd1E/QV5qlHzJKKVkHVZZdO4Po EQgkjoPgsQ/5tFRok04OZILmL0YvugggAhAGiFTJiKfSkRNXq8LvlqccLK+gxUD7QDrL 3wmm5+cYKETiuAMzrtEJ3LlnuQ43/YUDdJzqnk6fHb0FdJj8fsDHERz5EICulg6MLptb gLRE907EXy5GIGzWtFUw/CULEc521GrrikCs1dBNqbKQz84aUrSVM5M4uik/OCRROAyK /FPnzIPlzkzGKcTqI42kzesdtOps4eFHtqr0EfeM00bWVi4SGqTtE8YTh5zlwtxX3iLc bqsQ== X-Gm-Message-State: AOJu0Ywn1ghPlEkxt0YbxasJQDVGA/GIpXtn0CSl1n9NXqCpFYCKeOEV CBrZq5crJfxo3E6de7I6v69UOeSForpHWFhvT1+HzTDFS/F41NbU+O7l+anShw== X-Gm-Gg: ASbGnctI8ngPRrI4qmtZHQqYo3h2PdRIeCtvWEipuFiHCr+FcheU4r1t3oV2ZfhjSZt DIbIeldB0+mRrG3eNqFapWwGNdcNMK36xANa8fMWKE985QCox52JNNy5h+/6DtM2V2OJzdw/qUW Q6deagQk3UsEujYr2zF6J0K8SlRFTaJXHdpgu06SWm3vEPMgJHEb6hENmz4HCbwSHSk96dAwcSD jMNBCL7C7h86HOIZ+rnyUa2OrFpzF5pY00XWPakUn8WUXsYvr89UdO14FFXmBz8YSRxxQEi60VL CZu6ljPRi/T6ACjWzpkqx3OgvwZDKHAgP9m1oxuO3uEnBxZyp7+nE8QlB4cie40OJHKQMJEo4ba Voq+XBxLdykqNI8dNRWFmTsEN+9Z71Y5rRzGeD2x9S6+Styh2PauiopNpc+f50ZfUlYSrx/FKKw k/DjFUpBuTp6638bQkX7CRTEgy5Zg= X-Google-Smtp-Source: AGHT+IEI3I4Il2xuj62KHbRQG9fdomHh71xX5e4C21oq9svbfkQV2Ms7qbhtAy/GUyTL/cW9dgih1A== X-Received: by 2002:a17:90b:57c5:b0:31f:12d:ee4f with SMTP id 98e67ed59e1d1-31f5de6b9b2mr2015554a91.23.1753837306655; Tue, 29 Jul 2025 18:01:46 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Yang Jialong , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 05/11] intc/riscv_aplic: Fix target register read when source is inactive Date: Wed, 30 Jul 2025 11:01:16 +1000 Message-ID: <20250730010122.4193496-6-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::52f; envelope-from=alistair23@gmail.com; helo=mail-pg1-x52f.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: 1753837576491116600 Content-Type: text/plain; charset="utf-8" From: Yang Jialong The RISC-V Advanced interrupt Architecture: 4.5.16. Interrupt targets: If interrupt source i is inactive in this domain, register target[i] is read-only zero. Signed-off-by: Yang Jialong Reviewed-by: Daniel Henrique Barboza Message-ID: <20250728055114.252024-1-z_bajeer@yeah.net> Signed-off-by: Alistair Francis --- hw/intc/riscv_aplic.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index 4fa5f7597b..a1d9fa5085 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -628,7 +628,7 @@ static void riscv_aplic_request(void *opaque, int irq, = int level) =20 static uint64_t riscv_aplic_read(void *opaque, hwaddr addr, unsigned size) { - uint32_t irq, word, idc; + uint32_t irq, word, idc, sm; RISCVAPLICState *aplic =3D opaque; =20 /* Reads must be 4 byte words */ @@ -696,6 +696,10 @@ static uint64_t riscv_aplic_read(void *opaque, hwaddr = addr, unsigned size) } else if ((APLIC_TARGET_BASE <=3D addr) && (addr < (APLIC_TARGET_BASE + (aplic->num_irqs - 1) * 4))) { irq =3D ((addr - APLIC_TARGET_BASE) >> 2) + 1; + sm =3D aplic->sourcecfg[irq] & APLIC_SOURCECFG_SM_MASK; + if (sm =3D=3D APLIC_SOURCECFG_SM_INACTIVE) { + return 0; + } return aplic->target[irq]; } else if (!aplic->msimode && (APLIC_IDC_BASE <=3D addr) && (addr < (APLIC_IDC_BASE + aplic->num_harts * APLIC_IDC_SIZE)))= { --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837494; cv=none; d=zohomail.com; s=zohoarc; b=U7uMqpd9UBuZYvwSV+gaa8f4MCTJq3+QsqDGA1f9moaRwKAZ5RuWXtwI9f6FEVyR5peuJvW5yFtEsqqP7dekh3bV8GD+hBtIK6IC3KyyzbHVacphjaPUJpibNjDH6HM6ajLm6Cwtlpc00O8uyWq5aPawpOGuGedPuEY/rhNPAh8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837494; 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=lMd8J0/RUWfhwFpStoHOnaEZ6YL81TnlupHumGV85nQ=; b=X/p0I2URRDlIg1E7NRfpGTUAPFySwH7uWccJs51To+tFxsjRRzWeUzbyzGs+a/fZunsP3is2ICScgeG/iDPb5Wa707TlTdohUL9Zh4q5E2xI1mo82K5dxZi+38jfuXNXpL3DAoWLW7SXSN0+ObIOjLfUboXkZnRGQVNQi7op+Qo= 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 1753837494592734.6088428706292; Tue, 29 Jul 2025 18:04:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvE2-0005St-2z; Tue, 29 Jul 2025 21:03:22 -0400 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 1ugvCb-0003M2-MJ for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:54 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCZ-0004l6-Vu for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:53 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-31329098ae8so417736a91.1 for ; Tue, 29 Jul 2025 18:01:51 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837310; x=1754442110; 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=lMd8J0/RUWfhwFpStoHOnaEZ6YL81TnlupHumGV85nQ=; b=a3k2m/n4x1VG3HDio/pmlU6NKqTf2T9sZpNrLbnSK2gE91evaAHqQVAulhYz/n8sOG uv3t2kzjE++of5s+ihXtOQqOnaLF3uze6z0ShOaqTpS4C9N3p2Ewrmix+Y3NnffaddRP 33N71QHeJ4f7qjwdnTEgj4nMSpGe06omTPIlHUJXgiD0gMrxHSRDEYCYpHLUR5Wv51Zx cGw9pyfPOQaDX4nIZpV+44rE+K23RjmnsdVgFk3jSfg0oQy1TVJKUc+mrtyraXk030A4 GAFq2lOIN7W1/DRd3I9zDAMFlaGBC6YMeVWCOjRFpfp+PdGQH8uFN2ua5MYi8bf59Ip1 UFZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837310; x=1754442110; 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=lMd8J0/RUWfhwFpStoHOnaEZ6YL81TnlupHumGV85nQ=; b=BGx/jSVf6P2N4bx6/wLhyXR86e0o/uKspyiO6yBv+QlftAm3kJ73Dn8vOuD9B0ZIHn Vt6+eiV8Vbw8M31YcjpORa+2YSePuE/MFNGmp+t16jO3Sbqfm5tYDxl4RNLQfvdArHHh Ybid7yOlLPf1YY+eAFGBB9UBP/XojxhXBTD0wCVLJQaJ79wuv+C9ly0oA3ChMB91PSZd 9rZmvkiJXQxD1YQoX5TjNNMKtSwCCPi8iwMwWZHwSVm3qm1f7Q6QoKayNQsmyaRcSlY3 n/tHaqBYRvIqr+8KnjJ8j1rS0/vY0xzsO8ptXWVFtR0mCm0c1ZeJ4edw4qVfr+IHdO6W KQNQ== X-Gm-Message-State: AOJu0YwR6VQNBPxZARGUVa+jtphySUB4ANPtOmJDJ2rGqVauBVAPFgLc DFxR9feZraC/N9brwp4iqn/2SxK9sEGXFuujqr8qzSKlarzaEe50VkywNl12Qw== X-Gm-Gg: ASbGnct7E9tJfhzvdQZj4GzM6kIYLGMUNoPEryATx/5rF+7lLb7VHg/qT7k5untuHVD widWF3EfD8Mb8CRXSyWELTdlqnMlvtSaKzaIAiNowelBxVCG7JXp8DlT9PL/7QBCzb+SgyGfbZ9 ILi4Mg45lBuxBm3XL3o8HG/MWnWTlrovGfxgtNW0XVldxGbwR9uZznqwOsb5ZAN+cwtRI0sNnh8 ujb4WXK1jVF3b5wukHkJHLDmcgpWagSej3/xuctvkDKhe3VkONot3ZminiFql+/o5fk69MSon/R FQehU8M2dQ45anIi5Ga8zDByqJ9NzPXig9llMIku77GRzIReRMj7VFq8jhdvKmUrLxKfGrnQtWT KeFOZiGVQCWAjT38jweDA7l69Z1CmGJF3npNaerAeqkb2lpLkqEXlRvDWrlk0KhEKHZJhiQoOi8 35a0s4/VYsOPJmLCVL8YRbEA8eYHQmATykx2h+SQ== X-Google-Smtp-Source: AGHT+IE8u5vWLhLuW7MX+gfr02O/JuxKnUCPM1DfJTHjW3o05TOlZPNTXrJLBr5Y4sSuOgGlJpMUaw== X-Received: by 2002:a17:90b:4cc1:b0:30e:6a9d:d78b with SMTP id 98e67ed59e1d1-31f5dd1f551mr1857328a91.12.1753837309760; Tue, 29 Jul 2025 18:01:49 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Richard Henderson , Alistair Francis Subject: [PULL 06/11] linux-user/strace.list: add riscv_hwprobe entry Date: Wed, 30 Jul 2025 11:01:17 +1000 Message-ID: <20250730010122.4193496-7-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::102c; envelope-from=alistair23@gmail.com; helo=mail-pj1-x102c.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: 1753837495719116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza We're missing a strace entry for riscv_hwprobe, and using -strace will report it as "Unknown syscall 258". After this patch we'll have: $ ./build/qemu-riscv64 -strace test_mutex_riscv 110182 riscv_hwprobe(0x7f207efdc700,1,0,0,0,0) =3D 0 110182 brk(NULL) =3D 0x0000000000082000 (...) Signed-off-by: Daniel Henrique Barboza Reviewed-by: Richard Henderson Message-ID: <20250728170633.113384-1-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- linux-user/strace.list | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linux-user/strace.list b/linux-user/strace.list index fdf94ef32a..ab818352a9 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1716,3 +1716,6 @@ { TARGET_NR_clock_gettime64, "clock_gettime64" , NULL, print_clock_gettime= 64, print_syscall_ret_clock_gettime64 }, #endif +#ifdef TARGET_NR_riscv_hwprobe +{ TARGET_NR_riscv_hwprobe, "riscv_hwprobe" , "%s(%p,%d,%d,%d,%d,%d)", NULL= , NULL }, +#endif --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837569; cv=none; d=zohomail.com; s=zohoarc; b=VYG5xF5qYAPc0PHoOvb26W4RbMJcMR4HmHdLebm9MusbRjXaCwdOqHkkzPDGnTo9W/m7Zf7N9dYe7BEcbgjBIl8rqc643uxbT6J0yy8S0vG6yW9/05ubdwfQIiwfwhRBp8DzSA+abAoDxpMI5rF2VgaCrdPh6OWEfpAJSoI5h5o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837569; 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=vi2QCM5GKA+/mOomKJeUwGQ7BzgZo65UL+LjzBMT1yc=; b=GVmtso52vx2+MwnmUR7gnvdtkIsKcUgNrqqdtPIZDJLOe6043jJpM3v7Ho05aF6vv/tcxWilnBLqxzzNlviN4TVK6YyKOW9Z9FQ9CZ9VGvk9EIZBzmH9BWPhrLeT0nebM7ugGrUub6cwD2KRpupVUQ7Ay+1fm2qaZKz45gpYrx8= 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 1753837569611399.28896587495706; Tue, 29 Jul 2025 18:06:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvGP-0001H0-AT; Tue, 29 Jul 2025 21:05:50 -0400 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 1ugvCf-0003Tx-89 for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:57 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCd-0004mE-8x for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:01:56 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b26f7d2c1f1so7627863a12.0 for ; Tue, 29 Jul 2025 18:01:54 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837313; x=1754442113; 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=vi2QCM5GKA+/mOomKJeUwGQ7BzgZo65UL+LjzBMT1yc=; b=ac1X/LhVyVDRz1fIdIvTBvvXKzDWWDU/Vv3BJhP/GOCLUWPN86F2LFgfUciURZFn5i sEK29CmXjSruiEsBJDxGBrxFVOYCLnzRIiS5KSvq/iUbiBCY5MkSop14I5gwis/aaSqX 5QzS+yv2W7n7pncPJ0mNd+XleImBNeoGjXXBp/P1jMEf4jiWQ652Al56lFEsfWW1a0xN BodGUVzVHqhrEbWjVwGnHVsItoG4eGhEUZCLduWbX/FknK5Apa5+gn3ycC58ek3Ro9FP jy550D8nL/v7aTZjhJwhq2CyvrYSAGvc+K/wy6ScKhDHrsIyR0hnNvL7KzW04Xx8ZNLI 4KnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837313; x=1754442113; 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=vi2QCM5GKA+/mOomKJeUwGQ7BzgZo65UL+LjzBMT1yc=; b=Cd7kQzyjHy6WvqNVAD4pP752JIycNr8S2j+rramzewc4MvxZsWTP9go6bTscUJH4p7 ZEa+raRyKVsAZFXDM9zRQH9D6T0QE7FSPHfMGuQp7oUdWDrK8vHlXTq+SHcDiMMerFvK dZune8JQ49Pzj6pTbF6mylgrwwDQm/9s/e12qEZUIjDdDjsgwtmU4P9Oy/McPK0E3loQ sjKlIVST6CFUiV/pawZHiFNAxI47qYuAPhORQ6swV96mBBs8v5zotfLSuIqTtvI0JZ1B o2yne3ZQCpPjSSYvMrp43jjah6qH9SG7n2iLS7g7lQHKrRBIl1xV6WNHsKz4LZqHYBdg HQLA== X-Gm-Message-State: AOJu0YzUXffemh3kcytiBntT+Cr9iE0ONc7xeaLwt8DA9d84GxzzpC+k gKPaNlNuvHhCww2h4UPhWzxxQ7p2FLc4PjzhNkNGj0GLsBSMOn1ZoaY96WVB6A== X-Gm-Gg: ASbGncs6DM3/EqYoV2FTnX3EzXzlBIDy6WcMwbtyjaYtwf0mHxDwmz/Vb8A8XLKPufZ ktP+pLtm94Ubt9OGz73W6W7dKeBQgyltzT8b8RjPabeYFTN+oXDxMgSr4diGRzhdG7YJoLSCJdu DtBW17M+qUqg7dvXvj1bmODdWmANM94+LGZ7GRnntMYQjmNQIdEszGr9tyT26on4jdqpNto8GVZ yXUNzGKx5FOqZmjXcOPav/vAfKLIXRwkN4XsCAKE1EAU9Ct2HqvKHnfRhp7M6UsJ9uvIpCrYC28 m3u+CVBy3xqlQ9Sb1AR1eHXE3W07VICUg4NbBuSE8ev6t2Fn+wWiz6dSnBiTJGMDBIHuCsqBteC MMFKlpncQ8KU7AiGa2aVRlAyK5rS+flxjcbo4wArGzFmobKkcHVQBIyIo0YDinFNJDOFfU53Aqy rOWrQpmh+BmGDklTyR582ZzApePvY= X-Google-Smtp-Source: AGHT+IFaJB2Reh45WXnVC4qFHvkTOaqMJdh/8AuXSOnCdkvn9JYcxosZzgmjxHkQEVsB33jNkjx4VA== X-Received: by 2002:a17:90b:4b09:b0:31f:32cd:97f0 with SMTP id 98e67ed59e1d1-31f5ddb750dmr1886106a91.1.1753837313378; Tue, 29 Jul 2025 18:01:53 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Richard Henderson , Nutty Liu , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 07/11] target/riscv: do not call GETPC() in check_ret_from_m_mode() Date: Wed, 30 Jul 2025 11:01:18 +1000 Message-ID: <20250730010122.4193496-8-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::534; envelope-from=alistair23@gmail.com; helo=mail-pg1-x534.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: 1753837570685116600 From: Daniel Henrique Barboza GETPC() should always be called from the top level helper, e.g. the first helper that is called by the translation code. We stopped doing that in commit 3157a553ec, and then we introduced problems when unwinding the exceptions being thrown by helper_mret(), as reported by [1]. Call GETPC() at the top level helper and pass the value along. [1] https://gitlab.com/qemu-project/qemu/-/issues/3020 Suggested-by: Richard Henderson Fixes: 3157a553ec ("target/riscv: Add Smrnmi mnret instruction") Closes: https://gitlab.com/qemu-project/qemu/-/issues/3020 Signed-off-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-ID: <20250714133739.1248296-1-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/op_helper.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 15460bf84b..110292e84d 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -355,21 +355,22 @@ target_ulong helper_sret(CPURISCVState *env) } =20 static void check_ret_from_m_mode(CPURISCVState *env, target_ulong retpc, - target_ulong prev_priv) + target_ulong prev_priv, + uintptr_t ra) { if (!(env->priv >=3D PRV_M)) { - riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, GETPC()); + riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, ra); } =20 if (!riscv_cpu_allow_16bit_insn(&env_archcpu(env)->cfg, env->priv_ver, env->misa_ext) && (retpc & 0x3)) { - riscv_raise_exception(env, RISCV_EXCP_INST_ADDR_MIS, GETPC()); + riscv_raise_exception(env, RISCV_EXCP_INST_ADDR_MIS, ra); } =20 if (riscv_cpu_cfg(env)->pmp && !pmp_get_num_rules(env) && (prev_priv !=3D PRV_M)) { - riscv_raise_exception(env, RISCV_EXCP_INST_ACCESS_FAULT, GETPC()); + riscv_raise_exception(env, RISCV_EXCP_INST_ACCESS_FAULT, ra); } } static target_ulong ssdbltrp_mxret(CPURISCVState *env, target_ulong mstatu= s, @@ -394,8 +395,9 @@ target_ulong helper_mret(CPURISCVState *env) target_ulong retpc =3D env->mepc & get_xepc_mask(env); uint64_t mstatus =3D env->mstatus; target_ulong prev_priv =3D get_field(mstatus, MSTATUS_MPP); + uintptr_t ra =3D GETPC(); =20 - check_ret_from_m_mode(env, retpc, prev_priv); + check_ret_from_m_mode(env, retpc, prev_priv, ra); =20 target_ulong prev_virt =3D get_field(env->mstatus, MSTATUS_MPV) && (prev_priv !=3D PRV_M); @@ -443,8 +445,9 @@ target_ulong helper_mnret(CPURISCVState *env) target_ulong retpc =3D env->mnepc; target_ulong prev_priv =3D get_field(env->mnstatus, MNSTATUS_MNPP); target_ulong prev_virt; + uintptr_t ra =3D GETPC(); =20 - check_ret_from_m_mode(env, retpc, prev_priv); + check_ret_from_m_mode(env, retpc, prev_priv, ra); =20 prev_virt =3D get_field(env->mnstatus, MNSTATUS_MNPV) && (prev_priv !=3D PRV_M); --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837441; cv=none; d=zohomail.com; s=zohoarc; b=lnbj+G76lasjwx9BD8GvYOB5Ax/sPXJNvWxNqAYpXKbXbADMfVMXEj+yNs0bOUDthpKMgS/es7/bp7aOgr5gNHUuJY6WX/M5iclVyEwip0T+KlacCQI5jFVr5K2okRleqxFVModXMBDhpalCzWImu4d2puMQGzGxXtl69sPo2Mc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837441; 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=Lz0RHxK9toXqNqhJeVQp50S4aerdj/bOx5h0bx/M2dM=; b=IUSopgByGd7YBMNCug7tnnsJZeTF3eff1/EdIuvyTM41N74c1zlLpJoWUZJkXCRMkE6f9OgioAjDV8z2POP/Uqf51SRyuyRSldbxDfcIqd43MhawOUrcaNi6qn71Wfn9mSlLiydm2LUyvlvCR1i+iEq+TOmy5oaAAKy3iE3sCmM= 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 1753837441682577.2174686506103; Tue, 29 Jul 2025 18:04:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvE4-0005Vq-8n; Tue, 29 Jul 2025 21:03:24 -0400 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 1ugvCj-0003c2-Ap for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:01 -0400 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCg-0004nR-MB for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:00 -0400 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-b3be5c0eb99so5191102a12.1 for ; Tue, 29 Jul 2025 18:01:58 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837317; x=1754442117; 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=Lz0RHxK9toXqNqhJeVQp50S4aerdj/bOx5h0bx/M2dM=; b=LSGI3c8vmtH+x3kF7BJumxIhfMsXyc+3FTBbNtPEpmiOPivuoL8qtFitVE3vGYF3nN p/hgxMnHHeaQrHFOzyqbar7pVFywk2wjRE9u6fFIzlRXsPJ0/EB/Cf69S9o1P2X/0UjT FpwFkgU+9wY8UU5oe9NgfetU+UnxLOh+NIJvbhVEOt0OiLp7YZ/Kg1wA/Hi0n2JMlOhx S4CHypd1fwn18aiObT2501jg1g3NOfCsST37K8yUtTG64ulhGr/9LZprnOsAWQTTnxOG YOmr+WeItX6Zyd6UngEuufStKc/qnyQeSw0XGUCwSynkJwMTEI1B9fZZUIJIz8GDHSoa 9Mgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837317; x=1754442117; 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=Lz0RHxK9toXqNqhJeVQp50S4aerdj/bOx5h0bx/M2dM=; b=nlb7gj8/Dgo7W695Z575ywxPkrnzYzB1wpLqaEWU4TpFvqx3XWoNU32hFdZZpdKYQH MPI9e3lwHaaOPecYu+phE6v6pahoIqjsx4ea/KFGc/taliEG2VekeogWounEr+lCe8tv eUbi4hjaRx4/oACQW20h1QZ9aghdvClPCdEo+7x6NOHoQgvELnsjIwOKWPIsuR5b58uH xPCg4+oic68CgHqaSmsenmxfIWkom7dRaMdpNTgaXZ2hsHHJvinbKf81jYF2Ig4xDRe/ 929toGKjT4MdNr5lGWuHXrWrPhQp1OLsEBk8pvvBiuxSIIjTSgBoJ8w1im9yP8cNkMd8 BIDw== X-Gm-Message-State: AOJu0Yyi4vkBor19qBIsmqTDc4+GAvu/lcLRJOyaujUfdX4Qk070obUt Bu7GCRZZa0DXbzAzU0sspDTdOSSvNXoqQ+PQ5vhsMoXQcmqr4s03KaLlr6MKzQ== X-Gm-Gg: ASbGnct2/4ZfsafO6awTz4KbY+qFGtpxerxEIXWad7GdiB1LyJi7eRh272QQDROZL2f bk0KxszLDSixONZ9irXU4d/Ktf5kDUh10r7ilT4HU+Jx08aD7jCogM+oeg5zDpab757yZ9WA30A PbHMCV5OwaVpJDJCkOdRyzUIoLH8QQ4Hkjpg8ygYxIzJaWs4Xj2gbfjwoZsGWXnB12BJIn1Vs7X AVfJBeuzgwY3RNRdR7XtNCTedbJhAkp3ZpH56SMYPRVEdkV8FmKP4tBwRkuPtzJp9b2dbkgpRYC BrsUtxVvvKSpPKHwgj9AEOLxBDWTj+VrJjT+XJqiIKE23Y2hfbxWHTGS1xpN/t1gSoUinPC9h4l 4aLIWUnpmXT1owHtpERPqj+RNxLrlfYaKV7nKem630JZGs3Z1D95ZHjjCb+Eb4531Xs4IBm1YHa H/0uStOVnKjPyCgPJmF+Ysugv3ox0= X-Google-Smtp-Source: AGHT+IGkPur9OHjcG7KqCiPpIdeTlnpRU3sT5qU39IjBWGsSwBScWkl05uiPVoTpdbRZOH+IVcNs3Q== X-Received: by 2002:a17:90b:3d0a:b0:311:c596:5c6f with SMTP id 98e67ed59e1d1-31f5de2d577mr2322830a91.17.1753837316468; Tue, 29 Jul 2025 18:01:56 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Daniel Henrique Barboza , Eric Biggers , Alistair Francis Subject: [PULL 08/11] riscv: Revert "Generate strided vector loads/stores with tcg nodes." Date: Wed, 30 Jul 2025 11:01:19 +1000 Message-ID: <20250730010122.4193496-9-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::52f; envelope-from=alistair23@gmail.com; helo=mail-pg1-x52f.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: 1753837443378116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza This reverts commit 28c12c1f2f50d7f7f1ebfc587c4777ecd50aac5b. As reported in [1] this commit is breaking Linux vector code, and although a simpler reproducer was provided, the fix itself isn't trivial due to the amount and the nature of the changes. And we really do not want to keep Linux broken while we work on it. The revert will fix Linux and will give us time to do a proper fix. [1] https://mail.gnu.org/archive/html/qemu-devel/2025-07/msg02525.html Signed-off-by: Daniel Henrique Barboza Tested-by: Eric Biggers Message-ID: <20250710100525.372985-1-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/insn_trans/trans_rvv.c.inc | 323 ++++-------------------- 1 file changed, 50 insertions(+), 273 deletions(-) diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 610bf9ff30..71f98fb350 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -864,286 +864,32 @@ GEN_VEXT_TRANS(vlm_v, MO_8, vlm_v, ld_us_mask_op, ld= _us_mask_check) GEN_VEXT_TRANS(vsm_v, MO_8, vsm_v, st_us_mask_op, st_us_mask_check) =20 /* - * MAXSZ returns the maximum vector size can be operated in bytes, - * which is used in GVEC IR when vl_eq_vlmax flag is set to true - * to accelerate vector operation. - */ -static inline uint32_t MAXSZ(DisasContext *s) -{ - int max_sz =3D s->cfg_ptr->vlenb << 3; - return max_sz >> (3 - s->lmul); -} - -static inline uint32_t get_log2(uint32_t a) -{ - uint32_t i =3D 0; - for (; a > 0;) { - a >>=3D 1; - i++; - } - return i; -} - -typedef void gen_tl_ldst(TCGv, TCGv_ptr, tcg_target_long); - -/* - * Simulate the strided load/store main loop: - * - * for (i =3D env->vstart; i < env->vl; env->vstart =3D ++i) { - * k =3D 0; - * while (k < nf) { - * if (!vm && !vext_elem_mask(v0, i)) { - * vext_set_elems_1s(vd, vma, (i + k * max_elems) * esz, - * (i + k * max_elems + 1) * esz); - * k++; - * continue; - * } - * target_ulong addr =3D base + stride * i + (k << log2_esz); - * ldst(env, adjust_addr(env, addr), i + k * max_elems, vd, ra); - * k++; - * } - * } - */ -static void gen_ldst_stride_main_loop(DisasContext *s, TCGv dest, uint32_t= rs1, - uint32_t rs2, uint32_t vm, uint32_t = nf, - gen_tl_ldst *ld_fn, gen_tl_ldst *st_= fn, - bool is_load) -{ - TCGv addr =3D tcg_temp_new(); - TCGv base =3D get_gpr(s, rs1, EXT_NONE); - TCGv stride =3D get_gpr(s, rs2, EXT_NONE); - - TCGv i =3D tcg_temp_new(); - TCGv i_esz =3D tcg_temp_new(); - TCGv k =3D tcg_temp_new(); - TCGv k_esz =3D tcg_temp_new(); - TCGv k_max =3D tcg_temp_new(); - TCGv mask =3D tcg_temp_new(); - TCGv mask_offs =3D tcg_temp_new(); - TCGv mask_offs_64 =3D tcg_temp_new(); - TCGv mask_elem =3D tcg_temp_new(); - TCGv mask_offs_rem =3D tcg_temp_new(); - TCGv vreg =3D tcg_temp_new(); - TCGv dest_offs =3D tcg_temp_new(); - TCGv stride_offs =3D tcg_temp_new(); - - uint32_t max_elems =3D MAXSZ(s) >> s->sew; - - TCGLabel *start =3D gen_new_label(); - TCGLabel *end =3D gen_new_label(); - TCGLabel *start_k =3D gen_new_label(); - TCGLabel *inc_k =3D gen_new_label(); - TCGLabel *end_k =3D gen_new_label(); - - MemOp atomicity =3D MO_ATOM_NONE; - if (s->sew =3D=3D 0) { - atomicity =3D MO_ATOM_NONE; - } else { - atomicity =3D MO_ATOM_IFALIGN_PAIR; - } - - mark_vs_dirty(s); - - tcg_gen_addi_tl(mask, (TCGv)tcg_env, vreg_ofs(s, 0)); - - /* Start of outer loop. */ - tcg_gen_mov_tl(i, cpu_vstart); - gen_set_label(start); - tcg_gen_brcond_tl(TCG_COND_GE, i, cpu_vl, end); - tcg_gen_shli_tl(i_esz, i, s->sew); - /* Start of inner loop. */ - tcg_gen_movi_tl(k, 0); - gen_set_label(start_k); - tcg_gen_brcond_tl(TCG_COND_GE, k, tcg_constant_tl(nf), end_k); - /* - * If we are in mask agnostic regime and the operation is not unmasked= we - * set the inactive elements to 1. - */ - if (!vm && s->vma) { - TCGLabel *active_element =3D gen_new_label(); - /* (i + k * max_elems) * esz */ - tcg_gen_shli_tl(mask_offs, k, get_log2(max_elems << s->sew)); - tcg_gen_add_tl(mask_offs, mask_offs, i_esz); - - /* - * Check whether the i bit of the mask is 0 or 1. - * - * static inline int vext_elem_mask(void *v0, int index) - * { - * int idx =3D index / 64; - * int pos =3D index % 64; - * return (((uint64_t *)v0)[idx] >> pos) & 1; - * } - */ - tcg_gen_shri_tl(mask_offs_64, mask_offs, 3); - tcg_gen_add_tl(mask_offs_64, mask_offs_64, mask); - tcg_gen_ld_i64((TCGv_i64)mask_elem, (TCGv_ptr)mask_offs_64, 0); - tcg_gen_rem_tl(mask_offs_rem, mask_offs, tcg_constant_tl(8)); - tcg_gen_shr_tl(mask_elem, mask_elem, mask_offs_rem); - tcg_gen_andi_tl(mask_elem, mask_elem, 1); - tcg_gen_brcond_tl(TCG_COND_NE, mask_elem, tcg_constant_tl(0), - active_element); - /* - * Set masked-off elements in the destination vector register to 1= s. - * Store instructions simply skip this bit as memory ops access me= mory - * only for active elements. - */ - if (is_load) { - tcg_gen_shli_tl(mask_offs, mask_offs, s->sew); - tcg_gen_add_tl(mask_offs, mask_offs, dest); - st_fn(tcg_constant_tl(-1), (TCGv_ptr)mask_offs, 0); - } - tcg_gen_br(inc_k); - gen_set_label(active_element); - } - /* - * The element is active, calculate the address with stride: - * target_ulong addr =3D base + stride * i + (k << log2_esz); - */ - tcg_gen_mul_tl(stride_offs, stride, i); - tcg_gen_shli_tl(k_esz, k, s->sew); - tcg_gen_add_tl(stride_offs, stride_offs, k_esz); - tcg_gen_add_tl(addr, base, stride_offs); - /* Calculate the offset in the dst/src vector register. */ - tcg_gen_shli_tl(k_max, k, get_log2(max_elems)); - tcg_gen_add_tl(dest_offs, i, k_max); - tcg_gen_shli_tl(dest_offs, dest_offs, s->sew); - tcg_gen_add_tl(dest_offs, dest_offs, dest); - if (is_load) { - tcg_gen_qemu_ld_tl(vreg, addr, s->mem_idx, MO_LE | s->sew | atomic= ity); - st_fn((TCGv)vreg, (TCGv_ptr)dest_offs, 0); - } else { - ld_fn((TCGv)vreg, (TCGv_ptr)dest_offs, 0); - tcg_gen_qemu_st_tl(vreg, addr, s->mem_idx, MO_LE | s->sew | atomic= ity); - } - /* - * We don't execute the load/store above if the element was inactive. - * We jump instead directly to incrementing k and continuing the loop. - */ - if (!vm && s->vma) { - gen_set_label(inc_k); - } - tcg_gen_addi_tl(k, k, 1); - tcg_gen_br(start_k); - /* End of the inner loop. */ - gen_set_label(end_k); - - tcg_gen_addi_tl(i, i, 1); - tcg_gen_mov_tl(cpu_vstart, i); - tcg_gen_br(start); - - /* End of the outer loop. */ - gen_set_label(end); - - return; -} - - -/* - * Set the tail bytes of the strided loads/stores to 1: - * - * for (k =3D 0; k < nf; ++k) { - * cnt =3D (k * max_elems + vl) * esz; - * tot =3D (k * max_elems + max_elems) * esz; - * for (i =3D cnt; i < tot; i +=3D esz) { - * store_1s(-1, vd[vl+i]); - * } - * } + *** stride load and store */ -static void gen_ldst_stride_tail_loop(DisasContext *s, TCGv dest, uint32_t= nf, - gen_tl_ldst *st_fn) -{ - TCGv i =3D tcg_temp_new(); - TCGv k =3D tcg_temp_new(); - TCGv tail_cnt =3D tcg_temp_new(); - TCGv tail_tot =3D tcg_temp_new(); - TCGv tail_addr =3D tcg_temp_new(); - - TCGLabel *start =3D gen_new_label(); - TCGLabel *end =3D gen_new_label(); - TCGLabel *start_i =3D gen_new_label(); - TCGLabel *end_i =3D gen_new_label(); - - uint32_t max_elems_b =3D MAXSZ(s); - uint32_t esz =3D 1 << s->sew; - - /* Start of the outer loop. */ - tcg_gen_movi_tl(k, 0); - tcg_gen_shli_tl(tail_cnt, cpu_vl, s->sew); - tcg_gen_movi_tl(tail_tot, max_elems_b); - tcg_gen_add_tl(tail_addr, dest, tail_cnt); - gen_set_label(start); - tcg_gen_brcond_tl(TCG_COND_GE, k, tcg_constant_tl(nf), end); - /* Start of the inner loop. */ - tcg_gen_mov_tl(i, tail_cnt); - gen_set_label(start_i); - tcg_gen_brcond_tl(TCG_COND_GE, i, tail_tot, end_i); - /* store_1s(-1, vd[vl+i]); */ - st_fn(tcg_constant_tl(-1), (TCGv_ptr)tail_addr, 0); - tcg_gen_addi_tl(tail_addr, tail_addr, esz); - tcg_gen_addi_tl(i, i, esz); - tcg_gen_br(start_i); - /* End of the inner loop. */ - gen_set_label(end_i); - /* Update the counts */ - tcg_gen_addi_tl(tail_cnt, tail_cnt, max_elems_b); - tcg_gen_addi_tl(tail_tot, tail_cnt, max_elems_b); - tcg_gen_addi_tl(k, k, 1); - tcg_gen_br(start); - /* End of the outer loop. */ - gen_set_label(end); - - return; -} +typedef void gen_helper_ldst_stride(TCGv_ptr, TCGv_ptr, TCGv, + TCGv, TCGv_env, TCGv_i32); =20 static bool ldst_stride_trans(uint32_t vd, uint32_t rs1, uint32_t rs2, - uint32_t data, DisasContext *s, bool is_load) + uint32_t data, gen_helper_ldst_stride *fn, + DisasContext *s) { - if (!s->vstart_eq_zero) { - return false; - } - - TCGv dest =3D tcg_temp_new(); - - uint32_t nf =3D FIELD_EX32(data, VDATA, NF); - uint32_t vm =3D FIELD_EX32(data, VDATA, VM); - - /* Destination register and mask register */ - tcg_gen_addi_tl(dest, (TCGv)tcg_env, vreg_ofs(s, vd)); - - /* - * Select the appropriate load/tore to retrieve data from the vector - * register given a specific sew. - */ - static gen_tl_ldst * const ld_fns[4] =3D { - tcg_gen_ld8u_tl, tcg_gen_ld16u_tl, - tcg_gen_ld32u_tl, tcg_gen_ld_tl - }; - - static gen_tl_ldst * const st_fns[4] =3D { - tcg_gen_st8_tl, tcg_gen_st16_tl, - tcg_gen_st32_tl, tcg_gen_st_tl - }; + TCGv_ptr dest, mask; + TCGv base, stride; + TCGv_i32 desc; =20 - gen_tl_ldst *ld_fn =3D ld_fns[s->sew]; - gen_tl_ldst *st_fn =3D st_fns[s->sew]; + dest =3D tcg_temp_new_ptr(); + mask =3D tcg_temp_new_ptr(); + base =3D get_gpr(s, rs1, EXT_NONE); + stride =3D get_gpr(s, rs2, EXT_NONE); + desc =3D tcg_constant_i32(simd_desc(s->cfg_ptr->vlenb, + s->cfg_ptr->vlenb, data)); =20 - if (ld_fn =3D=3D NULL || st_fn =3D=3D NULL) { - return false; - } + tcg_gen_addi_ptr(dest, tcg_env, vreg_ofs(s, vd)); + tcg_gen_addi_ptr(mask, tcg_env, vreg_ofs(s, 0)); =20 mark_vs_dirty(s); =20 - gen_ldst_stride_main_loop(s, dest, rs1, rs2, vm, nf, ld_fn, st_fn, is_= load); - - tcg_gen_movi_tl(cpu_vstart, 0); - - /* - * Set the tail bytes to 1 if tail agnostic: - */ - if (s->vta !=3D 0 && is_load) { - gen_ldst_stride_tail_loop(s, dest, nf, st_fn); - } + fn(dest, mask, base, stride, tcg_env, desc); =20 finalize_rvv_inst(s); return true; @@ -1152,6 +898,16 @@ static bool ldst_stride_trans(uint32_t vd, uint32_t r= s1, uint32_t rs2, static bool ld_stride_op(DisasContext *s, arg_rnfvm *a, uint8_t eew) { uint32_t data =3D 0; + gen_helper_ldst_stride *fn; + static gen_helper_ldst_stride * const fns[4] =3D { + gen_helper_vlse8_v, gen_helper_vlse16_v, + gen_helper_vlse32_v, gen_helper_vlse64_v + }; + + fn =3D fns[eew]; + if (fn =3D=3D NULL) { + return false; + } =20 uint8_t emul =3D vext_get_emul(s, eew); data =3D FIELD_DP32(data, VDATA, VM, a->vm); @@ -1159,7 +915,7 @@ static bool ld_stride_op(DisasContext *s, arg_rnfvm *a= , uint8_t eew) data =3D FIELD_DP32(data, VDATA, NF, a->nf); data =3D FIELD_DP32(data, VDATA, VTA, s->vta); data =3D FIELD_DP32(data, VDATA, VMA, s->vma); - return ldst_stride_trans(a->rd, a->rs1, a->rs2, data, s, true); + return ldst_stride_trans(a->rd, a->rs1, a->rs2, data, fn, s); } =20 static bool ld_stride_check(DisasContext *s, arg_rnfvm* a, uint8_t eew) @@ -1177,13 +933,23 @@ GEN_VEXT_TRANS(vlse64_v, MO_64, rnfvm, ld_stride_op,= ld_stride_check) static bool st_stride_op(DisasContext *s, arg_rnfvm *a, uint8_t eew) { uint32_t data =3D 0; + gen_helper_ldst_stride *fn; + static gen_helper_ldst_stride * const fns[4] =3D { + /* masked stride store */ + gen_helper_vsse8_v, gen_helper_vsse16_v, + gen_helper_vsse32_v, gen_helper_vsse64_v + }; =20 uint8_t emul =3D vext_get_emul(s, eew); data =3D FIELD_DP32(data, VDATA, VM, a->vm); data =3D FIELD_DP32(data, VDATA, LMUL, emul); data =3D FIELD_DP32(data, VDATA, NF, a->nf); + fn =3D fns[eew]; + if (fn =3D=3D NULL) { + return false; + } =20 - return ldst_stride_trans(a->rd, a->rs1, a->rs2, data, s, false); + return ldst_stride_trans(a->rd, a->rs1, a->rs2, data, fn, s); } =20 static bool st_stride_check(DisasContext *s, arg_rnfvm* a, uint8_t eew) @@ -1534,6 +1300,17 @@ GEN_LDST_WHOLE_TRANS(vs8r_v, int8_t, 8, false) *** Vector Integer Arithmetic Instructions */ =20 +/* + * MAXSZ returns the maximum vector size can be operated in bytes, + * which is used in GVEC IR when vl_eq_vlmax flag is set to true + * to accelerate vector operation. + */ +static inline uint32_t MAXSZ(DisasContext *s) +{ + int max_sz =3D s->cfg_ptr->vlenb * 8; + return max_sz >> (3 - s->lmul); +} + static bool opivv_check(DisasContext *s, arg_rmrr *a) { return require_rvv(s) && --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837574; cv=none; d=zohomail.com; s=zohoarc; b=bTtyyG0QJvTZqvYPdNWwCyOX0C/lssYbi6jy+NXonko+MroVBbDRa58f5FA/fXs+52uMrMNQVj+XbAnx99QP3iTTePdh+i95zFRpsIje1KSZIeHDuztvHGzclC5Dnzz0X3YoAv+e4MFmy3ryTHgK2/C8ZcSO/Kt/RyJb4Vr90Zs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837574; 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=HABKAT3UkQpkDi28bQ9RXNj8MoECQzmBVWqJiF0ZqcQ=; b=Y+klKsKHrsl3F9FMLSgvju/16RN/HoRVj/zaGaogOJ0UKfl/rE/ge54FPaRWvCOsiEdARmrmqZD8NRN/NAaKxClCOk7KIc2YF15LUYxcnVGJlneluYdo/V7bmrAKOqGVuv9QBFhWChX7iHzFGTgDhbSjFsmUF9xbld7q3aH1CVI= 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 1753837574407667.8861804568531; Tue, 29 Jul 2025 18:06:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvGe-0001la-W8; Tue, 29 Jul 2025 21:06:05 -0400 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 1ugvCl-0003h8-M2 for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:03 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCj-0004ny-Lr for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:03 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-31f314fe0aaso1514631a91.0 for ; Tue, 29 Jul 2025 18:02:01 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.01.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:01:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837320; x=1754442120; 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=HABKAT3UkQpkDi28bQ9RXNj8MoECQzmBVWqJiF0ZqcQ=; b=X8rnJGKQ7gpn4RTQpfyabhg0ztNZKHm9DpZNjed6P9t4IAL5lA7unC0M2O4jSRdx7y Lq6aD/1Izic5H+AZMXPHXL2+/7+DSPqa4EMDJvxs6d4ibWDY/aIeUn/xoGBAb8UHW2j6 OFtNMBY8aw99fqVqUmHWpKNou+TPhVU63D69rCt3834fRWJWWTon3nDhBVLAfOu20Sdh rlWT4kbelld3pmetPIcYtH9Okp6SZj/EjjHHwu3KEv4wtVpoV+MSXcbFfbTwALyfLaMZ sPSlqQtNKCZF+egmbROeDbZ4PGRhxaRFSouLUookeXPjXgHos/wBdZYgi26pkai0d7zR 37Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837320; x=1754442120; 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=HABKAT3UkQpkDi28bQ9RXNj8MoECQzmBVWqJiF0ZqcQ=; b=LPaQZ7OlnYUvSjlL9NN14E6tQObD4h9csAhkUMMejPheyoy3jxac+aTZHDwS0HhFdq mUmco8iNK3UAF0ytVrRmUjDjPj3y8uIsZn6RygCDqPzpWBFWN51TM9Dd9hxmEVvO6yXX mrt4uR/pPcqiS/9PbBOXaJVyww/N1G+o694mrI0Qp17KYurDWPa8XLFnJXO5TU4Dt/+M 5Emdx5f/uTw39IsyUihuhG8HtAZb1FtATgBorfRWgIfM6y7BtMa9AGc4LWJTxGwG6IfO D+0zk0eTPksw7ZQTuq+eXB9emgqOFivqE6S4FrsjS8nmYJi2FRru9uhkWxXdl7sGSjuV dCWA== X-Gm-Message-State: AOJu0YxpadFjeCUhxATNwiFZLJY9dLFKIJ9SlwwOlJNLcuAcygWfHOBc PJHOqi768mL5VR++juCSWxIbRuyb70axUQVKeDoTzIT1MNYSM8lhfvOeMSJv1w== X-Gm-Gg: ASbGncti2UYnvR0S5I9SjtcUSaa6I4ZX5b5Z7UUeaxaHUZhUTdBzHIj4EFU8UBqmLt5 fgz9TZps9NpNXDwQ/MIRqG1SJvk5eFS2ib3EQAb47RB4FHLf1RfMQsV1YUlyYzZsFVXKqmLrHlh 3s2LgctYD2eZJHKLyjY78unSZ5dl4j6ibqvIVfWw+STmfJlx8jMTz92zoExlFE8qlQT6N0ni3D4 KI7TNj0cC0GjAJYgIEZLIdZsuTzO7NITDcoq1pqjuJysapns03cYknULjv8WrPPVHP490jrB8Qm st0WdnljvvP8Nscd8D83JQBugMSenVr8jTwCBcjKd7PfzTaRCPO5nrfMPp3PEz7zeqikyJp8YGq dkmKvej8SLwruAQxbHh522+eVxDHNLnSblMeLS8QOzXffeHegzbe7hdY6I2qYCa6LjaD+4yA6ay KgRtd+poz4AnV890rV9tRryp20y9/CkcNSu6rlfg== X-Google-Smtp-Source: AGHT+IGqFd6I92IqpqMUzDt/cG4+sQ0Dv6Wd4esDulAW4OGs4hAbFqqp4Jg060iTi0pPzTZVTJLsFg== X-Received: by 2002:a17:90b:39c5:b0:311:ea13:2e70 with SMTP id 98e67ed59e1d1-31f5de3ceb7mr1960249a91.14.1753837319809; Tue, 29 Jul 2025 18:01:59 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Xu Lu , Anup Patel , Nutty Liu , Alistair Francis Subject: [PULL 09/11] target/riscv: Fix exception type when VU accesses supervisor CSRs Date: Wed, 30 Jul 2025 11:01:20 +1000 Message-ID: <20250730010122.4193496-10-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::1029; envelope-from=alistair23@gmail.com; helo=mail-pj1-x1029.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: 1753837576492116600 Content-Type: text/plain; charset="utf-8" From: Xu Lu When supervisor CSRs are accessed from VU-mode, a virtual instruction exception should be raised instead of an illegal instruction. Fixes: c1fbcecb3a (target/riscv: Fix csr number based privilege checking) Signed-off-by: Xu Lu Reviewed-by: Anup Patel Reviewed-by: Nutty Liu Message-ID: <20250708060720.7030-1-luxu.kernel@bytedance.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 8631be97c5..9bebfae3f0 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -5577,7 +5577,7 @@ static inline RISCVException riscv_csrrw_check(CPURIS= CVState *env, =20 csr_priv =3D get_field(csrno, 0x300); if (!env->debugger && (effective_priv < csr_priv)) { - if (csr_priv =3D=3D (PRV_S + 1) && env->virt_enabled) { + if (csr_priv <=3D (PRV_S + 1) && env->virt_enabled) { return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } return RISCV_EXCP_ILLEGAL_INST; --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837618; cv=none; d=zohomail.com; s=zohoarc; b=FxtyouO014olpGWKcLDKNbO5rcwNlovvnushxyNKvbtraLbY1VpwqD6H3XCz1fz2UDtvtpew3Ui5jRx5dNdCaz92+lqCI2ZSR0P+yUITK0sLtiN6jl6UQP/rasDB/xRBXuaAty4AzdEew+iWwrGRROTiQrW9bpUnPZO4dWNhsB8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837618; 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=VIsknjkgZG7i/K/CbMZ/+uWxaIQ0J9cHKwtsWD/bOlM=; b=Q+JF7qX34Cp7yE/OwUViob4l/M7ZXzsGjS2j29PBuF5fzImB0PfaDtnABaAJharjqP7ZRZ1dvEiUAFhci+Blx4SQD8ErdZRaZNLX9kV4IyCIAEUOuX4gjb01hMzC3SfRxUMwhlDGivTw8b1gdL363VQWClxn2+J4YUHLkEVID+g= 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 1753837618201321.93140749522513; Tue, 29 Jul 2025 18:06:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvGv-0002Ux-2P; Tue, 29 Jul 2025 21:06:22 -0400 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 1ugvCp-0003ok-En for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:07 -0400 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ugvCn-0004p7-Dm for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:07 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-b3bdab4bf19so323317a12.2 for ; Tue, 29 Jul 2025 18:02:04 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.02.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837323; x=1754442123; 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=VIsknjkgZG7i/K/CbMZ/+uWxaIQ0J9cHKwtsWD/bOlM=; b=KD8uNwB9Zj7BpdlUxhllwj/uvlRhpodMVpn4UXGnpJimMTnkWdl55DRKzq/ad4/uF+ uyPek9Af5Io4NBYBx3E09vyHtXNqO4GLo3r/b0XqnQJaGUeYX1+8aeLzCN+1+swJlEfp rzuaBkPgAn22MuLMHCeG/xe/W/vA4uCUed9nXg/zlGiqaYdU9MDDcZ8h7nH3tc7u2Vlf kZ5k6b0KswlcQSFqE9SiISMbugdf/D4aFJYATg5PLW3Gi9weT1nGiNOlLN5gffFPLTOa vB42UKz9q8aowZEKSbe4IAufUz5MrX3WW/bCrPBMpsLrfgtNV47P432zwfs6d5WbKHLh KP6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837323; x=1754442123; 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=VIsknjkgZG7i/K/CbMZ/+uWxaIQ0J9cHKwtsWD/bOlM=; b=ZYvheK2okjUQr5VJcgHOrfC1ltABJDkM4DgQE3Cva13qKItucFGpQ659yfpG29pJDw Ny34MX1adJLNC55NQtijmZuxdVEaKWyfw0gKpfTYe95EOQ5M0I0cTh2KO6ExvDE8C9jQ lvMPIR4Ei8H4IaT4xKKDpbQsBW6Eavz2m8/VlcnGIgGt0y0STnhKVubvLhS+7AqzXvAU cmxLITclsJiDoE6EAF9q0c/D+kidoFchjBR9K85xtD7pPORRhfaLxR3yRdiR4E7X/tZN +3LD21A+sFTHga4iRxNjagCLTD4JifHOKAoV98bMwJM1bL1qUixArGkkTMBkuKWdnI63 fUEQ== X-Gm-Message-State: AOJu0Ywv6QXqPUXXAg0dfAVnVijKGA8771lINvU1JEFeMTBf2NgSiwZY EEqxU5CZ/PID/wV6jd8JaX+YJAuOkDng4Ium0eUaQj9M4X6CZpM8SBbQqbsHOg== X-Gm-Gg: ASbGnct2RQikzzu22T/coKs6aV3YilpuzXVJdgrHtqekBdJGUe5UMIOz7e7WbYQjXvD 5MqxtA3G94gZzsMbslD29nRq7tDRkF84K5iPAvyWVyGG4E2Qct97MIWL0aZWA6NuN7H7+ct1VX1 p0clhYaHxMDddb6RbVBBY/UhBpRlh2utP6idmE5FledqTuGv+jfBIPbHl3BLNRng5Kd4S9bg9XS HpYlDFl/98HjT71wRtdonVpThgV8kpbXsBKnkNCVbjhlHZXhX0WenArnmghYfwwoenjncUiBua+ v3zkxgL17d1vj1+E2IgcNWqHOnycYLrlQJcW2AHYBjo+ppbqif46aqJY6BbW7Vw4o5RuvGnp5kG coE99BkTHcmzGNcZJABCXK2gOFgctLKu2VnavfgKhA/+HKcYeC5i9+9F7DbKukg6zh2cSYq/Xdp fN8EFgg22Re4tuaTsAauzYRcsv88I= X-Google-Smtp-Source: AGHT+IH1SJcytqQijGFc4NH1cQ9m9bkFFlw6P/bOD0lfAXrk4l8QJL5EN2NjWYVPMIRINXPVdqW4cw== X-Received: by 2002:a17:90a:d404:b0:31e:3d06:739c with SMTP id 98e67ed59e1d1-31f5de85bbbmr1951532a91.31.1753837323032; Tue, 29 Jul 2025 18:02:03 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jay Chang , Frank Chang , Alistair Francis , Nutty Liu Subject: [PULL 10/11] target/riscv: Restrict mideleg/medeleg/medelegh access to S-mode harts Date: Wed, 30 Jul 2025 11:01:21 +1000 Message-ID: <20250730010122.4193496-11-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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::535; envelope-from=alistair23@gmail.com; helo=mail-pg1-x535.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: 1753837619347116600 Content-Type: text/plain; charset="utf-8" From: Jay Chang RISC-V Privileged Spec states: "In harts with S-mode, the medeleg and mideleg registers must exist, and setting a bit in medeleg or mideleg will delegate the corresponding trap , when occurring in S-mode or U-mode, to the S-mode trap handler. In harts without S-mode, the medeleg and mideleg registers should not exist." Add smode predicate to ensure these CSRs are only accessible when S-mode is supported. Reviewed-by: Frank Chang Reviewed-by: Alistair Francis Signed-off-by: Jay Chang Reviewed-by: Nutty Liu Message-ID: <20250701030021.99218-2-jay.chang@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 9bebfae3f0..5a6de07486 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -5862,8 +5862,8 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { NULL, read_mstatus_i128 = }, [CSR_MISA] =3D { "misa", any, read_misa, write_misa, NULL, read_misa_i128 = }, - [CSR_MIDELEG] =3D { "mideleg", any, NULL, NULL, rmw_mideleg= }, - [CSR_MEDELEG] =3D { "medeleg", any, read_medeleg, write_medel= eg }, + [CSR_MIDELEG] =3D { "mideleg", smode, NULL, NULL, rmw_midel= eg }, + [CSR_MEDELEG] =3D { "medeleg", smode, read_medeleg, write_med= eleg }, [CSR_MIE] =3D { "mie", any, NULL, NULL, rmw_mie = }, [CSR_MTVEC] =3D { "mtvec", any, read_mtvec, write_mtvec= }, [CSR_MCOUNTEREN] =3D { "mcounteren", umode, read_mcounteren, @@ -5871,7 +5871,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { =20 [CSR_MSTATUSH] =3D { "mstatush", any32, read_mstatush, write_mstatush = }, - [CSR_MEDELEGH] =3D { "medelegh", any32, read_zero, write_ignore, + [CSR_MEDELEGH] =3D { "medelegh", smode32, read_zero, write_ignore, .min_priv_ver =3D PRIV_VERSION_1_13_0 = }, [CSR_HEDELEGH] =3D { "hedelegh", hmode32, read_hedelegh, write_he= delegh, .min_priv_ver =3D PRIV_VERSION_1_13_0 = }, --=20 2.50.0 From nobody Sat Nov 15 08:45:03 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=1753837647; cv=none; d=zohomail.com; s=zohoarc; b=mLaKlRXJ4RR4CHBsPUSQmiDKsRCxP683A91xWssvoiQ8J3NEqUf83FKiBaxWtopX2lab4fmEOBD1mc4tOFxAmTkfWPvF4C77bMX1iJgUFHNVRFJD88wVuoxr3l+sb6Q/aKMs/oXObYuhjdEgme7pFb6nkf+Ot2HieM36cn2x/r8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753837647; 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=ZpAThyHK47BS0F9JHZzT8Mn9PhBJDT2KUOQzUhgdcXI=; b=g8qlyWz22RpMwtbs9wh1wIUvCgnv5a6HZ3uT4hm2c7IuFwP/tU6YgMD7xTyctiUqRacihFtpWXL8KtZnWmg9GKic2Z3rBW4NAbUjFBTTjJ/+eRgQ76NBcMSBWD7F1Qsq3rZ5k5YGlUqCP6KzKWKslhqkMGxfaidV53Gey56s7to= 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 1753837647341948.2804339409605; Tue, 29 Jul 2025 18:07:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugvHO-0003Jo-Jo; Tue, 29 Jul 2025 21:06:50 -0400 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 1ugvCs-0003vO-4k for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:10 -0400 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 1ugvCq-0004qi-7z for qemu-devel@nongnu.org; Tue, 29 Jul 2025 21:02:09 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-31ec651c2a1so2498420a91.0 for ; Tue, 29 Jul 2025 18:02:07 -0700 (PDT) Received: from toolbx.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 98e67ed59e1d1-31f63df5adfsm343253a91.25.2025.07.29.18.02.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Jul 2025 18:02:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753837326; x=1754442126; 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=ZpAThyHK47BS0F9JHZzT8Mn9PhBJDT2KUOQzUhgdcXI=; b=IvkFazdJ8+WOyZf4/p3KH4aujmOHwrmaenEYz6/13UH8/fCyVRDoM9ZTBuiFaUY3dV G2DQeePm7VmvF45glNxDqdqupJycWnReITWjyjZWPiCrA+dtDonAI2p6PIAGvDgSQNHq P5Uuck4nNG7gks4E44fZiAPzN6zXiu8xIEPLsDot3cva9lpgp5R77WwNus6lmapCVzYJ pxL2NpPWe3sdZ3QZr/jByPtzW2+Yt3/1xbX7uWqQOoGwTquPgJTci0ENH7ihYxeoBUyY 15c5LACOYSRrncdyRz9YVlhvk1TF7eF0LmEFhV1S7AznNYkjjS2eVOyrdotwoCR5Rt3h /awQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753837326; x=1754442126; 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=ZpAThyHK47BS0F9JHZzT8Mn9PhBJDT2KUOQzUhgdcXI=; b=pLdiyxID73JsNaXxTr4DP3UIMTD1GH9Cf2kDtF92XiYeqjdHFu+9Y4t0BfB5pFeULt hGLzlkqZZtqbLSr9wvcj8NhszSxVxMlmY7x1IeArAMXdR07xxazlgHQsMnzbIyAHUlGF s75Vo1V0Zy7WPvG9S2BdjSVGViJGrVLxlUd8g7QGnz0mcXpa2vs47OuUwl0tnFG1MRLD lWS1e+/YUhjVWSbvRt+HGrpHV9s1SB+ry8MSXR1G2V4IHUe92SqYOcLr6InhWyZkin+t omwCddg+tMnZPbs36twu81k3MhFSZChag8sEahVhNb7nbHhIh5PXA4zlIziX8HXZhbbd rd5A== X-Gm-Message-State: AOJu0YyuKYUNWBwMZxwUxTpcPX1/d6nutxLW/gAOHEUwIFx8dnNuwj+U sYXWkfupVDKdVcfXKRBgxtOWkxcdar4dFGe5M4R4myD6vmkWIEMsrAG+/t6XfQ== X-Gm-Gg: ASbGnctD3pGWM+XmS30OHjFeK8CwkfrMrBKvK/h1Yj0UR0hAnNytT7LN7BfV5IEKCDw ZxoqJLNH1nekkkbHFQo25UumGHnI+P1le9AKhO+JwZREXjl2O5YF+Ahfg8TRgoleiDc0d/vZNz6 2TWWvKl/GoZZ/6GhdL9c8HZq0OMCZnWC/ULleEwLOAqWNUZl5tJw1Fn7Dcv/U4LEd4439GqFCVi ZQGGjEXLYvIiLlwXnaYBPr4sPvbB+CRMTahZrxA1EOfLbLSUq4qjueC67TqSsGVKK/pFsW2SjnH BgamlsiIkv3R4sz2dH+hI38MWAyI4hI6bgvoKBaHEZHxcpUr/5eFzHJM89WYgTmbs9lrlYLPBjx SDY9AiNB4dUPdvoFoNkWp3Ajm7D7X95NDTQ4xY6CqNOw9SgRLHXT6Zubw6HkXn9RyHu67rx27Oo hREj7Bh277SZ2wPeVE5izBh5ZN4fM= X-Google-Smtp-Source: AGHT+IEF6i0qGHgQAxVYEwys1JdlPxgSffrKxmVR4aN1G2KNdnzVTgf8A0NVUYAAk3Pdzc3bTvPsyw== X-Received: by 2002:a17:90b:3c04:b0:31f:253e:d34f with SMTP id 98e67ed59e1d1-31f5de54a53mr1965162a91.19.1753837326397; Tue, 29 Jul 2025 18:02:06 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jay Chang , Frank Chang , Alistair Francis , Nutty Liu Subject: [PULL 11/11] target/riscv: Restrict midelegh access to S-mode harts Date: Wed, 30 Jul 2025 11:01:22 +1000 Message-ID: <20250730010122.4193496-12-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250730010122.4193496-1-alistair.francis@wdc.com> References: <20250730010122.4193496-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: 1753837649444116600 Content-Type: text/plain; charset="utf-8" From: Jay Chang RISC-V AIA Spec states: "For a machine-level environment, extension Smaia encompasses all added CSRs and all modifications to interrupt response behavior that the AIA specifies for a hart, over all privilege levels. For a supervisor-level environment, extension Ssaia is essentially the same as Smaia except excluding the machine-level CSRs and behavior not directly visible to supervisor level." Since midelegh is an AIA machine-mode CSR, add Smaia extension check in aia_smode32 predicate. Reviewed-by: Frank Chang Reviewed-by: Alistair Francis Signed-off-by: Jay Chang Reviewed-by: Nutty Liu Message-ID: <20250701030021.99218-3-jay.chang@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 5a6de07486..8842e07a73 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -374,8 +374,11 @@ static RISCVException aia_smode(CPURISCVState *env, in= t csrno) static RISCVException aia_smode32(CPURISCVState *env, int csrno) { int ret; + int csr_priv =3D get_field(csrno, 0x300); =20 - if (!riscv_cpu_cfg(env)->ext_ssaia) { + if (csr_priv =3D=3D PRV_M && !riscv_cpu_cfg(env)->ext_smaia) { + return RISCV_EXCP_ILLEGAL_INST; + } else if (!riscv_cpu_cfg(env)->ext_ssaia) { return RISCV_EXCP_ILLEGAL_INST; } =20 @@ -5911,7 +5914,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_MVIP] =3D { "mvip", aia_any, NULL, NULL, rmw_mvip }, =20 /* Machine-Level High-Half CSRs (AIA) */ - [CSR_MIDELEGH] =3D { "midelegh", aia_any32, NULL, NULL, rmw_midelegh }, + [CSR_MIDELEGH] =3D { "midelegh", aia_smode32, NULL, NULL, rmw_midelegh= }, [CSR_MIEH] =3D { "mieh", aia_any32, NULL, NULL, rmw_mieh }, [CSR_MVIENH] =3D { "mvienh", aia_any32, NULL, NULL, rmw_mvienh }, [CSR_MVIPH] =3D { "mviph", aia_any32, NULL, NULL, rmw_mviph }, --=20 2.50.0