From nobody Fri Dec 19 17:13:19 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=1751628222; cv=none; d=zohomail.com; s=zohoarc; b=Av3c7o0UFR7XT9A7FzI8VFDsQwzx0nYuFF2so0d3zGUyPu7j/zlwfX835M7WoKgTIv0D58bSDl02KXGPSYC2RufTH36g8vk8uSzNvnb+LHXSqpyJBmyiBQKTcf3Gqf0kJIszw7b6D/1JySxnoBaBKSCth3YWkLEhi2HrlZ9X51o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628222; 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=FaD+R83FMH0JVnQwqbAhU4SC3S3GpT+xzhhalZlRRr0=; b=nK+nhyHC/Kp71p2nDaVVWMG6afhLfZm0drgVP2tCj851EKLfxmuJX4DLNKveNUsHe0N4JrLVkB6xquEqmj94nUtLn4iRikpM99wRUN6pNTEUYGhrS55Ah4vrkMSWmb5kyElU3h2zKk0YEBJ5kMbeEg3jvzVx+XwoJRVDMzCAp+E= 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 1751628222598275.6204682352052; Fri, 4 Jul 2025 04:23:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeTZ-0003R4-28; Fri, 04 Jul 2025 07:21: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 1uXeTV-0003Lv-7j for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:21:02 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeTT-0007Oq-6H for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:21:00 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-7481600130eso1267333b3a.3 for ; Fri, 04 Jul 2025 04:20: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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751628057; x=1752232857; 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=FaD+R83FMH0JVnQwqbAhU4SC3S3GpT+xzhhalZlRRr0=; b=T+fWYrxJd//nU9AUTgjGHEQjAlE3fhVTy5o28FekvLu4Mv+3y/eulcTmNH9tGmad9l sSB3AqBjsKEXKo0JCPpU7XF/hEUubPElvlqJi1am57zOyJlNUOd12J7YouE/eh0doIXV SNK8SqTAoXU4HK2anO6/cYgKL98RCOLc1UQffzcueG0L2odkOmNTeiRJOXzdwWjE8qL2 Qp+Eeua9yipXN1SiVvF7BICgU78GX1uXGp6P5zR2GnduUXndYG3dHlmgTEu45aSNaAPs FrZMa4oQVNS/u6bRCUzFx8vJp9VFQwjjrKwKBzgqhdbyLCmcdgZzBWhV33iYFRnR5mTw zYJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751628057; x=1752232857; 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=FaD+R83FMH0JVnQwqbAhU4SC3S3GpT+xzhhalZlRRr0=; b=B43ocixOeoNsVd9gtsMVE0WBHSlzRxTMFZOTrSNA909IRM+pFCt5rlYdM73VwFup5h ctE0RgEI3wvknyxT2aWhLnYhtbVhDrgMC2G2kyqBcsyFRuUlnQ/srGmaHwS9ixkdZeSs GpNvDOj1NmG4IaqK5gNFt9geAg/+S6Ewz1FQ9UtVzvaZwOHBjnIEXXBmgGeAkuRFkyTY 5a1iICPzP3tIBQQNB7qVDb7CJeVe/U74ymG2PkoHuLmv0uIvrPJARaTKucw+sAwEH+/+ xp4Eb1jArEb9VTsIz2GgHdFbxjFAODxIByh9p1uaNtYqe52lftSprkEqciaMB5EaiWRt UCmA== X-Gm-Message-State: AOJu0YydOysVWh4wo8N0BI1/ywpfaIy4Kdg7aUgcjq44WN8Jnj+uwkzs 9JHYKtncWE8ViS82a/Ls7lLmGbHhmjrdiXvNkyUIwJJjA43zpJby36D0DzD0qg== X-Gm-Gg: ASbGnctAECZsRT6MczjxA9GYwys7ewtu5iA0uWPoIZ1aydGb27pVBMqS9qGZm6H0i2A wn+O2S63vman/Oro9/kvS983+gCCGU9jsws1LLhzzrIaZTGeIUpaG2jmkxSR+fkjnuhvvZ3qnA8 IdNvV/I1WhLkzVCY5QQkWb/KHuv8QFxRuicrUk6aPvgTmE4C8h5S1SzC+VluYPD2iq/FAB1uJD5 NC6CYwRxKSVAnLbCPnxwrMCxFMHmfvfsgig3lHeW3dlUsQFJl6exBAo6eklsMOr3yYExResX7ua WURxCg9tmuNoOH5Mq+Ddv5jBHYJxDKJ5Sh4/27pNJeLaI+h1CYYGjXhd7/4TtkFV+p9jtKQHBXP 7utlYuKIDyoRJWC7k63ksQ16mNXU/v4XCYoPZZZUier4FS3jnutJF9+f8PveVZUL+z3U= X-Google-Smtp-Source: AGHT+IEMhOaa+rasxWQjzEUSRTe2vAFXArcPgAYBZFqynqRxrvZinRiJDUdZNApt1HJZmO5/2V32dg== X-Received: by 2002:a17:903:19cc:b0:234:f580:9ed with SMTP id d9443c01a7336-23c85e18d97mr42510405ad.21.1751627553809; Fri, 04 Jul 2025 04:12:33 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Alistair Francis Subject: [PULL 01/40] target/riscv: Add the checking into stimecmp write function. Date: Fri, 4 Jul 2025 21:11:28 +1000 Message-ID: <20250704111207.591994-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::430; envelope-from=alistair23@gmail.com; helo=mail-pf1-x430.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: 1751628224505116600 Content-Type: text/plain; charset="utf-8" From: Jim Shu Preparation commit to let aclint timer to use stimecmp write function. Aclint timer doesn't call sstc() predicate so we need to check inside the stimecmp write function. Signed-off-by: Jim Shu Acked-by: Alistair Francis Message-ID: <20250519143518.11086-2-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/time_helper.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/target/riscv/time_helper.c b/target/riscv/time_helper.c index bc0d9a0c4c..aebf0798d0 100644 --- a/target/riscv/time_helper.c +++ b/target/riscv/time_helper.c @@ -46,8 +46,23 @@ void riscv_timer_write_timecmp(CPURISCVState *env, QEMUT= imer *timer, { uint64_t diff, ns_diff, next; RISCVAclintMTimerState *mtimer =3D env->rdtime_fn_arg; - uint32_t timebase_freq =3D mtimer->timebase_freq; - uint64_t rtc_r =3D env->rdtime_fn(env->rdtime_fn_arg) + delta; + uint32_t timebase_freq; + uint64_t rtc_r; + + if (!riscv_cpu_cfg(env)->ext_sstc || !env->rdtime_fn || + !env->rdtime_fn_arg || !get_field(env->menvcfg, MENVCFG_STCE)) { + /* S/VS Timer IRQ depends on sstc extension, rdtime_fn(), and STCE= . */ + return; + } + + if (timer_irq =3D=3D MIP_VSTIP && + (!riscv_has_ext(env, RVH) || !get_field(env->henvcfg, HENVCFG_STCE= ))) { + /* VS Timer IRQ also depends on RVH and henvcfg.STCE. */ + return; + } + + timebase_freq =3D mtimer->timebase_freq; + rtc_r =3D env->rdtime_fn(env->rdtime_fn_arg) + delta; =20 if (timecmp <=3D rtc_r) { /* --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627634; cv=none; d=zohomail.com; s=zohoarc; b=U2Rgcd0F2ypMboerl3YbdymNoXtOcQETrDG3C58GdF/xvwJJpL7nLNv97/eeLn6Ds0V+riN/iSLB1QDJgQYBHKRnoY0mw84u8IpdSQWwOGUNdBRWF54Amw1RT+rjyyjG5es3KEq3OvK3+Y1r9sgIVTtQhwh0uVKzLrCJmMTlsQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627634; 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=BKUA7rS+V68gRLJioO3r9xBRT/IbDhtTsq6XxI77XCU=; b=jnmSXCVN6SZrmhi53VyXRsx10O90W5uzlCbMvn2lV35pUmXh9AYlPhA5P3xX+tVOjUMYRzPeC/nvPA8tN0KCjQIWbjpYqqWbM8qHDCvCQbMMsAmk8itDDMuMolO7E4G3NkJezwGrBMy1z1rSWf1KwLuVKfZ7cMq/UNIHpzR7ius= 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 17516276347631016.6170421806287; Fri, 4 Jul 2025 04:13:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLx-0002J7-OJ; Fri, 04 Jul 2025 07:13:14 -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 1uXeLS-0001jL-Gg for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:44 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLO-0002No-VV for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:42 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-235ea292956so8653545ad.1 for ; Fri, 04 Jul 2025 04:12: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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627556; x=1752232356; 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=BKUA7rS+V68gRLJioO3r9xBRT/IbDhtTsq6XxI77XCU=; b=Z5bBEyhupzVhwVCegi4HxVbNR6B87P/LivX96BWp4Y+T8yY6CSQxyypqu7qmSl1ngZ 0OwnVpATtjeUZLYU3UC8GgiPiAHSv4dMeFPjn/yOX4pCMOwywNLAkB8vfApSrCQJoLev MtURjUD14GqtXhCt+zTOk/Vf4dnkICWraz+aMB+h/NQx8EHiEsWFl+5RJWOuUYpcNGik bQuTITWruLUCHGB3xzb7pFWO1Y8nQgWWfp0dXf0UQXMR9a6zzZzsnA1V3SEPcotLbZdy prOFTlNF/TIo9MgXOfMBCIM4EdisiXRYVDkibEW87aInSz3n0xUVbepOoH++kLCCI/L3 N9OQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627556; x=1752232356; 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=BKUA7rS+V68gRLJioO3r9xBRT/IbDhtTsq6XxI77XCU=; b=caKX2G9+58Nog8mpTrSsZ3NCAShcpZNCV6PFpaXJHW7j58bO+gkbyKNuItyMWxLLLX LyqhSPwuoPZCXfGEHc7tIKvBCsyM6b0R3w6F4olEthBgys0jVz7ic4JMi/BhOO7am9YU 7mlWMbrdapHtih1jr6KBMG58Pf3WnynLjXQYSMKueqDIaBfQn1kJYPMyWhCSGN/EsKWT xbcmaj1twOFGYy6V6O5NNjFQSK/0y5FIsvJS1j0dHaJkPzb5CRdl3YS2OMF0ljri5wp1 bqztxFa4rieVO0bIfXwuvR3Hj50G6d7ANMAQItCNDy0+X+5l/GL/zIMgK/FZKrpOWdjY m8Sg== X-Gm-Message-State: AOJu0Yxy14sIQciCJfdH0weLH0zCCAlnYG4EfodPMWsnGLGEvXh/EFHK SJpUDQj87VMfQa3CsD+yAVgONlAg4Bc8LpDkp2W9I9HME+9Tq4XQGi+WHAzkLA== X-Gm-Gg: ASbGncvnHiMKgGng4JqT3HimY1R4WpS/YJKbJuoj+BVhIb91GjcvC1r58avUTLXdp47 HlbMA9Xb0ds+fU61MM4yZqPfIBeKL3o9klieQhBNMk/Niad8SM2Ua5iAg+q1+Bva3UX8AQQvC91 ysbas9LjfYsXVb2v/kD+uqjrAo4dHOlbn9EIMASwPlA26VlJ0eGrv2Ps9XTzH95AYPLRBqpnMxg LQCNVIWrWqK7Uz0tqLCH5ryJDvLkEvpU7l0O6vz7iaCw7Ew1mZUVWdliLxCWgLa3oDj1BrmMDjn BiZKZzLA5ssUKS3TEBhvEN4mPsNyUuFUUHJKHEgrlgb+CV5GzhYrekU7zaATlwqN9SO+z+Glt8o sFp9XLvW+Za/F5Dxm7k6+rcWP5jw+e6roKOH1DgX1V400Y9jiuPshHSTKk7yIyv9GY+A= X-Google-Smtp-Source: AGHT+IEjaMLXvWeq69POXg5nwvVMAIvEpwB27XVAeCyIm26TsFOO6NC0hEUWH9KOy+IVcHtyfCqq2A== X-Received: by 2002:a17:903:3c4c:b0:236:9d66:ff24 with SMTP id d9443c01a7336-23c874661aamr26851695ad.8.1751627556505; Fri, 04 Jul 2025 04:12:36 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Alistair Francis Subject: [PULL 02/40] hw/intc: riscv_aclint: Fix mtime write for sstc extension Date: Fri, 4 Jul 2025 21:11:29 +1000 Message-ID: <20250704111207.591994-3-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627636543116600 Content-Type: text/plain; charset="utf-8" From: Jim Shu When changing the mtime value, the period of [s|vs]timecmp timers should also be updated, similar to the period of mtimecmp timer. The period of the stimecmp timer is the time until the next S-mode timer IRQ. The value is calculated as "stimecmp - time". [1] It is equal to "stimecmp - mtime" since the time CSR is a read-only shadow of the memory-mapped mtime register. Thus, changing mtime value will update the period of stimecmp timer. Similarly, the period of vstimecmp timer is calculated as "vstimecmp - (mtime + htimedelta)" [2], so changing mtime value will update the period of vstimecmp timer. [1] RISC-V Priv spec ch 9.1.1. Supervisor Timer (stimecmp) Register A supervisor timer interrupt becomes pending, as reflected in the STIP bit in the mip and sip registers whenever time contains a value greater than or equal to stimecmp. [2] RISC-V Priv spec ch19.2.1. Virtual Supervisor Timer (vstimecmp) Register A virtual supervisor timer interrupt becomes pending, as reflected in the VSTIP bit in the hip register, whenever (time + htimedelta), truncated to 64 bits, contains a value greater than or equal to vstimecmp Signed-off-by: Jim Shu Acked-by: Alistair Francis Message-ID: <20250519143518.11086-3-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- hw/intc/riscv_aclint.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/intc/riscv_aclint.c b/hw/intc/riscv_aclint.c index b0139f03f5..4623cfa029 100644 --- a/hw/intc/riscv_aclint.c +++ b/hw/intc/riscv_aclint.c @@ -28,6 +28,7 @@ #include "qemu/module.h" #include "hw/sysbus.h" #include "target/riscv/cpu.h" +#include "target/riscv/time_helper.h" #include "hw/qdev-properties.h" #include "hw/intc/riscv_aclint.h" #include "qemu/timer.h" @@ -240,6 +241,10 @@ static void riscv_aclint_mtimer_write(void *opaque, hw= addr addr, riscv_aclint_mtimer_write_timecmp(mtimer, RISCV_CPU(cpu), mtimer->hartid_base + i, mtimer->timecmp[i]); + riscv_timer_write_timecmp(env, env->stimer, env->stimecmp, 0, = MIP_STIP); + riscv_timer_write_timecmp(env, env->vstimer, env->vstimecmp, + env->htimedelta, MIP_VSTIP); + } return; } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627594; cv=none; d=zohomail.com; s=zohoarc; b=T32OBRQvBMhamCf+MlMOPjDikyyi36C8GQOBPDMXDr3nwbTwlmeg6frWYgz/ljZV8GLdTC+aGazTRPvK1vm614ZrZtT+tqiX3yfQpqaTxfKh7ywQIa9BJ3XEMJ68tbb7rV8hptkA+NQrchwM6qvrJPvVvVEheDDx9amlW9FUPGc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627594; 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=BgqeX0mSl6R03zp1vleVuhsTxzUAqtSjxphovdOwj2I=; b=S1k+Nwyo2nT54Hi1Il+wlhv/V8oegp2KDq5cby4eYGfgQ6ahUKbj4CmVi8eL+RCooS7K/ssFbPpRaqxD+LSZB/wyMKFt6NtJeKiEoVN/BSbuSr3f8bMqZe0N3LZ0AcMr+mnJTVnj/zA5E9qEKGa33OvfU0KgXhwn8e/g23SwKWw= 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 175162759430440.56798181887291; Fri, 4 Jul 2025 04:13:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLd-0001rG-UA; Fri, 04 Jul 2025 07:12:54 -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 1uXeLT-0001jX-JB for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:44 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLR-0002TR-4N for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:43 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-234bfe37cccso9920435ad.0 for ; Fri, 04 Jul 2025 04:12:40 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627559; x=1752232359; 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=BgqeX0mSl6R03zp1vleVuhsTxzUAqtSjxphovdOwj2I=; b=ZDQ4rS0wI3Mj1SDX1CYr+di0YUvXFgr17eSj98CIWywpns8Q2PvkkBp0LH3GqBMH1S +KmOB4emNGQFIcK+Vmy3g+khoKAa0Qpcs37yp5acn1OBCyKDPA/oERKyFrcpGsPY3zjp SegDddVcgkXJNGxv1HMqQHanjVNwmlD1Nm4f7/P3lPmY0D2De19uD3rzpl/CNV9rYyrc rKI9AANiwdwdQtsnitkZcW91Gg9G+O6K38bWlLRkEv6+zTQbGVGxk/uV9suQN2OPV97I Ww1u8GkbF/kIZJo522qOBnUhQXIzmfdo6LAlQ3jQL5YT4+xRLMdTRNLEF+EFhV8aoHZg gVUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627559; x=1752232359; 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=BgqeX0mSl6R03zp1vleVuhsTxzUAqtSjxphovdOwj2I=; b=CqG2FIiK9q3KjS+Taa1XFm2gz72uDnQEyVb1/yOvYfoXSZAFopp7kVE4iWBBn+q9oy U8CKxHL0O3Gvufokl6zMBdvTSjnZgF78LkIBfuWOhF67hS5j3fiKzqWoQrDwxWO2WcwW bx5DCjIkZdSaDUlFKi2fFK4gvFL0o+9IKXwgO4LWm0JdGCcDq8BYnOOHtgDfNyEIWSoG 3d9HDPiW+07hWuZ2IVxTOvTaSM0F/e3HkG6/AMZU8IsQhHpB1hUuqyGjpo73HLbVACOz sg0E6F7gEF0KxXD+ifjVe7dGeMw/kH/US4QmjexeLZhHqiZtutGYvm31EfSZCYbM8zMC O0lw== X-Gm-Message-State: AOJu0YwhWBIvbhmV+qb6cQPsPALAGV6IxpfPxVuB2ObSlG9on9gQoK2G fbbTT4w4MxgGMPjO8+UujAvUyghUSnCWZgJ+hPNjSl+gqjy7REi4I2Jhj9T41A== X-Gm-Gg: ASbGncvinZhgrFyVGzHngOFy7aS7/FXNaccwYyArN0jDJArYpwyMS29uTzp8+l2AD8m U2uKbgBNHnOOFBQ5wML0zXmUBY2IuVus1XFkXaCMmcuE5AlCOqB+aRXxtyv/cmoh8yjpCAcqNNF en/ve3+T4xDwLD2DLZRdGJaW0/SkIQqpC6mJyXqhhl1398WFgtVTiiy599S+3GPSwd7OjW7Mb1a UiHDVGWB9e131Dfj741VgGhDo83JkPnZ4tvfZuC6FlM9OP9ojPejo6dX/PBaj9l8pWnOM4HV4D5 mv5Z8imbEInQA0eFg85kvqBhLMOSsX8+bCrDU9vEBbMySU/zddCKje/YVhqnSCV3blLO9qnBoCk sRMBSLEoEbFZd3wh5xrZfwXW6Tyb8HwRK7j4mB5D95d82iMZt77mrujZAybKEP6ufgLM= X-Google-Smtp-Source: AGHT+IH6oDjl5klLbujOYGOkB1dxs9ZjKU3hV5XJ53ed1V1iZ1Oey5PyP/VrSJ0El7DvQ2c6EsggHw== X-Received: by 2002:a17:902:f550:b0:235:129e:f640 with SMTP id d9443c01a7336-23c8613842amr36822345ad.38.1751627559229; Fri, 04 Jul 2025 04:12:39 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Alistair Francis Subject: [PULL 03/40] target/riscv: Fix VSTIP bit in sstc extension. Date: Fri, 4 Jul 2025 21:11:30 +1000 Message-ID: <20250704111207.591994-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=alistair23@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627595918116600 Content-Type: text/plain; charset="utf-8" From: Jim Shu VSTIP is only writable when both [mh]envcfg.STCE is enabled, or it will revert it's defined behavior as if sstc extension is not implemented. Signed-off-by: Jim Shu Acked-by: Alistair Francis Message-ID: <20250519143518.11086-4-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index fb14972169..d8102943dd 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3651,7 +3651,14 @@ static RISCVException rmw_mip64(CPURISCVState *env, = int csrno, if (riscv_cpu_cfg(env)->ext_sstc && (env->priv =3D=3D PRV_M) && get_field(env->menvcfg, MENVCFG_STCE)) { /* sstc extension forbids STIP & VSTIP to be writeable in mip */ - mask =3D mask & ~(MIP_STIP | MIP_VSTIP); + + /* STIP is not writable when menvcfg.STCE is enabled. */ + mask =3D mask & ~MIP_STIP; + + /* VSTIP is not writable when both [mh]envcfg.STCE are enabled. */ + if (get_field(env->henvcfg, HENVCFG_STCE)) { + mask =3D mask & ~MIP_VSTIP; + } } =20 if (mask) { --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627612; cv=none; d=zohomail.com; s=zohoarc; b=BdEfXGr/nputa0BFa8GRd49gacTZpFl14w9KZB0X5/0YEFu/Lti7EYAvFr1aJrg4qtTaIoJHFwQ4fPVnKRdhIMPjEVfcCI+JMiI7wDcBMJ2jSp94f6DsDoI5ugXAWsztJi1Svwc335xcGrhDDCBymzcMi2/mIU3a0+LpP+nqxPs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627612; 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=G7kVqX7i2Q5mE5/XYi8yZYkv70bcetDYLM46qvs6C6w=; b=VmSDwCLcYDVtAN3MnMEZiUJi5xKEgAA2hyZWpequkm4r6K7ZdsQ5HdNRrDDDVmdQIyLRP3HTszjCSw27Uqa1yekJLkua9/H6HMdmHqY/EaxTxzqhPjU83Gpv86jjD5LRAREvCE+8JoGw0SHL/wjx0GlSgUhdxo3byq/Vl3375jY= 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 17516276128547.213339344351198; Fri, 4 Jul 2025 04:13:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLe-0001tD-Oj; Fri, 04 Jul 2025 07:12:55 -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 1uXeLY-0001nC-TQ for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:49 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLU-0002YE-Mf for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:46 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-234c5b57557so8804725ad.3 for ; Fri, 04 Jul 2025 04:12:43 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627562; x=1752232362; 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=G7kVqX7i2Q5mE5/XYi8yZYkv70bcetDYLM46qvs6C6w=; b=DvDmru+UZzbz8fuVagmTvp+FeEK7Ht2HjOJUdifc2uAYHgchd6eSWDdoNmAv3kExPn OyPZTM4FnqV8L41Tkb3Hs1SojF863bQezoauN/Vo2p2VHIMO0Q3KBiGi/VpfQxbmTxsH Im0Fy6X7SN7X9SxS1wxd+OWuT5mAGGfFXke0Y5DMMTb+hkTVKMczKmDNOnYpAyKxd7uZ yBGk5OxNKjsiIaaLp1HeEhuCVUiZv3Gh2csahYa57FNKqh/HBdOaA+BBR4K2zGN3uE8O 6vyYkV/9MfIrA4bjFRwhzvo57uY3/Vl+7YI66bTjHiR+8m3QDF9KttYspdLWEx2028sK 1HXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627562; x=1752232362; 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=G7kVqX7i2Q5mE5/XYi8yZYkv70bcetDYLM46qvs6C6w=; b=pj1QAPsrV9PegUsZkpbiKtq4YB14fSMs0EcQQ1bwJlvEalIPPpLvhNk54lbPeAlzg7 j3pv52EdygNLggxG+188kiZ+XmBFtB4HrUDi1/1i+7oNvIm95P+1l6TxghOkhwnTlCxG VtipqOV6+ija3CtlRbxQK5Qrc/V18UOsD2AQvgQLHBCr/R1gykUQnWxz7X0HvPbtqzG0 +zMxVZ5WYqktGA2yYWV5J4s+BY+KGoHCg3gFXFzu3VkNIMlJAslsjsj8jMTIFGwLE+iS U1OfQNxqPqF/ix8DumWftxEuwOs1CdrZpzU41Q1R5HbFz/blNARTYfT+sH2ARkr5wrsT 0KPA== X-Gm-Message-State: AOJu0YyAWnMu7ht+xtaMWQ10KuU4Mn8E7ZYt/Nl4185sGAof/fSPKe8P SN1xSERBvT7Q5PAUK1N1Jd/5xrAwxlU2+j3hXGH7ni43CbmpxruekDGuq6uteg== X-Gm-Gg: ASbGnctw9wXcarV7XTEAHQzyXA84CeZu9farLNXdGrE5z+UleOWO/EJJ4ye6E7MWYDU gK1R9xVVMPN9dZuSH/eUXHffEGyjPng+8GXKx1wTlgyC0miswGcbbFj1rrUthk4ZjCM7muF9gHn +qxhIs30q1RPWqi0VACNN2hdK7HXdIkqjO64ZmymnE2vKct+Xn4UXyCzPUcMxPS+4LlYNkMYKdG n52kssT3cznA2DKHs7cq7cmlKymnKvsZO5HdX1gFFCHmK6EgedKWdCk5KLBbrPNsyMTwxY9LBHs O9x/XaLn/oU8VXVBfNURMQHXr8PE6zaCht0GDrUvi1gO/rpkqgMGWDdzvcpZ8kNLECixbjbv3iN WJO9zxjzCPIa798MmJirBdzQDz+jqim08EFvWURBaEHavRh1d6Y0PilPLJA3uU9ozTb8= X-Google-Smtp-Source: AGHT+IEqZ9t9gLCIEUtlypjOFw4OuB8ySGRHy3zwhutL5SAtVvLuG+JGs059VMoCjgZFuwIt3V3gOA== X-Received: by 2002:a17:903:1b68:b0:235:27b6:a897 with SMTP id d9443c01a7336-23c85e9c18fmr38715885ad.34.1751627561973; Fri, 04 Jul 2025 04:12:41 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Alistair Francis Subject: [PULL 04/40] target/riscv: Enable/Disable S/VS-mode Timer when STCE bit is changed Date: Fri, 4 Jul 2025 21:11:31 +1000 Message-ID: <20250704111207.591994-5-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=alistair23@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627614201116600 Content-Type: text/plain; charset="utf-8" From: Jim Shu Updating STCE will enable/disable SSTC in S-mode or/and VS-mode, so we also need to update S/VS-mode Timer and S/VSTIP bits in $mip CSR. Signed-off-by: Jim Shu Acked-by: Alistair Francis Message-ID: <20250519143518.11086-5-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/time_helper.h | 1 + target/riscv/csr.c | 46 ++++++++++++++++++++++++++++++++++++++ target/riscv/time_helper.c | 46 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/target/riscv/time_helper.h b/target/riscv/time_helper.h index cacd79b80c..af1f634f89 100644 --- a/target/riscv/time_helper.h +++ b/target/riscv/time_helper.h @@ -25,6 +25,7 @@ void riscv_timer_write_timecmp(CPURISCVState *env, QEMUTimer *timer, uint64_t timecmp, uint64_t delta, uint32_t timer_irq); +void riscv_timer_stce_changed(CPURISCVState *env, bool is_m_mode, bool ena= ble); void riscv_timer_init(RISCVCPU *cpu); =20 #endif diff --git a/target/riscv/csr.c b/target/riscv/csr.c index d8102943dd..1151ebb6ad 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3181,6 +3181,7 @@ static RISCVException write_menvcfg(CPURISCVState *en= v, int csrno, const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); uint64_t mask =3D MENVCFG_FIOM | MENVCFG_CBIE | MENVCFG_CBCFE | MENVCFG_CBZE | MENVCFG_CDE; + bool stce_changed =3D false; =20 if (riscv_cpu_mxl(env) =3D=3D MXL_RV64) { mask |=3D (cfg->ext_svpbmt ? MENVCFG_PBMTE : 0) | @@ -3206,8 +3207,18 @@ static RISCVException write_menvcfg(CPURISCVState *e= nv, int csrno, if ((val & MENVCFG_DTE) =3D=3D 0) { env->mstatus &=3D ~MSTATUS_SDT; } + + if (cfg->ext_sstc && + ((env->menvcfg & MENVCFG_STCE) !=3D (val & MENVCFG_STCE))) { + stce_changed =3D true; + } } env->menvcfg =3D (env->menvcfg & ~mask) | (val & mask); + + if (stce_changed) { + riscv_timer_stce_changed(env, true, !!(val & MENVCFG_STCE)); + } + return write_henvcfg(env, CSR_HENVCFG, env->henvcfg, ra); } =20 @@ -3230,12 +3241,23 @@ static RISCVException write_menvcfgh(CPURISCVState = *env, int csrno, (cfg->ext_smcdeleg ? MENVCFG_CDE : 0) | (cfg->ext_ssdbltrp ? MENVCFG_DTE : 0); uint64_t valh =3D (uint64_t)val << 32; + bool stce_changed =3D false; + + if (cfg->ext_sstc && + ((env->menvcfg & MENVCFG_STCE) !=3D (valh & MENVCFG_STCE))) { + stce_changed =3D true; + } =20 if ((valh & MENVCFG_DTE) =3D=3D 0) { env->mstatus &=3D ~MSTATUS_SDT; } =20 env->menvcfg =3D (env->menvcfg & ~mask) | (valh & mask); + + if (stce_changed) { + riscv_timer_stce_changed(env, true, !!(valh & MENVCFG_STCE)); + } + return write_henvcfgh(env, CSR_HENVCFGH, env->henvcfg >> 32, ra); } =20 @@ -3313,8 +3335,10 @@ static RISCVException read_henvcfg(CPURISCVState *en= v, int csrno, static RISCVException write_henvcfg(CPURISCVState *env, int csrno, target_ulong val, uintptr_t ra) { + const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); uint64_t mask =3D HENVCFG_FIOM | HENVCFG_CBIE | HENVCFG_CBCFE | HENVCF= G_CBZE; RISCVException ret; + bool stce_changed =3D false; =20 ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); if (ret !=3D RISCV_EXCP_NONE) { @@ -3340,6 +3364,11 @@ static RISCVException write_henvcfg(CPURISCVState *e= nv, int csrno, get_field(val, HENVCFG_PMM) !=3D PMM_FIELD_RESERVED) { mask |=3D HENVCFG_PMM; } + + if (cfg->ext_sstc && + ((env->henvcfg & HENVCFG_STCE) !=3D (val & HENVCFG_STCE))) { + stce_changed =3D true; + } } =20 env->henvcfg =3D val & mask; @@ -3347,6 +3376,10 @@ static RISCVException write_henvcfg(CPURISCVState *e= nv, int csrno, env->vsstatus &=3D ~MSTATUS_SDT; } =20 + if (stce_changed) { + riscv_timer_stce_changed(env, false, !!(val & HENVCFG_STCE)); + } + return RISCV_EXCP_NONE; } =20 @@ -3368,19 +3401,32 @@ static RISCVException read_henvcfgh(CPURISCVState *= env, int csrno, static RISCVException write_henvcfgh(CPURISCVState *env, int csrno, target_ulong val, uintptr_t ra) { + const RISCVCPUConfig *cfg =3D riscv_cpu_cfg(env); uint64_t mask =3D env->menvcfg & (HENVCFG_PBMTE | HENVCFG_STCE | HENVCFG_ADUE | HENVCFG_DTE); uint64_t valh =3D (uint64_t)val << 32; RISCVException ret; + bool stce_changed =3D false; =20 ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); if (ret !=3D RISCV_EXCP_NONE) { return ret; } + + if (cfg->ext_sstc && + ((env->henvcfg & HENVCFG_STCE) !=3D (valh & HENVCFG_STCE))) { + stce_changed =3D true; + } + env->henvcfg =3D (env->henvcfg & 0xFFFFFFFF) | (valh & mask); if ((env->henvcfg & HENVCFG_DTE) =3D=3D 0) { env->vsstatus &=3D ~MSTATUS_SDT; } + + if (stce_changed) { + riscv_timer_stce_changed(env, false, !!(val & HENVCFG_STCE)); + } + return RISCV_EXCP_NONE; } =20 diff --git a/target/riscv/time_helper.c b/target/riscv/time_helper.c index aebf0798d0..400e917354 100644 --- a/target/riscv/time_helper.c +++ b/target/riscv/time_helper.c @@ -140,6 +140,52 @@ void riscv_timer_write_timecmp(CPURISCVState *env, QEM= UTimer *timer, timer_mod(timer, next); } =20 +/* + * When disabling xenvcfg.STCE, the S/VS Timer may be disabled at the same= time. + * It is safe to call this function regardless of whether the timer has be= en + * deleted or not. timer_del() will do nothing if the timer has already + * been deleted. + */ +static void riscv_timer_disable_timecmp(CPURISCVState *env, QEMUTimer *tim= er, + uint32_t timer_irq) +{ + /* Disable S-mode Timer IRQ and HW-based STIP */ + if ((timer_irq =3D=3D MIP_STIP) && !get_field(env->menvcfg, MENVCFG_ST= CE)) { + riscv_cpu_update_mip(env, timer_irq, BOOL_TO_MASK(0)); + timer_del(timer); + return; + } + + /* Disable VS-mode Timer IRQ and HW-based VSTIP */ + if ((timer_irq =3D=3D MIP_VSTIP) && + (!get_field(env->menvcfg, MENVCFG_STCE) || + !get_field(env->henvcfg, HENVCFG_STCE))) { + env->vstime_irq =3D 0; + riscv_cpu_update_mip(env, 0, BOOL_TO_MASK(0)); + timer_del(timer); + return; + } +} + +/* Enable or disable S/VS-mode Timer when xenvcfg.STCE is changed */ +void riscv_timer_stce_changed(CPURISCVState *env, bool is_m_mode, bool ena= ble) +{ + if (enable) { + riscv_timer_write_timecmp(env, env->vstimer, env->vstimecmp, + env->htimedelta, MIP_VSTIP); + } else { + riscv_timer_disable_timecmp(env, env->vstimer, MIP_VSTIP); + } + + if (is_m_mode) { + if (enable) { + riscv_timer_write_timecmp(env, env->stimer, env->stimecmp, 0, = MIP_STIP); + } else { + riscv_timer_disable_timecmp(env, env->stimer, MIP_STIP); + } + } +} + void riscv_timer_init(RISCVCPU *cpu) { CPURISCVState *env; --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627738; cv=none; d=zohomail.com; s=zohoarc; b=e/SsFD6PIYZGku8hOdjc/gofguGzYJk9CVpvEf/bsZnkmReID83xzB5Uglg9g4C6i1Bm5taAFOzniuebDUqffdfeKKhb2ZGcR7Oy3nMKwB1z7Dd/v0HWVSDKHOjGvdHqkTNgp3+YF1aJ6bWhVGn+7ki7PG32jO1wBEj7lsJ9a/I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627738; 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=s6UGTgPYir33A0rgIBH+C4iVYyQtEZW7GZky2on9WjU=; b=ZQFrSLVS0MGJhJyO9MexAYkFRP8iI6GblDGvJGqRDP9Sm8uNa1I8HkUl8QrCIqpEp1eIP8b4LCzX4XsVzNnbvY1a1EhkBA3DezvFD1jH7FQNIaEJKOakg1E097acOGEqVn6tPJcaEqgg9oHE84JXeKnMTHDC8+dQQH+P+DeMJwE= 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 1751627738153168.93488198553155; Fri, 4 Jul 2025 04:15:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLu-00026J-GS; Fri, 04 Jul 2025 07:13:10 -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 1uXeLa-0001qK-R6; Fri, 04 Jul 2025 07:12:51 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLZ-0002cq-1F; Fri, 04 Jul 2025 07:12:50 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-236192f8770so5821835ad.0; Fri, 04 Jul 2025 04:12:46 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627565; x=1752232365; 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=s6UGTgPYir33A0rgIBH+C4iVYyQtEZW7GZky2on9WjU=; b=QjYJCxhtVICYs5lG54LZAopHkXNbhHAOwVpfek4dMj3rwgo5nWxIaK9T8GQWX2wBfd 2Of1BDi5+Muw7leP/WcejQJlCa0uYwZms5ASvS/WYAqgDVIHbjIz6ijrSs6c7PN0QYhk SJ5MG/0Fi+tQHm3Ny6+AYm6R2lqDi1+3MpkFFtu8/sOOst4JibLo4/KEh0uLMqVi//4D uP5ABFRFRtR0m+GQZ7LbRIEySMad5vTOEjv3LN2rHjnRuEtPgBC2uCeZeNZwjDh527gq I6HVKsgnbWQmJnoT+ga4oFQntt8Y5hlFdUCmwTbNorV9XtuDdVuqRbP9v4cyoTdlBESz riOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627565; x=1752232365; 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=s6UGTgPYir33A0rgIBH+C4iVYyQtEZW7GZky2on9WjU=; b=P8UOpSl3TGRltn2Kf3u6BZ8rA5s24Bht24ohoyAtchvVKfF8UIAPfObVA1PPT3Y98x P78BwOJg84UnN0u9q1iDqIRChL5sFZDXHI9Yp07BLQ9XM1kISeam4edzLhOvwP/5s4Yq lbEiQ+WlwneAikHOB/MOdPYkVLi3sat69wrAZUVrxWA46ai4ZsZnEskjHspCurBqmRn4 ADbY0TVmtlv8GMvzMPn8HsFjIGNzVyCvCDXI/2J1I/kgLZwXmBe3pk2s7K8OMYHcpYTY KVbCE/3g/aAMcbf/n8dYQRjHORW9MSIMvmWm8QhT7eSMXb5AEw/hmQhDhncNlUhNfp5W 5dCg== X-Forwarded-Encrypted: i=1; AJvYcCWKImpDQ6trDm3joNWynfe5HfSahSVOq9QF6rWxd/XlbQRSIB5xIj5ZHzVSEmaMjv/jbP3SW6G1omPwv9M=@nongnu.org X-Gm-Message-State: AOJu0YxtPZ6UiqJkorukaW6GxalUs9SRqz24XK6VQ9mu1vTvMgTpJEUy I8Qm18bY9WH/6Yf4z+slF8+U0gjwgKkuFVuJDxjTCxbDBNopTqpgBOnJDZxopA== X-Gm-Gg: ASbGnculzt6hglV4yzIJqpskNE+LSy0QxGP6w4iCjXUAhQ2PjqgLY/JH6O6t5cJnV03 HSxIIzlcbkDOkgt4qwgGU0gpwA1jts/leUlee2DZEe48x0mDk67rPAWORPXK1otsdOPGjMzZ/4q uEJZHvHeixzsggi60AktH6ciJfUNbe1AlABjByIbneTHbROk2nSCToEZidZ0EHabfpjPjTwpFNl v0u2hey3/9W2oT56DEp6ZyRYa4EFdhNfOqnHsBRtNr7apexbNMpjaX404uXJaQQviMZK5/WWNNo KKra0sTU1ewaJLf5AEw0eX28HFTrC5YLbmK5mg2TBS3gJbe7KbexR2TVJb94JYjZABw1KCU9i5w 9RKOPosPts/wNOAan+9jNDSSoKQ7KQKx/qG7RMJWEe4UxzWwF2RByoHaEQh34Zi/dibE= X-Google-Smtp-Source: AGHT+IHs6p+BA2JJOIcVeEjWoz6p3TD+YAHGkfDpP0BUEy1TbBBo1sAF1L2jkKy+hDijgRZjyK22TA== X-Received: by 2002:a17:903:11c8:b0:234:11e2:f41 with SMTP id d9443c01a7336-23c84ad0d7cmr39714455ad.6.1751627564972; Fri, 04 Jul 2025 04:12:44 -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 , qemu-trivial@nongnu.org, Alistair Francis Subject: [PULL 05/40] target/riscv/cpu.c: fix zama16b order in isa_edata_arr[] Date: Fri, 4 Jul 2025 21:11:32 +1000 Message-ID: <20250704111207.591994-6-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627739557116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Put it after zalrsc and before zawrs. Cc: qemu-trivial@nongnu.org Fixes: a60ce58fd9 ("target/riscv: Support Zama16b extension") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250522113344.823294-1-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 629ac37501..fe21e0fb44 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -127,8 +127,8 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(zaamo, PRIV_VERSION_1_12_0, ext_zaamo), ISA_EXT_DATA_ENTRY(zabha, PRIV_VERSION_1_13_0, ext_zabha), ISA_EXT_DATA_ENTRY(zacas, PRIV_VERSION_1_12_0, ext_zacas), - ISA_EXT_DATA_ENTRY(zama16b, PRIV_VERSION_1_13_0, ext_zama16b), ISA_EXT_DATA_ENTRY(zalrsc, PRIV_VERSION_1_12_0, ext_zalrsc), + ISA_EXT_DATA_ENTRY(zama16b, PRIV_VERSION_1_13_0, ext_zama16b), ISA_EXT_DATA_ENTRY(zawrs, PRIV_VERSION_1_12_0, ext_zawrs), ISA_EXT_DATA_ENTRY(zfa, PRIV_VERSION_1_12_0, ext_zfa), ISA_EXT_DATA_ENTRY(zfbfmin, PRIV_VERSION_1_12_0, ext_zfbfmin), --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627852; cv=none; d=zohomail.com; s=zohoarc; b=FbA6xr2DX/tINTDUUSB+AAO4FWmbEo/70kFpddOpXqrSPVt6LqytjT9FG+DQG0YQK1q4iSsZOlVTU2njuteCNBpcXvTrnnjjSUqeFnWn4ZcKGQWmFk8mGXLr2z/pRjZZ0no9k71p47jPzahEMUrmhuTTWn9P5ACMq3B+t4HXgcM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627852; 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=f6KX8jP7UkcyaoRzueCmnlg+C4AdUvngebBI+d4Y+5g=; b=Ntb3XsxC9DorOKDPQpWs/u2pIu+nYnaY54nHBRmP7np0pnHWPqf70pEtpzKgJe23DHld6PjTKW7Z07Yf/tW/lia+ydTxWb9gX8XIklCeARSA5l5dNNryNwRsbla//5/BvQ5/0PPqa+wwEcwE1S9N6+8TcAJhX/wv75UAO7uq19k= 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 1751627852267595.5255571580567; Fri, 4 Jul 2025 04:17:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLv-0002AH-PZ; Fri, 04 Jul 2025 07:13:11 -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 1uXeLc-0001rf-Pm for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:53 -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 1uXeLa-0002hV-4R for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:12:51 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-313eeb77b1fso801265a91.1 for ; Fri, 04 Jul 2025 04:12:49 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627568; x=1752232368; 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=f6KX8jP7UkcyaoRzueCmnlg+C4AdUvngebBI+d4Y+5g=; b=Kw67Sy4Fp7UG9hHqQT5LxG8cZfA80Fk88HKdH//lwKRxuOv3XujHhbXgB2hBr0zFBw YUQXAb5ySkHNivqauRBbZkPGin7M5MR5IQmbesgus3w/k1mwrcAIe0vWpjVOhEajmLB/ S+iMtN8bPlG+5gdR83wgjWcrEkpQh42KquCXEZzZ4ArZ1+8M1GWKj6tSGaiiGsPK4YPY Z7JrEGaFYleNt9HJTc1nJIbBhR3/7+E4Nl5kRxbSCUm+t8RnmWV594DgSNeRMOtIIls6 A1QPkPOrVrAnZZHagO2AIVb01dOWmwV9b7fWGXwFS9D/ipZunL6K9u+7v7qN9qOlN0Od RJNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627568; x=1752232368; 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=f6KX8jP7UkcyaoRzueCmnlg+C4AdUvngebBI+d4Y+5g=; b=exwllr3NvZSs+nPVwGivWloP6ioggtfLJayM6eH5lw4kmMy3ExuF5rh5sjZRoGGSL3 ho0G2dt/oKBcSltVGqLlb9mPFj9Py4/Z7I8vcuy+vnObqjKLxSNPZiarp0Gv1ah5CAx+ hkiqXsvWJc+hNLFn4AXstkup3nBtKb8gDHwNhNjVA2mf9+8hqHpWiLrOhpYK9GTQWVYs 7UDHKNb6iTqdiJIFJkj8ZcmqDoMHE9bJIkbH/5tyW3m9AOKPZK37PD/kyoyjGwbph/jr UMbdYR6OkQ9snUDTfJhjSY3m2FcSuP6LeRN/hrKxxbH/awICmptMFu/Vxubu6r10ablm K4ig== X-Gm-Message-State: AOJu0Yy9sOWIs1qjRQ/2S5ZjJ5JIMCqQXDkXA3t0hzIk8TnYtA7slPmn eiXhHgEt9ThovT6cBRYBXt2MHhaYhY0ui0/Tav/DZ/M10x/g9num6zKyVUO+0g== X-Gm-Gg: ASbGnct42nVaXhOrqjo3s9dz9bsddDy8eyK2V5lxsJhlqqBo3rCSY5gDTafpUxs799D vducK+IHWeIOE7z7WfP/nxnWtndCYzur0ncy4VM8KO+n+TVHPt4KWXYBsexxxj2uERnj4vJYTcR Ds6vjoc6niGbDnxnavgrJO2ZUMTLOwgtWbsm9jlihtMbgj3WEWKIqXp9UUQ40AyVmNGHLtk8IoP L/jekZVmak5PreV27RWYrAvFirMnCXZhT9pEtFAQfKG5xk69h/wJd5/ohJEI8QNBhzihdtpwYSs M8AwEeBVa42di63yLGFS+2g3X04GrjlIZDbU1uK8RpYXd+JabEzWs/kQo69Il4HlZ8HNDtTNjk9 hE0ZA2A8qsQ+BNvHQXnwKgnz9HCuAs8lsz5UIqRAwdVvFppOXtKimNqUgwmelxmTyMJU= X-Google-Smtp-Source: AGHT+IGgRY28PWwgmSkXeDvpdbwEVulbOWWy5S6yZxXZsaN4O+fWEN98L3TDaBed9BrLfOS3QVrWkA== X-Received: by 2002:a17:90b:2ed0:b0:311:c1ec:7d0a with SMTP id 98e67ed59e1d1-31aaddba4a9mr2547159a91.25.1751627568232; Fri, 04 Jul 2025 04:12:48 -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 , Andrew Jones , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Alistair Francis Subject: [PULL 06/40] target/riscv/tcg: restrict satp_mode changes in cpu_set_profile Date: Fri, 4 Jul 2025 21:11:33 +1000 Message-ID: <20250704111207.591994-7-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::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: 1751627852894116600 From: Daniel Henrique Barboza We're changing 'mmu' to true regardless of whether the profile is being enabled or not, and at the same time we're changing satp_mode to profile->enabled. This will promote a situation where we'll set mmu=3Don without a virtual memory mode, which is a mistake. Only touch 'mmu' and satp_mode if the profile is being enabled. Suggested-by: Andrew Jones Fixes: 55398025e7 ("target/riscv: add satp_mode profile support") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Bj=C3=B6rn T=C3=B6pel Tested-by: Bj=C3=B6rn T=C3=B6pel Message-ID: <20250528184407.1451983-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/tcg/tcg-cpu.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 55fd9e5584..39de32cf76 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1365,16 +1365,16 @@ static void cpu_set_profile(Object *obj, Visitor *v= , const char *name, =20 if (profile->enabled) { cpu->env.priv_ver =3D profile->priv_spec; - } =20 #ifndef CONFIG_USER_ONLY - if (profile->satp_mode !=3D RISCV_PROFILE_ATTR_UNUSED) { - object_property_set_bool(obj, "mmu", true, NULL); - const char *satp_prop =3D satp_mode_str(profile->satp_mode, - riscv_cpu_is_32bit(cpu)); - object_property_set_bool(obj, satp_prop, profile->enabled, NULL); - } + if (profile->satp_mode !=3D RISCV_PROFILE_ATTR_UNUSED) { + object_property_set_bool(obj, "mmu", true, NULL); + const char *satp_prop =3D satp_mode_str(profile->satp_mode, + riscv_cpu_is_32bit(cpu)); + object_property_set_bool(obj, satp_prop, true, NULL); + } #endif + } =20 for (i =3D 0; misa_bits[i] !=3D 0; i++) { uint32_t bit =3D misa_bits[i]; --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627893; cv=none; d=zohomail.com; s=zohoarc; b=R3Yh4QbZ5tv/kbXtaZDcGKfoMMfT6SL7K5g+5+X2ruOrrs4eHAqONeddOfXD89DYx1zLY807QGoRqlrkeBPvCAyUgkqPkYDiTNyURE+FTrXofTEG1WyIw0bDP+my5+TT9adkeokOEUPfzldeWEKycrXeXStwr0gZFxPHPQ2SG/g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627893; 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=0YdLnpcgCTV0XB5ow8eV7/MKeKU1pwUDrFprn8g+bog=; b=eJNgFFA8mAeXtXHzCVfsEXVRYFOR8uXdsVghcWqsIrrzKl6LgLFQza53mGETJFWE/vZntwv0Lyd255PG/Atw9+bKhlGCTX1k4bskO1udb7urYYhk4RO16RUkbtfq38cgJxMfFQkqMTkNcq2w/Fqw7/2O1s+c6Xo8ijroRzssxns= 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 1751627893856937.9713228308125; Fri, 4 Jul 2025 04:18:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeM0-0002TP-Aa; Fri, 04 Jul 2025 07:13:16 -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 1uXeLo-0001yE-DT for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:04 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLd-0002mI-BS for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:02 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-23694cec0feso7598505ad.2 for ; Fri, 04 Jul 2025 04:12:52 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627571; x=1752232371; 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=0YdLnpcgCTV0XB5ow8eV7/MKeKU1pwUDrFprn8g+bog=; b=NotIgmkTZzIaMTC4oZXUQQ/t9ec7vOpsCi4FJvViUKpcqA7/IA3qVbzT+BaIRliT5u J6HbnlJ4LzCCLKZYrA5RudSvbpaJ+WdnGfceYsmMqTE7R4/QSyiVcx4Iu44ZTNoRgRVq ocdXD1RlURFpmUokivdQSuOqo6wf8t/ciJo0ytX7E4UdPut7a5gTrcBnm3KOP2tmtXx4 sol0S/gYcH7mlBpeOUFUuFdnvaODn9VOS6ou4ViSENsDNVD9dLx5tkCVjMv85e1EFT4c 8F7Gd4N4VYAkI0bN0kEWH1YqiFNhMqb+ZyACYTe2Xc7hL2yAgyKv8+D3jsNYVv8r0zrq RFsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627572; x=1752232372; 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=0YdLnpcgCTV0XB5ow8eV7/MKeKU1pwUDrFprn8g+bog=; b=fVBO2QMX0VD22Pm0PLPgBn5xshZNluIN+iWkRch+TiwZbpgfoK2nhnIJETew50cliU IXjOZFrf1ePFZa0TgDS7jy+QLsONPlA8+l5sI4A1A6MaKmXQIN5DxMECdd/5mJYdoWoH fxmrjdyeGTIqKZq3QphIMFmBz8rKvTO/Wxu65nRqldAl5avDqYtHY/6PggcDUQ7s1evs VVKCfoKj/XDrtFp4VbWJfUgxciE6e1uypymyJILUzjUB3UBmorc/HVKr7auWfsZXRHUS 9YfFsiaZiefYK3sx0rt+8i06Lzm/vcWtfyoHB2BloCRXmtrA7C7hnqqipuOnV0kXS171 RZ8Q== X-Gm-Message-State: AOJu0YwRSymHzHTGOQrd63KIGqlMxF64+h9sTWWwWjJlvbf2fLSoGzvk DiJoEkRoIgOlTDkTV1pUgZwjYm1XI4n3DREagFDpYX+W9OoIpnfdWVPqL2yPTQ== X-Gm-Gg: ASbGnctVZnPanur31nrNff0MvPsk3w9VWu7VagYA/rPdzUaOA3EMrrcSFo+B0Q8l2Kh fgjN/BRsuYBMpphZYgN9Z2uYwP7jPP1iMGVUlQKesGd71OGl8N1sRN6TPxwj3sig/X5aaWTapHP +0C4UUDZDGX/wdzeDnKaHHnfp5LEJ6pvW6yX7rsbYB3ikTJFffiLshJVcg69BqR9EjOhL98P42R t7qYF4AKvQ9dfBn3s7yqI73GxVBM3F31JJYcGi7xc2Tg0Q6nqzQ9d/pdklaaqms54j7TLhxJ78+ OcgWNHcpeg2IOx/2l5eR+4k9DTafhOFKu35x4y8uK4mQbryaVZ8a00vd6+zDR5jP13ycnhS9zF8 DMJwaI4TkNGvc//fOGLVMK5ZtbZjZi88iflNr8NH//QX5+r25ZtovLSKlH1Uk5NOjltMpK/IdmA xHMg== X-Google-Smtp-Source: AGHT+IEdvIuadjWzlkK+ILzCJbDiAR5xuW6Zruu6F68t13m2y8EmrHg0vBSWmbuPbPWFyo4mDI4ibg== X-Received: by 2002:a17:903:1ac6:b0:23c:7876:e6a8 with SMTP id d9443c01a7336-23c86244ed0mr38107665ad.51.1751627571516; Fri, 04 Jul 2025 04:12:51 -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 , Andrew Jones , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Alistair Francis Subject: [PULL 07/40] target/riscv/tcg: decouple profile enablement from user prop Date: Fri, 4 Jul 2025 21:11:34 +1000 Message-ID: <20250704111207.591994-8-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::62e; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62e.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, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627894753116600 From: Daniel Henrique Barboza We have code in riscv_cpu_add_profiles() to enable a profile right away in case a CPU chose the profile during its cpu_init(). But we're using the user callback option to do so, setting profile->user_set. Create a new helper that does all the grunt work to enable/disable a given profile. Use this new helper in the cases where we want a CPU to be compatible to a certain profile, leaving the user callback to be used exclusively by users. Fixes: fba92a92e3 ("target/riscv: add 'rva22u64' CPU") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Bj=C3=B6rn T=C3=B6pel Tested-by: Bj=C3=B6rn T=C3=B6pel Message-ID: <20250528184407.1451983-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/tcg/tcg-cpu.c | 127 +++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 60 deletions(-) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 39de32cf76..e10e03a577 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1166,6 +1166,70 @@ static bool riscv_cpu_is_generic(Object *cpu_obj) return object_dynamic_cast(cpu_obj, TYPE_RISCV_DYNAMIC_CPU) !=3D NULL; } =20 +static void riscv_cpu_set_profile(RISCVCPU *cpu, + RISCVCPUProfile *profile, + bool enabled) +{ + int i, ext_offset; + + if (profile->u_parent !=3D NULL) { + riscv_cpu_set_profile(cpu, profile->u_parent, enabled); + } + + if (profile->s_parent !=3D NULL) { + riscv_cpu_set_profile(cpu, profile->s_parent, enabled); + } + + profile->enabled =3D enabled; + + if (profile->enabled) { + cpu->env.priv_ver =3D profile->priv_spec; + +#ifndef CONFIG_USER_ONLY + if (profile->satp_mode !=3D RISCV_PROFILE_ATTR_UNUSED) { + object_property_set_bool(OBJECT(cpu), "mmu", true, NULL); + const char *satp_prop =3D satp_mode_str(profile->satp_mode, + riscv_cpu_is_32bit(cpu)); + object_property_set_bool(OBJECT(cpu), satp_prop, true, NULL); + } +#endif + } + + for (i =3D 0; misa_bits[i] !=3D 0; i++) { + uint32_t bit =3D misa_bits[i]; + + if (!(profile->misa_ext & bit)) { + continue; + } + + if (bit =3D=3D RVI && !profile->enabled) { + /* + * Disabling profiles will not disable the base + * ISA RV64I. + */ + continue; + } + + cpu_misa_ext_add_user_opt(bit, profile->enabled); + riscv_cpu_write_misa_bit(cpu, bit, profile->enabled); + } + + for (i =3D 0; profile->ext_offsets[i] !=3D RISCV_PROFILE_EXT_LIST_END;= i++) { + ext_offset =3D profile->ext_offsets[i]; + + if (profile->enabled) { + if (cpu_cfg_offset_is_named_feat(ext_offset)) { + riscv_cpu_enable_named_feat(cpu, ext_offset); + } + + cpu_bump_multi_ext_priv_ver(&cpu->env, ext_offset); + } + + cpu_cfg_ext_add_user_opt(ext_offset, profile->enabled); + isa_ext_update_enabled(cpu, ext_offset, profile->enabled); + } +} + /* * We'll get here via the following path: * @@ -1332,7 +1396,6 @@ static void cpu_set_profile(Object *obj, Visitor *v, = const char *name, RISCVCPUProfile *profile =3D opaque; RISCVCPU *cpu =3D RISCV_CPU(obj); bool value; - int i, ext_offset; =20 if (riscv_cpu_is_vendor(obj)) { error_setg(errp, "Profile %s is not available for vendor CPUs", @@ -1351,64 +1414,8 @@ static void cpu_set_profile(Object *obj, Visitor *v,= const char *name, } =20 profile->user_set =3D true; - profile->enabled =3D value; - - if (profile->u_parent !=3D NULL) { - object_property_set_bool(obj, profile->u_parent->name, - profile->enabled, NULL); - } - - if (profile->s_parent !=3D NULL) { - object_property_set_bool(obj, profile->s_parent->name, - profile->enabled, NULL); - } - - if (profile->enabled) { - cpu->env.priv_ver =3D profile->priv_spec; - -#ifndef CONFIG_USER_ONLY - if (profile->satp_mode !=3D RISCV_PROFILE_ATTR_UNUSED) { - object_property_set_bool(obj, "mmu", true, NULL); - const char *satp_prop =3D satp_mode_str(profile->satp_mode, - riscv_cpu_is_32bit(cpu)); - object_property_set_bool(obj, satp_prop, true, NULL); - } -#endif - } - - for (i =3D 0; misa_bits[i] !=3D 0; i++) { - uint32_t bit =3D misa_bits[i]; - - if (!(profile->misa_ext & bit)) { - continue; - } =20 - if (bit =3D=3D RVI && !profile->enabled) { - /* - * Disabling profiles will not disable the base - * ISA RV64I. - */ - continue; - } - - cpu_misa_ext_add_user_opt(bit, profile->enabled); - riscv_cpu_write_misa_bit(cpu, bit, profile->enabled); - } - - for (i =3D 0; profile->ext_offsets[i] !=3D RISCV_PROFILE_EXT_LIST_END;= i++) { - ext_offset =3D profile->ext_offsets[i]; - - if (profile->enabled) { - if (cpu_cfg_offset_is_named_feat(ext_offset)) { - riscv_cpu_enable_named_feat(cpu, ext_offset); - } - - cpu_bump_multi_ext_priv_ver(&cpu->env, ext_offset); - } - - cpu_cfg_ext_add_user_opt(ext_offset, profile->enabled); - isa_ext_update_enabled(cpu, ext_offset, profile->enabled); - } + riscv_cpu_set_profile(cpu, profile, value); } =20 static void cpu_get_profile(Object *obj, Visitor *v, const char *name, @@ -1423,7 +1430,7 @@ static void cpu_get_profile(Object *obj, Visitor *v, = const char *name, static void riscv_cpu_add_profiles(Object *cpu_obj) { for (int i =3D 0; riscv_profiles[i] !=3D NULL; i++) { - const RISCVCPUProfile *profile =3D riscv_profiles[i]; + RISCVCPUProfile *profile =3D riscv_profiles[i]; =20 object_property_add(cpu_obj, profile->name, "bool", cpu_get_profile, cpu_set_profile, @@ -1435,7 +1442,7 @@ static void riscv_cpu_add_profiles(Object *cpu_obj) * case. */ if (profile->enabled) { - object_property_set_bool(cpu_obj, profile->name, true, NULL); + riscv_cpu_set_profile(RISCV_CPU(cpu_obj), profile, true); } } } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627819; cv=none; d=zohomail.com; s=zohoarc; b=XAA7MdsbVa9Ep6UL7m4LtBembKt+AmhRhOf4Sxi3k9SWqLluM+p2eADIpeV97z8G6rpjZx/lodxemgyY0BwdgYqmTDWZysZ1bdXnhbRTsuJRw6Jviq9RhaZErz+LHhLbUggjJ93rU+V/bY5kKQH5zxX53vKsD00Cia69l+tRL30= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627819; 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=LpUo3t0CFtoL7yIcswWKm5ZEpTzjIl6c03PRx99mmbY=; b=MVwv2lNAFeHw5LydZ1N3808MI48T+Pg6CfMEiCR32A24kjKUjWCwMwICgX5oDGSj0TLDKmoLitIRWURNb0feKpMPpYP5wwjtOytJdsro1XEcuxhPg3RmTCq9iFBTbWhNXzEPPmSMQ92pkycmNUseUiz/EeCBOPMkFKgIdQcH6aQ= 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 1751627819473841.5073109638279; Fri, 4 Jul 2025 04:16:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLx-0002Dx-4c; Fri, 04 Jul 2025 07:13:13 -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 1uXeLp-0001yt-0I for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:05 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLh-0002oA-9a for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:04 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-234b9dfb842so8258725ad.1 for ; Fri, 04 Jul 2025 04:12:56 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627575; x=1752232375; 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=LpUo3t0CFtoL7yIcswWKm5ZEpTzjIl6c03PRx99mmbY=; b=bj3cz6bAOerjfNvRz2welAcMtRghPjFBIx6Ppg/TztWWOR0LxRK1npTp4RKXKdMlRr REXNfMxtLmg91vgTvERKZ6rIhxG+RU+kSWQmJRHVNu5JN+z9emvMrlz70QdZG+k7dbcl tnyes2d58oEhBmoLRdgSypkP2htHQqHhXhm2/IxSQH8MoPqQg/tnKaAzbjfjs0k10zWf jaUyQkpFVLk/bCn/0CGtXURe2xETTPG3YaunFdu86MBftMdT93p5ce6lfkD26ROp4uGT xw1Oup8mKQzdWCaiwSSe21JINZVG0Z+lrvMckkjNqPw/nQM0j9iIL/aGADD0F0CPWFrt 6Zsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627575; x=1752232375; 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=LpUo3t0CFtoL7yIcswWKm5ZEpTzjIl6c03PRx99mmbY=; b=wDIZSnn88K8eHNeNY4cj6rmJUQlPGu0ZE8fV4aI/WQlTvI4GSc1NOzw+A0NMl+9V6g WwFcXSkMwZ+5QgSkh59j+g3kCK32J2opLi7bvyM0sBROHV9OFoSeJd3aHGlq2dE1vN1G xRUBFM0+I/V8o+HDibLxNqpC90ORG0c3jiIQDgSar6W78XIS5cwTJmWTrcdKrTBxP6+D 8/wrYqMIuOdJw/huZu71k2HPtvR9hsmQ/ZJmIgq6fzKTt1hzewiDVOfh5gGWwLPBEo0r 8lleIuqfUHRsGvcLLLbcSNnYpAR3ivpwaQjYGJT+FLqnZxCIRvBJ0MopBZYT1NgEGt17 SjQQ== X-Gm-Message-State: AOJu0YyKpAOJCIO7pkM7Y0LpzGVvK7efgEmxp+3uDXG1Ga6fRs+YBuxa B6clDgibn8MALoVTejqrv1Kiz35RpB2tdHV7LH7L6p7jNSgzHYZHeRuuxhatCw== X-Gm-Gg: ASbGncusGMNNsBsmRTcIyVaeHNR0qbvm/DYL5WMZrjzcXGotLezm/bePl9P+YgSx2jz pXQ/nX5f7/5mInDrTRuFC/kk6zTN7h3BI1t5WO/+fU7KXGmxb+IEB3Nfo3koglX2obgC8B6wioF WIhoePcSoWkSnJ3oGk9WXhXeUvVoismH+CQ1AcCzuoFN26zGYop5p57GekSpBfP0aKqXhsap0a/ 8pl/fGjL7ZNQfZELeRYrXtbc4nYLp9AGDkB0OEpDq6+IgmUXioC/3sJ1JA0a5glsUMF8USTLml4 8gsiYYijRYEd5nLEah31T3rOk+ga8ZMWTYTPVTIm/evP+qicdZJlVhk2towim+bVHm8bYyDGI+z Ks8oXcdNR+kgKhUoUknYDAjvbsPA5izey/f8a9zJHS70cJpzE1IODDucd/Vi3CaUTJ/8= X-Google-Smtp-Source: AGHT+IHihWIRVLa/yMlPl4TcNHVQosbhxF34co1DvF4wqCQvWPpPVi1Eqy84TB5BePegTqb1vxhQWA== X-Received: by 2002:a17:902:daca:b0:235:f298:cbbd with SMTP id d9443c01a7336-23c8747eddcmr35525825ad.21.1751627575062; Fri, 04 Jul 2025 04:12:55 -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 , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Andrew Jones , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= , Alistair Francis Subject: [PULL 08/40] target/riscv: add profile->present flag Date: Fri, 4 Jul 2025 21:11:35 +1000 Message-ID: <20250704111207.591994-9-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627820779116600 From: Daniel Henrique Barboza Bj=C3=B6rn reported in [1] a case where a rv64 CPU is going through the profile code path to enable satp mode. In this case,the amount of extensions on top of the rv64 CPU made it compliant with the RVA22S64 profile during the validation of CPU 0. When the subsequent CPUs were initialized the static profile object has the 'enable' flag set, enabling the profile code path for those CPUs. This happens because we are initializing and realizing each CPU before going to the next, i.e. init and realize CPU0, then init and realize CPU1 and so on. If we change any persistent state during the validation of CPU N it will interfere with the init/realization of CPU N+1. We're using the 'enabled' profile flag to do two distinct things: inform cpu_init() that we want profile extensions to be enabled, and telling QMP that a profile is currently enabled in the CPU. We want to be flexible enough to recognize profile support for all CPUs that has the extension prerequisites, but we do not want to force the profile code path if a profile wasn't set too. Add a new 'present' flag for profiles that will coexist with the 'enabled' flag. Enabling a profile means "we want to switch on all its mandatory extensions". A profile is 'present' if we asserted during validation that the CPU has the needed prerequisites. This means that the case reported by Bj=C3=B6rn now results in RVA22S64.enabled=3Dfalse and RVA22S64.present=3Dtrue. QMP will recognize it as a RVA22 compliant CPU and we won't force the CPU into the profile path. [1] https://lore.kernel.org/qemu-riscv/87y0usiz22.fsf@all.your.base.are.bel= ong.to.us/ Reported-by: Bj=C3=B6rn T=C3=B6pel Fixes: 2af005d610 ("target/riscv/tcg: validate profiles during finalize") Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Bj=C3=B6rn T=C3=B6pel Tested-by: Bj=C3=B6rn T=C3=B6pel Message-ID: <20250528184407.1451983-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 15 +++++++++++++++ target/riscv/riscv-qmp-cmds.c | 2 +- target/riscv/tcg/tcg-cpu.c | 11 +++-------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 229ade9ed9..2a6793e022 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -82,7 +82,22 @@ typedef struct riscv_cpu_profile { struct riscv_cpu_profile *s_parent; const char *name; uint32_t misa_ext; + /* + * The profile is enabled/disabled via command line or + * via cpu_init(). Enabling a profile will add all its + * mandatory extensions in the CPU during init(). + */ bool enabled; + /* + * The profile is present in the CPU, i.e. the current set of + * CPU extensions complies with it. A profile can be enabled + * and not present (e.g. the user disabled a mandatory extension) + * and the other way around (e.g. all mandatory extensions are + * present in a non-profile CPU). + * + * QMP uses this flag. + */ + bool present; bool user_set; int priv_spec; int satp_mode; diff --git a/target/riscv/riscv-qmp-cmds.c b/target/riscv/riscv-qmp-cmds.c index 8ba8aa0d5f..8a1856c50e 100644 --- a/target/riscv/riscv-qmp-cmds.c +++ b/target/riscv/riscv-qmp-cmds.c @@ -121,7 +121,7 @@ static void riscv_obj_add_profiles_qdict(Object *obj, Q= Dict *qdict_out) =20 for (int i =3D 0; riscv_profiles[i] !=3D NULL; i++) { profile =3D riscv_profiles[i]; - value =3D QOBJECT(qbool_from_bool(profile->enabled)); + value =3D QOBJECT(qbool_from_bool(profile->present)); =20 qdict_put_obj(qdict_out, profile->name, value); } diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index e10e03a577..c5e260e360 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -867,16 +867,11 @@ static void riscv_cpu_check_parent_profile(RISCVCPU *= cpu, RISCVCPUProfile *profile, RISCVCPUProfile *parent) { - const char *parent_name; - bool parent_enabled; - - if (!profile->enabled || !parent) { + if (!profile->present || !parent) { return; } =20 - parent_name =3D parent->name; - parent_enabled =3D object_property_get_bool(OBJECT(cpu), parent_name, = NULL); - profile->enabled =3D parent_enabled; + profile->present =3D parent->present; } =20 static void riscv_cpu_validate_profile(RISCVCPU *cpu, @@ -937,7 +932,7 @@ static void riscv_cpu_validate_profile(RISCVCPU *cpu, } } =20 - profile->enabled =3D profile_impl; + profile->present =3D profile_impl; =20 riscv_cpu_check_parent_profile(cpu, profile, profile->u_parent); riscv_cpu_check_parent_profile(cpu, profile, profile->s_parent); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628257; cv=none; d=zohomail.com; s=zohoarc; b=JWartVcg98/REZDKQ1gTkMkmszPf45x1op6SJ3QqLJwbz5RHvVgYIjMnKB5u30G0PNmf/2WgTe8X3OeKL9jQ1rpxDe8L/oUa9KVRycVp8D5CgiTG09N3KmVUek99nPhVGEmADdMfFjcb+m43YEwFCauB+rY1u9VHTDslfJK3CgU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628257; 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=KIB6W+/i6ZPM8armFh2cEM7Exu8V9Bmkl+w0LJdjQRw=; b=e8DAa6nGZMbdW859/XI1I4SKfwi0MhXczHevsO5V2qT6fEaNwICjWKMTJ5WE6lYVdwOOQ1S7OfQAb8Tpclv8JtwzZYf1R/gVIDiT/yzT5OnCcl9oPUPhgQkgtYX2BMGjNCujuVXq+2qoDau+AUlrRbbpMdAn4ZEImWO+ZLSIxxM= 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 1751628257340231.2169133204295; Fri, 4 Jul 2025 04:24:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLr-00023O-Qo; Fri, 04 Jul 2025 07:13:08 -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 1uXeLp-0001z6-9Y for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:05 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLk-0002wg-6r for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:04 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-235e1d710d8so11775705ad.1 for ; Fri, 04 Jul 2025 04:12:59 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:12:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627579; x=1752232379; 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=KIB6W+/i6ZPM8armFh2cEM7Exu8V9Bmkl+w0LJdjQRw=; b=UIFeu5Ha1Ejm2lE4e2SxxrYMvGR8ZENJYDJnjxl2Qa5v8EBWfVpHRFmHMUB3abfMQS usUQ291YFm8wPt5YPcmqjGqM+ShXl7T4sYHQLbdEfCFZ1rrHOed7v6UFgixyR9ayg6Bx yX4s1Cj+xI36Rn/qeOwkhkhEEvV7Njz1w4kw9IxXqQ+y8PfQogE6MHk6EFW1U0Dotfz1 2mW5HLm0al/sPUTbxJWM0qTRV768+caVPLuHIOpB+TPJYgm7y8NR6Lyg1IydpA1wkjRY lhr9wUcLjxhXeLriy8QW8hsWLRzAhut4YMlPt1HOPH16SwAimqL1KTthdJfKgQsIFDRJ eZCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627579; x=1752232379; 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=KIB6W+/i6ZPM8armFh2cEM7Exu8V9Bmkl+w0LJdjQRw=; b=jNP+X31zn5VryJ7blIsQZIuj78QxIv6Wvomx7FvrCGYcwpCLdfm0ckGoLyouMUfmma 3QcdfeAcdy5w/mWDp1EFLtBN7+RM78qfqlVjr0jZVHZXf1Dy5jP9otWUKhMLH8e3l36R q/UkLfBWtu5BTEJ2VvB8ev2QpyZs1kXdRkKQYAYmkrYhjQ8xoSjNfu3cAYdYBp2MFBPR VhT8jk5bsFmBPoQvQRbbAxXEqXsCTFwttUiDjYxXbGuvWlLPelDXxwYYCWZBqRndrfP0 nuXsPFB8PUR+tSf9OJ4tPDY/wamz9NVq7+21JMueX6n184o6I6Fs4+mDPnRIrgdaqjIq 2/yg== X-Gm-Message-State: AOJu0YykJVswVSscbYXEFFyk5TJE2MfHPYTc9syn3V7DfYGa9g/2JxYK TuJTMypYEEXQpzme3MdynBNoo5glPSw9B3G4/WKxWSGwg2t09QbjX4zdUo9VPA== X-Gm-Gg: ASbGncuBmVi9+vzcltS8zio8uFy3rpBauaDWNhRS0y9APeQhC3M8lZUHz7208U4B4Oy NuvfkDK6maibLI70ZjT6KcomVzRFsDezvlAgeaCBZZ6T5F7GYIxb6/tbrEKaYSJ7mPsavjdR9+n bXzqLvdpvaMoViskdLvEoGVkeEsTJtHWu+FiinPpPAo8g9djuxvoBI00gUWr2/Yaogc6Ll+ltyw l6USMCGnQ8YsNgDprhmdRDX58hsskhHasDaIxDFDnGW021hx2vM9HohJ9PhO/gPTWa2dRNJRP9/ TKkcsUqqS3jCjaxYnUCdJFXC7xtzCkuip+yydCYveT+Ur304TE1KEi1paK575LWLeFODRbtErWy W5r+CKOs5LC6bC2aVnzdkjEjAUbJp2v5Ti96qlDnCZ0VgKMgliBYQljcIw77/C8PV/Ok= X-Google-Smtp-Source: AGHT+IFQSWjP5dxtJBDqBfIF2GlpZHhPvHFJAu4De18job89aDFPZu89f8Stl9lDHRWiGiX6WiJHqg== X-Received: by 2002:a17:902:cccb:b0:234:a992:96d8 with SMTP id d9443c01a7336-23c86074854mr40665575ad.19.1751627578576; Fri, 04 Jul 2025 04:12:58 -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 , Daniel Henrique Barboza Subject: [PULL 09/40] target/riscv: Extend PMP region up to 64 Date: Fri, 4 Jul 2025 21:11:36 +1000 Message-ID: <20250704111207.591994-10-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628258687116600 From: Jay Chang According to the RISC-V Privileged Specification (version >1.12), RV32 supports 16 CSRs (pmpcfg0=E2=80=93pmpcfg15) to configure 64 PMP regions (pmpaddr0=E2=80=93pmpaddr63). Signed-off-by: Jay Chang Reviewed-by: Frank Chang Reviewed-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza Message-ID: <20250522081236.4050-2-jay.chang@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_bits.h | 60 +++++++++++++++++++ target/riscv/csr.c | 124 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 182 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index a30317c617..e6b3e28386 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -372,6 +372,18 @@ #define CSR_PMPCFG1 0x3a1 #define CSR_PMPCFG2 0x3a2 #define CSR_PMPCFG3 0x3a3 +#define CSR_PMPCFG4 0x3a4 +#define CSR_PMPCFG5 0x3a5 +#define CSR_PMPCFG6 0x3a6 +#define CSR_PMPCFG7 0x3a7 +#define CSR_PMPCFG8 0x3a8 +#define CSR_PMPCFG9 0x3a9 +#define CSR_PMPCFG10 0x3aa +#define CSR_PMPCFG11 0x3ab +#define CSR_PMPCFG12 0x3ac +#define CSR_PMPCFG13 0x3ad +#define CSR_PMPCFG14 0x3ae +#define CSR_PMPCFG15 0x3af #define CSR_PMPADDR0 0x3b0 #define CSR_PMPADDR1 0x3b1 #define CSR_PMPADDR2 0x3b2 @@ -388,6 +400,54 @@ #define CSR_PMPADDR13 0x3bd #define CSR_PMPADDR14 0x3be #define CSR_PMPADDR15 0x3bf +#define CSR_PMPADDR16 0x3c0 +#define CSR_PMPADDR17 0x3c1 +#define CSR_PMPADDR18 0x3c2 +#define CSR_PMPADDR19 0x3c3 +#define CSR_PMPADDR20 0x3c4 +#define CSR_PMPADDR21 0x3c5 +#define CSR_PMPADDR22 0x3c6 +#define CSR_PMPADDR23 0x3c7 +#define CSR_PMPADDR24 0x3c8 +#define CSR_PMPADDR25 0x3c9 +#define CSR_PMPADDR26 0x3ca +#define CSR_PMPADDR27 0x3cb +#define CSR_PMPADDR28 0x3cc +#define CSR_PMPADDR29 0x3cd +#define CSR_PMPADDR30 0x3ce +#define CSR_PMPADDR31 0x3cf +#define CSR_PMPADDR32 0x3d0 +#define CSR_PMPADDR33 0x3d1 +#define CSR_PMPADDR34 0x3d2 +#define CSR_PMPADDR35 0x3d3 +#define CSR_PMPADDR36 0x3d4 +#define CSR_PMPADDR37 0x3d5 +#define CSR_PMPADDR38 0x3d6 +#define CSR_PMPADDR39 0x3d7 +#define CSR_PMPADDR40 0x3d8 +#define CSR_PMPADDR41 0x3d9 +#define CSR_PMPADDR42 0x3da +#define CSR_PMPADDR43 0x3db +#define CSR_PMPADDR44 0x3dc +#define CSR_PMPADDR45 0x3dd +#define CSR_PMPADDR46 0x3de +#define CSR_PMPADDR47 0x3df +#define CSR_PMPADDR48 0x3e0 +#define CSR_PMPADDR49 0x3e1 +#define CSR_PMPADDR50 0x3e2 +#define CSR_PMPADDR51 0x3e3 +#define CSR_PMPADDR52 0x3e4 +#define CSR_PMPADDR53 0x3e5 +#define CSR_PMPADDR54 0x3e6 +#define CSR_PMPADDR55 0x3e7 +#define CSR_PMPADDR56 0x3e8 +#define CSR_PMPADDR57 0x3e9 +#define CSR_PMPADDR58 0x3ea +#define CSR_PMPADDR59 0x3eb +#define CSR_PMPADDR60 0x3ec +#define CSR_PMPADDR61 0x3ed +#define CSR_PMPADDR62 0x3ee +#define CSR_PMPADDR63 0x3ef =20 /* RNMI */ #define CSR_MNSCRATCH 0x740 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 1151ebb6ad..d6cd441133 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -6164,6 +6164,30 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_PMPCFG1] =3D { "pmpcfg1", pmp, read_pmpcfg, write_pmpcfg }, [CSR_PMPCFG2] =3D { "pmpcfg2", pmp, read_pmpcfg, write_pmpcfg }, [CSR_PMPCFG3] =3D { "pmpcfg3", pmp, read_pmpcfg, write_pmpcfg }, + [CSR_PMPCFG4] =3D { "pmpcfg4", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG5] =3D { "pmpcfg5", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG6] =3D { "pmpcfg6", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG7] =3D { "pmpcfg7", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG8] =3D { "pmpcfg8", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG9] =3D { "pmpcfg9", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG10] =3D { "pmpcfg10", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG11] =3D { "pmpcfg11", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG12] =3D { "pmpcfg12", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG13] =3D { "pmpcfg13", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG14] =3D { "pmpcfg14", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPCFG15] =3D { "pmpcfg15", pmp, read_pmpcfg, write_pmpcfg, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, [CSR_PMPADDR0] =3D { "pmpaddr0", pmp, read_pmpaddr, write_pmpaddr }, [CSR_PMPADDR1] =3D { "pmpaddr1", pmp, read_pmpaddr, write_pmpaddr }, [CSR_PMPADDR2] =3D { "pmpaddr2", pmp, read_pmpaddr, write_pmpaddr }, @@ -6178,8 +6202,104 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_PMPADDR11] =3D { "pmpaddr11", pmp, read_pmpaddr, write_pmpaddr }, [CSR_PMPADDR12] =3D { "pmpaddr12", pmp, read_pmpaddr, write_pmpaddr }, [CSR_PMPADDR13] =3D { "pmpaddr13", pmp, read_pmpaddr, write_pmpaddr }, - [CSR_PMPADDR14] =3D { "pmpaddr14", pmp, read_pmpaddr, write_pmpaddr }, - [CSR_PMPADDR15] =3D { "pmpaddr15", pmp, read_pmpaddr, write_pmpaddr }, + [CSR_PMPADDR14] =3D { "pmpaddr14", pmp, read_pmpaddr, write_pmpaddr }, + [CSR_PMPADDR15] =3D { "pmpaddr15", pmp, read_pmpaddr, write_pmpaddr }, + [CSR_PMPADDR16] =3D { "pmpaddr16", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR17] =3D { "pmpaddr17", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR18] =3D { "pmpaddr18", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR19] =3D { "pmpaddr19", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR20] =3D { "pmpaddr20", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR21] =3D { "pmpaddr21", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR22] =3D { "pmpaddr22", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR23] =3D { "pmpaddr23", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR24] =3D { "pmpaddr24", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR25] =3D { "pmpaddr25", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR26] =3D { "pmpaddr26", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR27] =3D { "pmpaddr27", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR28] =3D { "pmpaddr28", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR29] =3D { "pmpaddr29", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR30] =3D { "pmpaddr30", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR31] =3D { "pmpaddr31", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR32] =3D { "pmpaddr32", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR33] =3D { "pmpaddr33", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR34] =3D { "pmpaddr34", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR35] =3D { "pmpaddr35", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR36] =3D { "pmpaddr36", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR37] =3D { "pmpaddr37", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR38] =3D { "pmpaddr38", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR39] =3D { "pmpaddr39", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR40] =3D { "pmpaddr40", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR41] =3D { "pmpaddr41", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR42] =3D { "pmpaddr42", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR43] =3D { "pmpaddr43", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR44] =3D { "pmpaddr44", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR45] =3D { "pmpaddr45", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR46] =3D { "pmpaddr46", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR47] =3D { "pmpaddr47", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR48] =3D { "pmpaddr48", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR49] =3D { "pmpaddr49", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR50] =3D { "pmpaddr50", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR51] =3D { "pmpaddr51", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR52] =3D { "pmpaddr52", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR53] =3D { "pmpaddr53", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR54] =3D { "pmpaddr54", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR55] =3D { "pmpaddr55", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR56] =3D { "pmpaddr56", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR57] =3D { "pmpaddr57", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR58] =3D { "pmpaddr58", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR59] =3D { "pmpaddr59", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR60] =3D { "pmpaddr60", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR61] =3D { "pmpaddr61", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR62] =3D { "pmpaddr62", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_PMPADDR63] =3D { "pmpaddr63", pmp, read_pmpaddr, write_pmpaddr, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, =20 /* Debug CSRs */ [CSR_TSELECT] =3D { "tselect", debug, read_tselect, write_tselect= }, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627768; cv=none; d=zohomail.com; s=zohoarc; b=ZAGCDYsL2bUpMY1BqxJMsLPtZXZ2R1A8ah5brWdbQC4+jm9Yv/+y017GmjYBtvf3xLpSadYAmdad0cZUpgYTNPeSH+YdssAl9Kt5huaCDHWLYaOs8eHuQtoxQNZoJjZtMxWEuOSlj3rSsx+ilAxqnHoWVXyOhPTxGIk8JgucEvI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627768; 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=NpC4Yp9xAW0N3T6Tteiy7UBN259S4dShS5JJ++ECn+Q=; b=Aty656/oEjXKJROwxBc+TNUiAtpR7kdzwNGiI/0WbkyXxfP1MGvHF8o/sYb9NZ4EUrkJ7Wf74h5tVUT8gBsozhgtPnH9E+0X96iS8bihis4zGYOJLpIawtoG6gqPZfPjHH8NKkRNIb/ggWqPoywizx2zuNpT4MQS0BpCLiOBxd8= 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 1751627768182818.7366801335655; Fri, 4 Jul 2025 04:16:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeLx-0002EW-5N; Fri, 04 Jul 2025 07:13:13 -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 1uXeLr-00023c-NT for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:07 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLo-000312-4r for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:07 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-23633a6ac50so12207825ad.2 for ; Fri, 04 Jul 2025 04:13:02 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.12.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627581; x=1752232381; 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=NpC4Yp9xAW0N3T6Tteiy7UBN259S4dShS5JJ++ECn+Q=; b=auRDZzubeYuRpiMVdAOxMpAGZf5yaas0VYnPmG7589MAy9m4AWOEWlgcBQ4B1dQ+Fa LSkj7s9OQQQ73Q9rXdqMTJDZV7hoWZPXhh/tmuoonmFSC7kyiji6ax0TYmw9LZC4XMnk WUEizgLCdZbUNBHpypiE2HxjGwgJeXGKT1krmnJcuf2soglod9XPIiqjCUh1ebYycWEb yzRRLgHiPLi2fcuymRIYLSAIX/ZxpANoiY7V/HMAs+noxaNy3/B1QpC92umQl/+GDK86 m7/HCz+XAGt2CvdBFSksbfXbbNosHQBaqYcx0NUPoo3pfs9diW8BexO9KOmZOjpY8z42 /oNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627581; x=1752232381; 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=NpC4Yp9xAW0N3T6Tteiy7UBN259S4dShS5JJ++ECn+Q=; b=oNrgjwsDvKebX0jUe1PQfFfOuwSIIrTylYUx0e3bOh0/+aJ5uNniJejQOfr4BVvXEG /dkLjYIuKJRH6Cl/YQ7ylozlrGO4MgHpjBbal4urTbbtTD8tLnuZYAyLaUUwoL+n1vGl y16BLsZu251ciJF9DwKaRhibwVdS0grsYKT1sUW0xRGGKigxwa7uVNQgTkSomvQxRocP CIrAQh+1SXArc4XR1rFFd4gEzOw8TJRXxT0L+KO/oV0nvZSC5yqwFsQx0/9Vyi1IRjNe 7FsTLh6S5Zpn+0oZevAG/ynXicPouEv0MxkWqWQlHMBBST1GSXCSAI5HBE67oU9YGPGE dThw== X-Gm-Message-State: AOJu0Yy8YNA9clUlnTykGxy7u82CS+wDp127+KIE2Z577TEjnfw2VeFq clIer4rDSK/6WLPVcatmqOa/zhkvsO1Q4VRRqIr8yxhx0imQ70GxvX1u69IpnA== X-Gm-Gg: ASbGncuelFOmrZWVRP8ElFLJgFgmyxwS1wu3bwhHlPN1YI46XXn6GUHlgtRvR4oo5BG +RzYGNyZzpHKNdvFyZb37X+B5dYI45MgnZXZY9dxaPX8dX2DQw0rSsA/Zhc67PesouUqZyizt9+ AhRd+WpP73Litv8dUVJV4tYz18JkgyQNWu35c3L1uknAggQT23SoFdVSjko09i5I1/dPPtlJGj4 CF4NoZ/BSNXMedpedaQNLG0VRH/lRCqk4nfFrNR4HPh59qc7cTo+HWcPXmgwD/MTrs6bHScmQdY UsF0AY691VrvnfbHNWqbUb/ay2JI3me2I7ov8hJuzFiExeO5kMUiEzZ0MicUDZY9hPLJ109pKCM Q7f/7+t1Nm0GzNvr0jBy17QO6YuKbnIOFzplx+gMRlfCol/193eFVWn+cdDIwYHoOsy8= X-Google-Smtp-Source: AGHT+IFG9pmmPG7wqpdzTObXC3oJblhN7r4WFFSKwXdh8QKBIt5IinMXklbMz49Kdc6cHH4LR5LtVw== X-Received: by 2002:a17:902:ea06:b0:236:8df9:ab38 with SMTP id d9443c01a7336-23c860d4f93mr40811565ad.34.1751627581292; Fri, 04 Jul 2025 04:13:01 -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 , Alistair Francis Subject: [PULL 10/40] target/riscv: remove capital 'Z' CPU properties Date: Fri, 4 Jul 2025 21:11:37 +1000 Message-ID: <20250704111207.591994-11-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627769964116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza These properties were deprecated in QEMU 8.2, commit 8043effd9b. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250530134608.1806922-1-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 1 - target/riscv/cpu.c | 17 ----------------- target/riscv/tcg/tcg-cpu.c | 31 +------------------------------ 3 files changed, 1 insertion(+), 48 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 2a6793e022..17bf4e7579 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -951,7 +951,6 @@ extern const RISCVCPUMultiExtConfig riscv_cpu_extension= s[]; extern const RISCVCPUMultiExtConfig riscv_cpu_vendor_exts[]; extern const RISCVCPUMultiExtConfig riscv_cpu_experimental_exts[]; extern const RISCVCPUMultiExtConfig riscv_cpu_named_features[]; -extern const RISCVCPUMultiExtConfig riscv_cpu_deprecated_exts[]; =20 typedef struct isa_ext_data { const char *name; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index fe21e0fb44..7c6e0844d0 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1387,23 +1387,6 @@ const RISCVCPUMultiExtConfig riscv_cpu_named_feature= s[] =3D { { }, }; =20 -/* Deprecated entries marked for future removal */ -const RISCVCPUMultiExtConfig riscv_cpu_deprecated_exts[] =3D { - MULTI_EXT_CFG_BOOL("Zifencei", ext_zifencei, true), - MULTI_EXT_CFG_BOOL("Zicsr", ext_zicsr, true), - MULTI_EXT_CFG_BOOL("Zihintntl", ext_zihintntl, true), - MULTI_EXT_CFG_BOOL("Zihintpause", ext_zihintpause, true), - MULTI_EXT_CFG_BOOL("Zawrs", ext_zawrs, true), - MULTI_EXT_CFG_BOOL("Zfa", ext_zfa, true), - MULTI_EXT_CFG_BOOL("Zfh", ext_zfh, false), - MULTI_EXT_CFG_BOOL("Zfhmin", ext_zfhmin, false), - MULTI_EXT_CFG_BOOL("Zve32f", ext_zve32f, false), - MULTI_EXT_CFG_BOOL("Zve64f", ext_zve64f, false), - MULTI_EXT_CFG_BOOL("Zve64d", ext_zve64d, false), - - { }, -}; - static void cpu_set_prop_err(RISCVCPU *cpu, const char *propname, Error **errp) { diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index c5e260e360..81174de409 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -1442,25 +1442,6 @@ static void riscv_cpu_add_profiles(Object *cpu_obj) } } =20 -static bool cpu_ext_is_deprecated(const char *ext_name) -{ - return isupper(ext_name[0]); -} - -/* - * String will be allocated in the heap. Caller is responsible - * for freeing it. - */ -static char *cpu_ext_to_lower(const char *ext_name) -{ - char *ret =3D g_malloc0(strlen(ext_name) + 1); - - strcpy(ret, ext_name); - ret[0] =3D tolower(ret[0]); - - return ret; -} - static void cpu_set_multi_ext_cfg(Object *obj, Visitor *v, const char *nam= e, void *opaque, Error **errp) { @@ -1473,13 +1454,6 @@ static void cpu_set_multi_ext_cfg(Object *obj, Visit= or *v, const char *name, return; } =20 - if (cpu_ext_is_deprecated(multi_ext_cfg->name)) { - g_autofree char *lower =3D cpu_ext_to_lower(multi_ext_cfg->name); - - warn_report("CPU property '%s' is deprecated. Please use '%s' inst= ead", - multi_ext_cfg->name, lower); - } - cpu_cfg_ext_add_user_opt(multi_ext_cfg->offset, value); =20 prev_val =3D isa_ext_is_enabled(cpu, multi_ext_cfg->offset); @@ -1515,14 +1489,13 @@ static void cpu_add_multi_ext_prop(Object *cpu_obj, const RISCVCPUMultiExtConfig *multi_cfg) { bool generic_cpu =3D riscv_cpu_is_generic(cpu_obj); - bool deprecated_ext =3D cpu_ext_is_deprecated(multi_cfg->name); =20 object_property_add(cpu_obj, multi_cfg->name, "bool", cpu_get_multi_ext_cfg, cpu_set_multi_ext_cfg, NULL, (void *)multi_cfg); =20 - if (!generic_cpu || deprecated_ext) { + if (!generic_cpu) { return; } =20 @@ -1565,8 +1538,6 @@ static void riscv_cpu_add_user_properties(Object *obj) riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_vendor_exts); riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_experimental_exts); =20 - riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_deprecated_exts); - riscv_cpu_add_profiles(obj); } =20 --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627659; cv=none; d=zohomail.com; s=zohoarc; b=anZVnKgHZBzGwaOpANVdvOSBolAWbA3ZMmgV8KNYi0ozDRxPASu1fFbr9algOq+pEddwx02pPN0mboCEtgP55TGAZpozlB31T01hpvpJJiCNo3sx9Ew5P7FVsmWcYR04TWUkw2dNXgV0DMyApX1iF7nUJhpKPcrxDZhQbP5EP6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627659; 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=wukv0DOSwKF1QSCxncv8qsgC08USos6JXcq8SCd4uBQ=; b=ZTU3aP7r/OS5JSSOMPke+Ox9ORQI3V21mGbu/S7hJxWkZIxBaBV6VBWYk2+sCUGOZivj4L2iFOvl3ybm86daBWJVoz9OhBIkDkUyzYOlrr6UwXvBHXBmQEfBaenHUKRRTaYQo6cS0Uf2WAf4LEA85sPXnymcG7qgt1Ntd/llA3o= 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 1751627659686119.2571359510074; Fri, 4 Jul 2025 04:14:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMQ-0002qV-4M; Fri, 04 Jul 2025 07:13:46 -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 1uXeLs-00023l-0P for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:08 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLp-00035E-UI for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:07 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-23508d30142so11797135ad.0 for ; Fri, 04 Jul 2025 04:13:05 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627584; x=1752232384; 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=wukv0DOSwKF1QSCxncv8qsgC08USos6JXcq8SCd4uBQ=; b=Sx0NKX4LmaiuyizSkLew4tRPP4ZSyhyjSIZJ4+NJ/PGdKbeJHDmZQ1fT7+K/ivs7Gw QEGNnnv+WkaloT75bAjPFM2wHYhU9RzebLOUOfdvr9F5ZMY2hbH0/oGUv/nsGXUn768p JhEqU50PMGR4Yab5LeNHmeSDtnaRCPNASAJA3FV2+rWj1ysTrr9uIKggB4P2ej53giG0 KzAniDRBZXfPUc5fNnGXvCt0QJwiDYuiOdmhIs/yrfvXEfK3Cp97QqfxMv4eSViVHyV2 s2e7GpeS6shIWN2gsP0eFAsNf1VIUuHEBwuSs69OYt2CRQWKiVbqj4/WaXWMGAe8dEkC ZECw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627584; x=1752232384; 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=wukv0DOSwKF1QSCxncv8qsgC08USos6JXcq8SCd4uBQ=; b=kyweF8u/m+s0H45+8NN/A7M/otHqemiKlIZm6EsCxg93CFIbQYSErRsaq7nPrSS/vE v+7DwVNGFkmCcJfMlwwZUaSM72fpkJlvcrLJyGGaEiK+C05VIJ4XH73mRqcxjyRmD7H5 b23+qQZ0Bg4tLdpUbf9UxpLPavOSAQKj+SxTSyCYJHnb6Mfj/CTT/uhZF0RBXfaiSJFG biLNXBl0SOODRA/8BLP0wUOzvmqTHLdFVwFqF1lYWnQuBVW7e202ym8r465i3YvOHgVZ KqIGitKK5vNMWZq2b0Cy5K6U7bStdie8qzREzpW9zwf+/CNJTD9SHzoIuC8gfKSmvtWd SInQ== X-Gm-Message-State: AOJu0Yyc/D5yvQo8P7gtlS0N1mbYepnVKwLttetODAMvHnkSNv/liizV 0no0KKuJfZk3phqhUawMOmZ/qpVQQ4TEXGdnBrpvIAeNSgvYYFjDMfXUYOZCAA== X-Gm-Gg: ASbGncv+cxmGYUFXcm6tQjPH945PkO0B2H24tDv+NYK7yUALmhr8HE6A1oszyP5V+4+ /kZ2pOYzZj60k0Vq14fQuW6CKVt/dfCTPX8qdCRJppjB2+7PPty4owpI8kaVVi6DCjHhPZpNJPe DvLCQqRf7YRY0t6Zsa5G5B+afIih1rr9rljQXFryTxRwELfpGudnHkhkn1Xm1ELBHGlrbdqn8HT 42QT9l3PClMXVAVdwifza04LE3dW/Ye44AI7ghd9X7w0EJ4kVUsZHsaAlgLS2a1GksmkQHV31lN O7WGhysFtS0WI0N4eFr3jeYA4ButLdqJY3YSrWs0oWGtAb34m4q7mMWv4EvAyUJYvsAP1ppDnWD iDc7RCKD8DK+PM4+YR42aCvvKLGN9D0Kkfgu1XkCciw1MkQyocoA6AZfXzKyEWKjEtbE= X-Google-Smtp-Source: AGHT+IH+AWo/IcZ4BEX1UjGbQUrAWmsL8Ey8njCOSZURfp9354abzclw0s9pa5wNZkZctopv9QcrHw== X-Received: by 2002:a17:902:e5c1:b0:235:ecf2:393 with SMTP id d9443c01a7336-23c85ecb801mr41712735ad.53.1751627584010; Fri, 04 Jul 2025 04:13:04 -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 , Alistair Francis Subject: [PULL 11/40] target/riscv/cpu.c: add 'sdtrig' in riscv,isa Date: Fri, 4 Jul 2025 21:11:38 +1000 Message-ID: <20250704111207.591994-12-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=alistair23@gmail.com; helo=mail-pl1-x633.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627660949116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza We have support for sdtrig for awhile but we are not advertising it. It is enabled by default via the 'debug' flag. Use the same flag to also advertise sdtrig. Add an exception in disable_priv_spec_isa_exts() to avoid spamming warnings for 'sdtrig' for vendor CPUs like sifive_u. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Message-ID: <20250604174329.1147549-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 1 + target/riscv/tcg/tcg-cpu.c | 9 +++++++++ tests/data/acpi/riscv64/virt/RHCT | Bin 400 -> 406 bytes 3 files changed, 10 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7c6e0844d0..b4e7eff331 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -189,6 +189,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(zvkt, PRIV_VERSION_1_12_0, ext_zvkt), ISA_EXT_DATA_ENTRY(zhinx, PRIV_VERSION_1_12_0, ext_zhinx), ISA_EXT_DATA_ENTRY(zhinxmin, PRIV_VERSION_1_12_0, ext_zhinxmin), + ISA_EXT_DATA_ENTRY(sdtrig, PRIV_VERSION_1_12_0, debug), ISA_EXT_DATA_ENTRY(shcounterenw, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(sha, PRIV_VERSION_1_12_0, ext_sha), ISA_EXT_DATA_ENTRY(shgatpa, PRIV_VERSION_1_12_0, has_priv_1_12), diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 81174de409..163e7ce364 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -451,6 +451,15 @@ static void riscv_cpu_disable_priv_spec_isa_exts(RISCV= CPU *cpu) continue; } =20 + /* + * cpu.debug =3D true is marked as 'sdtrig', priv spec 1.12. + * Skip this warning since existing CPUs with older priv + * spec and debug =3D true will be impacted. + */ + if (!strcmp(edata->name, "sdtrig")) { + continue; + } + isa_ext_update_enabled(cpu, edata->ext_enable_offset, false); =20 /* diff --git a/tests/data/acpi/riscv64/virt/RHCT b/tests/data/acpi/riscv64/vi= rt/RHCT index 13c8025b86..156607dec4 100644 Binary files a/tests/data/acpi/riscv64/virt/RHCT and b/tests/data/acpi/risc= v64/virt/RHCT differ --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627986; cv=none; d=zohomail.com; s=zohoarc; b=D4Y17vOP2Ev08BQIIDXQBZVgb8j9IXTkRzIGnqbXCIQB8LK2IxIjIIRXZVyjM9M7eujITKTSA5UQo8+EjZBJBfwa4AdZvOVcskbfoixCo1BRKB7Y9fTyHBfEqf/rT2FKzqvCcnUmmZ6WUWtM0hg6mqQfZu5UI1+7I6of1WvpD5I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627986; 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=76WPPZHQq4LKV1s9IuHTeixJXupaUC4s7ONmVql1/4g=; b=diaxmQ1AqLiOZI6JiB6I/5FbLWxlQvIig1sn6yC6H0yEsj5fW603BOPaAFrHrJKW5LOm/J733M0MfolQWHKFaDUiYzZ6TwW91NQoxX4H4F0AGyI9DrYei2WCbSUFY1KnWpj3rAeaVHkUwoaQd+KUA2ndZiND95tDmmLmDZ3DsZU= 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 175162798627590.51344850029648; Fri, 4 Jul 2025 04:19:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeM0-0002TS-B4; Fri, 04 Jul 2025 07:13:16 -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 1uXeLu-00027f-J6 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:10 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLs-0003Bx-In for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:09 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-234d366e5f2so13002425ad.1 for ; Fri, 04 Jul 2025 04:13:08 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627587; x=1752232387; 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=76WPPZHQq4LKV1s9IuHTeixJXupaUC4s7ONmVql1/4g=; b=fSHGoFz6MyQqL8bBnOEEPc8ENc4sOzu1brX981p5C0wlJv8a1AU115JBsqCzlV+39g RagsTfJF9kAfa+LiJSeXPao61EQQXqw0BgIrqGCtU/JDwvPg3OI1/iNFBjA+A//QN1IQ mak4razsm7IdUZaviUza7RYyuoLicjhGJoUBlXGjfYIwwOChD6JB5VR+d+Uf6z8fMGPw DB37P04Y+QGGAfUcUZjAq6PQQn2iQXAJnu9FGkvkKhcq/rzlxZei3bteI/lud6mZf8z2 NIfJmmuxQaFZlT7ABZpotz/U8X20RQaq0MI3wBJ0XZYaNK3zJdwCLZh4TATWzOUnkwC5 cGpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627587; x=1752232387; 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=76WPPZHQq4LKV1s9IuHTeixJXupaUC4s7ONmVql1/4g=; b=Mfv4MMnLz0KAIzAICU8cG7W08Sr6ANoAXIiBg4FONtw/lQDHMWq51r3t9DDEO2ovWL 8Y/fZvD0/Bs8+8sM++/5dncNdCEfuMXKQbx0C+bOprctDQ9AleKlOs2ycClo3C5KHWtc TRzSNw8Jqm3dLqcHoqMfVFeUcD5nQ/VmCMQk1oFO7lY7FhH5369lm/Pf+cxVVW8yLk8F 29DRgkPZEmsOMgEIut+gOQ+enbS08klUuXIsuVMMevtw+2xAGJI7xhHazfTas5nlG4wv ojgVRgNEPvGnH5T7HioCEX2vYX/1t4PpHFSf19QEin+vu4rEYZxdxUoPkGWZ8Jab/1dt Tacg== X-Gm-Message-State: AOJu0Yw+i7Wadjpd7Z7SP6RlIOp9Pdd+E8Zk0URL7sI/hi6PFzuXMXLq 4p9qnuJbjBmHd5vrMH/kOawEb3LCDxAvppAV/l/+nPSD7KK9Q273Jq8B87DM3w== X-Gm-Gg: ASbGncuUeJLt78HrCkx1gOBkAnWGn8nRNPEaUpOojcT6Tv2Cgvt4ECZURDDLzWcA2DX vRm68JbffhPGfDoq4aAfMVkRONYSKr4veMu094/rOXffXbQWFqjHp7e7Fq6ikyYzgOreMo9O42T sZpRCQ1JupmdzLi6O+OJsXJ6MXCQcUO5RFFhwwlyUaKydXKOrBP2P4nRpmnNpZiSmt8Br9AFJ3x fUyMd/Yr6ahbSYiDk4mjXhsOQwgC47fw8LGxITzF+4ok2OlNkLFBQjsxtp/JtGrZD2RaYiDTAv+ SI+Y/+5kM1LSgAHM03eDpdGw823okjaDwDtJx4vKv3TOj5KgdG1IcnNmuNLdf7kk0P03wEpcDSG 7L5U3a2+GvA4Dh709Kebv7qkrzGa41tBD8QOo+ZhYWzDt+jvB8yxFJlFFIgA9ZpuAmFM= X-Google-Smtp-Source: AGHT+IGnxhfk9nL9iM+cynY9XgQB8O9vtNY521rMyUjgjvjFypr8Z4FW4izA3Iv/m1Eae0tid12G6A== X-Received: by 2002:a17:902:ccd0:b0:235:f078:473e with SMTP id d9443c01a7336-23c875aacb4mr32980925ad.43.1751627586986; Fri, 04 Jul 2025 04:13:06 -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 , Andrew Jones , Alistair Francis Subject: [PULL 12/40] target/riscv/cpu.c: add 'ssstrict' to riscv, isa Date: Fri, 4 Jul 2025 21:11:39 +1000 Message-ID: <20250704111207.591994-13-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627987619116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza 'ssstrict' is a RVA23 profile-defined extension defined as follows: "No non-conforming extensions are present. Attempts to execute unimplemented opcodes or access unimplemented CSRs in the standard or reserved encoding spaces raises an illegal instruction exception that results in a contained trap to the supervisor-mode trap handler." In short, we need to throw an exception when accessing unimplemented CSRs or opcodes. We do that, so let's advertise it. Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Message-ID: <20250529202315.1684198-3-dbarboza@ventanamicro.com> Message-ID: <20250604174329.1147549-3-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 1 + tests/data/acpi/riscv64/virt/RHCT | Bin 406 -> 416 bytes 2 files changed, 1 insertion(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b4e7eff331..626b0b8b26 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -217,6 +217,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(ssnpm, PRIV_VERSION_1_13_0, ext_ssnpm), ISA_EXT_DATA_ENTRY(sspm, PRIV_VERSION_1_13_0, ext_sspm), ISA_EXT_DATA_ENTRY(ssstateen, PRIV_VERSION_1_12_0, ext_ssstateen), + ISA_EXT_DATA_ENTRY(ssstrict, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(sstc, PRIV_VERSION_1_12_0, ext_sstc), ISA_EXT_DATA_ENTRY(sstvala, PRIV_VERSION_1_12_0, has_priv_1_12), ISA_EXT_DATA_ENTRY(sstvecd, PRIV_VERSION_1_12_0, has_priv_1_12), diff --git a/tests/data/acpi/riscv64/virt/RHCT b/tests/data/acpi/riscv64/vi= rt/RHCT index 156607dec4..52a4cc4b63 100644 Binary files a/tests/data/acpi/riscv64/virt/RHCT and b/tests/data/acpi/risc= v64/virt/RHCT differ --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627859; cv=none; d=zohomail.com; s=zohoarc; b=Sw84o3Mtn9DKrNd5jlbaIjmy/jHdE8A9SNakA0/pA2SRPTlidCuK0rcmfNss2+TXX/4f8Ezg1MajssL21m+ViG5ISkxUsshoYa2LOpK4I9DDVVTz/mbFtpAu0HkHgcRsb/FstFRJ2q7xSh0kvftnxSSKx7MLGjr+9Wnx6dH+snY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627859; 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=QqWQWEbZK5lXCGuAyvlGEuyQ0XlOT+jS4umfC5xFEl8=; b=N7MwbUxkX3cRKk3ggq+MNAcfb9uE25aesCN0ZMFlCCF2blRP/Raqn4p3wOPpeZ8DxbPve9xFEK+zck92PiCgxKaOrQon+8Jn9orxMw18meajBuAq+9Njko7PetIcAXB9cUXnIvEHqk5WIvFTL9M2rpANzLuU12JjM+JZZXS1zKY= 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 1751627859965384.3744159684966; Fri, 4 Jul 2025 04:17:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMo-0003m0-BH; Fri, 04 Jul 2025 07:14:06 -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 1uXeLx-0002Gw-9Y for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:13 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLv-0003Dk-Iw for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:13 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-235ea292956so8658915ad.1 for ; Fri, 04 Jul 2025 04:13:11 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627590; x=1752232390; 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=QqWQWEbZK5lXCGuAyvlGEuyQ0XlOT+jS4umfC5xFEl8=; b=VzDlO64O/PVlVkqFVH1w2rOejZqc7vjhn33RyNBgmKqX8msXocTowqJ9BOd3fdIRPH LT7KRg1WClRKsz68sfclWFYSsyVw2nHCVnBfp6Z2jIs7zj5cNIJN7kU+GdULNl/rQzTL v3JpDaGS/rDMVizoK95oIuu7iIsyPHjWI3GFOJzJw111iQWDT+qjrp4K+lqSdJvA6Gdr iLCmHMvB0vZBVxM0/i14g+9A5Jik7CzJwrrc0TEhcybatHLa/N+1+4OH64X2N2p5blnc 8W56XKFhb3cvmO5raHxFSXNagY5TZsICD5CYorDn6LgPlsdkWjZaE80sinKaexE1/GTL 5VXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627590; x=1752232390; 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=QqWQWEbZK5lXCGuAyvlGEuyQ0XlOT+jS4umfC5xFEl8=; b=iHUVOd+n7AILe7CmUBPLrbpD0dQ+s9rukWVUgaKlXXvYrM4qn5gW/fXXuocuyTLCzG +lprIC6cuV0vRvNlrZVYFArnSb144Q9MYsz2C7cTf8i/W55l+Da2vUxDR6a/22RYDlJl Azw7a3k+fcgb0WKi/5qizRFZ8P8cbg+INb0UaqjDflZSBSLBo/ZbAW5CgkzyymmabzFA b6G+jLHungTJK2A80kdYSILna0DCEkwv0jBzjfDGQMf6ZYLpJiNRvMty6Vm3sZMqQfZ1 aw9D2uwyHgOeHGDJHl1TnT57Y4aaYeNGTAwD6FuvWRc4KOfNDNDF84UdeqifWqTKpElQ cMkQ== X-Gm-Message-State: AOJu0Ywr5eanG7NNAoBk9ywLR2Wr7dBRLBBDMQ8v2gFueljQwy+fX3HK IdX8c088e/AHwhLQfDCUmsK1AFiots1ITi7xu3ug3TSnQ4Y1/NDgGTLTjFnfNA== X-Gm-Gg: ASbGncuVrw6l1FO59daKaLeZ1Sy9r6pSuFJF1QMSS4jFiaHNvwQZX5rpMQIwwwz0srP DevMa3/2TY4gNTiq3sdKf1GUR3oXqxaLR0UQ9q2bNd2ZfFTDuBehqTN6RExVNvTZnOS1P/hlVOe /VqvC4601O1hd34xPcA4LrRRi4xbPvSzE7n/15X+a63v9vhi3qwkgciL384MJH4dilyk+QtCD6S /KpaC1MfEmQwcDG9/lZhV4yJvKY02eJlR1geAQ4AohZeTRbLJb7MT+dlpc3H+2iMoHak3MsAGxd 4KxyoERmoB6moIo8EPIuoV28p0L7O33IyMJAzQ9tWTFoOHb0KSaNoCq9DcgIy1rPUS7oymyuUMC aZPmxrkh6g560Cftr/p1peK9vjxhWqlmZmEhlkyJcl5Wwx/lEVK2Z/f+sNZqavwVnHoo= X-Google-Smtp-Source: AGHT+IGowoUlWTjDdaszaB4+AC6dZ3HqXK+72eiQjT4Jhg3ult4abxcQNo/ey4IjCgpTpLt7AXGXsg== X-Received: by 2002:a17:902:ce89:b0:234:d7b2:2ab9 with SMTP id d9443c01a7336-23c87472898mr28785735ad.12.1751627589663; Fri, 04 Jul 2025 04:13:09 -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 , Alistair Francis Subject: [PULL 13/40] target/riscv/cpu.c: do better with 'named features' doc Date: Fri, 4 Jul 2025 21:11:40 +1000 Message-ID: <20250704111207.591994-14-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=alistair23@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627861158116600 Content-Type: text/plain; charset="utf-8" From: Daniel Henrique Barboza Most of the named features are added directly in isa_edata_arr[], some of them are also added in riscv_cpu_named_features(). There is a reason for that, and the existing docs can do better explaining it. Signed-off-by: Daniel Henrique Barboza Message-ID: <20250529202315.1684198-4-dbarboza@ventanamicro.com> Acked-by: Alistair Francis Message-ID: <20250604174329.1147549-4-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 626b0b8b26..bf14256a61 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1377,13 +1377,23 @@ const RISCVCPUMultiExtConfig riscv_cpu_experimental= _exts[] =3D { * 'Named features' is the name we give to extensions that we * don't want to expose to users. They are either immutable * (always enabled/disable) or they'll vary depending on - * the resulting CPU state. They have riscv,isa strings - * and priv_ver like regular extensions. + * the resulting CPU state. + * + * Some of them are always enabled depending on priv version + * of the CPU and are declared directly in isa_edata_arr[]. + * The ones listed here have special checks during finalize() + * time and require their own flags like regular extensions. + * See riscv_cpu_update_named_features() for more info. */ const RISCVCPUMultiExtConfig riscv_cpu_named_features[] =3D { MULTI_EXT_CFG_BOOL("zic64b", ext_zic64b, true), MULTI_EXT_CFG_BOOL("ssstateen", ext_ssstateen, true), MULTI_EXT_CFG_BOOL("sha", ext_sha, true), + + /* + * 'ziccrse' has its own flag because the KVM driver + * wants to enable/disable it on its own accord. + */ MULTI_EXT_CFG_BOOL("ziccrse", ext_ziccrse, true), =20 { }, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628008; cv=none; d=zohomail.com; s=zohoarc; b=lIHsVMGbsgt1BTA5Bx9DA6vdv6hcZve9YwPyK6GVjyg5L2VFePhdQyl2aWo7mmzvdnpMmu5cWnkzefTM/8gI5njXkDXIMObRvXzu1uO860V4vgfMuADwThEgzCbUupebJLehaWY5GVcM6nBy7VBK5ULfA1afBEBhFfL8aItBiks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628008; 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=N57kfUKQDmNxAKJP5RLugaPyuMP/7dcniyDLG0IHlCM=; b=atfJcEL4w8PuBs/DvVkwp0FmsBrzstFa2ezhHg5gvq1glaS0MqCIoAkwqo/DgWY2BcnyEuY8MvOtB0BTfyZBoxiBizwNtVaixkWG+OBDYcjYzmCaATOuTnY4PvOhS01bdCaMLalbYd7+QxoAf9WHbYPNpuS/0AGOxrdOs2ksYns= 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 1751628008196972.686263580407; Fri, 4 Jul 2025 04:20:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMl-0003SD-CG; Fri, 04 Jul 2025 07:14:03 -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 1uXeM0-0002W9-Lu for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:18 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeLy-0003IM-Ph for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:16 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-311c95ddfb5so798763a91.2 for ; Fri, 04 Jul 2025 04:13:14 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627593; x=1752232393; 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=N57kfUKQDmNxAKJP5RLugaPyuMP/7dcniyDLG0IHlCM=; b=E198ui4B5qLr6grfLWqdO/CzXSlwPl/H11hnhG2HxYePNevwmftaRO/qraXfW8P/NF KpBAz+LyW5O5xlnHKzxy3PK86gzPDFoC+PtJksPRd9k1USfaXlOBmMMRyhK3NkDhndAM 3TUIVDmQ/4+NRy3gErI2s2CWGOjtEYHA4AfGoy8wRjYHu/d1uZuZCmDDOWuSto7jJBvE uHNNz1o2kv9L8tlLNnNjdPXvMtQxAoylK1Dj8IHQEj5nvRrpqoYOhQ9nRAkz610fm6LG cm+D/UmX1g23I2PNVcRrOl4swwUUcYQzOCF9KOMc8k+/pSVFYu+2mUXw1dJ7U5ZH/opf RV5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627593; x=1752232393; 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=N57kfUKQDmNxAKJP5RLugaPyuMP/7dcniyDLG0IHlCM=; b=HDlJP63Rz1eeq+77PLTAc5IeT4oucjOSLLOxWlCBnzTdi+n8EOW0wpr7VleTX8dXpR AOvgGTKh46HlwrzkEpEvBcxYeJQfBC7ZBXp2rG5bO0pOtox156CdQt9F9pw8t9fHZ6iq SSdfQQ34LRY/EaMQ6w4wgQgZ0gZ6HWCq/Hb7y/DiHqpojw1khAYcIox+SO6HkkDkUTK2 lV7VTinzTCQAE+rVQve3kd+d3c+A87sXdwpveTYBkWDZbrpG0EXNhOYoYdZ462PDNbZV 6wZ7Ss9nt+uTswiYziWiM1vbZqd7DbKPkAhrUcpGRuAfcWSjcX9TCY1StFAyGGZ1RaEX iAHg== X-Gm-Message-State: AOJu0Yw+8zVzn0zrLELQwu07WWPWa/D5LfuzwJbg/7uaPRyM/uVAYCEA XdI7C6KpGEvEdRKH5LHykEc3wy/HPpRiAttRGE0B39+FMIQpsd8891uhzxTEpw== X-Gm-Gg: ASbGncu+A+lM6FyczBxBkpK9YKnq/Ot8I3STRURF456bMrks59cg8lJCkTFkoXhV/8V eBVoP4omdcCjusR1Ds6gtNv0SFdyNwupWzfGmAOEjRpQRsLhmEwHbRSnzesRTKjylX5yc+oPwpF uD32JTCs3Wxxh7HCTKkTUgqHOMD2O0Gu1rgyjdQsBME6V0VtirruzAoGE/UPW3Cz1V0auIpkDjh y+jvusQPJP5+OUJbObrhQeIi8txkYG49tS2OJTae/I3B5zN0TVz352o3SNg2W4NFU5spXp309zY sI2XdzPaxjHaeMERRzrYrGgK7P6WWZbkI1ea/2gzd7e1pKLR84Fbjuya7z8VFpMPGM7CBpBHSJm yfkNz/H1uQ+SI9q4lij/8Y8b+NsDtpdA23LJa6jNhTcyaO+1yksgJ19OLcpynFV5UFgM= X-Google-Smtp-Source: AGHT+IHRu6FAlEm0CK50kvE71F7X1sWPt3OU5mm2MiTtLWiFyKSbJkss5p9YnJl1K2x+CDOjG7lFGg== X-Received: by 2002:a17:90b:52c5:b0:312:1b53:5e98 with SMTP id 98e67ed59e1d1-31aac5456e8mr2541933a91.34.1751627592696; Fri, 04 Jul 2025 04:13:12 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Frank Chang , Alistair Francis Subject: [PULL 14/40] target/riscv: support atomic instruction fetch (Ziccif) Date: Fri, 4 Jul 2025 21:11:41 +1000 Message-ID: <20250704111207.591994-15-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=alistair23@gmail.com; helo=mail-pj1-x102e.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628010143116600 Content-Type: text/plain; charset="utf-8" From: Jim Shu Support 4-byte atomic instruction fetch when instruction is natural aligned. Current implementation is not atomic because it loads instruction twice for first and last 2 bytes. We load 4 bytes at once to keep the atomicity. This instruction preload method only applys when instruction is 4-byte aligned. If instruction is unaligned, it could be across pages so that preload will trigger additional page fault. We encounter this issue when doing pressure test of enabling & disabling Linux kernel ftrace. Ftrace with kernel preemption requires concurrent modification and execution of instruction, so non-atomic instruction fetch will cause the race condition. We may fetch the wrong instruction which is the mixing of 2 instructions. Also, RISC-V Profile wants to provide this feature by HW. RVA20U64 Ziccif protects the atomicity of instruction fetch when it is natural aligned. This commit depends on the atomic read support of translator_ld in the commit 6a9dfe1984b0c593fb0ddb52d4e70832e6201dd6. Signed-off-by: Jim Shu Reviewed-by: Frank Chang Reviewed-by: Alistair Francis Message-ID: <20250508094838.19394-1-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/translate.c | 46 +++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index d7a6de02df..9ddef2d6e2 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1217,13 +1217,35 @@ const RISCVDecoder decoder_table[] =3D { =20 const size_t decoder_table_size =3D ARRAY_SIZE(decoder_table); =20 -static void decode_opc(CPURISCVState *env, DisasContext *ctx, uint16_t opc= ode) +static void decode_opc(CPURISCVState *env, DisasContext *ctx) { + uint32_t opcode; + bool pc_is_4byte_align =3D ((ctx->base.pc_next % 4) =3D=3D 0); + ctx->virt_inst_excp =3D false; - ctx->cur_insn_len =3D insn_len(opcode); + if (pc_is_4byte_align) { + /* + * Load 4 bytes at once to make instruction fetch atomically. + * + * Note: When pc is 4-byte aligned, 4-byte instruction wouldn't be + * across pages. We could preload 4 bytes instruction no matter + * real one is 2 or 4 bytes. Instruction preload wouldn't trigger + * additional page fault. + */ + opcode =3D translator_ldl(env, &ctx->base, ctx->base.pc_next); + } else { + /* + * For unaligned pc, instruction preload may trigger additional + * page fault so we only load 2 bytes here. + */ + opcode =3D (uint32_t) translator_lduw(env, &ctx->base, ctx->base.p= c_next); + } + ctx->ol =3D ctx->xl; + + ctx->cur_insn_len =3D insn_len((uint16_t)opcode); /* Check for compressed insn */ if (ctx->cur_insn_len =3D=3D 2) { - ctx->opcode =3D opcode; + ctx->opcode =3D (uint16_t)opcode; /* * The Zca extension is added as way to refer to instructions in t= he C * extension that do not include the floating-point loads and stor= es @@ -1233,15 +1255,17 @@ static void decode_opc(CPURISCVState *env, DisasCon= text *ctx, uint16_t opcode) return; } } else { - uint32_t opcode32 =3D opcode; - opcode32 =3D deposit32(opcode32, 16, 16, - translator_lduw(env, &ctx->base, - ctx->base.pc_next + 2)); - ctx->opcode =3D opcode32; + if (!pc_is_4byte_align) { + /* Load last 2 bytes of instruction here */ + opcode =3D deposit32(opcode, 16, 16, + translator_lduw(env, &ctx->base, + ctx->base.pc_next + 2)); + } + ctx->opcode =3D opcode; =20 for (guint i =3D 0; i < ctx->decoders->len; ++i) { riscv_cpu_decode_fn func =3D g_ptr_array_index(ctx->decoders, = i); - if (func(ctx, opcode32)) { + if (func(ctx, opcode)) { return; } } @@ -1319,10 +1343,8 @@ static void riscv_tr_translate_insn(DisasContextBase= *dcbase, CPUState *cpu) { DisasContext *ctx =3D container_of(dcbase, DisasContext, base); CPURISCVState *env =3D cpu_env(cpu); - uint16_t opcode16 =3D translator_lduw(env, &ctx->base, ctx->base.pc_ne= xt); =20 - ctx->ol =3D ctx->xl; - decode_opc(env, ctx, opcode16); + decode_opc(env, ctx); ctx->base.pc_next +=3D ctx->cur_insn_len; =20 /* --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627819; cv=none; d=zohomail.com; s=zohoarc; b=JdPVF+AnNEZNC6pyz6QLCxLshzwKUlGdlynNVDWCDn7DSLczoJ49q5jIsIKx4S3PJh5EfZsVQESBW0yoa3U45qOLDApkDPHCdtenqXtir7ZzD3SsYbP32ojjm6w1H8YmCqWVbkyrTcY88llGb7vRB8xFiB5kQ15m1s7ZHiJ7xOY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627819; 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=J/vCSMayWpkoFy9ut76DThDk/F2uNDNmhi4+LEdhx9c=; b=PIzmoRBATR3+MjRL3y1I818KGf6KxyCRV1rdnHaUDL8RfoXV7M5/N5lHyuCHfizZ5Mq01mrY+JAPF8ZC3qbnD+SowreE9q/bJ948RvAPbe7h7i+r0toCDi8dlLfAPbeGF1CWv/oWR8+G/ZeICIEk/44RKcSpVzsKJjBMHOb8Rp4= 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 1751627819109365.08881525388756; Fri, 4 Jul 2025 04:16:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMs-0004Go-Ri; Fri, 04 Jul 2025 07:14:11 -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 1uXeM6-0002fv-1E for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:24 -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 1uXeM1-0003JZ-DN for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:21 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b3508961d43so616662a12.3 for ; Fri, 04 Jul 2025 04:13:17 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627596; x=1752232396; 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=J/vCSMayWpkoFy9ut76DThDk/F2uNDNmhi4+LEdhx9c=; b=S8Qq93RzlDHXwIorvUvXlpNGhVNneKcoj/lte1aY5kz1Hu/igFYx85DDIICENRZaCG Kaq+sutj4QLaPCM/JhuF4EjhRD9t+14kNzcNFqFKao2Z7txjA/WasFgpYy1vB4fVjsP2 VLnYean+TMBBaOVrPvIoJiKskWIq/wkxHaJiCZE+LngPe4Hyh8rlFV5/Cuv3jScstrsR 9TKrPiztV3+bcY0oj0npzOnW6/jJ6HnPray2if5YjW3IgRpueBne7VlnIIceUEKrlBLS YLun2I6nSQv85oStN28o14W8GWw2Cf2Lq1IFyFMQ10KY598OzKTMAmXYsAUG8DbXlPmR m5lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627596; x=1752232396; 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=J/vCSMayWpkoFy9ut76DThDk/F2uNDNmhi4+LEdhx9c=; b=fa7x9xmS4k/1lG7q3E2J9RRw3jxCYYhIU0K+vOvpr2eSHpn7u1ukCxDVmTF+xDnzZv e4b4fxmdEaXq/8lUor5eA2xFauMTclef2TMlOM25NhvUQr/gl2I62Fak7bC4e5m+jGw2 rb8eltgf37z0SboHSGJyuvbjP/Y8Lesk2prC8AsZ6Kxuy0tHCCcHHB/6pWEsxH+S9kov oNeb6rXhEI5+bx1j6/HRQSSEfkitG3c3Tcrw/+Sg5gIuus+vCzA2gTLUYKI4kDwJJV6h GDXZNWcpzrnCPSi9ZJlFVrmwV+rLZnG3VKGszOXsqUJyKRWpNpE+lbXzs41VYvnV+H3b ZXRw== X-Gm-Message-State: AOJu0YzDu1wjcahA2nE5ptJ+HV4YSB3LSYgtvcvhWGVX5T/eh0c4xfrR O9xsB54pYImWUphmNsiraett2iTERQXb8xkN3Ffj/D3lBobiyfJ4CgfwM8jOwQ== X-Gm-Gg: ASbGnctwj7WQHvlRWk3FadL6Q7/WDukHcUMgCGVMcf412Q81VZ1/VMVAxLY3MSokofe xtjIIohzPZDMsDe7QIjld2jlz83kB7EX37BZ026r20FMbLVwinT6GgRykqrh7bbPBFxV+7407Wa f0V00lheN7d6GlvHzJ8Aat9/8hkyhAuJMvoJ7wQ7Yjg5WlkkkDBL3DlaGWjnSKpe7wK7m1nSwek UJw49BW4JhFFOolQ/kYbMZex9wKHmrdtpjkPgRE9/0N1I2H+nuvnHOEaIqijSsea9TxXy7ticCC jYIEpfuQ0Pz8PUXpGlkzRxPGoZlUjsRPeG7AES6jAUPEMOvCtJrLoeFiNLq3u7XVbZFqlD9FUaZ Hhb94pDJ/+a6qvY9spK9iABPP8LQi/J+TFtyIIArcc2AI2l4hoUpp70/WJhnObjTfQW7ae2MxDu YL5g== X-Google-Smtp-Source: AGHT+IHgK7606OSktMcXJpFV2/VAxRbMpvTAL/Tn8c965cMn3PW0NFj+y1xuWwsvoVcv0omwqwvbew== X-Received: by 2002:a17:90b:2707:b0:312:e9bd:5d37 with SMTP id 98e67ed59e1d1-31aac43d215mr3144670a91.6.1751627595697; Fri, 04 Jul 2025 04:13:15 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Meng Zhuo , Andrew Jones , Alistair Francis Subject: [PULL 15/40] target/riscv/kvm: add max_satp_mode from host cpu Date: Fri, 4 Jul 2025 21:11:42 +1000 Message-ID: <20250704111207.591994-16-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::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: 1751627820903116600 Content-Type: text/plain; charset="utf-8" From: Meng Zhuo This patch adds max_satp_mode from host kvm cpu setting. Tested on: Milkv Megrez (Eswin 7700x) Reviewed-by: Andrew Jones Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2931 Signed-off-by: Meng Zhuo Message-ID: <20250606034250.181707-1-mengzhuo@iscas.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index e1a04be20f..502d33f404 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -999,6 +999,19 @@ static void kvm_riscv_destroy_scratch_vcpu(KVMScratchC= PU *scratch) close(scratch->kvmfd); } =20 +static void kvm_riscv_init_max_satp_mode(RISCVCPU *cpu, KVMScratchCPU *kvm= cpu) +{ + struct kvm_one_reg reg; + int ret; + + reg.id =3D RISCV_CONFIG_REG(satp_mode); + reg.addr =3D (uint64_t)&cpu->cfg.max_satp_mode; + ret =3D ioctl(kvmcpu->cpufd, KVM_GET_ONE_REG, ®); + if (ret !=3D 0) { + error_report("Unable to retrieve satp mode from host, error %d", r= et); + } +} + static void kvm_riscv_init_machine_ids(RISCVCPU *cpu, KVMScratchCPU *kvmcp= u) { struct kvm_one_reg reg; @@ -1302,6 +1315,7 @@ static void riscv_init_kvm_registers(Object *cpu_obj) kvm_riscv_init_machine_ids(cpu, &kvmcpu); kvm_riscv_init_misa_ext_mask(cpu, &kvmcpu); kvm_riscv_init_cfg(cpu, &kvmcpu); + kvm_riscv_init_max_satp_mode(cpu, &kvmcpu); =20 kvm_riscv_destroy_scratch_vcpu(&kvmcpu); } @@ -1985,7 +1999,7 @@ static bool kvm_cpu_realize(CPUState *cs, Error **err= p) } } =20 - return true; + return true; } =20 void riscv_kvm_cpu_finalize_features(RISCVCPU *cpu, Error **errp) --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628144; cv=none; d=zohomail.com; s=zohoarc; b=YxqbwnYSUoKFgIE+E65jwST7TEv3HJCHUVCOupRkxeMhkd1ly8lP6CaOYUeZSyNtWZyWx0NPFgN61hvGLn1h4Boc+27ENOO0ry8btpSLj4Y7u+OMoRZtJsWKSkXcakFa/IFm1k6gSoDWpLYNllQkQ7Uw3LNOqWYkWdS8kJ4BKgI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628144; 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=RjvGQz4+10HGwuBmPyYAoZ0d/DfVUso5xV/HGfrmQ50=; b=YxEcaeQpxOxpm786ZeLIXLDey2D/mM+jL6XCoSps+x4ZNJEbl6sWow6/CP4oYE8DnDaYI6xDs2Vl8zGYfzdTW5FhABcufNtWtO00vnMcxnIyJ0beOk156EyVDaGDZ2sK/yXckgAO5nvw/9qKphCcpdbU29FDtcaLpF5f8FwTVAo= 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 1751628144230641.1606771990432; Fri, 4 Jul 2025 04:22:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMm-0003cB-Jl; Fri, 04 Jul 2025 07:14:04 -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 1uXeM7-0002gP-Hl for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:26 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeM4-0003R7-NW for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:23 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-23636167afeso8629585ad.3 for ; Fri, 04 Jul 2025 04:13:20 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627599; x=1752232399; 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=RjvGQz4+10HGwuBmPyYAoZ0d/DfVUso5xV/HGfrmQ50=; b=TCZjOeNk8XUdsZ8vSemauOeDir6LsNG2k7NKJQpqsCV+s2yjVwL/F7dgB0XtjHFUgz et8Q/Uk5svSn4ZqibGT0sK5X4+gBb8F/f4/q5SL0o7iRcb9Qui4axKguZyc1DsqzKjgr gos/dfdokEiYrb5L1AI7ET8dSorxWD6Xy16jo3tKyoTu9s2Lg5e7kgR9gP4muo8ftui2 BD6PHinOq6hTD046CPhfdIBXfA5rv1ZlzpiNQYaxYR5rr6ulLAw9pZHm+HcC65rgcs3U EFw2NrAreWCAJhohUxAYgqQqHNqZ3lV7SkiGt2Pp1lNvCKChnmcDFeVStwT5WeC38SNY fGuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627599; x=1752232399; 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=RjvGQz4+10HGwuBmPyYAoZ0d/DfVUso5xV/HGfrmQ50=; b=Mhe+vcjF3vzW8w8mJ8B+cszI8pAA1Uu4hiZae54ZW/+j8OUyowSfHzHjpxdUWNWa6p tyT2aWMPz21bYKOym7uODQcZSaw3iFgqT7ZMwUu8LHpYWxKTSGBWTnKKa+B0KgpeKsR8 FPEBThIiTWy/xzHCvkSQvMQyJJVAEc5fpgo25Pf/3/N0t0VsWWo8Uy16ZOLmhUDVDryl DG9ijpFJtMqrOOTD45D75JuTT206LqRNlTkR0SSMgTax5haMhW/5iE+G3EAum+bjDmPz YlB4UBquViS/xRi97sHgY+X1g/0WegO7h2lhMPvxUpaUM9CgSGG25Lx9QtMuz+K7gOHN KuXQ== X-Gm-Message-State: AOJu0YxFfFv/DORd9HcO24L1dIXNId4fy1oIHQk1xtxxBDW11fxQIkoz 5laLkgGpAHVBCERkBdhn4e5Q8FSTQ2RLhOQIabzoH2JJmTecOhco9LBPHyBD9g== X-Gm-Gg: ASbGncsHjGV4Iom3UaWhk4Pn/+v4BpUtLEwe1ufPRtNn8F2hd1y2upbRZhP2uqI6/G4 uROZ+aJEZwcfKm5qsw85Czid97/V1U7JRkBOGG250GDlB739UpoUX2gO2ZkHTs1J9fYojcpvRz5 98JkgdOregR9GPEcl6W99UH0XitwcbqmJkaD3mSUAmuiBgmWFwPDTfp7tMrF9ZD/t29ky6a2k7i FegAOCIJ+kpOnkJXhzQsWpTk9ZHlThpzEhnwHh5gLPLgn9JSeBZU/SbK0zM+zCqBP9g0gYl0TRD W2h1u5B0VJhAebNyUPMu1NljM+90YNC+opFNYalmZm5+n1gq7wO9OSdID2OUvk6td4E5Clk2RAN MiiBsaPaOoDvnWk0/p9K+5if3NfD3zrM3ZNFH+vhqyGvcywzYLKIDJCblZIq8eJlVdvw= X-Google-Smtp-Source: AGHT+IE1/PaxHc4+kEan1NTBTFVrNJI+sy8q6PJ4TC5azvBMM1C2A6C6ykkHK2rnIBThc7GBEA3D1w== X-Received: by 2002:a17:902:d587:b0:236:6e4f:d439 with SMTP id d9443c01a7336-23c8747edfamr24829495ad.23.1751627598755; Fri, 04 Jul 2025 04:13:18 -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 Subject: [PULL 16/40] target/riscv: Make PMP region count configurable Date: Fri, 4 Jul 2025 21:11:43 +1000 Message-ID: <20250704111207.591994-17-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628145379116600 Content-Type: text/plain; charset="utf-8" From: Jay Chang Previously, the number of PMP regions was hardcoded to 16 in QEMU. This patch replaces the fixed value with a new `pmp_regions` field, allowing platforms to configure the number of PMP regions. If no specific value is provided, the default number of PMP regions remains 16 to preserve the existing behavior. A new CPU parameter num-pmp-regions has been introduced to the QEMU command line. For example: -cpu rv64, g=3Dtrue, c=3Dtrue, pmp=3Dtrue, num-pmp-regions=3D8 Signed-off-by: Jay Chang Reviewed-by: Frank Chang Reviewed-by: Alistair Francis Message-ID: <20250606072525.17313-3-jay.chang@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 3 +- target/riscv/cpu_cfg_fields.h.inc | 1 + target/riscv/cpu.c | 48 +++++++++++++++++++++++++++++-- target/riscv/csr.c | 5 +++- target/riscv/machine.c | 3 +- target/riscv/pmp.c | 28 ++++++++++++------ 6 files changed, 74 insertions(+), 14 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 17bf4e7579..4a862da615 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -174,7 +174,8 @@ extern RISCVCPUImpliedExtsRule *riscv_multi_ext_implied= _rules[]; =20 #define MMU_USER_IDX 3 =20 -#define MAX_RISCV_PMPS (16) +#define MAX_RISCV_PMPS (64) +#define OLD_MAX_RISCV_PMPS (16) =20 #if !defined(CONFIG_USER_ONLY) #include "pmp.h" diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 59f134a419..33c4f9bac8 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -163,6 +163,7 @@ TYPED_FIELD(uint16_t, elen, 0) TYPED_FIELD(uint16_t, cbom_blocksize, 0) TYPED_FIELD(uint16_t, cbop_blocksize, 0) TYPED_FIELD(uint16_t, cboz_blocksize, 0) +TYPED_FIELD(uint8_t, pmp_regions, 0) =20 TYPED_FIELD(int8_t, max_satp_mode, -1) =20 diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index bf14256a61..758f254c15 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1119,6 +1119,7 @@ static void riscv_cpu_init(Object *obj) cpu->cfg.cbom_blocksize =3D 64; cpu->cfg.cbop_blocksize =3D 64; cpu->cfg.cboz_blocksize =3D 64; + cpu->cfg.pmp_regions =3D 16; cpu->env.vext_ver =3D VEXT_VERSION_1_00_0; cpu->cfg.max_satp_mode =3D -1; =20 @@ -1563,6 +1564,46 @@ static const PropertyInfo prop_pmp =3D { .set =3D prop_pmp_set, }; =20 +static void prop_num_pmp_regions_set(Object *obj, Visitor *v, const char *= name, + void *opaque, Error **errp) +{ + RISCVCPU *cpu =3D RISCV_CPU(obj); + uint8_t value; + + visit_type_uint8(v, name, &value, errp); + + if (cpu->cfg.pmp_regions !=3D value && riscv_cpu_is_vendor(obj)) { + cpu_set_prop_err(cpu, name, errp); + return; + } + + if (cpu->env.priv_ver < PRIV_VERSION_1_12_0 && value > OLD_MAX_RISCV_P= MPS) { + error_setg(errp, "Number of PMP regions exceeds maximum available"= ); + return; + } else if (value > MAX_RISCV_PMPS) { + error_setg(errp, "Number of PMP regions exceeds maximum available"= ); + return; + } + + cpu_option_add_user_setting(name, value); + cpu->cfg.pmp_regions =3D value; +} + +static void prop_num_pmp_regions_get(Object *obj, Visitor *v, const char *= name, + void *opaque, Error **errp) +{ + uint8_t value =3D RISCV_CPU(obj)->cfg.pmp_regions; + + visit_type_uint8(v, name, &value, errp); +} + +static const PropertyInfo prop_num_pmp_regions =3D { + .type =3D "uint8", + .description =3D "num-pmp-regions", + .get =3D prop_num_pmp_regions_get, + .set =3D prop_num_pmp_regions_set, +}; + static int priv_spec_from_str(const char *priv_spec_str) { int priv_version =3D -1; @@ -2562,6 +2603,7 @@ static const Property riscv_cpu_properties[] =3D { =20 {.name =3D "mmu", .info =3D &prop_mmu}, {.name =3D "pmp", .info =3D &prop_pmp}, + {.name =3D "num-pmp-regions", .info =3D &prop_num_pmp_regions}, =20 {.name =3D "priv_spec", .info =3D &prop_priv_spec}, {.name =3D "vext_spec", .info =3D &prop_vext_spec}, @@ -2932,7 +2974,8 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.max_satp_mode =3D VM_1_10_MBARE, .cfg.ext_zifencei =3D true, .cfg.ext_zicsr =3D true, - .cfg.pmp =3D true + .cfg.pmp =3D true, + .cfg.pmp_regions =3D 8 ), =20 DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_U, TYPE_RISCV_VENDOR_C= PU, @@ -2943,7 +2986,8 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.ext_zifencei =3D true, .cfg.ext_zicsr =3D true, .cfg.mmu =3D true, - .cfg.pmp =3D true + .cfg.pmp =3D true, + .cfg.pmp_regions =3D 8 ), =20 #if defined(TARGET_RISCV32) || \ diff --git a/target/riscv/csr.c b/target/riscv/csr.c index d6cd441133..6296ecd1e1 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -738,7 +738,10 @@ static RISCVException dbltrp_hmode(CPURISCVState *env,= int csrno) static RISCVException pmp(CPURISCVState *env, int csrno) { if (riscv_cpu_cfg(env)->pmp) { - if (csrno <=3D CSR_PMPCFG3) { + int max_pmpcfg =3D (env->priv_ver >=3D PRIV_VERSION_1_12_0) ? ++ CSR_PMPCFG15 : CSR_PMPCFG3; + + if (csrno <=3D max_pmpcfg) { uint32_t reg_index =3D csrno - CSR_PMPCFG0; =20 /* TODO: RV128 restriction check */ diff --git a/target/riscv/machine.c b/target/riscv/machine.c index c97e9ce9df..1600ec44f0 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -36,8 +36,9 @@ static int pmp_post_load(void *opaque, int version_id) RISCVCPU *cpu =3D opaque; CPURISCVState *env =3D &cpu->env; int i; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + for (i =3D 0; i < pmp_regions; i++) { pmp_update_rule_addr(env, i); } pmp_update_rule_nums(env); diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index 5af295e410..3540327c9a 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -122,7 +122,9 @@ uint32_t pmp_get_num_rules(CPURISCVState *env) */ static inline uint8_t pmp_read_cfg(CPURISCVState *env, uint32_t pmp_index) { - if (pmp_index < MAX_RISCV_PMPS) { + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; + + if (pmp_index < pmp_regions) { return env->pmp_state.pmp[pmp_index].cfg_reg; } =20 @@ -136,7 +138,9 @@ static inline uint8_t pmp_read_cfg(CPURISCVState *env, = uint32_t pmp_index) */ static bool pmp_write_cfg(CPURISCVState *env, uint32_t pmp_index, uint8_t = val) { - if (pmp_index < MAX_RISCV_PMPS) { + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; + + if (pmp_index < pmp_regions) { if (env->pmp_state.pmp[pmp_index].cfg_reg =3D=3D val) { /* no change */ return false; @@ -236,9 +240,10 @@ void pmp_update_rule_addr(CPURISCVState *env, uint32_t= pmp_index) void pmp_update_rule_nums(CPURISCVState *env) { int i; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 env->pmp_state.num_rules =3D 0; - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + for (i =3D 0; i < pmp_regions; i++) { const uint8_t a_field =3D pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg); if (PMP_AMATCH_OFF !=3D a_field) { @@ -332,6 +337,7 @@ bool pmp_hart_has_privs(CPURISCVState *env, hwaddr addr, int pmp_size =3D 0; hwaddr s =3D 0; hwaddr e =3D 0; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 /* Short cut if no rules */ if (0 =3D=3D pmp_get_num_rules(env)) { @@ -356,7 +362,7 @@ bool pmp_hart_has_privs(CPURISCVState *env, hwaddr addr, * 1.10 draft priv spec states there is an implicit order * from low to high */ - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + for (i =3D 0; i < pmp_regions; i++) { s =3D pmp_is_in_range(env, i, addr); e =3D pmp_is_in_range(env, i, addr + pmp_size - 1); =20 @@ -527,8 +533,9 @@ void pmpaddr_csr_write(CPURISCVState *env, uint32_t add= r_index, { trace_pmpaddr_csr_write(env->mhartid, addr_index, val); bool is_next_cfg_tor =3D false; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 - if (addr_index < MAX_RISCV_PMPS) { + if (addr_index < pmp_regions) { if (env->pmp_state.pmp[addr_index].addr_reg =3D=3D val) { /* no change */ return; @@ -538,7 +545,7 @@ void pmpaddr_csr_write(CPURISCVState *env, uint32_t add= r_index, * In TOR mode, need to check the lock bit of the next pmp * (if there is a next). */ - if (addr_index + 1 < MAX_RISCV_PMPS) { + if (addr_index + 1 < pmp_regions) { uint8_t pmp_cfg =3D env->pmp_state.pmp[addr_index + 1].cfg_reg; is_next_cfg_tor =3D PMP_AMATCH_TOR =3D=3D pmp_get_a_field(pmp_= cfg); =20 @@ -573,8 +580,9 @@ void pmpaddr_csr_write(CPURISCVState *env, uint32_t add= r_index, target_ulong pmpaddr_csr_read(CPURISCVState *env, uint32_t addr_index) { target_ulong val =3D 0; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 - if (addr_index < MAX_RISCV_PMPS) { + if (addr_index < pmp_regions) { val =3D env->pmp_state.pmp[addr_index].addr_reg; trace_pmpaddr_csr_read(env->mhartid, addr_index, val); } else { @@ -592,6 +600,7 @@ void mseccfg_csr_write(CPURISCVState *env, target_ulong= val) { int i; uint64_t mask =3D MSECCFG_MMWP | MSECCFG_MML; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; /* Update PMM field only if the value is valid according to Zjpm v1.0 = */ if (riscv_cpu_cfg(env)->ext_smmpm && riscv_cpu_mxl(env) =3D=3D MXL_RV64 && @@ -603,7 +612,7 @@ void mseccfg_csr_write(CPURISCVState *env, target_ulong= val) =20 /* RLB cannot be enabled if it's already 0 and if any regions are lock= ed */ if (!MSECCFG_RLB_ISSET(env)) { - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + for (i =3D 0; i < pmp_regions; i++) { if (pmp_is_locked(env, i)) { val &=3D ~MSECCFG_RLB; break; @@ -659,6 +668,7 @@ target_ulong pmp_get_tlb_size(CPURISCVState *env, hwadd= r addr) hwaddr tlb_sa =3D addr & ~(TARGET_PAGE_SIZE - 1); hwaddr tlb_ea =3D tlb_sa + TARGET_PAGE_SIZE - 1; int i; + uint8_t pmp_regions =3D riscv_cpu_cfg(env)->pmp_regions; =20 /* * If PMP is not supported or there are no PMP rules, the TLB page wil= l not @@ -669,7 +679,7 @@ target_ulong pmp_get_tlb_size(CPURISCVState *env, hwadd= r addr) return TARGET_PAGE_SIZE; } =20 - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + for (i =3D 0; i < pmp_regions; i++) { if (pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg) =3D=3D PMP_AMAT= CH_OFF) { continue; } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627768; cv=none; d=zohomail.com; s=zohoarc; b=MQSWd+NQ4QBXYsRJOipArl6PU500+71RyxSatSubmVO78uVw1fSoJxsGRCvYnKA0UB4XRRJrdXIrElwXKe3BdKZEfO9oulKulDo+Iq4lJqBjHo5FqLCSevvusCokgqJC6sEyt1kjTkjgsYj8uOlC03zzws3HHJZCv8DSZ0xYOb0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627768; 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=4wVtmKRoiqYUXx5KXTyHSEPgvf3O8R5eArt39DWc1Ag=; b=afNki8RM52Dvp8cBzQ2K7tcPz99ZbWGtOnPBj4y+cTixT4KXYw0g6DNjHvWnL9Dj5v9yq4YbRdwdDn+EnIPmO26/S1v+jLYVtSMIlr/BHtB0K7EUvcJ3fn53tnESJX78ku+9dGeJrGBYbS0GXDQsbvuq5paJrNlnldwzuIlZq9o= 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 175162776831183.60341396476133; Fri, 4 Jul 2025 04:16:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNJ-0005RU-F9; Fri, 04 Jul 2025 07:14:37 -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 1uXeMB-0002jy-LD for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:38 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeM7-0003YB-VE for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:27 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-235ef62066eso13493135ad.3 for ; Fri, 04 Jul 2025 04:13:23 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627602; x=1752232402; 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=4wVtmKRoiqYUXx5KXTyHSEPgvf3O8R5eArt39DWc1Ag=; b=eF5z5D+Uwgf8W+/3w/O2jJMHiqKRD2d3inmxAMHWwFUw0L2nZuB6+Co2AK+zPB4nVV 3qOuNkKx4DjA+N4TNFusocExKyE1RyM7yhZcgaXlJHOPOGseTttOzdVYxweKi/IKlmyX HFZs6OX3gCXODltks62Axm65rrjh5BxNwWjHWALuwNicHQmyf/C6zHAU9LoH1F/hKJBR KQLhFLrV/KGFgoHAfTMbPprzZv0RA8Rd7xL+I3h9wfxoa8LWvqhusJvytYagInwgG6oj MY+f1qwGfyK7syTVtVFKwRISjj54KtJxmkn3SJlpsTX0yWfWf7iVZcBElmQpRkd1K+79 G0ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627602; x=1752232402; 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=4wVtmKRoiqYUXx5KXTyHSEPgvf3O8R5eArt39DWc1Ag=; b=taOQL6A6KUkXSKcizjo/0nWvTx369VBh5oICMHfN/YK63BI8BW0idYcjWnrC/M33ch 02cqqnCUbSgcn/xmCXnEAENvfG2gz++HxYNU7aoX3C7XfeX/BGLNyykwSZdnM7wayIJk EtRvjyxd3c7w6lkUzIYPBbHa9NaZcIOkHtEdQUKj4C5XAfnFjQAaciNTm++a9MN+IlOx 98qVd8ep2RqVWprhLcBpwYK1nDsne2JB1Ho3dZsWJ5PqjoZJ4uG6OGLl+bb1H51HExYL cYqM1DHJIXehMYPSc34gSq91BIr8ycyiChea7z+bi7YOUWwFpU3d49/CtNuqe898K2eX uTaQ== X-Gm-Message-State: AOJu0YzCxO0qo3otFvwLg9jnanAGWPo4GiKkbGOrEdaiiTet8b529ue/ cRFvKjr0vSBhOgBZGczouJE5tpjdPXnYEzXKZ70GBJy/vxeNeaKh2NZdE7f/FA== X-Gm-Gg: ASbGncvSF6WxjqhACjTVZsvQyvz4Ka2diE4TsqnKtJOLY39NwbcnHwMwgKz0zkrZSDe OhWDFzqY3v6Czi3eqf8vo18IAzkZRETS2cRvlShN1lRz63Y91HQX5UxQ9EO2i9wxBo+FHmWHvQH gsdqa2etrH1Yw1bvmCL+XroKAmftsTrSWDXiq50RZYmZWGB+pTTr4MwUo4P/dLHts7c+wifV/AL Gri+67CKPTZtsiPxFOxXg3DWKG9fZnuBgQ7nziD/8iolR7WXqpM0q9yTM/aWk0fu0qDWciffrEj BKJ82seLGFy/21XG2XLp6tOs+9gKjyCYCfO0kBpqcBSAwdZgUnmg75jBuUF+tVKJOZknXpM/VEM ONNuSYEtpycmQ2gI7pVif6FYu5bhBT5vmUwJ5xkZPnfACO0Y9MV0seNzUWUGCfJE2tak= X-Google-Smtp-Source: AGHT+IGO69hgrMc8dt3YwIvRSu+9xL3eHDPga1I+5gmPhECX3viFJOgBjLgX/FyOpZKZkfEF88XEhQ== X-Received: by 2002:a17:902:ecc8:b0:235:caa8:1a72 with SMTP id d9443c01a7336-23c860d3c4bmr33062415ad.30.1751627601777; Fri, 04 Jul 2025 04:13:21 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Nutty Liu , Tomasz Jeznach , Alistair Francis Subject: [PULL 17/40] hw/riscv/riscv-iommu: Fix PPN field of Translation-reponse register Date: Fri, 4 Jul 2025 21:11:44 +1000 Message-ID: <20250704111207.591994-18-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627770297116600 Content-Type: text/plain; charset="utf-8" From: Nutty Liu The original implementation incorrectly performed a bitwise AND operation between the PPN of iova and PPN Mask, leading to an incorrect PPN field in Translation-reponse register. The PPN of iova should be set entirely in the PPN field of Translation-reponse register. Also remove the code that was used to clear S field since this field is already zero. Signed-off-by: Nutty Liu Reviewed-by: Tomasz Jeznach Message-ID: <20250605124848.1248-1-liujingqi@lanxincomputing.com> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index a877e5da84..d8b1cb03a8 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -1935,11 +1935,7 @@ static void riscv_iommu_process_dbg(RISCVIOMMUState = *s) iova =3D RISCV_IOMMU_TR_RESPONSE_FAULT | (((uint64_t) fault) <= < 10); } else { iova =3D iotlb.translated_addr & ~iotlb.addr_mask; - iova >>=3D TARGET_PAGE_BITS; - iova &=3D RISCV_IOMMU_TR_RESPONSE_PPN; - - /* We do not support superpages (> 4kbs) for now */ - iova &=3D ~RISCV_IOMMU_TR_RESPONSE_S; + iova =3D set_field(0, RISCV_IOMMU_TR_RESPONSE_PPN, PPN_DOWN(io= va)); } riscv_iommu_reg_set64(s, RISCV_IOMMU_REG_TR_RESPONSE, iova); } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627832; cv=none; d=zohomail.com; s=zohoarc; b=U0tUWx5XmVTa2Zoq/oTaOezDaCYElH2al4eOY4Wq+I7rFQkabJyz1ddbp2b/xpASE6CJnKHk7B/6ShXNJTH3B/2/Faw89fg7+nRRr0nSzXqOiYxkeXF7av0M/Xq+P8ZPW0sFkBHTXJ0U5shDvHVoW8cefkwHlpxr1ptpHd9btf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627832; 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=p5v7HpHr7Qhk2U0fWT9R+9pp4SWemWrxnWXMn5hfBww=; b=Kc7+VFn/IHyCd7y7KVUeQNSORSK0jtiDk0Zb+BTAnwZRlfr286At+BZONUQtzV+b9TsyKXKO8KoGS8PeLPkDPBch+/vDerjZac4hnOXWaGEvO0o9Y7l3pkaR0/a7H4N1X3zE2qMaXOScFYiFfa0a+ABur49oMl8dvyup/Zs/q1E= 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 1751627832820569.7600656404875; Fri, 4 Jul 2025 04:17:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMj-0003Hk-A6; Fri, 04 Jul 2025 07:14:01 -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 1uXeMB-0002k0-Va for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:38 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMA-0003dI-9A for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:27 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-23636167b30so8770375ad.1 for ; Fri, 04 Jul 2025 04:13:25 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627605; x=1752232405; 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=p5v7HpHr7Qhk2U0fWT9R+9pp4SWemWrxnWXMn5hfBww=; b=JQdj8xbPze9dIijsnabnd9T86CQttDa/gPrH8u3sc0I0J/3D4oVTImMQf8wF8jJznq pXkJJ1EbSqOq8APYrN+OoCAgpTcyynYi1aZl0kX7Cefp+BhGIC4ccjZLzwxpYHj/Agbl wSvszIqr9FPd+GrQ8eJpqvuDjX5k+ZxIj4mWiKKfmgJI9CKzZNEgWF4X4wOuVpAMdq2C Flmlkg8wo2Wav0sILacBUCrU9XnIO/ylCENFM7Ugq5x8Px4QwZ7Nnf+OSB10T1Rx9Xnl P/XzJ3W3uVAse5IYw9w0saVyBa8YarH3djnESu7N6qbQ7qncE1LIVndSgf4jhlZIoR1e MJVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627605; x=1752232405; 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=p5v7HpHr7Qhk2U0fWT9R+9pp4SWemWrxnWXMn5hfBww=; b=OzzRSk8T+VJLRSxuk7QpzPWtwUGMPcfgcBgEJ5MXUE+ZnNPuJYx9Pvi7ydlQmxJUHT hhGUQ2cGTPR7IoaShE1nXuokXuHUq/xJaEyaSZbOVG3ZLbv+WbBCNkhIHGkP/mnlV0a8 /GjQuljRS4y0cnbGvMbrtgohCHs+XGXwsvcerrnrV1aadmHQXQxVXwyEyXRaxaNR/Out oOn8kCK2foCAqRud6eqcHNYYgD6pfx1CUD4zBRMx2eAUbTDuVzSCAOUuVKDkAEQImHzM LtCLbOtTWEC9Oh21RwuDQjmmvn4hgRSKArgd1BpF8ANFBOMpt31/xz0CVoJcJYtvKNlQ Nh3w== X-Gm-Message-State: AOJu0YxaUwQ0BKXG456udy3ibXLqWgbkMHCrmchoEQHlr0LEXVOINWH+ OxoxHLihSt/ty6sL/b2FHJwEeDXXrjHSxe3JNB7wCcBxbGoEghx/Ej20CpPXPw== X-Gm-Gg: ASbGncuocYSld1Qpz6LnWNMXfLnIvcgPSzVPsZYIK0Zs1jfqhopwkwUDjFjsT4UcuSc K9z/hb7agtADu+b39V9vibNW4xusSlj4ZrGMArE8+cIpr18SDWX5M/3RMoGzGcLJtqWcEVFk+ru +s/+y16q5tZfjs2/FEDZ8nuGMODS/2QWhqQ08Zd2suMd3cPNRdeo+UzFiNWkwcENTvhnJ8djlUp BRS95ZBBCkrGdUlKFqPzd8gI6AC5y0Bg3Jpod2FlTApwyYqZUMOB0abkrAS7OmURPFRbiu2+cN6 1Rv6K9BHuuqzS8j5OOcaLniGXXnvtp+eK7mLUDYq4fqs3of6jvB9n4a9pyiJ9hxpufssXsmbCwh 20EOx+xbzyl0S2GHINv8LjsoqcF2uSSOO0ZQny/8cERlAUGUMtzNUwFzsAqCPkrrAqX8= X-Google-Smtp-Source: AGHT+IF95knaZe5x/9LvJxfMHtXFh6QIoPGDLqXa4nktwphCDnt21foNz24y5sscCc/IU8SyRU+D7g== X-Received: by 2002:a17:902:c404:b0:234:a139:1203 with SMTP id d9443c01a7336-23c85e7459amr34316635ad.32.1751627604703; Fri, 04 Jul 2025 04:13:24 -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 , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 18/40] target/riscv: use qemu_chr_fe_write_all() in DBCN_CONSOLE_WRITE_BYTE Date: Fri, 4 Jul 2025 21:11:45 +1000 Message-ID: <20250704111207.591994-19-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=alistair23@gmail.com; helo=mail-pl1-x631.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627834897116600 From: Daniel Henrique Barboza The SBI spec states, for console write byte: "This is a blocking SBI call and it will only return after writing the specified byte to the debug console. It will also return, with SBI_ERR_FAILED, if there are I/O errors." Being a blocker call will either succeed writing the byte or error out, it's feasible to use the blocking qemu_chr_fe_write_all() instead of qemu_chr_fe_write(). Last but not the least, we will duck possible changes in qemu_chr_fe_write() where ret =3D 0 will have a 'zero byte written' semantic [1] - something that we're not ready to deal in this current state. [1] https://lore.kernel.org/qemu-devel/CAFEAcA_kEndvNtw4EHySXWwQPoGs029yAzZ= GGBcV=3DzGHaj7KUQ@mail.gmail.com/ Signed-off-by: Daniel Henrique Barboza Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-ID: <20250605094456.1385105-2-dbarboza@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/kvm/kvm-cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index 502d33f404..5c19062c19 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -1619,7 +1619,7 @@ static void kvm_riscv_handle_sbi_dbcn(CPUState *cs, s= truct kvm_run *run) break; case SBI_EXT_DBCN_CONSOLE_WRITE_BYTE: ch =3D run->riscv_sbi.args[0]; - ret =3D qemu_chr_fe_write(serial_hd(0)->be, &ch, sizeof(ch)); + ret =3D qemu_chr_fe_write_all(serial_hd(0)->be, &ch, sizeof(ch)); =20 if (ret < 0) { error_report("SBI_EXT_DBCN_CONSOLE_WRITE_BYTE: error when " --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628131; cv=none; d=zohomail.com; s=zohoarc; b=XStZ/SXyFiRAkGDkr0i25cmWxIKnabnfcSRf+fq/kUfJz7sGdtCwhTjNXW4/afllGPBfjMehrhsdMbLxED5ypFOSwOBbc9fTMTL2aBFNxhiWJW3Hk4rfKJR577HSrZa1h06Uq88LtJRUqDe2Uv5ZEv5xRvLa9NgF/6BlXVsPr/c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628131; 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=mNwvyAn7RyjFpGw6JKkmxkBSLazntAxbNaqKwuNDhZs=; b=AszRreVhPKAhQJgDM/dvPUQV6NXVxA7e2PKRkejFEmizfGJ4OlqJI64Bgg35D1ikZF1PjDLHluXeATEuivHis2kklpuxiSHY8XSC7aCeaQWF1bkbOHIt9t6Op8A/3tIIFr7UIAUkAyNhDKsk13ziXncmO3ORfrjqLU8U+3qJT2o= 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 1751628131144340.9584346437739; Fri, 4 Jul 2025 04:22:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMm-0003bT-Ib; Fri, 04 Jul 2025 07:14:04 -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 1uXeMK-0002oc-La for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:38 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMD-0003hX-6J for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:33 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-234c5b57557so8811225ad.3 for ; Fri, 04 Jul 2025 04:13:28 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627607; x=1752232407; 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=mNwvyAn7RyjFpGw6JKkmxkBSLazntAxbNaqKwuNDhZs=; b=exnGgfmh9Jqj10IxRBw5cA6r3cTGbc5zUgHS1kzDWTsCZjbG4GJcbADeldZ7UXv98t xFzn8msDX80w0v6AolOg6mqMF4QTAjt5I5PqkWhdTs/X+vixHwxKlq3cRtbIvNS7gbUU y/3/5mhO21ym3GkBRZVKOhYnnUXOdMc0ac5WzgEUGCdA7iU1lspJ/Ebc0ryQ2XZ0iBw3 K28C5AEGxp/0yuregx24do61gaczDrvnXKJDzzXws5EDIm8H3Rjrr8y3a3GaRJYRyCBK h7vSVRJWWNmrsipoQvIy6DmGHwLFv8R18oaQiwMUmC5/DFrIqWKdxctAlME8Rshi65X7 +u9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627607; x=1752232407; 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=mNwvyAn7RyjFpGw6JKkmxkBSLazntAxbNaqKwuNDhZs=; b=vD7pUdtUXbelY9DkEEJUpYFU0/4ahvXCFiabcx+nXkibp7AltEsHsLXmgFd8JcbHa1 Hr9TYYQ2xBG/lFmYhJr9xyGUV5TdPgndmR/fzGBSNcFX+OQT58Ng8THdxNeyTNjExql0 R1ojLz1ceU6LluKW9CUJLZggueZdabk5khZCtVci2u4RCiM12JxId0WoNhSFDoMWHWyr Q4H6VGV6UEVu7NgRqxOC6/TnPzApfqHQIbQBbl+yDsbiPCvAbr/COZus+SKSJFwdmLbN UwN2NKxYpLajMWrOgiNTmF3/1+5tJJlWZEnkoJhO614UAxCttL3uXa9wJ6xjT3gh6nlX 8gEQ== X-Gm-Message-State: AOJu0Yz62Ru4eEHisWdbF8BQaW13dc7EQ+3P/Nw4OLa9ehA/dcOtC4KS ykn71vnGdRqBty9zu3lgVDxC8fZTv+V3zz8W6/6i7G763wbHyG2KxTrqNTI3Aw== X-Gm-Gg: ASbGncuAZ4x+lb5MDwFPDSa81gJvSDBJRDy8MqUMxtnDsqrlqNiU4+NILgg/rYp1wor DwDWuzrt5NPZhFoDStQXDxSpZkKt6B2tFLR8cc/lqe8ffkSP5t7hXIzuQYl788y0eaW6irdsq/T dcVhUA0F3tFrnK0PWiWRuWnhzg8bnlcOUndiFWjTF4cni4g2A5lKrptqxQlWlNHTJNujDNG2uMI 9ETOsblFj7UDcG2kIJ5rqW5rm1ay+3WICETcP1GygTq/DFBhZyfTA3s85tVqx5zSn2OjD3iT+/F pBFwF6ye8HCJi2ytiIOfHwIZu2NZ20wxrfaSEVsQ3S8MT42D2Jja8xk7ydSDqvWtiosEgh32bjB Md2tU2isncX9KzCUK7/hEEZK/mXao+ALOIOY3of7J44W62M0S6HFeQ04U1wJ5jdegF2I= X-Google-Smtp-Source: AGHT+IEW5b2CKsmjAVSjWYEXNqTkbTuLPAY1OLnAOcGTTCo3jn8F9o1AsUf3CcXoGg5FhCZ1ozq8WQ== X-Received: by 2002:a17:903:1b68:b0:235:27b6:a897 with SMTP id d9443c01a7336-23c85e9c18fmr38752395ad.34.1751627607371; Fri, 04 Jul 2025 04:13:27 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Anton Blanchard , Alistair Francis Subject: [PULL 19/40] target/riscv: Fix fcvt.s.bf16 NaN box checking Date: Fri, 4 Jul 2025 21:11:46 +1000 Message-ID: <20250704111207.591994-20-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628133255116600 Content-Type: text/plain; charset="utf-8" From: Anton Blanchard fcvt.s.bf16 uses the FP16 check_nanbox_h() which returns an FP16 quiet NaN. Add check_nanbox_bf16() which returns a BF16 quiet NaN. Signed-off-by: Anton Blanchard Acked-by: Alistair Francis Message-ID: <20250501114253.594887-1-antonb@tenstorrent.com> Signed-off-by: Alistair Francis --- target/riscv/internals.h | 16 ++++++++++++++++ target/riscv/fpu_helper.c | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/target/riscv/internals.h b/target/riscv/internals.h index 4570bd50be..9686bb6208 100644 --- a/target/riscv/internals.h +++ b/target/riscv/internals.h @@ -142,6 +142,22 @@ static inline float16 check_nanbox_h(CPURISCVState *en= v, uint64_t f) } } =20 +static inline float16 check_nanbox_bf16(CPURISCVState *env, uint64_t f) +{ + /* Disable nanbox check when enable zfinx */ + if (env_archcpu(env)->cfg.ext_zfinx) { + return (uint16_t)f; + } + + uint64_t mask =3D MAKE_64BIT_MASK(16, 48); + + if (likely((f & mask) =3D=3D mask)) { + return (uint16_t)f; + } else { + return 0x7FC0u; /* default qnan */ + } +} + #ifndef CONFIG_USER_ONLY /* Our implementation of SysemuCPUOps::has_work */ bool riscv_cpu_has_work(CPUState *cs); diff --git a/target/riscv/fpu_helper.c b/target/riscv/fpu_helper.c index 706bdfa61d..af40561b31 100644 --- a/target/riscv/fpu_helper.c +++ b/target/riscv/fpu_helper.c @@ -755,6 +755,6 @@ uint64_t helper_fcvt_bf16_s(CPURISCVState *env, uint64_= t rs1) =20 uint64_t helper_fcvt_s_bf16(CPURISCVState *env, uint64_t rs1) { - float16 frs1 =3D check_nanbox_h(env, rs1); + float16 frs1 =3D check_nanbox_bf16(env, rs1); return nanbox_s(env, bfloat16_to_float32(frs1, &env->fp_status)); } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628105; cv=none; d=zohomail.com; s=zohoarc; b=LiQaF3DDmoofCwYYtk3Dycjt5/ExtFUhagUBC2qEdB90Kca7GJ61VXzcmwgf9P6fW9a9Iw2wZ1KKpCQB6gQr1YAzGu9fhix9zOiewhuzBM5aI6c1WFgoLqrTGqUPh1izpYhE+mgxXcfJg67mjUlcEYs+wl0jLlo29gtw8J3n5Sk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628105; 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=SfgYizL3Nti5AIlWXmYjR2yepmyv1s+FueD5D7oVVKY=; b=WkpG6HZrQTxpyvzhZH2Sr2MW/J/bx3hI+7zoXx3ZYSO1zLLE/9E0OmZ9yA309VC76wY8u9u7NQkU2TMOJaThYGOuX5a7MEqjL9MkBBWAK2oQk6OUypHPsPhzVeVir+oWglIQmykU2Np5ViU/OSwn794V6W+kX+pf5MYP56taDQY= 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 1751628105449277.5634178377695; Fri, 4 Jul 2025 04:21:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMr-00049o-Hi; Fri, 04 Jul 2025 07:14:09 -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 1uXeMK-0002od-Ln for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:38 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMG-0003hu-5o for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:34 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-23636167b30so8771315ad.1 for ; Fri, 04 Jul 2025 04:13:31 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627610; x=1752232410; 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=SfgYizL3Nti5AIlWXmYjR2yepmyv1s+FueD5D7oVVKY=; b=DuE8TaIYBhPhibPZFPtvrAOvD3t0wAjNpKRHFK62a6Uj32VM/aivyZVbhMW52OwOaD CStt4kr/VGD4pkoXqMmAbCoypWwES+xIwZKSWfgiYBq/1VyNYGTNroIuuXqdhH5ITnrp 3QAoYpYDL2NXdlkbCG81BFmjTgznb5dboSCs10oRF1wLjuwiOd7UCaE49lHaxLAgI9Nj VPQyWvDS4jUjYmNXHP6k7bgO9+P8YxzPxc5vdPQ+ZPMn8EvbVGg6QUhRYQhvdK3+HeR+ OqTUSq8f0NWH7akN2mXcg8fG4i/FYBYI6VGI+wszQIp/m6E+WyC4YC6+il4rrTmmfabX dTAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627610; x=1752232410; 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=SfgYizL3Nti5AIlWXmYjR2yepmyv1s+FueD5D7oVVKY=; b=vlM1c9Ge5I4dCqdxeKYBKHGWbL3bcXSQQhT48cUS+BBmS0vwKhdy3SZExwcO/PpKtG FxuIdL+yhRvEw/hNNPqK3xB79XcpxMlxmtmXNAhlRxp0mpzx8/4d6kzHUPANDQQDkwWn 6J0aJtZMHlpH6Zm+H5FdOAxwYv3GjPblnIlvIrlSQEG2UTQiOuo7qjNAKAmDClYei51f OZHta0eSBDuNgn0eyiIEZtASzQ5nLbVG/ovZEm/+UowljPpCYbDTnPSjFnWJBwJ0D14K puoewd5MzfyDvy/Y73QmIt4yrp/3Qx0lDi1bEXHBmbHJnVhO9UpMIDClvfTtwnKZeb8J XHNw== X-Gm-Message-State: AOJu0Yy995bVGzD7rq3Qx7cvrblbJC0YLuU149lbSdaboQJOUkt0nVxs WV648P11qENZ31yzkM3qAgyeGr1Chza8MBWR1PXIxDR2XbA8R1TgG0XwxsSDWQ== X-Gm-Gg: ASbGnctw5tWiXpfQe2DgZHSQS63xeho1YiHqDXWhqRSMySrAwN4ZT1yNbnzvZGWReiV TIV2723M2xzOtP3e5h1sdNsBI+JQlI2zGQ3mYPo21uqnDTLi2tzapg3Fl11/jT/0Z6RqxhQEUl2 mCPFLKc2sB94Ud9/pLcldb8+msSSCDzCnCqapiNQPqT3VIYp5BGt3Uw/i48PYvP+9LcJ4W0cKFX 1WeYN8YyuxTWu5w/KxJ8QIchuXQcZWtTA4m462VmJNfP6MgwjvnpS02OvlbtAMnTDgMm2ICccr2 zf/D/vRlFhUAc/MhHUHX6+/uPbIjTK/xrg00UmSEeoEcW9mTbxyEwo/1rpSxTBK3nLol1xsgkxr L+ZCaYodAqqzgG9oG4dno/cabHfHuExxxHYxuOaZFRY8gLP5rI7nWNJ41Ar0BMq4yRuw= X-Google-Smtp-Source: AGHT+IFUnENo47JM81cL/SFxQLnOlrBkgwo/xvBuXr8pK6rVpvRfOJC2XUrT7CLxtLwKccq81gweEQ== X-Received: by 2002:a17:903:acb:b0:234:d7b2:2ac5 with SMTP id d9443c01a7336-23c85dff02bmr42380275ad.21.1751627610072; Fri, 04 Jul 2025 04:13:30 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Florian Lugou , Alistair Francis Subject: [PULL 20/40] hw/char: sifive_uart: Avoid infinite delay of async xmit function Date: Fri, 4 Jul 2025 21:11:47 +1000 Message-ID: <20250704111207.591994-21-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628107127116600 Content-Type: text/plain; charset="utf-8" From: Florian Lugou The current handler for TXFIFO writes schedules an async callback to pop characters from the queue. When software writes to TXFIFO faster than the async callback delay (100ns), the timer may be pushed back while the previous character has not be dequeued yet. This happens in particular when using -icount with small shift values. This is especially worrysome when software repetitively issues amoor.w instructions (as suggested by SiFive specification) and the FIFO is full, leading to the callback being infinitly pushed back. This commit fixes the issue by never pushing back the timer, only updating it if it is not already active. Signed-off-by: Florian Lugou Reviewed-by: Alistair Francis Message-ID: <20250605101255.797162-1-florian.lugou@provenrun.com> Signed-off-by: Alistair Francis --- hw/char/sifive_uart.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index 0fc89e76d1..9bc697a67b 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -128,8 +128,10 @@ static void sifive_uart_write_tx_fifo(SiFiveUARTState = *s, const uint8_t *buf, s->txfifo |=3D SIFIVE_UART_TXFIFO_FULL; } =20 - timer_mod(s->fifo_trigger_handle, current_time + - TX_INTERRUPT_TRIGGER_DELAY_NS); + if (!timer_pending(s->fifo_trigger_handle)) { + timer_mod(s->fifo_trigger_handle, current_time + + TX_INTERRUPT_TRIGGER_DELAY_NS); + } } =20 static uint64_t --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627960; cv=none; d=zohomail.com; s=zohoarc; b=MplENeOWm2URL4c/LfcPM2vUN68fvCbj+3QCHndlmY4R7JagVtl42Hc8RsqjlzmWGOzz94HCcd2CyCoK4fBrQlgLyFjDU3dkzeXqyd7N7/kBXnfV0hgvsB9LgoBYnLzS43ujfOf2JQpyEEWFQrMjNQ4zpPcksdaodBZKhdEG0T4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627960; 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=FNxj/pkRvngZiOvYp/rjInzIaNJOI6+DtF9M/sZjMSA=; b=aIPUQ2EiLpG4DM9eqcDx67j8rN14DWruqcyPEAfhSBvvwpg5zTvFqS9AWY232pSSo0anP3scTHMRXHKzJIlb3pRsymwRG/kImsoK9rKkgVI8tN5bfFrLxpSX/ad/yUhuvXEi/qhtKZ1C2Zkb43XKtt8jfIQ/x7twRFfMNOkiBbE= 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 1751627960096487.69309413918256; Fri, 4 Jul 2025 04:19:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeN0-0004gZ-9G; Fri, 04 Jul 2025 07:14:18 -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 1uXeMQ-0002sm-7u for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:46 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMK-0003jX-LS for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:39 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-23c8a505177so2113745ad.2 for ; Fri, 04 Jul 2025 04:13:34 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627613; x=1752232413; 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=FNxj/pkRvngZiOvYp/rjInzIaNJOI6+DtF9M/sZjMSA=; b=Eu5R1c6Ux3hhcOdvJ5KGug+AGj9xDLjv7298mSEKNeNgfqHKEW/e75sEvDPzSh8gmF krHlDhXyBoZc2tK/oErVt163vh6Rx1JfBjYzpA2OiZzOkt19eTYQ0lRvDfK8aVlAiOk5 hhPOTHw3iLOuX74KZtAlPGo12iHAJ9sFFrrUuWq+lZG6mvR7CocQjbAX2tP46b5L16Vw 6Hiac4s2wo8Ct9kYr6RWmVH6pGN9aoN38bp+RpWR6c7gCzxaNlLNXUzYXZpphYsbFHtg 7aknxX65iofjjr3RuKLHfA26U0gXqczHXtiLQVmZRYilDELxten/fTmhjwhQDG6y04aL B4gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627613; x=1752232413; 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=FNxj/pkRvngZiOvYp/rjInzIaNJOI6+DtF9M/sZjMSA=; b=mR2SchVJgQMqNlHH6JXsvpnw2RPCjy0Orcq4uJ7+PoZ1X/hUpy6ie86eFE+wRB1eye 9tX9iLhElSyFlWiVuyH/oewC28Nu/yoyoufZ4C0QCMZYaIV5KWkwSs7/41BuFRW8w58o FviDXEvoIrIIAWpaHkwdOockAyBS1K+Nd0MyGOPH24bUkTeWf1sJ1N6a4v2DEj43noHa 1tYis5QtFLrLYuKHsFMNNMz+Ue/8C/Z5JIKl1UfpDtblHNd9lcSyxROIMa5sUON5rloS YKSdSCOSdPyFP9RnpO87ABEgVIcmu0ywqrzBauTgSZ5iWM1he2aGhfGQB9mjzLFbIkmf UEpw== X-Gm-Message-State: AOJu0YwPu293EMMmilPe8Xm2H97zuNhOJ0I0Y1ErLSLOLiJxvaIBVUkA VMUrAA95pnL7AjVVQ2KuJnzv8ObYDQytQno3yNU2ALPMzQtYxaiXgeua8biFZw== X-Gm-Gg: ASbGncvbxY1889zgkS5979kcqhCeMaxwCStIvtBinMDLVBSrcBodlPuW9W4fIbbbyMu NJsKwLBy150ulyq1zA14FXg+zyhZ5wZs9ktSt0ERYfViZYjP8dhcjgngPLDG38UVFCQRjgSnfsA bQJiNh4oiJsbyQo8HbTjnf4uy22bk/RuvSFfVtdS+nnIzLlXQfwNDRAfBxXK9xS7YCT9pa7hhRB 6DxeveNPJVxOEDxn6O1Fk/4e7bJPnjvmmNTSIsy13OuO5ZTe5c6li2JL84Qwx2PuRnZdXgjaa2e syxsjbMJPlo4H/2V1VyY1j3tNu1obqE3GGsbCdEGfDcl9OXhLjFnElKKe5B9V3+hJWm3rFvtiId W2DX7A13mOdEGDrOE7LF9/H9nMpejKrf7VfAgRDOW6S/ig703f2OpYXKAYD93H0YBNGY= X-Google-Smtp-Source: AGHT+IEaHt3khMZ3JOuAj2ibdnVkH08VfoBv6h6Sdt/VljpDq6JzKq4S7CwY9vTPnFQPiqa7AwZtKA== X-Received: by 2002:a17:903:13ce:b0:234:f6ba:e681 with SMTP id d9443c01a7336-23c8606b87emr37682875ad.5.1751627613031; Fri, 04 Jul 2025 04:13:33 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 21/40] hw/riscv/virt: Fix clint base address type Date: Fri, 4 Jul 2025 21:11:48 +1000 Message-ID: <20250704111207.591994-22-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627961407116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The address is a hardware address, so use hwaddr for consistency with the rest of the machine. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-2-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index cf280a92e5..875eb7155a 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -324,7 +324,7 @@ static void create_fdt_socket_clint(RISCVVirtState *s, int cpu; g_autofree char *clint_name =3D NULL; g_autofree uint32_t *clint_cells =3D NULL; - unsigned long clint_addr; + hwaddr clint_addr; MachineState *ms =3D MACHINE(s); static const char * const clint_compat[2] =3D { "sifive,clint0", "riscv,clint0" @@ -340,8 +340,8 @@ static void create_fdt_socket_clint(RISCVVirtState *s, } =20 clint_addr =3D s->memmap[VIRT_CLINT].base + - (s->memmap[VIRT_CLINT].size * socket); - clint_name =3D g_strdup_printf("/soc/clint@%lx", clint_addr); + s->memmap[VIRT_CLINT].size * socket; + clint_name =3D g_strdup_printf("/soc/clint@%"HWADDR_PRIx, clint_addr); qemu_fdt_add_subnode(ms->fdt, clint_name); qemu_fdt_setprop_string_array(ms->fdt, clint_name, "compatible", (char **)&clint_compat, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627894; cv=none; d=zohomail.com; s=zohoarc; b=TF5JMt76y1P1MUR4SgCMIP0wUll3JQDZ7McIVBi+jl6mKckFrTAOfpPoKTMp90yfleg9zX56riUKOKKBLu/Yurlf3K0eTdstz0q0Kuj6xi4EOeOjNdzuAlxj4jcl5DWaTxYWcZ9XV/oD8Tn/uuGCl8PjemL42Ks3/lnogj7/Po0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627894; 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=AkXTAF5RCQS+GqZ4d/g2zMqXNejGjj+dNtOpEx2fPrc=; b=OUL4n8Lfgnsl+9jDzseLztidIOuXMlxGkyEVeQh3SdyjGFIy9mm5+J68aa2/+svBD21fW/IZxhoxHYlv6M7U3gwtCGWS4i5/SPMhjtRSKDM5WLLxJT5A/l3wy+uZxMCwGH1cWyRAEimgFcF7IWLcmT2tJK1wACttlxEWgzIYhsU= 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 1751627894098507.4582091772427; Fri, 4 Jul 2025 04:18:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMo-0003oG-TS; Fri, 04 Jul 2025 07:14:07 -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 1uXeMS-0002tE-1w for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:46 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMM-0003o5-8e for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:41 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-23602481460so9195155ad.0 for ; Fri, 04 Jul 2025 04:13: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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627616; x=1752232416; 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=AkXTAF5RCQS+GqZ4d/g2zMqXNejGjj+dNtOpEx2fPrc=; b=fXBRj1+Jwz38qQti0HQmZAlWyvayjUvi1PQkbi+amK827RHLTiAvqVhjqvd5mBtS5e i9ms7gczVGnQN6NzMzBi7jRfsoIKBc11pqRSqyKuMDCB39Vw7+EufC1G/aniy96cjRQ3 57q0ubb80yzPuv09+MVe+M44fIFj54RVxfc6rTcmCNC46am0Di+1xZIGEE2kJacGE5qn pr1HqJNesUNFYpbvd9ovwyJ+eJB5O8l9tsNzRP2wNEN2v6BFPwRYjAPHmnZueNPOf5qm X+8TjSSs/vHYPYPgtWjb8pncRygxhFzFoGo+14w8wQ53ftluTHEd+ml/lzbBtjpUQDXC g8zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627616; x=1752232416; 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=AkXTAF5RCQS+GqZ4d/g2zMqXNejGjj+dNtOpEx2fPrc=; b=BokeJqJfH5OyMZkgCT/r2EfLL9o+HqeVH/j3DOVOx/195cxC2WTAkkWhKq6zsaEETR wjdxeJt59TPR5Acxgh+hGr/pEw7XfaHtK4N75z9zHyoIjKGVJMh75zXoVDYXafz1YbpB z2DoTi1AR9wqCB3JoSRBSQxYsY35oHRE54+AV9iyELJzbHRCGumVrJukRmTlg+Ct1A/Q 4TZPdObWLj5XKXtvkNGUVGz6mPsVpfpBFzDp174ejCQb/EK3H71MHHjr5VTSV/FmxY7y +iB+V8YJRRj5ScGwXbjklHYXkXFw4bZ8ySy5pmhxSLfwBVKEUAn1qJgCY8K+p283WNEe wvdQ== X-Gm-Message-State: AOJu0Yzdd0a5iEoyKJHMTjyLoMILsbi520hLxPkK9XBmKqsaUzZl1dwu RSkJyp5GjbUo9r5X3gnVvhjrA39ueRHUJmcvf0fc8+VoL53J2ZVuKrg9lFSpdA== X-Gm-Gg: ASbGncsxVO2jNUbVP6m7c2YFXRrgCHka0OpDkOHsRvM7JINpIsYDizsIZvciuX6J/Kb PpUncvc4gK1voNZuWsieBDK86TufzEwmWbdVlHmqQCKgI39VMEsPZucbvhhTmtD4woPBg0zI2YU +9Ymhddm8HuOVtU3DjmUbIXiqH1Tl9sZdZEWid1duyIqjpCL2WsbUs0JhqyNALdLBl3PIoa703X uFdqbu+7TTU0yNwiJHnOwxaB6/IQ6ci4JDRfKJkVHgS6fsCJ6JDHkgIMPjNKRakpwzHLZ/5lrkx 7GqNLNhXCajzBNWr0RZPAQJ7jjm/mOb8d14MQhuadHY6hdXUl2uHASYmVG/3ioE2Cm/rRg0vSnf N/FSqRNfz9Ymsf/IFrZO7ch6jkioJ2k1Z1IuUDOi7Z29nkglgG2Vg1yig4QczF9CLumzLlgccVw UWSQ== X-Google-Smtp-Source: AGHT+IEk2hLw6Clz6m68XYFerMMXfp7ARRCSPAaB6bQdV5a7QKkicwYzdq5MHjNSs4qaB02epXW/kg== X-Received: by 2002:a17:902:ce01:b0:237:e696:3d56 with SMTP id d9443c01a7336-23c8624b992mr35068495ad.32.1751627616006; Fri, 04 Jul 2025 04:13:36 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 22/40] hw/riscv/virt: Use setprop_sized_cells for clint Date: Fri, 4 Jul 2025 21:11:49 +1000 Message-ID: <20250704111207.591994-23-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=alistair23@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627894539116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-3-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 875eb7155a..5143a46555 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -346,8 +346,8 @@ static void create_fdt_socket_clint(RISCVVirtState *s, qemu_fdt_setprop_string_array(ms->fdt, clint_name, "compatible", (char **)&clint_compat, ARRAY_SIZE(clint_compat)); - qemu_fdt_setprop_cells(ms->fdt, clint_name, "reg", - 0x0, clint_addr, 0x0, s->memmap[VIRT_CLINT].size); + qemu_fdt_setprop_sized_cells(ms->fdt, clint_name, "reg", + 2, clint_addr, 2, s->memmap[VIRT_CLINT].size); qemu_fdt_setprop(ms->fdt, clint_name, "interrupts-extended", clint_cells, s->soc[socket].num_harts * sizeof(uint32_t) * 4); riscv_socket_fdt_write_id(ms, clint_name, socket); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627717; cv=none; d=zohomail.com; s=zohoarc; b=ggHksBlxx3ouoFjEoCJ+SD7m8kubBPbNZ5Gf48V2ERcuJ5l2GqsdDelMkpdXxWhDjkZGrf8rKcG0cUw5ujFXDVx7pSXuXHQbydyeMui3eMQUEsuoL30c7aYJI0MuwF2vzbrT5p9acaAmbTJOaGUG6nJEbaJXxJvtUzopyUkmBeY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627717; 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=V1np2O4QduAgtc6LsZvxZtIu1Z0IP/TYxN+sp5bkK7E=; b=VrZSCgZPXx9TFXID5JrwgASLD/6aXOWb3GCfebjhSurWq7qodh1mUASa1SuChSqZQEgh5HBOVkGBuLh/yOjC+qfoAcTzrgrFJczjo568PTk/8dEys4/pf8B0fDssOtzourLTsRzCIXOy+MAa2J9mWQp1HVCEitnTVzhjBDdJ3pY= 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 175162771700326.93056678192727; Fri, 4 Jul 2025 04:15:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNU-0005wr-HJ; Fri, 04 Jul 2025 07:14: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 1uXeMV-0002wf-Pr for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:50 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMQ-0003st-64 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:45 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-234f17910d8so7520915ad.3 for ; Fri, 04 Jul 2025 04:13:40 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627619; x=1752232419; 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=V1np2O4QduAgtc6LsZvxZtIu1Z0IP/TYxN+sp5bkK7E=; b=coOur4hJQvAonsd2ZvTfBbUAN6NA0fpHs6KJw4/VKGxWc6g54aMxz4lVm1sQ9IFoPE JKfqxjEh7myoIQ/8Xp2gt/QAavJT6eTBHSZ1QBWjmGfOcvsLsN4BBDJAkecCOIW4gxkA YKd+xTtV4+MxYo9WZGe2ZsXeMt4oniyG9P21uxGEyHwhCThwW7ATCwvvgKTonAzSJ6z9 xFbAyeSbV29WoNt7loiJyUR5uFGn06G5eLWqPToUpGpkzIzwZuolcg3lFno8QZEJh0cd SqlkePHH5V8TY1RbQU1+i2IdqwDjpKDhD0L6Tw1im7WxVc0vAB0IeyF4mT7vYmbOF32N FfVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627619; x=1752232419; 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=V1np2O4QduAgtc6LsZvxZtIu1Z0IP/TYxN+sp5bkK7E=; b=L3sAQFVsMGUWHlLSJ0mNd8UoslKKW8ggY+RMqsNt0nFbgb8dwCpJKaTigYa6tLmshW EGJ6RYw7DGHgAaKNmfgINj4DZy7FzbWwKIgmFmZ37SLRBaN2NzubCFu0wJH7AI5OtE4F lxc7Xl24ArMUPjIH9okjqWjzCu7EalkIlkffAMQBRzkqQp9oi46yq0540giODlfO0bMd BTJQGdKTF++SWF6Zdm8D5lOApSOfIyFvnSWCvq8bHQZJvL/T6io9z6jUJhabVW8VZatg kcyg4JrbD2WDewBBYEQWZw92x0GRR6z0PjYRKBnqOjrrxk/CQj2/YPG9zEDF0/pJSnF+ ZljA== X-Gm-Message-State: AOJu0Yx0WdgzJ3QUeei3ZvYEELSU60zkHrfdB6hXVS6R1wVZL+bo0L6P haX4ZmU/2pcTbKNzOaoqq0rWz6rerkppZlcJNoVFFXaQolwWxVdLM3WnY+Sdcg== X-Gm-Gg: ASbGncs36M3nST6x3MBvxjdUG1jBQGT07qzOA93t8W/0+9xQUBZw+MII/8ZseiwfVPT bJepFejBmEsWznGEAhNtUV/x2lNse3xGMZi04AxttBSFIOGCoRUNqkbdQpemAcasb/BpTip4ywL h8Lj6uHng98fOEDjkDqcVyZi5oDV5z+Wp7vLNLXOBL9W3ILlyEGfPDtozWtPss9FZK/VMg8Gd1e ONJ8AdGGdwkJVkrS1vyyJeo+DENc1NTQheB4i8s1rL96O/6z4zJaKrzM5cCo37EHEjILMvsEjhN FlqFBt0O/PvFlW6tDU0KZ+VgjZdRwko5aw1cjWbGOhhFF2s+3eay1GrU0PgPsbdy/spzenVPRPg lBv51QEv1FVEOMzKrOIa1lVJkBUc7UU/gTE+MblZh0WEhXPY2/VUAB+Xb+KJ8Zo7spe0= X-Google-Smtp-Source: AGHT+IEIuFO25vd4giaO7E8gpd2gOvlQ6whhJewg20yUYhCUVmWjpXtZYuYBP8vwo5IvSMgPOO49yA== X-Received: by 2002:a17:903:13ce:b0:234:f6ba:e681 with SMTP id d9443c01a7336-23c8606b87emr37687905ad.5.1751627618959; Fri, 04 Jul 2025 04:13:38 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 23/40] hw/riscv/virt: Use setprop_sized_cells for memory Date: Fri, 4 Jul 2025 21:11:50 +1000 Message-ID: <20250704111207.591994-24-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=alistair23@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627719438116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-4-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 5143a46555..e074a29675 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -311,8 +311,7 @@ static void create_fdt_socket_memory(RISCVVirtState *s,= int socket) size =3D riscv_socket_mem_size(ms, socket); mem_name =3D g_strdup_printf("/memory@%"HWADDR_PRIx, addr); qemu_fdt_add_subnode(ms->fdt, mem_name); - qemu_fdt_setprop_cells(ms->fdt, mem_name, "reg", - addr >> 32, addr, size >> 32, size); + qemu_fdt_setprop_sized_cells(ms->fdt, mem_name, "reg", 2, addr, 2, siz= e); qemu_fdt_setprop_string(ms->fdt, mem_name, "device_type", "memory"); riscv_socket_fdt_write_id(ms, mem_name, socket); } --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627954; cv=none; d=zohomail.com; s=zohoarc; b=ijQWjE2ab/LvvN/lVUzcT5z9qS5stY+3ew/k7POfoMFOgmB873bjEFoCzFb8ZBr2uSFuTc/6m5cvJsYurKHL281r+NV+3CV9gZW5pC7MBDsQLpldZz494OEr/Yb6MnGE7UXsuUbBlsQsn1TDK5hic0QhOirUJW8FK5DE8h4vks8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627954; 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=q3FSXIvxye2ScqCnAEqXzSP6Tfx4AgfCRRJWGmS/vDw=; b=IWUnTI6EyksqDcuReIe+uNL5JhS9e6bMhhcFqi/Z5jUE5oGvydbMjRc2W02Iy/oZnSeYergV4ebBAZBWeh6qTFD8D/P13w3HImVB4cbCVTpMcxX0uK6xLOqqR7MLfNS5LXiPAatN600a/4O050IbsfQj7cB4PDXO527t5vf5X5A= 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 1751627954968875.1083184247516; Fri, 4 Jul 2025 04:19:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOA-0006ys-J0; Fri, 04 Jul 2025 07:15:31 -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 1uXeMW-0002wh-84 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:50 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMR-0003xN-Ts for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:47 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2352400344aso8740815ad.2 for ; Fri, 04 Jul 2025 04:13:43 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627622; x=1752232422; 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=q3FSXIvxye2ScqCnAEqXzSP6Tfx4AgfCRRJWGmS/vDw=; b=IilL+ypPmZHXiO+jgfr5QswjYsOUk8jYiT4Od/4mYhFVCWLeQH9LcAI9H1pzg5PngM CMXf699p6qBU2DiW3L84rAIHYKJ/pXFCXED2t1MK6A7BEfWbKATMlFCF8XfJnU2E5Z7r ciLJVUl7WkXgTeymD6Qff/QbGCoV/yn/b315Y1UZyslGY005HefU7tRP9KMwPvoPRTlb lBvmqfN0vnrq0ZIZ3rLJtup/XrhsmmPm3VeHbDC4y9p3TSDe4DvrHGxSMKxznZfDNHbH nnEiwnOfuJGHip0aA3NoENPSZ24lCJCyW8VvOEIBv1TiE+s8Fcg7ytApoAJ3ajjKE0dA rTUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627622; x=1752232422; 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=q3FSXIvxye2ScqCnAEqXzSP6Tfx4AgfCRRJWGmS/vDw=; b=g1kIC5tAKkqrV2wNrRKwqjgPPJYhYln6ber0hlNaAr/m5M6z3jYzNZF7SDvPq1W7da 7e6kmslcx6LMD2APGexTv+whj5qO/8rfnnKjsMoyljFPJX43dlkhIK00/XIsD6sgeMDh vcBzrSuTu0EKUubONyfh2Xgy43AD9vmCLn9O6pe+fOGcoOtuIhV826Oh8gIeljx2g97h A0/100lrK/PPUtwbGtHUwQJtvKP87WKNQlX0M3DDSvcF1rEXGrAMumUGa9rPx7dFfM/I BXEDvXdARGWslVa2fDj7Bri7ZpMJ/SRLp9AuOHmOWuRmwpw4YJ6+4EcuYljXfrs1UqD+ OW1A== X-Gm-Message-State: AOJu0YwnC8ftb7kuA7peNs2m9fucINmboZDSUen/dWthn8mMwZLEfD1f uKSEqiNMlmz3tYc1S9wlAMDATkqcOeYr8CeRqE8G6XNCsRXPBjdXPU3u1GB/3g== X-Gm-Gg: ASbGnct2kj2ORja68lLVHLoEq77jcpAPmc58AZOnUA5gFhEK49zoQewA/JdYWQqSGZ1 jXHixCj1DEsqErjSQoiaNgrW0fAwEaZARI9HXUvliZJZKxOd7mAaTYCxZnv31Ue2NiSy5n/PclH YmXqIwli2kml6lmjDJMdbkXYDJ6f1OCLbntW85LuLWxb2WHLsxJBDpfAOLLmLmBJYa9hqRrY268 rkaQfp8UeKWZYjXS1gefOwp5lAhwDPt04PXJ0HIvndAdRe2/CdWS4KY2EORiZY0GoNQHmuvil0y 57PNEOVUphW95GdqbAFLkSwHDhoIvp5mTI4lxay3MfXm9VW3b39cvtWak72Zxn+UqExXURrgDd4 D1yh9OLw5sf3N0iSygnqR9pyW2L7aeWm17gouPu+rCegkonbnGBPRe6RDd6pF4l9nTZo= X-Google-Smtp-Source: AGHT+IGWcPLnwhvRxtBJfWcvVydY4smpZNL7DFru35gYolkoTmHFFdt0EvtdBZgKUkQH+3UETdXSeQ== X-Received: by 2002:a17:902:dacb:b0:233:f3df:513d with SMTP id d9443c01a7336-23c8629cff1mr36996395ad.35.1751627621922; Fri, 04 Jul 2025 04:13:41 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 24/40] hw/riscv/virt: Use setprop_sized_cells for aplic Date: Fri, 4 Jul 2025 21:11:51 +1000 Message-ID: <20250704111207.591994-25-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62c.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627955552116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-5-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index e074a29675..205fa6e44f 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -655,8 +655,8 @@ static void create_fdt_one_aplic(RISCVVirtState *s, int= socket, qemu_fdt_setprop_cell(ms->fdt, aplic_name, "msi-parent", msi_phand= le); } =20 - qemu_fdt_setprop_cells(ms->fdt, aplic_name, "reg", - 0x0, aplic_addr, 0x0, aplic_size); + qemu_fdt_setprop_sized_cells(ms->fdt, aplic_name, "reg", + 2, aplic_addr, 2, aplic_size); qemu_fdt_setprop_cell(ms->fdt, aplic_name, "riscv,num-sources", VIRT_IRQCHIP_NUM_SOURCES); =20 --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627957; cv=none; d=zohomail.com; s=zohoarc; b=KYq/N9MSB+lCPe3Fx0PorS2ZDGwGoLNTqOG24CrKPlwIDeUa7wachzL06HkeqxdZPey2SlC0I04tCsxJ4L3/8i87SbCKmyxiSh+1JfiZoMmeCu+BvFvGWksAK495NZqGuZbB9N13XiMd7oWqHN4SRgy+4Xt+LZ9Y+S/DPleo0rM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627957; 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=co3a1xRLGQ7HekYeYvHj3VeR9v5FYdh85Xw624+7+Pg=; b=EZB18Q9J/0JboilESlPyo17DiQhAyqRP19hIQWDWzEB2YoAuWvqT+aQMqVypvhKfnvCCFUr0HZYu/3HjUZbD1GFRF4hoc5+GsXnRORixKD5T23lP7ED2DRxqQhqrxJLLbm6zSXg8yakG4rEBlzJrYetQxVCAb6FbYFoZx/+m2xU= 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 1751627957643404.6320870083174; Fri, 4 Jul 2025 04:19:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNN-0005n3-Db; Fri, 04 Jul 2025 07:14:41 -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 1uXeMY-0002zo-7a for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:50 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMV-00041o-Bs for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:49 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-234bfe37cccso9928725ad.0 for ; Fri, 04 Jul 2025 04:13:46 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627625; x=1752232425; 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=co3a1xRLGQ7HekYeYvHj3VeR9v5FYdh85Xw624+7+Pg=; b=iIdAvUm/N1HgAZf4RbyAnaykzZ0P7YVYxgNzdhoNiyYZAQEjRkwAT3jDND+jmJ7FVk OoVWgdOo2Ase+jIixPnJjrLN7PUGKxEzVE7VO8wdlJ+PmBcQX+q6MUBBQKEic3uqatf2 ddJAdzKpFVTwAfbItbQSnIfaqgpkLuOi/Qu87NTdFoQQpH3qztSKLCcZRayFsujJhmrT jF65YJ5eK2kPAyiFOePRGmghE6HWQZQlvvWWFahGNmlw4J/xdI1cJKC1kY8bA7YbQ2e4 LevzMvD//9bXNzmP70eGnxr0ataYcS8WzaHRzmhe6nZKVFjj3LmqDV9x17g9S8sMdgf3 M0lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627625; x=1752232425; 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=co3a1xRLGQ7HekYeYvHj3VeR9v5FYdh85Xw624+7+Pg=; b=u/zZLdXlouZCi3jg1pFgQTFLx0QpFgJiMZHKHU11rY+VSXK+Wv+igEk7ULTV5VfGio nfuUr2uPSQ9BwBQFs6hBQJWWZOP/xHmpEUCNpC5JkPGrHDAYySRb/9Jas7vtZ+DMV0Ar jNIWOgP00y2u/3tr9FgpuV470zKSZXGSrgNxbtruiuXGd2gYao6oznjYwuwBMiyrr5xK i8VmUCFNQQ0XAAP37SimsOVHuOLYxPHig5ElKdMlhIYqfbnKk/+rlF38vEVzpi+/+Abz hONW7a10rZ7MSFv7UvskR4/ulNyInZ7JfG0ww3WDa8pFUf4S6FoMU1LsHcV3ArXWFyZl dD7A== X-Gm-Message-State: AOJu0Yz4yRV52/Zx17slzOmsn1VAshhMitXbHrdGboHbDMXVTtvY7ti6 SPwydDmAWDt7sj5Aai+7V41jmXeqt8V4x+Lpg248cG4QgPb5HY7Dr8E+CRSyYQ== X-Gm-Gg: ASbGncuMn85sBlA01tb+7TbFwSltj+XaY/7PsORoKR99RQwimAFuKzBjGGcYAisFULk zYZJ+ihH0AdqAyIyvQaIsjE+OANeALq2R5VJuKeSURGz0xAI81fjna7Mkoc4OuzzI7XE56Kbdjq 58RAaHdqJj6YOJLCW+1hYzOqIG0TWWTAtstnqTZEAs03IOdOIVQzXWy/4vaYgDWHQZfxzOj4MEX RWX/BVHmp08yQUrvEhgt9pfMaHuzyjaeZkz3yUhS3pM8coTW4Mn5E53zhXVUwtvbm2KIv+rqfLx TkCcqagiIMeq732DQX595L1Nn11I3I/ahszixYGBU5RO9HhMImn5TgsWuIw0z90x9GIXaIB15z5 hWztSQdQYFz5zRw7y5Qc9JS5JjuW0V6cVMRJTnWkO+r0ebjk/r5Yn4rLwYrGpxTVOmdOrokQp+Y FrXA== X-Google-Smtp-Source: AGHT+IGtYM3X27SrgmcT+Cvmu6/3Q/XCKptPGqGjDSd3TTCOdIUg618BSWRQNe7uPlUMrRMM349jIw== X-Received: by 2002:a17:902:ccd0:b0:237:ec18:eab9 with SMTP id d9443c01a7336-23c8611e444mr32551995ad.32.1751627624881; Fri, 04 Jul 2025 04:13:44 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 25/40] hw/riscv/virt: Use setprop_sized_cells for aclint Date: Fri, 4 Jul 2025 21:11:52 +1000 Message-ID: <20250704111207.591994-26-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=alistair23@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627959452116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-6-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 205fa6e44f..4fd966a342 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -387,8 +387,8 @@ static void create_fdt_socket_aclint(RISCVVirtState *s, qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "riscv,aclint-mswi"); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, addr, 0x0, RISCV_ACLINT_SWI_SIZE); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, addr, 2, RISCV_ACLINT_SWI_SIZE); qemu_fdt_setprop(ms->fdt, name, "interrupts-extended", aclint_mswi_cells, aclint_cells_size); qemu_fdt_setprop(ms->fdt, name, "interrupt-controller", NULL, 0); @@ -410,11 +410,11 @@ static void create_fdt_socket_aclint(RISCVVirtState *= s, qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "riscv,aclint-mtimer"); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, addr + RISCV_ACLINT_DEFAULT_MTIME, - 0x0, size - RISCV_ACLINT_DEFAULT_MTIME, - 0x0, addr + RISCV_ACLINT_DEFAULT_MTIMECMP, - 0x0, RISCV_ACLINT_DEFAULT_MTIME); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, addr + RISCV_ACLINT_DEFAULT_MTIME, + 2, size - RISCV_ACLINT_DEFAULT_MTIME, + 2, addr + RISCV_ACLINT_DEFAULT_MTIMECMP, + 2, RISCV_ACLINT_DEFAULT_MTIME); qemu_fdt_setprop(ms->fdt, name, "interrupts-extended", aclint_mtimer_cells, aclint_cells_size); riscv_socket_fdt_write_id(ms, name, socket); @@ -428,8 +428,8 @@ static void create_fdt_socket_aclint(RISCVVirtState *s, qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "riscv,aclint-sswi"); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, addr, 0x0, s->memmap[VIRT_ACLINT_SSWI].size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, addr, 2, s->memmap[VIRT_ACLINT_SSWI].size); qemu_fdt_setprop(ms->fdt, name, "interrupts-extended", aclint_sswi_cells, aclint_cells_size); qemu_fdt_setprop(ms->fdt, name, "interrupt-controller", NULL, 0); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627772; cv=none; d=zohomail.com; s=zohoarc; b=AcsQgCS9PbuIRnhAbT0/8MiDqnezADY45lLRCdwr6oCPTlczgnBSeg7blz+0PmDPQJL0D6OSaDxbRzOe8a7oK3TL/hct7Mc1CatjcFrIildKe/eVezvUL+JNYOoL1+P8fGSXyoijKxGSw6ovATxA7fO+8yIbZmBIHPdaLNgxqE4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627772; 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=PdSAk97v2JSe8k5QnqQFx0dJz3dX1gSeCclLDALqBQs=; b=dpifZQq4IT4Q4Y5YsXT8KD5iOFtx98LzvVIAfJ4ZxoaObtqv0JQXqdzbRuxVl1eunRunHgxadYF2E5gHHticymib3jC28S8RF37PCHTZWA7KiwhNTka8sRl5JtRSqcOHTivCN/BkpVyTaixpS/oFB6Z/iuNLS+gC579o43/XU40= 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 1751627772841833.6667467081473; Fri, 4 Jul 2025 04:16:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMy-0004VN-Gt; Fri, 04 Jul 2025 07:14:18 -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 1uXeMa-00033O-A6 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:54 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMY-0004D4-0R for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:51 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-235f9e87f78so9676365ad.2 for ; Fri, 04 Jul 2025 04:13: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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627628; x=1752232428; 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=PdSAk97v2JSe8k5QnqQFx0dJz3dX1gSeCclLDALqBQs=; b=NLujgNwxXHJR+5bTxYTQ0WXM6q662oMU5vyhln4TQ6KECAnDTEj92Ifzy1z0zhrwqD 2f55QzRbVTlyakYWWDkv3I6O6COeGw+5ZX8ro/jawuQlXIR3+inifvb6tDRy4hgsmLkm UASv0OFcoCqf99O8ChYRxFeVTY69pbcI3tQfBn63ckh4BwBl1rdEJ+ohV1wu5feUkJee /cwPCQSVu0LfAErqGK88Qn52o1WVagiLIvhB5ULh4QLKKYKiVIrTN2Kz18fVf4BVslVw r1b4WCX6b33XE1oIUPsRpXCft9xTBAeW5s6wmPiFnBufkMAZMqG6QKjJAQCuo1NT7sWC oMLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627628; x=1752232428; 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=PdSAk97v2JSe8k5QnqQFx0dJz3dX1gSeCclLDALqBQs=; b=aLh8FvQtuQXHiDc8SAEXJOre4GiDpDjVWGKgNdQQbNuoT5wNT5rnf1FM3AFKce0zTb BuIoJM2k+CthWRPiesKzlxtnWg4XLOMK0VRzAsIDSbyoZAQAD1igeRAltQoLohsDktdK b0sp+YgSDIwYgJ2hp2J56YVlBvj1jWw6e+LnWZclySinMKBb5+P8Fsavi++fBNT+rAGZ HhrAFU4/dFJ4MIrNfKzj9fkxhVHxuym5QKqkVZ8hgPrpYoJ4+jOzbX3cb0v2++YtkKEi a4+mvHyI665xAFSydw93o6m9xKrkJKRZmEse8M66Igq/vaQBeLySqdUyZGnNVZkhfKpd VSGg== X-Gm-Message-State: AOJu0Yx4iifNdKBAlj8jBCWVCWT8YdRizKNWmj+++PGsA/KE4hxtCq0N 2h0KvhQ1+TDBKSiS2Nhto1wPYpuznxgzRzlH/kxMAXeTwwaLvr0qlDcGZHKt5Q== X-Gm-Gg: ASbGncvK/Rr7ZbzB4944AAe9nWVDdeuMRZ5BQLKSw7fQALu6B62lMyMSr6uj//CCS44 SLnVjNrV3bZkVjF3A33DUg2BYKy0JBG5j7ZrlVeTrSU+fhgrnbIa79UKGgi1lyaxnZkXmt2TWFp BVWoYMjD7u2n8OthvWRON6ANY2J44/LQYukM4g91Jj4RX4j1gw8mOKrP64DwZkQAfo0vYL1wzT1 ssFTZ1TVCRbPrYp7d9xb5p9tR25i6twmkaMPIpnY8E6VFcLg6tLcf+BXJYrzxsVeMfFEIRQY3Q3 Cginf5Pxi7P238nnxdQC0cA25ivN8whAnLxXYqqvR1K4bIbEe53gv8VmNgC3jclAlIgDl/L3dfz QCwbBtsbyS42nByLF4iitV0te5V3eO7hx58qaTUyeLsFfBBz3GaTqF7pGqGOe1/HL64E= X-Google-Smtp-Source: AGHT+IHQeGkZZnVT2amVEwLqnPlF9vkywSYadPhY2CNRS6gJbTwdQCKmi2Lno1hS2EBiOZ09a3vRfQ== X-Received: by 2002:a17:903:1446:b0:235:e942:cb9c with SMTP id d9443c01a7336-23c85d9f014mr38510715ad.5.1751627627816; Fri, 04 Jul 2025 04:13:47 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 26/40] hw/riscv/virt: Use setprop_sized_cells for plic Date: Fri, 4 Jul 2025 21:11:53 +1000 Message-ID: <20250704111207.591994-27-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627774022116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-7-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 4fd966a342..67e60eec1f 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -493,8 +493,8 @@ static void create_fdt_socket_plic(RISCVVirtState *s, s->soc[socket].num_harts * sizeof(uint32_t) * 4); } =20 - qemu_fdt_setprop_cells(ms->fdt, plic_name, "reg", - 0x0, plic_addr, 0x0, s->memmap[VIRT_PLIC].size); + qemu_fdt_setprop_sized_cells(ms->fdt, plic_name, "reg", + 2, plic_addr, 2, s->memmap[VIRT_PLIC].siz= e); qemu_fdt_setprop_cell(ms->fdt, plic_name, "riscv,ndev", VIRT_IRQCHIP_NUM_SOURCES - 1); riscv_socket_fdt_write_id(ms, plic_name, socket); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627733; cv=none; d=zohomail.com; s=zohoarc; b=e00AKjbdrgViLiJbpIT2WYEveTI3tpFtZv4PIafF/6tZRzuloxjJ7saupz5TX/t8et6om3ku7k5FB7sWnf7/a6PwdjBWStMTvxDNL7ELLb8v3xsY7c5ubCGWaYsGnLP4asJOoCmOk8kAtFsugsQmeGluZfimC6yeZtFAy9AAS4k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627733; 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=Xxu/cdnHornKuK0QwVscYCwM6yePSasW7eC0BT78hNg=; b=S6L8zTg9DDrBzYdakGNM2qPAct4jfZuNzWWOOjF0+GcLDEncEoDeEdu4hPUoMeNp57YTpXghG0vFHQA9LlR8mkkcV/BIL49nsmnPPKiN9Er1OtIxMVaWl2M9ofaVVbz3AcIrlgBbrch+MAnSdklIYUMLs8RZDut/suQ9Cgt89Tk= 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 1751627733139978.7867514111265; Fri, 4 Jul 2025 04:15:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeMu-0004Rm-FP; Fri, 04 Jul 2025 07:14:12 -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 1uXeMb-00034A-Un for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:56 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMa-0004Gh-Dz for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:53 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-234d366e5f2so13013005ad.1 for ; Fri, 04 Jul 2025 04:13:52 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627631; x=1752232431; 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=Xxu/cdnHornKuK0QwVscYCwM6yePSasW7eC0BT78hNg=; b=WfSbz5S0myI16EHTZZ55gNBV47Q3rEynlb7yuXd+OijmBNYFmnEaihuuVmzkXeSW7P slh2ysCG9oWryuKpkOOxFSQIiFRNm5wHQRJnjp8z4b8RErTuuMIQJLfEGuF5oa9k6rGZ nhfr1enQFl/mfo1NU4z5eu/UffMiv4rkOb49Buhxloopvdq7eRuUtL1ytfkpQ5erxklE 5YmUpWw1h7W0yO6jZbOELGTSIFOWKzmMZ/bh9632M3e8SUBOSPvWia+8afAru4GHO2+w SNoKT2rW1EM1os1vGvag/OedqGMMYJRvdmNnLq8y3JGQ9PQ/PaEGjV4ZhDTybfofLoKu 9wnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627631; x=1752232431; 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=Xxu/cdnHornKuK0QwVscYCwM6yePSasW7eC0BT78hNg=; b=DPXcuyy/OcFCXm6WcnhAhkjTJRfkVC9oQNL8zQcxbvn9t2/TIs65LftVJfGaZ+6Pf3 GbLUdrQUEqU48T/AdLjhCGJi19waqesKluz8YJ5M8oawJIiUakysxkP81jW1P30WeiC8 +5LdgMHYHO3IKer8JndPgGfLNpWmG6YXlihfrNpg0VashtitTqiuch6w2Drtwc6LeemN 3eHtzLzU933yEa/rTFV3GGVdGuf47EXI/SrMhOZxTqd6VboM49MDsSON38YQ4t8PNVjO GiNsSAx09VWrAmUwePPNmYKkgaefv9ikArmqn+PZfq2Hx16QVroQBBX6MFEsUbPekFLu SGHA== X-Gm-Message-State: AOJu0Yz3k+CqbBikJ/plYfvSwQdP4z6n2vNJ+3ont+8ovOTQBUGlgbnB Ia/maLVi1b1iwtd8RKKQIvfjNQPjzJnNQt4mGaBqbFzPOulkLAUS9Yq78DXC1g== X-Gm-Gg: ASbGncuThch6DdNqxEZV846AJFhluqewmyoTtgJ2s3kfSGKbmsOtFYkRmllSr/0IkWf NxJlVdbnoIO19zPSDhmivs6JrHZQxj59iS6ICLTCdZqSCU7T9q15t+BkAorKqfsHsuB7KJVsicl 8hYPXzc/nt8koOno821Jq/4wUXhqHg38j8QUexOzS9VAlW2SshOIbKlpiPolLxC6sK8vdWYi9+G DWAb6pf8PP7dpVExqTqmNo5P3YhQZ0dQIgU0fofvlw/7DkAIwpDCi09Pu8nxY4Onh0nOdu3DTjN D3fupQvFFXIW5bNKG4lv62ZX7hfZtAuKBl9bC8bvzp2yH9C5Oo9gaPEiCaEdKaQryTJ34Mf9vfm uwuHAu2miDYaqwWjjSf6JbfCadI3RgmxwQVh1XyaKdh4J0v7TiFGrarPDeFUSoYh4S0lhyPxZZe 5wqA== X-Google-Smtp-Source: AGHT+IE5W5LZiycotEa7VQdhxWPh+NCjdPWl5kmnmh0dgYZs4Yw55wZojqyiJ2WzGf7gAcRiyEYJDQ== X-Received: by 2002:a17:902:f611:b0:234:a139:1216 with SMTP id d9443c01a7336-23c875b0929mr30677895ad.44.1751627630746; Fri, 04 Jul 2025 04:13:50 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 27/40] hw/riscv/virt: Use setprop_sized_cells for virtio Date: Fri, 4 Jul 2025 21:11:54 +1000 Message-ID: <20250704111207.591994-28-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-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::62e; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62e.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: 1751627733522116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-8-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 67e60eec1f..851c7cc82a 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -856,9 +856,7 @@ static void create_fdt_virtio(RISCVVirtState *s, uint32= _t irq_virtio_phandle) =20 qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "virtio,mmio"= ); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, addr, - 0x0, size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", 2, addr, 2, siz= e); qemu_fdt_setprop_cell(ms->fdt, name, "interrupt-parent", irq_virtio_phandle); if (s->aia_type =3D=3D VIRT_AIA_TYPE_NONE) { --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627831; cv=none; d=zohomail.com; s=zohoarc; b=X5nlJ+Uqi58isX+OUA29f3ms7yG2rtJrbffshNyGjTDClkOLXqoBDQzvvipIwdmiZM1jcfpYWLO5JfTuWWsoXeRwqN7fYzhM5WQPM/lOC+6es3IHT1uistukv5PvEpt1DXjL/OOnLheCeSlMrCWpl4Mld09mdH7iOb0u6SsO7Nw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627831; 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=+R/Awp2kBJgi+4PesyqDmlqh5JMpztF609WYNFqZEVk=; b=b5RZG7L/2xiHbsqRRUWhcz7t2XmkBhLoX5beaP7Wb4rOAYpI+sc9Hg6TxJaNvLmq/yi29dwUAjr8eoM/tnSqTbpjqP3015kzyP0UM20AC5ZBVroBFEXj2w7qZd9AFlpLEQ81gtuJcmSLRtCI4l5Dx5JOYJ+JSpayyc6nn8FDxy8= 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 1751627831949299.2990237146777; Fri, 4 Jul 2025 04:17:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNC-0004wd-0Q; Fri, 04 Jul 2025 07:14:32 -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 1uXeMe-00038H-St for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:00 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMd-0004HD-7o for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:13:56 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-2349f096605so12203595ad.3 for ; Fri, 04 Jul 2025 04:13: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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627634; x=1752232434; 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=+R/Awp2kBJgi+4PesyqDmlqh5JMpztF609WYNFqZEVk=; b=IrWqZr2r+UfIFycspB5PMvHB6Mkofcf/Fvyg5GY/uASvALr8isT9MvyIrSR+T64MNc 5uizVri53t8FSEweuizJczW7S+y4JDKPWXPxTjrTtMrF4IXaY2bhRHMCWnSKcd3wTx3S b+C5u1YoxapO5pRorT0GTE5yKDycUlBObI9oxeFgWLHA+6L+9UgOdvYH7Jwe7cx0BmJo aL05aqh57M1IFNgYnRYCWGKr1f6HhtSSE7cvAe62H5S28/OP9e7JLKPIezCWgo6raVbx B7ibbuvbl6658InfmlhPkNR73p9bnU51YIxj2VVFngsINR72YuZD2EVKe9C6V4d0Vdmf nQgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627634; x=1752232434; 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=+R/Awp2kBJgi+4PesyqDmlqh5JMpztF609WYNFqZEVk=; b=mG07k7HQia2UL27vAUBRQrpOldlbjtzrSJSQFaBm/PKDrNVbBiSWCq1v1RlhSbgnNj S5i2AOTyNVTmmBuTa0WJZWG5x/aGz/fAC/nrgOHIQCYmaIEtp8+Td3jKdItySuM6u7cF Svg69xCAGDGcyiMAs78WYUuKlbc0I+7qGD0T70bLZoNI1HIw6XpQ5u6MmiGulw0nJ2JI wVv1jh+tN04aVUZgrQpuKhN7zp+/VciTxBOC+PSAQlsrFwLgU4Tb7oiD7gJZwuJUTA7Z uqcQEniEO95tDMh8F9XNJ5NE7tyBaurO/kS/1I3uvUEtRYdxxBwpZJetUqsWcv2tNlkb iawg== X-Gm-Message-State: AOJu0YwdRMPpZtu5vVeonpv7VmcbXHA81wRNHUh7MUTFKmfxw6Z9ijRO cgCmIz06Mwxf5l7oi6ZdE05fLFGj5Gucd4ZRJSKRvssTcuBluLvBdi/7dNEkIQ== X-Gm-Gg: ASbGncsMBMj65ct3CErbHNxZ3qaDMZfFbU0oEKcocZFmk7o9z6IDI2+w9QCGAO0WlAn zGDAQlaWevk5rYUu0rY585YBikf0t9Th9XdvZUxsmHVCi3uplJjSrwkHz/sgwsUlSkgBzFeD9BN zNRFZywlfw4u2DXJfVCcQO9jELzO5u64WSMy1e7E+GaD8SHqOXOjVsIsKRDGoGNNIVX2Itp5c8s RvRactxKvKh4kfQMw71FQVpBSjU5o5sFONy+0OxscAOF9uC0taSelwoiBOxzltoG9NzcUrbMwh8 d9oYot+oPseIs7rHANql8L6095m9ARPtpp4KsxpK6v1INsA/ZIZN/PzjSkivzxGUUF3FWdryktK jJSUow4DyUdoMrLwIPxNAyKwUywckaSj1Y1nBsKAbNXH//WCTfXw2k4FdSj2ihwJPaEg= X-Google-Smtp-Source: AGHT+IFoLOHEEukzmZ9z5nNkReD2gKaQW0NMdmvJJ5e7kH7yYg8h5+P8aW86ZKKh0tDb4LC/E+i+ZA== X-Received: by 2002:a17:903:1b0f:b0:234:be9b:539a with SMTP id d9443c01a7336-23c8759e7b1mr32723835ad.40.1751627633684; Fri, 04 Jul 2025 04:13:53 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 28/40] hw/riscv/virt: Use setprop_sized_cells for reset Date: Fri, 4 Jul 2025 21:11:55 +1000 Message-ID: <20250704111207.591994-29-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62f; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627832731116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-9-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 851c7cc82a..b59f10dabe 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -932,8 +932,9 @@ static void create_fdt_reset(RISCVVirtState *s, uint32_= t *phandle) qemu_fdt_setprop_string_array(ms->fdt, name, "compatible", (char **)&compat, ARRAY_SIZE(compat)= ); } - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, s->memmap[VIRT_TEST].base, 0x0, s->memmap[VIRT_TEST].size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, s->memmap[VIRT_TEST].base, + 2, s->memmap[VIRT_TEST].size); qemu_fdt_setprop_cell(ms->fdt, name, "phandle", test_phandle); test_phandle =3D qemu_fdt_get_phandle(ms->fdt, name); g_free(name); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628096; cv=none; d=zohomail.com; s=zohoarc; b=XDkMVDPOim0bFw/8EwaA6+KCL5C8nB49rT09lsAS8WFeflYHhWoDBsW+my8CLPAxvwp61+hWFRSvdUUXiPYmX1tGtsRv5u36gPuA9wE7xitRzuCH1K/upqgJhAgiE2oGyNP/iJWHEZvphaAMCZJzQtQB6qiJhq4o2+COgT9zjCc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628096; 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=rNXnV5rdf+l7pomRW4kQYmLNHJT+StTp6Iut77cYXow=; b=itYbAMgGZsDamf2K1PJvnAlH1YseJ+cYqjlq3IuSVhgLL5qrxTous8rC7luL5F38yrHuNUaZO6QmrL4Lta+y5xsX0zWNtU5yXo+Tuqrbyc4qcS8+Oju1AVevx18j6+EQGqeII+t21BNs9gHgMzJKbf0T7SBBUrZ9uiPMEnD0RXw= 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 1751628096271312.3429232783992; Fri, 4 Jul 2025 04:21:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNI-00056P-9O; Fri, 04 Jul 2025 07:14:36 -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 1uXeMj-0003OS-Ti for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:02 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMh-0004Hv-ST for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:01 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-236470b2dceso7788555ad.0 for ; Fri, 04 Jul 2025 04:13:57 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627637; x=1752232437; 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=rNXnV5rdf+l7pomRW4kQYmLNHJT+StTp6Iut77cYXow=; b=PC8NlnSIVxZYyOJg33HVbAaed2fGYpTX3TvYTKGNXQLjhr0Nniwot7R10ORdTLmZwp JtLYJWUuLi72ug/LdXH6phxvQOKCpFM2F+pspkCjNdPUu7wPb5jA0Mylj/hKWy3fbCbv LS8PUSEPXf4vuuCHXWU2qSB2wMsmL7tOK/PUHJ6heP/BsEcLzaa9e7maV13DTFcmx0Te 4CNzEn/UGjzz3A0CYo6YpsRui7i5c0LKLOAr8uAyTAgZzyeWJPzpphBU9FzolwJoySMO 1jMKRcjd2ej4ITfbQJiDXDc0dE5SjWQzOFg+/QvR8t9j7M7ZCqKG3ttynjUa3/uhf1Q/ o+rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627637; x=1752232437; 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=rNXnV5rdf+l7pomRW4kQYmLNHJT+StTp6Iut77cYXow=; b=R8PJ4XYtPdjr2voEI062Bu3TqZKIWRKEqtITkjOrNVsMYPW2oA8pL6bBD1ikUu7BZ4 VoiKcVpg82vcShaE61n499otK+DoQVscq1n2KuvcPoscDzegu5uiyNavLRGMpOn4LO/E aysoi4IkaNlx1ekfXuxHNa33aSWDpmczkJtiyoX1P9rufUtn0s0zjks11QOjcTBn1o84 SSVKFok5PmzO0rzOeVjUe+Hiymt62VZuiy77EVHRw511expl2VlprJ69lunQSVYBE7M3 Fc88Xx96QEWVJ8hLldzxtbJykukxB2fJUTEf/khopVb083gtmI/6zK+auIGAatYNmUqc jdlw== X-Gm-Message-State: AOJu0YyJFEH5D/zCBD8W1dRjPWDd80s/NoJSEaiLEKFDRP9gb8foxKho 8FtYQ3LYrnDwmP0XbR6Du87fpGa6PtrePQbMGC10IG2cOngBPpuAGk7d+oRHxA== X-Gm-Gg: ASbGncvHb2DvyzuIyhJt9GozE3Uvp2nFxtKlvHpC01OAzcZG9BzNah/7uPfxOnxtU31 KNUbm/2gHNwxPBwqlpTKEi386ku6iHNmH9DtYHVxnFZBg5s9O+uM+GE05OxFBAV4w7KxNSyJByz Cb3NwSdUksEQEVZpZYxJ1I0EfPz/8mtRI1SlBXd2rW8jMOYZBFBi19I/lMpAqtRj1zLImLP13e4 oHW62vaae+5ezk8EVUTRb0a2sHPAks1Ro41CgCTO/f6rir55Cfdgspt3Z1WTRXpbQYZOWWkiU8H 3j+xy+AXfsLX+qPfoWB4xofPcyFTebETSIh+zpN6fkZpqSUPlYo8/cwZVLNyAjfUgKd8q486Vdm /s7hUmvVSZs0rszDk/SGdJYSzjWPP9ZPEspUWzH1veX1OnnbP29KsVL8kxWCUkzN7Or4= X-Google-Smtp-Source: AGHT+IGvaz4UDJ/+n1wh6wf4sVoIkq1lY690OkB8fHZ/fqtTao4xZNAIFxeJxC1zTN14wtJXS71gHQ== X-Received: by 2002:a17:903:244e:b0:235:60e:3704 with SMTP id d9443c01a7336-23c874719d1mr29339395ad.12.1751627636626; Fri, 04 Jul 2025 04:13:56 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 29/40] hw/riscv/virt: Use setprop_sized_cells for uart Date: Fri, 4 Jul 2025 21:11:56 +1000 Message-ID: <20250704111207.591994-30-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=alistair23@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628096919116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-10-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index b59f10dabe..7c38a90480 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -966,9 +966,9 @@ static void create_fdt_uart(RISCVVirtState *s, s->memmap[VIRT_UART0].base); qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "ns16550a"); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, s->memmap[VIRT_UART0].base, - 0x0, s->memmap[VIRT_UART0].size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, s->memmap[VIRT_UART0].base, + 2, s->memmap[VIRT_UART0].size); qemu_fdt_setprop_cell(ms->fdt, name, "clock-frequency", 3686400); qemu_fdt_setprop_cell(ms->fdt, name, "interrupt-parent", irq_mmio_phan= dle); if (s->aia_type =3D=3D VIRT_AIA_TYPE_NONE) { --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627960; cv=none; d=zohomail.com; s=zohoarc; b=fVBqJQxDg1Bwdzeu1RI/d5wLb7z8P2yeMvaC7VZL+s/YNYjaze7noNT2sh7FvR0H3TxaAYeE7sfVUwLuTLm79D5/2KujGdJMsx4kw3yaqphlwVPTXYoCmmwgKsrlpQ9KHGyucbDGf6rPgdhUYlZC8Q8qxUaeOh4bJgVsqFEE/W4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627960; 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=OnzEW12vhAcfjuXrY8palHUuRWe0HeGpgVCqDoIpXPk=; b=mcF+IO1iKSbS6LO29hAWVv6atWlx16yROF5mOprqJTGHLE3kSrPB1wgHLzWjKiWdJR8RLOJcQumvx01nJba8eqFmuKTV4pqs0QkleHJBKggFp4sUBdi4dV+HQTuqz2zq6JEdDuRyRiaX4dZfYz/7AsaVR7p/j9BPMNxJXeG3VhQ= 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 1751627960108488.511271807267; Fri, 4 Jul 2025 04:19:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeNN-0005s3-GO; Fri, 04 Jul 2025 07:14:41 -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 1uXeMk-0003SF-SP for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:03 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMj-0004IS-9d for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:02 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2352400344aso8743905ad.2 for ; Fri, 04 Jul 2025 04:14:00 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.13.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:13:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627639; x=1752232439; 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=OnzEW12vhAcfjuXrY8palHUuRWe0HeGpgVCqDoIpXPk=; b=BdoACXof3Udd2V8EltL//FI4QRtNLRPpG2TCqhg7DfJESJAoZyBe4qO/WwYqGNw+Ns SaTtX8E1+IabgxoQgiVcfjlPqH0c6B6UmSNEssoVIVMdu9mHpbme0k4bQvn/wQkdbz28 CB9BO20Pq8wWAAYdObuNBh5Dnye8TgAP01uxfhfrsNbtyPYag8j37W09IYf2R6YboQAr +ecUAn6IhwA2/9M77S4S0yAkespdpUoWVAp0x9402V7Bk2jvzZ45s1P0Y29pc92NkPId w4zeljtSpM/LR5AnxP/mxXWBX5x0I6LOvu3s3Q6+GzEFlvlrOHLqDpEBcM7sf9QfQBTw qqZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627639; x=1752232439; 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=OnzEW12vhAcfjuXrY8palHUuRWe0HeGpgVCqDoIpXPk=; b=nIhzjaXzmCA8PlhpgnL/CVcLO3QG4y4EFF+H4ouCDRtv/HJ2bm+S47fCIpHcQSVDM8 SsbweYmdTq2+X8Di4IHMU1SZguPXJesytFDPMB/Z+qe3TXEdpFJoH79pgrj2k4QGYlsQ jWX4pLue0Vfr5Sobuq4NiyJEDBYq8vxQ/sU6up0vCDe506hO7Bu7cVyipXI3NkMxyLBY 1ANo7DR+vdjJJf1iXi68bgaSun/OpGLudQXNhswpCKwiiKAc/xxV8QNrS0L0VUih+2vi Xh1cEgvpvlC1pDEkkRHHNBsWAYEcAf9GrKB1SxiNl1L4mTerlOs7V49m+HRxgvHQyW6o rxiA== X-Gm-Message-State: AOJu0YyztUAZGodeyv1oF9PDKVeuM+39wqppBC/cQ8haVJc0H9HhwBZA +yM7apLAPzBRt7y7iTJOrPJDZyC9wbeATU4I63OkqWLUS8QPwZbputA7XvFA3A== X-Gm-Gg: ASbGncua//iTMqgxi4YYYeAG7TsyJWQ8LY9ENSN5SQLgNvim1AdkBXF0bdC/A5qRO69 GIvMf1Mg4cY8bK+SrnOnhGr19mHuW60Q1gqWr8NBtxBfCNaL9+A69Pj3lUjJ4AjQIiT7DNZAtxm s/Qq1mwVwdKmlyaCZDiY4EJ41Z0J0YslzaoBfCA82V5OzzXSAhS9vTkPm7kmOQs4zcmPJKDeJQ6 gzKzKaG5qcebxM28o6KYiot0qVsP0Qo8vjjXTocVqeaBuhZGYSakFe6k5FcgZJKzXniC7uF55I0 rnX0AOsZWi+ORtJZRYBLtZxPUS3SaPp4f/wqKKObFERRDbJpR9TNddT5UhEdBEs1cPAWcST4/SL rQSjvqZe65yOTsZ/t3pYWaKsWf7FzgAp5XVY7gq5ALIdlwuWXKHFPd05hae5haqixFqI= X-Google-Smtp-Source: AGHT+IERWKhU9g3ubqhFr/t/gafquFNu7a1AOLo/ViI5BFdCSzsVOa/+h9xbEtKJleNAS3AOiANhug== X-Received: by 2002:a17:902:ebc6:b0:231:e331:b7df with SMTP id d9443c01a7336-23c8624cbeemr43605145ad.29.1751627639627; Fri, 04 Jul 2025 04:13:59 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 30/40] hw/riscv/virt: Use setprop_sized_cells for rtc Date: Fri, 4 Jul 2025 21:11:57 +1000 Message-ID: <20250704111207.591994-31-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627961420116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-11-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 7c38a90480..4fa2bad248 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -992,8 +992,9 @@ static void create_fdt_rtc(RISCVVirtState *s, qemu_fdt_add_subnode(ms->fdt, name); qemu_fdt_setprop_string(ms->fdt, name, "compatible", "google,goldfish-rtc"); - qemu_fdt_setprop_cells(ms->fdt, name, "reg", - 0x0, s->memmap[VIRT_RTC].base, 0x0, s->memmap[VIRT_RTC].size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", + 2, s->memmap[VIRT_RTC].base, + 2, s->memmap[VIRT_RTC].size); qemu_fdt_setprop_cell(ms->fdt, name, "interrupt-parent", irq_mmio_phandle); if (s->aia_type =3D=3D VIRT_AIA_TYPE_NONE) { --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627826; cv=none; d=zohomail.com; s=zohoarc; b=GRm69q8KZUJ/vD6kfEURt0+WGeITLG7xy1N/1xiEqoouwR7p5o0Umpc7pfVsp9NEW5oHo27OAyz6cQVqfGrqHwUbkMAD/IIzqUhMJYWza+2qiufnUQDsfR8C9ap3Fu9hZGQ/K3ltB3KWLP9JqeEL8xO2Ep5k4+JLaCWL84qOCYo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627826; 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=gx2HRg6Bew7f9wcetISBp5wLA5aYtu8HS5SyZMirBf0=; b=SwlE9dg02F6hVsor72TKK78xQeYtSLRFV9nuv540n4Mj0HvLLdGGDxAZVFxDwTcDWRd7emcgKHnxb50ElJErlSYt9kG5DCka86rGBgFA+2ohJ50mB3LT/eAVKrgn4koMiwTdait4Sp62DfVvqhQVI8oO+WcEuqh8hNzoj/PL0VY= 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 1751627826442845.5833490175903; Fri, 4 Jul 2025 04:17:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOF-0007VR-NK; Fri, 04 Jul 2025 07:15:35 -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 1uXeMo-0003nZ-CQ for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:06 -0400 Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMm-0004JK-F3 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:06 -0400 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-234fcadde3eso12985965ad.0 for ; Fri, 04 Jul 2025 04:14:03 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627642; x=1752232442; 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=gx2HRg6Bew7f9wcetISBp5wLA5aYtu8HS5SyZMirBf0=; b=KeN9Gi7Tsi9cQTXxHrI5dBuRHaegfyTIHZehSewcYee5C5/75NCyt9ovcHrZksl03p kkcMoTVVmT57fJH9gtyLAZRPS5TfeAGBRo/w1lFjJYGsQu87maQ2drI5CAo/BpQIGarh gErdi+L1IQfBKwOFlDm2UQz62d965FI5w+P4papkeDC0hERKtXTFaZ+IGbYJTm6e8HsU oN8q+Oig30F44aLZuKqKoxfx6aD9JE3QMIH5tF4e/wYqjNTPwaN55JKTE1+YviFsrpuP RTLp8E6hDfNt2Qwd1ebNxWPtDyoGFsmzkxvATT9x7zOXxLdEsC1q+UaS8W4uOqk5eJ/p Y+cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627642; x=1752232442; 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=gx2HRg6Bew7f9wcetISBp5wLA5aYtu8HS5SyZMirBf0=; b=rWAYkwen/wVdc+Gl8iA0+O5k6udA7s2Km8hunYHRNZdNgjxsvVYbxPfzmg2WFZDeLL 2m9DT24+oUEbYnKCdUt98Sn2hZ/cMqVwasMgz84mmX3OAWD0EUV7XttjpNJrBTcUO4GD ewswRStZtOBOJgBwU1tir7bIhMyIvjAiN7w3kX/zPGLS4J2HGWG7bhi0kEM/Y7cCPt0q smis6d3wqi3miyuc1Q6+MNqftkDx8xXbqfU1HnVIU0DWJBDY0kLg2TeUL1FYO83ysHF4 fA+wZZSEIJeqi9ZlQ0Fj/swm1myX+ksXFZTL6qj39OvkYpeL+78GfwpRkEgGtLuWTIxx g3Xg== X-Gm-Message-State: AOJu0Yw9UxmODeHb5wtfV9Ls3+BK+L2e/iyrHzMASq8HoL/hi0caU1F+ 2nZbb2l3s03HBoKBdJsnUCT5TdPxRoHoBhesZEplkhMXwporMGGI0k5QAREGcA== X-Gm-Gg: ASbGncsPHQIkt88EBxNsWB34TbxPlbV6eZtjpRDaeXMVYmedZgdU+FYTyCJV6am6r30 veKnRtslaFuaEiZYTkArRAjpe4NO4dpbOEUt/5HGfu2aSthvP6X/Wi0UsiLXZZBb9HRaPMnjm6M I8ifIekS1krJgJvJi2HSO0SIeew9yxaJblxSrNaCtNwpNQeR3Afur1jKniEkgCCRgHkhpW2bBp4 E9ZAdoC/v6t8QiN6sKPs6zkMLLf7RdrfCCBosUF0SiWxdldgm/6DxdJLrq5iWR/z2kWGm7YWrb1 +ft/SoClMhO7xoyTaawkKylM52ecr2+Y2G9xBP3MJ9q+45ThppbntAStatMetkgIoavKlyAd9Su FwGaoESNYxPAyfwkLBTmbcqkGeu1xUW4D2120ZeXca0QbHttJVjD8f8O+73yfigClAbIaQpoPLg ob0A== X-Google-Smtp-Source: AGHT+IGVEaLUZ51Yrz2z5YGeh4NWa5AIHENBKNx6vE3mAIgazPcu4WDnTiqLyguqMQ2I9Xp70nQUqw== X-Received: by 2002:a17:903:3c47:b0:235:efbb:953c with SMTP id d9443c01a7336-23c8747b332mr24921865ad.13.1751627642565; Fri, 04 Jul 2025 04:14:02 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 31/40] hw/riscv/virt: Use setprop_sized_cells for iommu Date: Fri, 4 Jul 2025 21:11:58 +1000 Message-ID: <20250704111207.591994-32-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62b; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62b.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627828762116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-12-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 4fa2bad248..67490c5c69 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -1088,8 +1088,7 @@ static void create_fdt_iommu_sys(RISCVVirtState *s, u= int32_t irq_chip, qemu_fdt_setprop_cell(fdt, iommu_node, "#iommu-cells", 1); qemu_fdt_setprop_cell(fdt, iommu_node, "phandle", iommu_phandle); =20 - qemu_fdt_setprop_cells(fdt, iommu_node, "reg", - addr >> 32, addr, size >> 32, size); + qemu_fdt_setprop_sized_cells(fdt, iommu_node, "reg", 2, addr, 2, size); qemu_fdt_setprop_cell(fdt, iommu_node, "interrupt-parent", irq_chip); =20 qemu_fdt_setprop_cells(fdt, iommu_node, "interrupts", --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627959; cv=none; d=zohomail.com; s=zohoarc; b=Xy7EREbsfkwN47XgB9uRkGgGhUnDrlpJGYUXkeEqFM723keB1r5lOdLs5iRcOinosgVXh35fz6wBz3pUiKYjhYVCh0PBZUvuG9AxVS5zRPkLSqSdkloGtXnt6E2ttiakBrsj0WjSmplUiPwA/V5k9MHo70PRw1YnINdX5j1jksg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627959; 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=agWjWYPtfbUFcF7BoNC4FyaeOOST0sty4z+xdnIJbn4=; b=JRNmeT3u2R27igWidUNhe5ZYrghTu48uZch6GSAf75GwL1E27jskbshckJU1RCNqu6PNHcmEGu6n2CgXHLHMk3G0YLqiLtQxo5p+nXhKq68Gz5C0gdTg0xQTs19vnbhuLu3BYzBF7kktcvD2NV6lY89TnfCaIKPn9vaO8j6UaD0= 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 1751627959528598.7445067836879; Fri, 4 Jul 2025 04:19:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeO5-0006bU-QX; Fri, 04 Jul 2025 07:15:28 -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 1uXeMw-0004dr-Vf for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:16 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMp-0004KA-9b for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:13 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-2350fc2591dso8705175ad.1 for ; Fri, 04 Jul 2025 04:14:06 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627646; x=1752232446; 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=agWjWYPtfbUFcF7BoNC4FyaeOOST0sty4z+xdnIJbn4=; b=QD4KRN7SfpDArzNy36WPmIYYrkCXqe+qW64ytY23BO4zd+2b7cg7LoIORB5ddR+bgu Pufv0BHckxbmNOEProm2mPAJ2h5FCkdQO41kWQct3TrwTBxWp+sK94gqvUD8cVIMqOYI F9HOaCBg2aWOCpjm3E7B7xorDUSa04FS+5Ftx85El7ev7XuFiOge76aPv7fZ6/Q2pA+1 MA5HhJ+LdvJBPt8S+Am5s4QFXIVbNxkvji0a2JtF+KcWoitVGQr+i7ourEloCtDWBrUZ cGUtdkLwY8LQHCSBWg+GzjPJwqqlzB0SqRBLqdpjmzQCcnIw+HUBy8ETf09cz2E1n7kl BQcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627646; x=1752232446; 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=agWjWYPtfbUFcF7BoNC4FyaeOOST0sty4z+xdnIJbn4=; b=UPdzgbVCpT9fb1B1xntkQ8eV2DqSIgal0SiPeT9NJC2l5U66WybxFEgk8iklUryTYu JLuuznGWL3KoyLuFx+hNK0F/nSW43iw2xBtxFSHDYSO1wyJmmU6oQ5J2tizmT1n4J0+C i8HpLTDhmiuwEMx1gKn5BYtFO27mx7gMfErjky0tdVqvHoL7nqHbGmClkKpQiLM2Ti0O TpcfZyKvQgrKHmEr1r+5WafY4PTVCkPXcu7k7VCQ8sj2pDrvcWxXdec5xidB2xgT55zp ZuEb5bKvOFs8x9JLn+7Ttjs66C+WTgdb25ERbpLQCXQwVpc0fsBzcOy5dTn1j1aEcKEy 2s1A== X-Gm-Message-State: AOJu0YzWXmOKdSQckQBZvpP+LxtxdV4vsLh/solFWFWOnPuA2qiletB3 qQB9qYO1trhNXfBuGI2x214SGJlqx9MIZkwLGgLFeHbdnW+CPGsACmZYabKgtw== X-Gm-Gg: ASbGncvcE8oKqTvBZFKsUEOmZIhAfXjx8oibkvwdDUUO0VLLgUaJVTdDs0k8VUNKLjW aL2s4CShDqt8fRpgEWBl9/88/M22x48M46rhC0LkTss0Le4oVHaVEhuZGkriz4NEBxc/H8q0c3+ dQCLXP2TJP+6kCrGQIlLCn2Z4/S8bW1vaiMb5ktyKw3ZjMljl73vC9QEc8JRERAdsyxPgufVhNu 5E/mluvR8z16KyK29/MF6WXrf7qFEvFf5ipn1pQSOQUsx/ZXNvuie91Tir9UEuepYNsL8iCLABm Kmj1mBNrapMtdMNlDRO2QreJh5UAcIfQeG08Dsck6LxmINjTM8/K/nc4xrq1aoytR4z+tuNBD3H /9YYGvsWd/JQ+oysydywY7lI6a7gM8D1Vxna5QD0fFh5R8m+RMDWyXbpC3Cq7btaQekW2qUzkZp vvfg== X-Google-Smtp-Source: AGHT+IGnGRObkw2OfpEbr9WQI1mqYlyep8f1xKw1FLOPyk+OO6+/81243lcUKu/EZZdgmsR8lJ7zJQ== X-Received: by 2002:a17:903:198c:b0:237:e3bc:7691 with SMTP id d9443c01a7336-23c85938d6fmr41255045ad.13.1751627645572; Fri, 04 Jul 2025 04:14:05 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Joel Stanley , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 32/40] hw/riscv/virt: Use setprop_sized_cells for pcie Date: Fri, 4 Jul 2025 21:11:59 +1000 Message-ID: <20250704111207.591994-33-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, 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: 1751627961423116600 Content-Type: text/plain; charset="utf-8" From: Joel Stanley The current device tree property uses two cells for the address (and for the size), but assumes the they are less than 32 bits by hard coding the high cell to zero. Use qemu_fdt_setprop_sized_cells to do the job of splitting the upper and lower 32 bits across cells. Reviewed-by: Daniel Henrique Barboza Reviewed-by: Alistair Francis Signed-off-by: Joel Stanley Message-ID: <20250604025450.85327-13-joel@jms.id.au> Signed-off-by: Alistair Francis --- hw/riscv/virt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 67490c5c69..47e573f85a 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -894,8 +894,8 @@ static void create_fdt_pcie(RISCVVirtState *s, if (s->aia_type =3D=3D VIRT_AIA_TYPE_APLIC_IMSIC) { qemu_fdt_setprop_cell(ms->fdt, name, "msi-parent", msi_pcie_phandl= e); } - qemu_fdt_setprop_cells(ms->fdt, name, "reg", 0, - s->memmap[VIRT_PCIE_ECAM].base, 0, s->memmap[VIRT_PCIE_ECAM].size); + qemu_fdt_setprop_sized_cells(ms->fdt, name, "reg", 2, + s->memmap[VIRT_PCIE_ECAM].base, 2, s->memmap[VIRT_PCIE_ECAM].size); qemu_fdt_setprop_sized_cells(ms->fdt, name, "ranges", 1, FDT_PCI_RANGE_IOPORT, 2, 0, 2, s->memmap[VIRT_PCIE_PIO].base, 2, s->memmap[VIRT_PCIE_PIO].size, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628136; cv=none; d=zohomail.com; s=zohoarc; b=Fc9Q7PH8Xnb7I3lv3pLLtrAc6lpgeyW64yxttUc1LGrcNj+b7TJm3kMJ10W3fJmjxTqPLJYglwvG3HYpKO+T7ynKsEYoxTZ6bklsRVejDJKtG2Kgyf7r39AbisWnSDdM5H9XfIRPTUUGJPqqzjIQb3/4YZ7F6hnd3Ww2ONKAukE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628136; 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=/FDGTLzU29AMUyiC6maYWsyWx2QHHgsFZ6hlg6REl7I=; b=HeBKv69EFy/4Sk225s8PoOflnZ/vYQ4/U7om+Sp6Ln+WL64FykFTiXa3xHfr0dluG/dEB1BpvMAaGVxllEXJuWJF5a0yeyQR3/5cq3fJei9IKNTMukIIkoReaHegyT5o74Q3tRc7RavZO8s9JAatAukkWPSRfmq2IX/Oc0hP7us= 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 1751628136772773.6054904202787; Fri, 4 Jul 2025 04:22:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOE-0007NM-6N; Fri, 04 Jul 2025 07:15:34 -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 1uXeMw-0004dR-TG for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:16 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMs-0004KY-Su for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:12 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-237e6963f63so6009795ad.2 for ; Fri, 04 Jul 2025 04:14:10 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627649; x=1752232449; 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=/FDGTLzU29AMUyiC6maYWsyWx2QHHgsFZ6hlg6REl7I=; b=Ax8hl7VtEMFZw6DOS0n1bpL/nHamvOX2H2eBIbGLJqmxp1oJV7Yy+JJ4v/NkpThRHf 2CXgr0l5/qwnSOA4iwuIojgTvijiWT4VUGU2/qLc9e0Jqg4PexLboaBA6vQbHOE+geR8 Kz8H0fsVawbULNMQ2Pcc2WgCoSbcDb/U5snW0t+ffq9EsUDTWU9V8A7Kk43YKsXsL3KV 8oZTbBnIjK//tL6V/YDzfaAZsn1Xm0s1/NpJdd1kjBUl/AdgDUhCCrTCvbnRoZRTRbzo QHX1WxsM2hF0wHGxZ6r6mvs+4dSDZbyn9ZU9MAJvJZzVdhQpF0RtUUYXif2oSi79u3sg uCmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627649; x=1752232449; 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=/FDGTLzU29AMUyiC6maYWsyWx2QHHgsFZ6hlg6REl7I=; b=Ko8kf+pweMMCazQa24pFxvR7DO9nQCSUyju3McxdwOyu7KIuF5nHbX9XEoQ2F/Rpka Elh8zHKMOJGAGjLHBOPJVFEGpnKSOmf3Z/o+dbQ8B2v+WDN/CvFAW46F3JJs5PcMrGpi +esXLQaS4bfXtKWqTJMLcOVpXzV1B72+Yu8KROJzIGV+LjxeADVeZoHa8ihMnZ1s5MpG yMHQg3yWgbM9xO0pNMZddyMQPexpoEpRZ/N2bAsWOdTc4C140SWsD+u9vzSE/619DgmS 3Hh9nFCVYGlzoxgy9jW24NZKBLMj6ECBCuIkPFQ4hElIp0q9m2U16Ci6q/7PKgjoKzX3 6kxg== X-Gm-Message-State: AOJu0YxelhxJ/kKzNss4fJxQnvqlF4n5HXnXjxDGmTY2En4vv0tc1aAc xmf1yBwCNwbSFV2BI58k8RTCfzzyLqMSgmIBeWADVyeoCchNBWbI8MX9mO8ICA== X-Gm-Gg: ASbGnctK8WP3IsdQEwBiLhIoeJLUh+KI7uKvuF8LJnS5lpPYNoN8DjOdmKtZ2J5PGog Ibd3RdjboR5b32bmZYa5y0WeAnIwjfCvNhMt1AAKX9MqCSrNoA9nvYLcfFE3sMsDpjBI9VH3g9M SmheRYVqpbXqjGpZRebMCkjuJ0LFPJw+pfs2NaKJ/i5/HVs+Hc2kA4Pygp3C6UwIQbL9YgB05oa rDx1bmTajkjuu9gsHcboJuPzQgcapOIvLIJDPIBgQDXUJBiLEUz9UAOhl2P7lW7q7mgB54sYRGH 3nJz/XR/rLWh+YT5+ewdmycOLlDB9loV1ozqlAgRDB3siW12oer02FJ5Fc9PJp+6CMh4Ad0zhz8 +Wg1v0GXOZfK2vB26n68SBkCBO45KT4toYUeWKLEciW6kan7L6g7SveZ6PDflX6s+ODc= X-Google-Smtp-Source: AGHT+IGn5B8RRHA20CnIdt22valKPd5RCshwdujQa7vPEHBxY64GCzoW9OguwpoF8hZ8ennsDboYZA== X-Received: by 2002:a17:902:d2c5:b0:234:8c64:7885 with SMTP id d9443c01a7336-23c875dd89dmr28124745ad.53.1751627649192; Fri, 04 Jul 2025 04:14:09 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Huang Borong <3543977024@qq.com>, Yu Hu , Ran Wang , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 33/40] target/riscv: Add BOSC's Xiangshan Kunminghu CPU Date: Fri, 4 Jul 2025 21:12:00 +1000 Message-ID: <20250704111207.591994-34-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628137620116600 Content-Type: text/plain; charset="utf-8" From: Huang Borong <3543977024@qq.com> Add a CPU entry for the Xiangshan Kunminghu CPU, an open-source, high-performance RISC-V processor. More details can be found at: https://github.com/OpenXiangShan/XiangShan Note: The ISA extensions supported by the Xiangshan Kunminghu CPU are categorized based on four RISC-V specifications: Volume I: Unprivileged Architecture, Volume II: Privileged Architecture, AIA, and RVA23. The extensions within each category are organized according to the chapter order in the specifications. Signed-off-by: Yu Hu Signed-off-by: Ran Wang Signed-off-by: Borong Huang <3543977024@qq.com> Reviewed-by: Daniel Henrique Barboza Acked-by: Alistair Francis Message-ID: <20250425122212.364-1-wangran@bosc.ac.cn> Signed-off-by: Alistair Francis --- target/riscv/cpu-qom.h | 1 + target/riscv/cpu.c | 58 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/target/riscv/cpu-qom.h b/target/riscv/cpu-qom.h index 1ee05eb393..75f4e43408 100644 --- a/target/riscv/cpu-qom.h +++ b/target/riscv/cpu-qom.h @@ -55,6 +55,7 @@ #define TYPE_RISCV_CPU_VEYRON_V1 RISCV_CPU_TYPE_NAME("veyron-v1") #define TYPE_RISCV_CPU_TT_ASCALON RISCV_CPU_TYPE_NAME("tt-ascalon") #define TYPE_RISCV_CPU_XIANGSHAN_NANHU RISCV_CPU_TYPE_NAME("xiangshan-nan= hu") +#define TYPE_RISCV_CPU_XIANGSHAN_KMH RISCV_CPU_TYPE_NAME("xiangshan-kun= minghu") #define TYPE_RISCV_CPU_HOST RISCV_CPU_TYPE_NAME("host") =20 OBJECT_DECLARE_CPU_TYPE(RISCVCPU, RISCVCPUClass, RISCV_CPU) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 758f254c15..e3f8ecef68 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -3206,6 +3206,64 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.max_satp_mode =3D VM_1_10_SV39, ), =20 + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_XIANGSHAN_KMH, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVG | RVC | RVB | RVS | RVU | RVH | RVV, + .priv_spec =3D PRIV_VERSION_1_13_0, + /* + * The RISC-V Instruction Set Manual: Volume I + * Unprivileged Architecture + */ + .cfg.ext_zicntr =3D true, + .cfg.ext_zihpm =3D true, + .cfg.ext_zihintntl =3D true, + .cfg.ext_zihintpause =3D true, + .cfg.ext_zimop =3D true, + .cfg.ext_zcmop =3D true, + .cfg.ext_zicond =3D true, + .cfg.ext_zawrs =3D true, + .cfg.ext_zacas =3D true, + .cfg.ext_zfh =3D true, + .cfg.ext_zfa =3D true, + .cfg.ext_zcb =3D true, + .cfg.ext_zbc =3D true, + .cfg.ext_zvfh =3D true, + .cfg.ext_zkn =3D true, + .cfg.ext_zks =3D true, + .cfg.ext_zkt =3D true, + .cfg.ext_zvbb =3D true, + .cfg.ext_zvkt =3D true, + /* + * The RISC-V Instruction Set Manual: Volume II + * Privileged Architecture + */ + .cfg.ext_smstateen =3D true, + .cfg.ext_smcsrind =3D true, + .cfg.ext_sscsrind =3D true, + .cfg.ext_svnapot =3D true, + .cfg.ext_svpbmt =3D true, + .cfg.ext_svinval =3D true, + .cfg.ext_sstc =3D true, + .cfg.ext_sscofpmf =3D true, + .cfg.ext_ssdbltrp =3D true, + .cfg.ext_ssnpm =3D true, + .cfg.ext_smnpm =3D true, + .cfg.ext_smmpm =3D true, + .cfg.ext_sspm =3D true, + .cfg.ext_supm =3D true, + /* The RISC-V Advanced Interrupt Architecture */ + .cfg.ext_smaia =3D true, + .cfg.ext_ssaia =3D true, + /* RVA23 Profiles */ + .cfg.ext_zicbom =3D true, + .cfg.ext_zicbop =3D true, + .cfg.ext_zicboz =3D true, + .cfg.ext_svade =3D true, + .cfg.mmu =3D true, + .cfg.pmp =3D true, + .cfg.max_satp_mode =3D VM_1_10_SV48, + ), + #if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE128, TYPE_RISCV_DYNAMIC_CPU, .cfg.max_satp_mode =3D VM_1_10_SV57, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628138; cv=none; d=zohomail.com; s=zohoarc; b=C57MorxgYecdAxAnkPjVe07bNcVDXQdmQtqySnp6LbE07y5SOknFYe6CxdLe1jgWhguLPIDUsvur8ZZM5E+RWrdke6OLHijfFLQ1gNs/fQkwiLUCL5jx2wnG38Lp7c6LK2m7zhy486HtaL9qBtN3xb77vdn2vDlA+FvdAPl9cdQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628138; 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=tanjo3IjdnvrqigXkqoaDukbAgpXNFJ8dVjpQVHFZak=; b=T/SDkKDcHtbnnH2ieN4dumcGARNxKmT/OTSXlQGSxE1Le1D6X8cW1XHE7UVFh+y4JA/+BB+R4ArE+EoOI2UorRmWEOwS/+DDw2YyD/y0kgS6zO47Bg22CVzdhKAKLmuQxafLkQIK7vJIin7ex/WMdgBzA/KnY4YQdlwcLLOJMKU= 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 1751628138543443.60808951125273; Fri, 4 Jul 2025 04:22:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOI-0007o1-Uv; Fri, 04 Jul 2025 07:15:42 -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 1uXeN1-0004ny-61 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:19 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMx-0004LO-Ik for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:18 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-23508d30142so11811795ad.0 for ; Fri, 04 Jul 2025 04:14:15 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627653; x=1752232453; 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=tanjo3IjdnvrqigXkqoaDukbAgpXNFJ8dVjpQVHFZak=; b=DAWUoaIqsFVa/bhILRHhWy/TCLe8JvMMZP77nyyLHMfKQq16xh4rzfwWs8H6heib7Y RvKf7ws+4OuSWJmex+eSNAxSb2wag8uHrC5OxveteNmFv+aZoM73+hQm4HobM3i2Z3V+ SqdNyOLIxs2GZq9lOpsJ+p9lX0mpSktp6eOTOWM5HemJtkqUAFsHQqd97xyZ2t0Q6Nm+ Jio+dG5owJJPMjlqDoLyomX7R178TPmO8kEuzRhX88D6s9ieignnHiN4pZJIFi1QCWjW KXsX7jUNyJJynKTHsKOOykZD+zLHOrYTQsk3eMh/xhJMNFZnJh2gQ0J9p8Npm3zTUUOg pN2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627653; x=1752232453; 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=tanjo3IjdnvrqigXkqoaDukbAgpXNFJ8dVjpQVHFZak=; b=ghOZbjR1x8jJA87rqfc1EDGq6vP9Hn6yB2/pvtxU3C4QyY61SfqiIVloF3yrwVA4m2 aMvny3p+3c+6LEUaefeq46hshcneuGts6ncVBc5KJoTyS+5PT4K/mcVDuuiS8EWxEw08 Bs7l54qjcHnX63d90Txhr7RVag90AHfeGZsWeV3eZck981RroZYcSEpYMr4MpGyMQ4i2 12JdUNXa1FANK9PcHEGqX7SILjlyn4dRav44OQuH9z695V8BHDcC2VSTxBLirawIHiNQ jgdFJlCq7B87c4iZ+WGaraIIE6gl3obkmNgeJBqbrvYphZ/OHth3QuDEkwRAf71kJkd1 h0+g== X-Gm-Message-State: AOJu0Yyw5wH49+WSHcZqd+y73atQ7x/W49gtOxVmaOpqqlGiNLNRV6vh 5/jYHg0fFCrT9C96e0WPv6sc4QXXjeuUE/0MuN9xqc2fOXKXyMZocHPxIvU3dA== X-Gm-Gg: ASbGncv/06Xyow8FxbpvH9reA1AZCNgEctSEGeFvOpkK7+bAarkB0Vp0B9FUHDjjR0a W3vQQ5Bmztc5OHF9CgmByXfryEQooZ5BQKvRvx/zskmN02LhbnvgKPy+E614RiBxmMUkhnaV22P oFiY0/ccW5Yb4xkuwk9rOWKnbOhHD+nKyqmA00mUmzPNTHgnbgLVeuA3Q627eovaMyUHCU2YiD8 r2gB3xwg3uEUAztJ2NJAsSjXVq9Z91T4u1p7MC/bDUR0Q50P63Uu6aI0UFjLaDsq3FioLoGAcao fR2hb5VkZpK9uCePbgn4Uuk/4IynDxT33DGZC/u/VCnNOWakAaXV4YLbPkzAgpTFT6eMGN17EAE s1vqhLm9LeLhhA8te1iXGQtnKQg7O0qC25556EC4SfTH+6G+MtV31BnNvG9QAMqx7b4k= X-Google-Smtp-Source: AGHT+IHUClWgC5HhiEDKBUEpjigPyI1d+vslMoaBqC/s27XIHBgUFjbs1/0kxzz95xB4vWgvz0Tn+A== X-Received: by 2002:a17:902:ce82:b0:235:711:f810 with SMTP id d9443c01a7336-23c85e2e40bmr31759845ad.23.1751627653348; Fri, 04 Jul 2025 04:14:13 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Huang Borong <3543977024@qq.com>, qinshaoqing , Yang Wang , Yu Hu <819258943@qq.com>, Ran Wang , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 34/40] hw/riscv: Initial support for BOSC's Xiangshan Kunminghu FPGA prototype Date: Fri, 4 Jul 2025 21:12:01 +1000 Message-ID: <20250704111207.591994-35-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628139574116600 Content-Type: text/plain; charset="utf-8" From: Huang Borong <3543977024@qq.com> This implementation provides emulation for the Xiangshan Kunminghu FPGA prototype platform, including support for UART, CLINT, IMSIC, and APLIC devices. More details can be found at https://github.com/OpenXiangShan/XiangShan Signed-off-by: qinshaoqing Signed-off-by: Yang Wang Signed-off-by: Yu Hu <819258943@qq.com> Signed-off-by: Ran Wang Signed-off-by: Borong Huang <3543977024@qq.com> Reviewed-by: Daniel Henrique Barboza Message-ID: <20250617074222.17618-1-wangran@bosc.ac.cn> Signed-off-by: Alistair Francis --- MAINTAINERS | 7 + docs/system/riscv/xiangshan-kunminghu.rst | 39 ++++ docs/system/target-riscv.rst | 1 + configs/devices/riscv64-softmmu/default.mak | 1 + include/hw/riscv/xiangshan_kmh.h | 68 ++++++ hw/riscv/xiangshan_kmh.c | 220 ++++++++++++++++++++ hw/riscv/Kconfig | 9 + hw/riscv/meson.build | 1 + 8 files changed, 346 insertions(+) create mode 100644 docs/system/riscv/xiangshan-kunminghu.rst create mode 100644 include/hw/riscv/xiangshan_kmh.h create mode 100644 hw/riscv/xiangshan_kmh.c diff --git a/MAINTAINERS b/MAINTAINERS index b1cbfe115b..12efc88aa7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1697,6 +1697,13 @@ S: Maintained F: hw/riscv/microblaze-v-generic.c F: docs/system/riscv/microblaze-v-generic.rst =20 +Xiangshan Kunminghu +M: Ran Wang +S: Maintained +F: docs/system/riscv/xiangshan-kunminghu.rst +F: hw/riscv/xiangshan_kmh.c +F: include/hw/riscv/xiangshan_kmh.h + RX Machines ----------- rx-gdbsim diff --git a/docs/system/riscv/xiangshan-kunminghu.rst b/docs/system/riscv/= xiangshan-kunminghu.rst new file mode 100644 index 0000000000..46e7ceeda0 --- /dev/null +++ b/docs/system/riscv/xiangshan-kunminghu.rst @@ -0,0 +1,39 @@ +BOSC Xiangshan Kunminghu FPGA prototype platform (``xiangshan-kunminghu``) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +The ``xiangshan-kunminghu`` machine is compatible with our FPGA prototype +platform. + +XiangShan is an open-source high-performance RISC-V processor project. +The third generation processor is called Kunminghu. Kunminghu is a 64-bit +RV64GCBSUHV processor core. More information can be found in our Github +repository: +https://github.com/OpenXiangShan/XiangShan + +Supported devices +----------------- +The ``xiangshan-kunminghu`` machine supports the following devices: + +* Up to 16 xiangshan-kunminghu cores +* Core Local Interruptor (CLINT) +* Incoming MSI Controller (IMSIC) +* Advanced Platform-Level Interrupt Controller (APLIC) +* 1 UART + +Boot options +------------ +The ``xiangshan-kunminghu`` machine can start using the standard ``-bios`` +functionality for loading the boot image. You need to compile and link +the firmware, kernel, and Device Tree (FDT) into a single binary file, +such as ``fw_payload.bin``. + +Running +------- +Below is an example command line for running the ``xiangshan-kunminghu`` +machine: + +.. code-block:: bash + + $ qemu-system-riscv64 -machine xiangshan-kunminghu \ + -smp 16 -m 16G \ + -bios path/to/opensbi/platform/generic/firmware/fw_payload.bin \ + -nographic diff --git a/docs/system/target-riscv.rst b/docs/system/target-riscv.rst index 95457af130..89b2cb732c 100644 --- a/docs/system/target-riscv.rst +++ b/docs/system/target-riscv.rst @@ -71,6 +71,7 @@ undocumented; you can get a complete list by running riscv/shakti-c riscv/sifive_u riscv/virt + riscv/xiangshan-kunminghu =20 RISC-V CPU firmware ------------------- diff --git a/configs/devices/riscv64-softmmu/default.mak b/configs/devices/= riscv64-softmmu/default.mak index 39ed3a0061..e485bbd1a3 100644 --- a/configs/devices/riscv64-softmmu/default.mak +++ b/configs/devices/riscv64-softmmu/default.mak @@ -11,3 +11,4 @@ # CONFIG_RISCV_VIRT=3Dn # CONFIG_MICROCHIP_PFSOC=3Dn # CONFIG_SHAKTI_C=3Dn +# CONFIG_XIANGSHAN_KUNMINGHU=3Dn diff --git a/include/hw/riscv/xiangshan_kmh.h b/include/hw/riscv/xiangshan_= kmh.h new file mode 100644 index 0000000000..c5dc6b1a9a --- /dev/null +++ b/include/hw/riscv/xiangshan_kmh.h @@ -0,0 +1,68 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ +/* + * QEMU RISC-V Board Compatible with the Xiangshan Kunminghu + * FPGA prototype platform + * + * Copyright (c) 2025 Beijing Institute of Open Source Chip (BOSC) + * + */ + +#ifndef HW_XIANGSHAN_KMH_H +#define HW_XIANGSHAN_KMH_H + +#include "hw/boards.h" +#include "hw/riscv/riscv_hart.h" + +#define XIANGSHAN_KMH_MAX_CPUS 16 + +typedef struct XiangshanKmhSoCState { + /*< private >*/ + DeviceState parent_obj; + + /*< public >*/ + RISCVHartArrayState cpus; + DeviceState *irqchip; + MemoryRegion rom; +} XiangshanKmhSoCState; + +#define TYPE_XIANGSHAN_KMH_SOC "xiangshan.kunminghu.soc" +DECLARE_INSTANCE_CHECKER(XiangshanKmhSoCState, XIANGSHAN_KMH_SOC, + TYPE_XIANGSHAN_KMH_SOC) + +typedef struct XiangshanKmhState { + /*< private >*/ + MachineState parent_obj; + + /*< public >*/ + XiangshanKmhSoCState soc; +} XiangshanKmhState; + +#define TYPE_XIANGSHAN_KMH_MACHINE MACHINE_TYPE_NAME("xiangshan-kunminghu") +DECLARE_INSTANCE_CHECKER(XiangshanKmhState, XIANGSHAN_KMH_MACHINE, + TYPE_XIANGSHAN_KMH_MACHINE) + +enum { + XIANGSHAN_KMH_ROM, + XIANGSHAN_KMH_UART0, + XIANGSHAN_KMH_CLINT, + XIANGSHAN_KMH_APLIC_M, + XIANGSHAN_KMH_APLIC_S, + XIANGSHAN_KMH_IMSIC_M, + XIANGSHAN_KMH_IMSIC_S, + XIANGSHAN_KMH_DRAM, +}; + +enum { + XIANGSHAN_KMH_UART0_IRQ =3D 10, +}; + +/* Indicating Timebase-freq (1MHZ) */ +#define XIANGSHAN_KMH_CLINT_TIMEBASE_FREQ 1000000 + +#define XIANGSHAN_KMH_IMSIC_NUM_IDS 255 +#define XIANGSHAN_KMH_IMSIC_NUM_GUESTS 7 +#define XIANGSHAN_KMH_IMSIC_GUEST_BITS 3 + +#define XIANGSHAN_KMH_APLIC_NUM_SOURCES 96 + +#endif diff --git a/hw/riscv/xiangshan_kmh.c b/hw/riscv/xiangshan_kmh.c new file mode 100644 index 0000000000..a95fd6174f --- /dev/null +++ b/hw/riscv/xiangshan_kmh.c @@ -0,0 +1,220 @@ +/* + * QEMU RISC-V Board Compatible with the Xiangshan Kunminghu + * FPGA prototype platform + * + * Copyright (c) 2025 Beijing Institute of Open Source Chip (BOSC) + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Provides a board compatible with the Xiangshan Kunminghu + * FPGA prototype platform: + * + * 0) UART (16550A) + * 1) CLINT (Core-Local Interruptor) + * 2) IMSIC (Incoming MSI Controller) + * 3) APLIC (Advanced Platform-Level Interrupt Controller) + * + * More information can be found in our Github repository: + * https://github.com/OpenXiangShan/XiangShan + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License f= or + * more details. + * + * You should have received a copy of the GNU General Public License along= with + * this program. If not, see . + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "system/address-spaces.h" +#include "hw/boards.h" +#include "hw/char/serial-mm.h" +#include "hw/intc/riscv_aclint.h" +#include "hw/intc/riscv_aplic.h" +#include "hw/intc/riscv_imsic.h" +#include "hw/qdev-properties.h" +#include "hw/riscv/boot.h" +#include "hw/riscv/xiangshan_kmh.h" +#include "hw/riscv/riscv_hart.h" +#include "system/system.h" + +static const MemMapEntry xiangshan_kmh_memmap[] =3D { + [XIANGSHAN_KMH_ROM] =3D { 0x1000, 0xF000 }, + [XIANGSHAN_KMH_UART0] =3D { 0x310B0000, 0x10000 }, + [XIANGSHAN_KMH_CLINT] =3D { 0x38000000, 0x10000 }, + [XIANGSHAN_KMH_APLIC_M] =3D { 0x31100000, 0x4000 }, + [XIANGSHAN_KMH_APLIC_S] =3D { 0x31120000, 0x4000 }, + [XIANGSHAN_KMH_IMSIC_M] =3D { 0x3A800000, 0x10000 }, + [XIANGSHAN_KMH_IMSIC_S] =3D { 0x3B000000, 0x80000 }, + [XIANGSHAN_KMH_DRAM] =3D { 0x80000000, 0x0 }, +}; + +static DeviceState *xiangshan_kmh_create_aia(uint32_t num_harts) +{ + int i; + const MemMapEntry *memmap =3D xiangshan_kmh_memmap; + hwaddr addr =3D 0; + DeviceState *aplic_m =3D NULL; + + /* M-level IMSICs */ + addr =3D memmap[XIANGSHAN_KMH_IMSIC_M].base; + for (i =3D 0; i < num_harts; i++) { + riscv_imsic_create(addr + i * IMSIC_HART_SIZE(0), i, true, + 1, XIANGSHAN_KMH_IMSIC_NUM_IDS); + } + + /* S-level IMSICs */ + addr =3D memmap[XIANGSHAN_KMH_IMSIC_S].base; + for (i =3D 0; i < num_harts; i++) { + riscv_imsic_create(addr + + i * IMSIC_HART_SIZE(XIANGSHAN_KMH_IMSIC_GUEST_B= ITS), + i, false, 1 + XIANGSHAN_KMH_IMSIC_GUEST_BITS, + XIANGSHAN_KMH_IMSIC_NUM_IDS); + } + + /* M-level APLIC */ + aplic_m =3D riscv_aplic_create(memmap[XIANGSHAN_KMH_APLIC_M].base, + memmap[XIANGSHAN_KMH_APLIC_M].size, + 0, 0, XIANGSHAN_KMH_APLIC_NUM_SOURCES, + 1, true, true, NULL); + + /* S-level APLIC */ + riscv_aplic_create(memmap[XIANGSHAN_KMH_APLIC_S].base, + memmap[XIANGSHAN_KMH_APLIC_S].size, + 0, 0, XIANGSHAN_KMH_APLIC_NUM_SOURCES, + 1, true, false, aplic_m); + + return aplic_m; +} + +static void xiangshan_kmh_soc_realize(DeviceState *dev, Error **errp) +{ + MachineState *ms =3D MACHINE(qdev_get_machine()); + XiangshanKmhSoCState *s =3D XIANGSHAN_KMH_SOC(dev); + const MemMapEntry *memmap =3D xiangshan_kmh_memmap; + MemoryRegion *system_memory =3D get_system_memory(); + uint32_t num_harts =3D ms->smp.cpus; + + qdev_prop_set_uint32(DEVICE(&s->cpus), "num-harts", num_harts); + qdev_prop_set_uint32(DEVICE(&s->cpus), "hartid-base", 0); + qdev_prop_set_string(DEVICE(&s->cpus), "cpu-type", + TYPE_RISCV_CPU_XIANGSHAN_KMH); + sysbus_realize(SYS_BUS_DEVICE(&s->cpus), &error_fatal); + + /* AIA */ + s->irqchip =3D xiangshan_kmh_create_aia(num_harts); + + /* UART */ + serial_mm_init(system_memory, memmap[XIANGSHAN_KMH_UART0].base, 2, + qdev_get_gpio_in(s->irqchip, XIANGSHAN_KMH_UART0_IRQ), + 115200, serial_hd(0), DEVICE_LITTLE_ENDIAN); + + /* CLINT */ + riscv_aclint_swi_create(memmap[XIANGSHAN_KMH_CLINT].base, + 0, num_harts, false); + riscv_aclint_mtimer_create(memmap[XIANGSHAN_KMH_CLINT].base + + RISCV_ACLINT_SWI_SIZE, + RISCV_ACLINT_DEFAULT_MTIMER_SIZE, + 0, num_harts, RISCV_ACLINT_DEFAULT_MTIMECMP, + RISCV_ACLINT_DEFAULT_MTIME, + XIANGSHAN_KMH_CLINT_TIMEBASE_FREQ, true); + + /* ROM */ + memory_region_init_rom(&s->rom, OBJECT(dev), "xiangshan.kunminghu.rom", + memmap[XIANGSHAN_KMH_ROM].size, &error_fatal); + memory_region_add_subregion(system_memory, + memmap[XIANGSHAN_KMH_ROM].base, &s->rom); +} + +static void xiangshan_kmh_soc_class_init(ObjectClass *klass, const void *d= ata) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + + dc->realize =3D xiangshan_kmh_soc_realize; + dc->user_creatable =3D false; +} + +static void xiangshan_kmh_soc_instance_init(Object *obj) +{ + XiangshanKmhSoCState *s =3D XIANGSHAN_KMH_SOC(obj); + + object_initialize_child(obj, "cpus", &s->cpus, TYPE_RISCV_HART_ARRAY); +} + +static const TypeInfo xiangshan_kmh_soc_info =3D { + .name =3D TYPE_XIANGSHAN_KMH_SOC, + .parent =3D TYPE_DEVICE, + .instance_size =3D sizeof(XiangshanKmhSoCState), + .instance_init =3D xiangshan_kmh_soc_instance_init, + .class_init =3D xiangshan_kmh_soc_class_init, +}; + +static void xiangshan_kmh_soc_register_types(void) +{ + type_register_static(&xiangshan_kmh_soc_info); +} +type_init(xiangshan_kmh_soc_register_types) + +static void xiangshan_kmh_machine_init(MachineState *machine) +{ + XiangshanKmhState *s =3D XIANGSHAN_KMH_MACHINE(machine); + const MemMapEntry *memmap =3D xiangshan_kmh_memmap; + MemoryRegion *system_memory =3D get_system_memory(); + hwaddr start_addr =3D memmap[XIANGSHAN_KMH_DRAM].base; + + /* Initialize SoC */ + object_initialize_child(OBJECT(machine), "soc", &s->soc, + TYPE_XIANGSHAN_KMH_SOC); + qdev_realize(DEVICE(&s->soc), NULL, &error_fatal); + + /* Register RAM */ + memory_region_add_subregion(system_memory, + memmap[XIANGSHAN_KMH_DRAM].base, + machine->ram); + + /* ROM reset vector */ + riscv_setup_rom_reset_vec(machine, &s->soc.cpus, + start_addr, + memmap[XIANGSHAN_KMH_ROM].base, + memmap[XIANGSHAN_KMH_ROM].size, 0, 0); + if (machine->firmware) { + riscv_load_firmware(machine->firmware, &start_addr, NULL); + } + + /* Note: dtb has been integrated into firmware(OpenSBI) when compiling= */ +} + +static void xiangshan_kmh_machine_class_init(ObjectClass *klass, const voi= d *data) +{ + MachineClass *mc =3D MACHINE_CLASS(klass); + static const char *const valid_cpu_types[] =3D { + TYPE_RISCV_CPU_XIANGSHAN_KMH, + NULL + }; + + mc->desc =3D "RISC-V Board compatible with the Xiangshan " \ + "Kunminghu FPGA prototype platform"; + mc->init =3D xiangshan_kmh_machine_init; + mc->max_cpus =3D XIANGSHAN_KMH_MAX_CPUS; + mc->default_cpu_type =3D TYPE_RISCV_CPU_XIANGSHAN_KMH; + mc->valid_cpu_types =3D valid_cpu_types; + mc->default_ram_id =3D "xiangshan.kunminghu.ram"; +} + +static const TypeInfo xiangshan_kmh_machine_info =3D { + .name =3D TYPE_XIANGSHAN_KMH_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(XiangshanKmhState), + .class_init =3D xiangshan_kmh_machine_class_init, +}; + +static void xiangshan_kmh_machine_register_types(void) +{ + type_register_static(&xiangshan_kmh_machine_info); +} +type_init(xiangshan_kmh_machine_register_types) diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index e6a0ac1fa1..fc9c35bd98 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -119,3 +119,12 @@ config SPIKE select HTIF select RISCV_ACLINT select SIFIVE_PLIC + +config XIANGSHAN_KUNMINGHU + bool + default y + depends on RISCV64 + select RISCV_ACLINT + select RISCV_APLIC + select RISCV_IMSIC + select SERIAL_MM diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build index c22f3a7216..2a8d5b136c 100644 --- a/hw/riscv/meson.build +++ b/hw/riscv/meson.build @@ -13,5 +13,6 @@ riscv_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-ac= pi-build.c')) riscv_ss.add(when: 'CONFIG_RISCV_IOMMU', if_true: files( 'riscv-iommu.c', 'riscv-iommu-pci.c', 'riscv-iommu-sys.c', 'riscv-iommu-h= pm.c')) riscv_ss.add(when: 'CONFIG_MICROBLAZE_V', if_true: files('microblaze-v-gen= eric.c')) +riscv_ss.add(when: 'CONFIG_XIANGSHAN_KUNMINGHU', if_true: files('xiangshan= _kmh.c')) =20 hw_arch +=3D {'riscv': riscv_ss} --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627971; cv=none; d=zohomail.com; s=zohoarc; b=SwaiVN9MFiQ8+5MNKhRQOPT8BOIU0UFk7NJ+RZeJN+c7ilyEtbcffc7J48Yo9XiWVFbt5Esnq73qRRp+t6WkVpvtsLtvkvW9q99OJ8qYX5GRjP+l1yMuvNKtJeUzaNR5FL/C9G34E2vAZ66x1/oI+YLIls7YOPAkiCp7gy5UoDk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627971; 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=rTSow9pTiEtZE4+cEk1d0BTAuVgvunpVUSHTyJlNheo=; b=erh9Yp/RoXSXhM3PUoUn3tTjro3P0uQ1IfA5jTHlw+0fRr++MjD4v9lB/lSrJkhHlTdtyZIn92xu4H6kd4gqkoNLFbJXqhgoawIWvBu4t2vq9oUeTkuBWhGpjcWHkByrDAk07XPfNGiwkjkvGvPjUH6v1TVRMJPY4ZLn7wOJQIA= 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 1751627971033153.94994637545028; Fri, 4 Jul 2025 04:19:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOl-0008TQ-Rl; Fri, 04 Jul 2025 07:16:08 -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 1uXeN1-0004qZ-Sw for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:20 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeMz-0004MI-Rx for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:19 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-234b440afa7so9365725ad.0 for ; Fri, 04 Jul 2025 04:14:17 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627656; x=1752232456; 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=rTSow9pTiEtZE4+cEk1d0BTAuVgvunpVUSHTyJlNheo=; b=dV71zFS/9f42Zix4c0Lbpi4DXZfZWHJ+s+SLVWFMGl3E5eaZSXjO6Z1hASo/gYu7O7 34fmfhkcUPGIkdCwFAhMnKY2xct8fBWwuDONc2vonGm+WUYMsYlNQhjyrqOYPzkRJBTj u2lCydupLn65MojS4J9bnKSl4wVw6QuwfcUs0chz2aCeHnP2Ep2IDCgkH7K/xVzExIqM 8POHOpItn+cNCvgI/u8T+ENJ9qBNn58L+eBDew67G2SWjZkwRqhR/0uskGwo6c8KXWiO 9AyH2cxKPs81hp6VGsQtuXMdWeyK6M5YHiJT/PD/XOd7GrsbS6O864GeVyBbr+PmNvZp 4mXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627656; x=1752232456; 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=rTSow9pTiEtZE4+cEk1d0BTAuVgvunpVUSHTyJlNheo=; b=s7v6QJBGWSpKnXIAho+ugwmAGbgdbiRtXJBtzmFKrlneyCDnCzW53FA1TaMXML1eQs jx2BZ+5p1x0x4St5ZT2fzT0A60u813aAG/+TMJJ9SDt8U0cv8xQcXD5USviTKtgN3WNb WVPWdwWCiDpoYZRsuoklu9+qQaXw2amUt9V+NNp7p+IYK5p/RPJOu+fPm+XdpCh6HaPl rLlYDO+oVaNFdEm1BLSFc3DkRJjhu+JA9gMHed8oTkdWkcjUWvMyfMqJJiJREM/qQd+1 ijpnlF8uGEIu3+8dSLwxFgM34p/pbiPVY1xSY3Y+hpfu8U5W6sIyekk/3LmFOgGvZazI vxxA== X-Gm-Message-State: AOJu0YxzF5F64aYERaGfTN0vsSdkwCQzxga1+dN1HG9Uq2/Nw1DuCi39 lVAa7n8/EwmQ9dzE6VMIRsiRXgZ8rucBM/suc2u4RcXNOAfwJNlsaCERFP3UuQ== X-Gm-Gg: ASbGncvX5hGKJTmAwuKvRirWnD9Go8ltpur4+mrxRZHi16O38Ybeas6lpGuxp1u1FCM 9+JUC3/toxsqFNEs4b7r+PZWkvahEB1Kbvwwgi4YxXu7thiuBJbO0A5qSJUAwroFVjCnynSXCJz 6sv9vt9NW80BpHphtFODxLip4PPmGuNFwc68GGQ8vGSzlEbQyPmO9ePoMlRJaUIQdqldVPBgSyE WZLJVxpcln+fPPYGbH7zuZec1gAga3G6o/+Vj54avtJhD6vxicrtSw3xFSyC7UdnFo+d2UIWfUS SfpAqRS1kpPlsDfZHTIAGSRVJOnfIdu451vU3NT9h0psh4Wh7qs/xKa9uDcJ9Zf7yYSa6CEkQwn BPvrHzB031+/tXOsYH7cr7lSoPr2rf5h/r0fygyg4aMvpwSssdzW8ae4mlSBbUuRhIvM= X-Google-Smtp-Source: AGHT+IG6mZiW19ayDX48ICOlRBrwJCvcG8KIxMcw3Fj7caXky9WdXzLYi5+ot84kmTmvn5zUjDv+rQ== X-Received: by 2002:a17:902:f78a:b0:234:c549:da14 with SMTP id d9443c01a7336-23c860d39fbmr42556645ad.29.1751627656326; Fri, 04 Jul 2025 04:14:16 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Max Chou , Richard Henderson , Alistair Francis Subject: [PULL 35/40] target/riscv: rvv: Fix missing exit TB flow for ldff_trans Date: Fri, 4 Jul 2025 21:12:02 +1000 Message-ID: <20250704111207.591994-36-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=alistair23@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627971461116600 Content-Type: text/plain; charset="utf-8" From: Max Chou According to the V spec, the vector fault-only-first load instructions may change the VL CSR. So the ldff_trans TCG translation function should generate the lookup_and_goto_ptr flow as the vsetvl/vsetvli translation function to make sure the vl_eq_vlmax TB flag is correct. Signed-off-by: Max Chou Reviewed-by: Richard Henderson Message-ID: <20250627133013.443997-1-max.chou@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/insn_trans/trans_rvv.c.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 2b6077ac06..4cd030c7eb 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -1361,6 +1361,12 @@ static bool ldff_trans(uint32_t vd, uint32_t rs1, ui= nt32_t data, fn(dest, mask, base, tcg_env, desc); =20 finalize_rvv_inst(s); + + /* vector unit-stride fault-only-first load may modify vl CSR */ + gen_update_pc(s, s->cur_insn_len); + lookup_and_goto_ptr(s); + s->base.is_jmp =3D DISAS_NORETURN; + return true; } =20 --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627819; cv=none; d=zohomail.com; s=zohoarc; b=JO5lHhYuaPUl/oGcLx3zFRdGpfdAcnjBX/9dKbVX8rdc4tR6+JyQHgC5qmNXZtaj1RK0dowkAhhZhnsjon4bnYo5QrJmRfAr13T/hILi9MAyFw5/VWOpuJiY+nq92jclXsy46YVBNvUdDJ4RmhdyBOu/RJN7OasYGQz/ts2201Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627819; 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=yMIRFy2ZY+UY2CacoD0sGAV9f6QXxycDwNFK+DT/I54=; b=ioo24pMqJhtzXOX6MHX+ORUOiRi07x3zKgcI5OrIDvGh6nGOPtaAI5HgqyNvN6Bkp/hODzN10O23P1yDWZNM026udaZ7A5Vvi72AL7PmOXbd5MH742uSds35Nh2DOcoClWsrpPBeS7CBkVhFtuYy+Tjbp+UhP8o5xaJb3CT8nFk= 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 1751627819148109.14023633602733; Fri, 4 Jul 2025 04:16:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOC-0007DJ-Q0; Fri, 04 Jul 2025 07:15:33 -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 1uXeN4-0004s4-7f for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:25 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeN2-0004N6-Jy for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:21 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-23602481460so9202225ad.0 for ; Fri, 04 Jul 2025 04:14:20 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627659; x=1752232459; 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=yMIRFy2ZY+UY2CacoD0sGAV9f6QXxycDwNFK+DT/I54=; b=QZls6nDE3crjl9cqr9EgKmG86uVckYT6LV+DefaRB6Ukn5Hk6qFAGkCx17uSqXspk5 beRP6IIZ6i4AA7GSGpNYMkwizFTkLOo301QKdxe3opZGLaa2/6XMBY/vyNlYhAyoiVvy phUoOHcmEXvrbWYzlpeCiSDuYpK1bTZ308g5Z077VWNkr56uKWzfWrxpapKF3gG/+iDG Pzj4XwMWNnv/aHkxkLVc5CVpxkwJ1uv6RkcZSXqiiSDnZaG/kGi+bhtnv5N5F+mEXmbw 7loskQCkQ8u3T9OLIKeZmkXK/uDuQmc7rrgS345nwhkEQQ55Qe2QkY352rK1ClrOu1Fl pDzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627659; x=1752232459; 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=yMIRFy2ZY+UY2CacoD0sGAV9f6QXxycDwNFK+DT/I54=; b=ZFQaVmSesBGpyNqT6QvLQJ6QnKZcRRP8HG0N0tf2ary6ZrEOkFIAf7yZF3aMB5W/j1 c4J1UWj9OrPmbIO/e1+7R8AhqLL8SzawrIYE0nR0NbgMgx6mLuBMMJobF3Fmmlm8YVAW LUNBmgXofl3xkaie2bNdJpOIEU7whuefwoTosCFpL+MQddyY5DS36Whc46xL2YwuQf/r hlxMee9eSel2XVwt1KI7TZh3fJwxkIKRVJ8SAyYpekCUEKyCko3o4nzO8gRK+e3DkVsP Ag/W6vOBIcHRouoaDTaCr0MbGiFX+Ycbki//h8fTdW+FZ/TloDIM7cjwBGEOttSm6CV7 UflQ== X-Gm-Message-State: AOJu0YyyHaCF/APWisL12rc6KJ6cUHSHVA6OklYL/kRPTmgsswNlv4r3 NeAZcvAKz22HCQfuYcdLpr1ir+wpwJTV/svwMwMX7c0s1CFxGE8DFjpFrK5UuQ== X-Gm-Gg: ASbGncsrOLXaKm7Nfhjok5tIcf2UDv1ZUkTLQQfGG0w00Ia4tXWoDBOXEwRZFMtSueY yrWlhJof9Wot4C21EL8YW9UXMe0suzNlOrhGMBmfuJMAnPDHdukbpWdVfJTMn5BPNP33cYZsOO3 y+FD4ISbnIMMJhlzmIBADycOI0UnOwWr02DA/AtaM1bDhMpK1RztCip9Vpt1S0paK8fQgkUh839 wu8mqzdcUt85QajfHc6DsFyjgbfgDn5KY36N+kCnX4ssxXASmppl99KWU/69HOyirES7/Yjf4RM vYwTH8ZvqaNtxc3mR52V6NwdwbcfD8y5awLwW47S4q26BlrzlJDt3MLZBfnt8lO1ZXSj5i4ufKX hLKnKxTqRuvrq1eCZoMNX/MOneOBdsMcJunwCjBafVUbm1lOCLIDOGNdOprwO3NUBDU4= X-Google-Smtp-Source: AGHT+IHgoow+t+Al5xoxGSf71BTSkDQgpsc+gNRlmPCV85sDkZbAgtpjufpNEd4CnjwK4fmGI9AmNA== X-Received: by 2002:a17:903:950:b0:234:a139:1210 with SMTP id d9443c01a7336-23c86320912mr39829545ad.53.1751627659018; Fri, 04 Jul 2025 04:14:19 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, "liu.xuemei1@zte.com.cn" , Alistair Francis Subject: [PULL 36/40] migration: Fix migration failure when aia is configured as aplic-imsic Date: Fri, 4 Jul 2025 21:12:03 +1000 Message-ID: <20250704111207.591994-37-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62a.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627820691116600 Content-Type: text/plain; charset="utf-8" From: "liu.xuemei1@zte.com.cn" Address an error in migration when aia is configured as 'aplic-imsic' in riscv kvm vm by adding riscv_aplic_state_needed() and riscv_imsic_state_needed() to determine whether the corresponding sates are needed. Previously, the fields in the vmsds of 'riscv_aplic' and 'riscv_imsic' can only be initialized under certain special conditions in commit 95a97b3fd2. However, the corresponding ses of these vmsds are inserted into the savevm_state.handlers unconditionally. This led to migration failure characterized by uninitialized fields when save vm state: qemu-system-riscv64: ../migration/vmstate.c:433: vmstate_save_state_v: Assertion 'first_elem || !n_elems || !size' failed. Fixes: 95a97b3fd2 ("target/riscv: update APLIC and IMSIC to support KVM AIA= ") Signed-off-by: Xuemei Liu Reviewed-by: Alistair Francis Message-ID: <20250616150034827wuHs_ffe3Qm8cqFXT7HeW@zte.com.cn> Signed-off-by: Alistair Francis --- hw/intc/riscv_aplic.c | 12 ++++++++++-- hw/intc/riscv_imsic.c | 10 ++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c index 8bcd9f4697..4fa5f7597b 100644 --- a/hw/intc/riscv_aplic.c +++ b/hw/intc/riscv_aplic.c @@ -962,10 +962,18 @@ static const Property riscv_aplic_properties[] =3D { DEFINE_PROP_BOOL("mmode", RISCVAPLICState, mmode, 0), }; =20 +static bool riscv_aplic_state_needed(void *opaque) +{ + RISCVAPLICState *aplic =3D opaque; + + return riscv_use_emulated_aplic(aplic->msimode); +} + static const VMStateDescription vmstate_riscv_aplic =3D { .name =3D "riscv_aplic", - .version_id =3D 2, - .minimum_version_id =3D 2, + .version_id =3D 3, + .minimum_version_id =3D 3, + .needed =3D riscv_aplic_state_needed, .fields =3D (const VMStateField[]) { VMSTATE_UINT32(domaincfg, RISCVAPLICState), VMSTATE_UINT32(mmsicfgaddr, RISCVAPLICState), diff --git a/hw/intc/riscv_imsic.c b/hw/intc/riscv_imsic.c index 2169988167..6174e1a05d 100644 --- a/hw/intc/riscv_imsic.c +++ b/hw/intc/riscv_imsic.c @@ -398,10 +398,16 @@ static const Property riscv_imsic_properties[] =3D { DEFINE_PROP_UINT32("num-irqs", RISCVIMSICState, num_irqs, 0), }; =20 +static bool riscv_imsic_state_needed(void *opaque) +{ + return !kvm_irqchip_in_kernel(); +} + static const VMStateDescription vmstate_riscv_imsic =3D { .name =3D "riscv_imsic", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, + .needed =3D riscv_imsic_state_needed, .fields =3D (const VMStateField[]) { VMSTATE_VARRAY_UINT32(eidelivery, RISCVIMSICState, num_pages, 0, --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628013; cv=none; d=zohomail.com; s=zohoarc; b=Z+HdzGrGHokX3epUfsH2VGFdtCc1c53jpCTN9jU5g411kfQLx1CR8kCPBUWZsZaz6B48P9gyyt0pDGL86cXehoP4nrRpGz1WnGWuaLdtb3EWuLaFqk3taHlUuLfy8GSPGT9KrpeR8OMt0LsCY1Mdn8hx4Jmf7S+2NZgRRgnN9Qs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628013; 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=ONjmGA/ciZhqBcIWB+pcuvZnH4RBOoReODO2aO4hpOQ=; b=AmkMKgIa2fdGlhLcBlbl+eadKnwVcBAOWfoMRYckKR5KoSn019bPsuF0UEh25i4M2DPtblDrUyi65++id8fAYPLfV5SjF+ugdWuuKGZZZwNnvGK6gNY4/+Zx7WPn1AcXAcmIZ9/SNheAZsfaPBhZejZcy4xfk0MNbuGOBoJL7Bk= 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 175162801366298.84324059240623; Fri, 4 Jul 2025 04:20:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOH-0007ex-1o; Fri, 04 Jul 2025 07:15:37 -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 1uXeN7-0004w7-I5 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:26 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeN5-0004O2-Mi for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:25 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-234f17910d8so7527465ad.3 for ; Fri, 04 Jul 2025 04:14:23 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627662; x=1752232462; 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=ONjmGA/ciZhqBcIWB+pcuvZnH4RBOoReODO2aO4hpOQ=; b=D20cpfIcBExfpHU4SEeKFm0LNOe0PcPacNqutXH3FRcLCyGuLSLJZdbaFp/WdE7IGP I2qSmxn8xLyX/evLzKmOcHeiMqfvXOrhr73QuN9koZ3sphx1Cje86XkLjyTkfmW3r6dZ fxvQlSKxW2uP0Utir7pI/VWYQRLRdmvmLxLrSjCbNgIPiOjv0PJZYyfvd+1e/PoYTDOd JdWsY64gdZT/Q2p8mwfGE6+aD3Wpv2Bb20drmdgT1lWLH7VzxfYzMHaQ/y7WxDAV7K3/ Z1T3ZMyStMuyylMj++ktV4MyTHOT1ay5IhcnUqlZkq1H1S3lPWUGL1HNnOyvLZWmg40s WhXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627662; x=1752232462; 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=ONjmGA/ciZhqBcIWB+pcuvZnH4RBOoReODO2aO4hpOQ=; b=GqY35zKp0UTiVV1IJ7SZ6fJs4PGShtrD2k/ZgQvyOZoq5+o8S82pZoOQmbWNrXYXlm hkqq2spGcJ445fLfeaGAiyfZT2olFdWLoA+rC/7BZW0ZqQN2woqQOdDkXIZU/CjDhy8y OPszhfZaInXZmkS2LCbXdd1N0isS11XqgJxgGcx8in7bLCL5G6m9XXV9eo7IGx65qVTL vR7uXg1/2IhgS/QdGEBqsfAcMGIZTEJ5tm+cne4b7X792CvbcOIzJ3wK8ISMxwtXV65a lR1E7gwOZkPe3kElUm7+dgXnIL2e1tp8zh4SUD7na46Et+33BdLOeBlDmfh93qJ5i385 /lLA== X-Gm-Message-State: AOJu0YzNXskN/6bKaYa5lkPzhsaB0LU+Q6UlQ/BCM2OCuGGi+gbJOzzC 7dmY0m4DQNz5VT6L5fwE4j/sW0EPaZSQEUTCB5TkPjVYwUOrL9WoR9DXbRJEyQ== X-Gm-Gg: ASbGncsJZtlEqdyrawVjE+UHjTGbO4iJv39AaJwzBcrL5k7Vj1UFk6/ZoHGUR/uKTqk qmYim+YCEMYqiz1jPi/jtv9BboqRsfsbsOK2WKGsO63E8//lgt6Cjzp3vZDA54wTQS3hrV+YQSQ S6miFd646ryVoCQo7B4enbcAEUoTtud0OsPZ42baIBSkmfi2FkFlTRDEneFRlhpPujOIzjZHNdB rsimKLA52xZ6JCYyXjqKgkedxUGTlQQVv9Rf4c/vAC8dljsWPnlqpUv2ZRF9ORbsujMRZ6FvpdE A56aI7Fr/duzb0pKPgcnbEdjkaFOGPIWXzen1Jfro0kTVnBqHO37NsQyWiijtC1nXQ/VYOftTUy nWoYJoZWsu0LSIf4OtSuCiG0pspRTMBbzCKIjoOc4vrl6iyY1FMbStiZTesCgA6/qoVY= X-Google-Smtp-Source: AGHT+IGJ43Dtnc88RzA7Q+cI8EGrxx2rdkV506T0e7Cb4gnxSyairFv6cTrghVTaZU2TI1jn5unaSQ== X-Received: by 2002:a17:903:13ce:b0:234:f6ba:e681 with SMTP id d9443c01a7336-23c8606b87emr37720535ad.5.1751627661984; Fri, 04 Jul 2025 04:14:21 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Charalampos Mitrodimas , Alistair Francis , Daniel Henrique Barboza Subject: [PULL 37/40] target/riscv: Fix MEPC/SEPC bit masking for IALIGN Date: Fri, 4 Jul 2025 21:12:04 +1000 Message-ID: <20250704111207.591994-38-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628014180116600 Content-Type: text/plain; charset="utf-8" From: Charalampos Mitrodimas According to the RISC-V Privileged Architecture specification, the low bit of MEPC/SEPC must always be zero. When IALIGN=3D32, the two low bits must be zero. This commit fixes the behavior of MEPC/SEPC CSR reads and writes, and the implicit reads by MRET/SRET instructions to properly mask the lowest bit(s) based on whether the C extension is enabled: - When C extension is enabled (IALIGN=3D16): mask bit 0 - When C extension is disabled (IALIGN=3D32): mask bits [1:0] Previously, when vectored mode bits from STVEC (which sets bit 0 for vectored mode) were written to MEPC, the bits would not be cleared correctly, causing incorrect behavior on MRET. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2855 Signed-off-by: Charalampos Mitrodimas Reviewed-by: Alistair Francis Reviewed-by: Daniel Henrique Barboza Message-ID: <20250703182157.281320-2-charmitro@posteo.net> Signed-off-by: Alistair Francis --- target/riscv/internals.h | 11 +++++++++++ target/riscv/csr.c | 8 ++++---- target/riscv/op_helper.c | 4 ++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/target/riscv/internals.h b/target/riscv/internals.h index 9686bb6208..172296f12e 100644 --- a/target/riscv/internals.h +++ b/target/riscv/internals.h @@ -158,6 +158,17 @@ static inline float16 check_nanbox_bf16(CPURISCVState = *env, uint64_t f) } } =20 +static inline target_ulong get_xepc_mask(CPURISCVState *env) +{ + /* When IALIGN=3D32, both low bits must be zero. + * When IALIGN=3D16 (has C extension), only bit 0 must be zero. */ + if (riscv_has_ext(env, RVC)) { + return ~(target_ulong)1; + } else { + return ~(target_ulong)3; + } +} + #ifndef CONFIG_USER_ONLY /* Our implementation of SysemuCPUOps::has_work */ bool riscv_cpu_has_work(CPUState *cs); diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 6296ecd1e1..8631be97c5 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -3129,14 +3129,14 @@ static RISCVException write_mscratch(CPURISCVState = *env, int csrno, static RISCVException read_mepc(CPURISCVState *env, int csrno, target_ulong *val) { - *val =3D env->mepc; + *val =3D env->mepc & get_xepc_mask(env); return RISCV_EXCP_NONE; } =20 static RISCVException write_mepc(CPURISCVState *env, int csrno, target_ulong val, uintptr_t ra) { - env->mepc =3D val; + env->mepc =3D val & get_xepc_mask(env); return RISCV_EXCP_NONE; } =20 @@ -4169,14 +4169,14 @@ static RISCVException write_sscratch(CPURISCVState = *env, int csrno, static RISCVException read_sepc(CPURISCVState *env, int csrno, target_ulong *val) { - *val =3D env->sepc; + *val =3D env->sepc & get_xepc_mask(env); return RISCV_EXCP_NONE; } =20 static RISCVException write_sepc(CPURISCVState *env, int csrno, target_ulong val, uintptr_t ra) { - env->sepc =3D val; + env->sepc =3D val & get_xepc_mask(env); return RISCV_EXCP_NONE; } =20 diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 557807ba4b..15460bf84b 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -280,7 +280,7 @@ target_ulong helper_sret(CPURISCVState *env) riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, GETPC()); } =20 - target_ulong retpc =3D env->sepc; + target_ulong retpc =3D env->sepc & get_xepc_mask(env); if (!riscv_cpu_allow_16bit_insn(&env_archcpu(env)->cfg, env->priv_ver, env->misa_ext) && (retpc & 0x3)) { @@ -391,7 +391,7 @@ static target_ulong ssdbltrp_mxret(CPURISCVState *env, = target_ulong mstatus, =20 target_ulong helper_mret(CPURISCVState *env) { - target_ulong retpc =3D env->mepc; + 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); =20 --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751628266; cv=none; d=zohomail.com; s=zohoarc; b=Ie/JW4G9yoiOO9H+XAq0NVjqX0mEGVAPEB7dds8U+IZdKQQqvO6sGL5cqg2fKmk3pXGrcW5i6kKV1ohH00C8BCC1Pnvobsm0Er03/wL9AHVeNN4CE7HZ+zMXlXZXmDjdKf7ZjQKwCpCsi8OrHGrD44EOZx2qtyTRxwPeA9+m0+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751628266; 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=CXLfUly98A1gi7Wq/mV90ppTT7V7dWfvuoZOQ7SK3E0=; b=Yi3TReZTCFoH+YZnRXWTQ4eh1oSu8buKoFIehmIlLutaPNt37/IbRIUap2u2xiIyzUPguAhw465KbTLNcFbE478cVXCWNsyjJa5XIeE+vBa4b1DvcBBYN+tRGvcsHrh58j8wAoV+mbfyvFfszScZltKa4tKnpnn9dPShwr/Xcbw= 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 1751628266858906.8970602251325; Fri, 4 Jul 2025 04:24:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOn-0000Ls-N5; Fri, 04 Jul 2025 07:16:09 -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 1uXeNC-00056b-3X for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:34 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeNA-0004Of-9p for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:29 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-237e6963f63so6010885ad.2 for ; Fri, 04 Jul 2025 04:14:26 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627665; x=1752232465; 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=CXLfUly98A1gi7Wq/mV90ppTT7V7dWfvuoZOQ7SK3E0=; b=XNZicDpm6hVECsqPbgKCGXZBT48w7484R6QJOD6QUjHtKQEwLQQcP+kQXLZhRTR2ZS 0+62BGx7vxqBWZUPXRRWXh7tR/kW8oY0bI9zyefJMHY8tTM2+AJwea4EC+6J29SHyL0a 3w/QNS9t192NJhqfpFQEeRYmCUkzlVv/TwdhJWf/jJAW7h9udhHadmaZptgFBUNBjIyz Y6ZCmCgdnkvaZienDkXSuwNGk4gAqOSappzhpk0XMxmMhdJV/v+z98geoyaxrmxgukCm gE1y0iYt0xpGxvGCvxgaMuVtdPHfOcmSFXQ9tBG8a+kJDzGG+BZ+cOFxdU4IfsQnKqsT GXKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627665; x=1752232465; 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=CXLfUly98A1gi7Wq/mV90ppTT7V7dWfvuoZOQ7SK3E0=; b=DD6iCz+37CjTJQtsQVCUMKIqNsNuXsaxXIzyCzYBwzVQ2q+/VV6HYi1STA77FV+kEx oX6+VnLLPt8FWtu/M6Bte/OyDKzaPGRbGV+ACfjdjyGH8Z2ul2iACcMuEjicwsOmphk7 tZnD4SgCEz9trzpKDZmScIQXcACzy3N7zzrfL8ZWY9LZ83fqg1j7xrm/Yt+Jgn7IAquj XbSlz/Xn5CvQxuZ203bv7qH6V56pQh5rDryqMdp+v96iEvCbwG+AeMsgFnYcqJh8r1+C DqhJG1ffJK3Xr+UYlXly3LKz9r2NLMJNT9k9Ge1qkNJ1JvuVL0im7fmhagmnRG9puMrR U/mw== X-Gm-Message-State: AOJu0Yz+17rfanea299k5VP9DdAlBakIaFmA8YZfvvQCidUWUR4eYmUR zBChVn4R771y+dTl3QMEerZovijCO7PM7CMQEHTtdnudBjcuzGsEkcqT7SYDhg== X-Gm-Gg: ASbGnct+Y1Ir7yeQfR9VE8yzQdw8jF7zM1XwHdnbZ7EWf7vgrw9++e37xjYc3ZnNqBa eAcc7lssiY69IZmxHztoVBmn0MuWNUnKlNTPVjCJckhpTIBEf+eYFkEyM8nOAwLxz0BkqASzuUl b67kxTzc9R0Fp/bCe6Z3re6khtpfAOVRaJ4vX7k3HbUWVIdEewH44IEfXzg+zvAg1vcSR1jW3fS 3+b6QoEDd5o3nvFbtBcRvbV4oMutngidyoR66ieDlzlFHg7pHy0TjERnQE3xz299n31bpNnq2r6 o4dKKsaaAzgdfk7b95hKL/K1yAc8brUatAxK1WWIpWsSO0ORfuzme9rtXMWVWRVJOJyIxlc8wm6 756lpp8TXWodvbPpTQpEv5k3olAi1dbsiF4T47uBvGpQibMrN4iyT3W7vUJloNz3Mv6ljc7ewZZ JNlg== X-Google-Smtp-Source: AGHT+IFFm7Pp2naGyzWIyCF7ipF3SqCeDNNl5dLiArGDQEPY+IQZHATd6D26qm6sjTi8H9WsPO+bpw== X-Received: by 2002:a17:902:ce85:b0:237:ec18:eae5 with SMTP id d9443c01a7336-23c8754b117mr24607885ad.27.1751627664950; Fri, 04 Jul 2025 04:14:24 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Charalampos Mitrodimas , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 38/40] tests/tcg/riscv64: Add test for MEPC bit masking Date: Fri, 4 Jul 2025 21:12:05 +1000 Message-ID: <20250704111207.591994-39-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=alistair23@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751628268883116600 Content-Type: text/plain; charset="utf-8" From: Charalampos Mitrodimas Add a regression test to verify that MEPC properly masks the lower bits when an address with mode bits is written to it, as required by the RISC-V Privileged Architecture specification. The test sets STVEC to an address with bit 0 set (vectored mode), triggers an illegal instruction exception, copies STVEC to MEPC in the trap handler, and verifies that MEPC masks bits [1:0] correctly for IALIGN=3D32. Without the fix, MEPC retains the mode bits (returns non-zero/FAIL). With the fix, MEPC clears bits [1:0] (returns 0/PASS). Signed-off-by: Charalampos Mitrodimas Reviewed-by: Daniel Henrique Barboza Message-ID: <20250703182157.281320-3-charmitro@posteo.net> Signed-off-by: Alistair Francis --- tests/tcg/riscv64/Makefile.softmmu-target | 4 ++ tests/tcg/riscv64/test-mepc-masking.S | 73 +++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 tests/tcg/riscv64/test-mepc-masking.S diff --git a/tests/tcg/riscv64/Makefile.softmmu-target b/tests/tcg/riscv64/= Makefile.softmmu-target index 7c1d44d3f4..3ca595335d 100644 --- a/tests/tcg/riscv64/Makefile.softmmu-target +++ b/tests/tcg/riscv64/Makefile.softmmu-target @@ -20,5 +20,9 @@ EXTRA_RUNS +=3D run-issue1060 run-issue1060: issue1060 $(call run-test, $<, $(QEMU) $(QEMU_OPTS)$<) =20 +EXTRA_RUNS +=3D run-test-mepc-masking +run-test-mepc-masking: test-mepc-masking + $(call run-test, $<, $(QEMU) $(QEMU_OPTS)$<) + # We don't currently support the multiarch system tests undefine MULTIARCH_TESTS diff --git a/tests/tcg/riscv64/test-mepc-masking.S b/tests/tcg/riscv64/test= -mepc-masking.S new file mode 100644 index 0000000000..fccd2a7ac4 --- /dev/null +++ b/tests/tcg/riscv64/test-mepc-masking.S @@ -0,0 +1,73 @@ +/* + * Test for MEPC masking bug fix + * + * This test verifies that MEPC properly masks the lower bits according + * to the RISC-V specification when vectored mode bits from STVEC are + * written to MEPC. + */ + + .option norvc + + .text + .global _start +_start: + /* Set up machine trap vector */ + lla t0, machine_trap_handler + csrw mtvec, t0 + + /* Set STVEC with vectored mode (mode bits =3D 01) */ + li t0, 0x80004001 + csrw stvec, t0 + + /* Clear medeleg to handle exceptions in M-mode */ + csrw medeleg, zero + + /* Trigger illegal instruction exception */ + .word 0xffffffff + +test_completed: + /* Exit with result in a0 */ + /* a0 =3D 0: success (bits [1:0] were masked) */ + /* a0 !=3D 0: failure (some bits were not masked) */ + j _exit + +machine_trap_handler: + /* Check if illegal instruction (mcause =3D 2) */ + csrr t0, mcause + li t1, 2 + bne t0, t1, skip_test + + /* Test: Copy STVEC (with mode bits) to MEPC */ + csrr t0, stvec /* t0 =3D 0x80004001 */ + csrw mepc, t0 /* Write to MEPC */ + csrr t1, mepc /* Read back MEPC */ + + /* Check if bits [1:0] are masked (IALIGN=3D32 without RVC) */ + andi a0, t1, 3 /* a0 =3D 0 if both bits masked correctly */ + + /* Set correct return address */ + lla t0, test_completed + csrw mepc, t0 + +skip_test: + mret + +/* Exit with semihosting */ +_exit: + lla a1, semiargs + li t0, 0x20026 /* ADP_Stopped_ApplicationExit */ + sd t0, 0(a1) + sd a0, 8(a1) + li a0, 0x20 /* TARGET_SYS_EXIT_EXTENDED */ + + /* Semihosting call sequence */ + .balign 16 + slli zero, zero, 0x1f + ebreak + srai zero, zero, 0x7 + j . + + .data + .balign 8 +semiargs: + .space 16 --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627955; cv=none; d=zohomail.com; s=zohoarc; b=KePqIo0uSv+MJ94315TiuTz9o/S7zmWbDH4ser0eQBmq6lxKvRYcPnKL+ct+3V0VOojviIwdFlwE+x1UBmGkOAzMZFnTOuobj9jciZ5aqgZOEVk0EHfEhoaOTMZgupE74UdU1SPQMrtUok5TInqnt8dHG3jul55uYNMxbWhTneM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627955; 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=6LeQAAogdZ6utUWU8uZD20yEC9hkJc37e9nimWKPLx0=; b=DqcVSZXetegrVM0p5Woy2LjPxXj9Mmq72mhPg/7l6MEEwp9zu6XbsVHghQKPPumqKXgMjQ7FUVvYurfId3nBUUtl9m7OXLGScT48t8YfN7VJ52Ql3/85p5eFm5RMUsVdhoDBix5SaG5uF5DuU0VWVWatTy9PhpY4aF/8tkExvac= 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 175162795517522.204811387455266; Fri, 4 Jul 2025 04:19:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOc-00085F-0J; Fri, 04 Jul 2025 07:16:02 -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 1uXeND-0005M5-UU for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:35 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeNB-0004S3-I2 for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:31 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-23c8a5053c2so2285455ad.1 for ; Fri, 04 Jul 2025 04:14:29 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627668; x=1752232468; 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=6LeQAAogdZ6utUWU8uZD20yEC9hkJc37e9nimWKPLx0=; b=kCJfBjNaW7DnUcznVJSlyQ1k7U6JLfuSVxo6vamiPtPybEH/KKKFAu3ZznGW/CtQev kx7agtkEUdH/ip2EV9O9LBEOiywhF8uhtnqDcP6RuHwOYogCHphdDlR6lXeL2taJvTgy M0zW3nuN11C0qvoYx66+FUeuuebCrwKCNnQ5w6+Q2ihreB7LGrxqqUpKePTtu4sD7jzO UfgYPJIYITq1uk6iqL56PRNN8ywVq+Y7YqdUO0JxoH/noojp83yhPB2QM5nTJC9or/Gy UKgpSfemV0tXJwdiFfUQKVaALxgISqQUIW8yznwYrEf6AY2k1m1jRpgv7FYDS820MzJS 8S5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627668; x=1752232468; 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=6LeQAAogdZ6utUWU8uZD20yEC9hkJc37e9nimWKPLx0=; b=AvwbmgRlTqmOP39ezeVAHnOVStruneEvSELEf8O4s6gUCXULZ5oS4+RWVd80OI2E43 fk+gUIol0E59xmiuBA6spLSkDrqyQDgA6fiK9hRIqKkYR5mryvlIfATkKoDbfuBR7jBk wac/1mJV5xD3Fnt/IKhXyEea6gLbiv2N59LzWmUOVFn2zJXOlIOamOOP5k+lVI+TpEoA YMvdi12egre+n9L/2zuVJNs2opooHjFLCWAFUcZx/S2tR7P1WJ2201J0IRqE7FqPj+xG JiksM50+ICblnSGaAdNAYkgEHzuOyf8kZi1ey45whFmzW9fnhZKTjCukq3MyxM1NdAW7 LmqQ== X-Gm-Message-State: AOJu0YwnItwhCGEfaFhBvmh9fGuWatx2PRJXtcO40XLj8ZlMKUAVZ8bG kE0Q6EyHkVBTawhrpfdNDZAefgXWuQ8S7Qp57sNfjhOzM68W8OERZrThOdwBXw== X-Gm-Gg: ASbGnctY1gJIBRIHzp8xSDwvXKKNkpqtle+Qnf5kyPkNvpKlASlghzNyGd2o/Ne++tb 7VM2oie0cUwgisokZR31M6NAQOiI0MaGuHxzARmUFlzGyukmv3fMXPBJNxC+Er/Lp5/zVNb/hkF /tozxDkCEzHzJZrWJhZCDFB7wSi7HYc2O3ggCQQGflZWgo0stebzfkD/i69Lb9pwEk4zrls7gnh LNN95faUgeRZI31BFSCq2x+/57UZk6q0MiLqVyUzlLaAuVp574TfT5AKVfjMvJKBtjpGEBPLJ0I zneylRjYdG4aMA7akILDtlGqjdXYDdRf/FYRuzI76XdXaWVC6Rbw+k/ArX6Lj2I2qzeybt7IZ4s FzXFuAypUn5o1+j+nSyfDB75vTWBM9nUvkn0YNOyrMDwxgZw2vVaLhKyIrDShs1VBwS4= X-Google-Smtp-Source: AGHT+IHgIhtJkgUSheu5mR9p8B+GF/abC0ifNtVn4z7tskl9K2HaIPavnUbm7fdqKF38JOIL65FrIA== X-Received: by 2002:a17:903:faf:b0:236:9726:7264 with SMTP id d9443c01a7336-23c8609c053mr38721285ad.5.1751627667985; Fri, 04 Jul 2025 04:14:27 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Vasilis Liaskovitis , Daniel Henrique Barboza , Alistair Francis Subject: [PULL 39/40] target/riscv: Add a property to set vill bit on reserved usage of vsetvli instruction Date: Fri, 4 Jul 2025 21:12:06 +1000 Message-ID: <20250704111207.591994-40-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627957315116600 Content-Type: text/plain; charset="utf-8" From: Vasilis Liaskovitis Usage of vsetvli instruction is reserved if VLMAX is changed when vsetvli r= s1 and rd arguments are x0. In this case, if the new property is true, only the vill bit will be set. See https://github.com/riscv/riscv-isa-manual/blob/main/src/v-st-ext.adoc#a= vl-encoding According to the spec, the above use cases are reserved, and "Implementations may set vill in either case." Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2422 Signed-off-by: Vasilis Liaskovitis Reviewed-by: Daniel Henrique Barboza Message-ID: <20250618213542.22873-1-vliaskovitis@suse.com> Signed-off-by: Alistair Francis --- target/riscv/helper.h | 2 +- target/riscv/cpu_cfg_fields.h.inc | 1 + target/riscv/cpu.c | 1 + target/riscv/vector_helper.c | 12 +++++++++++- target/riscv/insn_trans/trans_rvv.c.inc | 4 ++-- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/target/riscv/helper.h b/target/riscv/helper.h index 85d73e492d..f712b1c368 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -159,7 +159,7 @@ DEF_HELPER_FLAGS_3(hyp_hsv_d, TCG_CALL_NO_WG, void, env= , tl, tl) #endif =20 /* Vector functions */ -DEF_HELPER_3(vsetvl, tl, env, tl, tl) +DEF_HELPER_4(vsetvl, tl, env, tl, tl, tl) DEF_HELPER_5(vle8_v, void, ptr, ptr, tl, env, i32) DEF_HELPER_5(vle16_v, void, ptr, ptr, tl, env, i32) DEF_HELPER_5(vle32_v, void, ptr, ptr, tl, env, i32) diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 33c4f9bac8..98ceb7b340 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -114,6 +114,7 @@ BOOL_FIELD(ext_supm) BOOL_FIELD(rvv_ta_all_1s) BOOL_FIELD(rvv_ma_all_1s) BOOL_FIELD(rvv_vl_half_avl) +BOOL_FIELD(rvv_vsetvl_x0_vill) /* Named features */ BOOL_FIELD(ext_svade) BOOL_FIELD(ext_zic64b) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e3f8ecef68..6f1d0618f1 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -2632,6 +2632,7 @@ static const Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("rvv_ta_all_1s", RISCVCPU, cfg.rvv_ta_all_1s, false), DEFINE_PROP_BOOL("rvv_ma_all_1s", RISCVCPU, cfg.rvv_ma_all_1s, false), DEFINE_PROP_BOOL("rvv_vl_half_avl", RISCVCPU, cfg.rvv_vl_half_avl, fal= se), + DEFINE_PROP_BOOL("rvv_vsetvl_x0_vill", RISCVCPU, cfg.rvv_vsetvl_x0_vil= l, false), =20 /* * write_misa() is marked as experimental for now so mark diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 5dc1c10012..b41c29da0b 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -35,7 +35,7 @@ #include =20 target_ulong HELPER(vsetvl)(CPURISCVState *env, target_ulong s1, - target_ulong s2) + target_ulong s2, target_ulong x0) { int vlmax, vl; RISCVCPU *cpu =3D env_archcpu(env); @@ -83,6 +83,16 @@ target_ulong HELPER(vsetvl)(CPURISCVState *env, target_u= long s1, } else { vl =3D vlmax; } + + if (cpu->cfg.rvv_vsetvl_x0_vill && x0 && (env->vl !=3D vl)) { + /* only set vill bit. */ + env->vill =3D 1; + env->vtype =3D 0; + env->vl =3D 0; + env->vstart =3D 0; + return 0; + } + env->vl =3D vl; env->vtype =3D s2; env->vstart =3D 0; diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 4cd030c7eb..610bf9ff30 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -202,7 +202,7 @@ static bool do_vsetvl(DisasContext *s, int rd, int rs1,= TCGv s2) s1 =3D get_gpr(s, rs1, EXT_ZERO); } =20 - gen_helper_vsetvl(dst, tcg_env, s1, s2); + gen_helper_vsetvl(dst, tcg_env, s1, s2, tcg_constant_tl((int) (rd =3D= =3D 0 && rs1 =3D=3D 0))); gen_set_gpr(s, rd, dst); finalize_rvv_inst(s); =20 @@ -222,7 +222,7 @@ static bool do_vsetivli(DisasContext *s, int rd, TCGv s= 1, TCGv s2) =20 dst =3D dest_gpr(s, rd); =20 - gen_helper_vsetvl(dst, tcg_env, s1, s2); + gen_helper_vsetvl(dst, tcg_env, s1, s2, tcg_constant_tl(0)); gen_set_gpr(s, rd, dst); finalize_rvv_inst(s); gen_update_pc(s, s->cur_insn_len); --=20 2.50.0 From nobody Fri Dec 19 17:13:19 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=1751627955; cv=none; d=zohomail.com; s=zohoarc; b=hQ4yxxzk73i1pwmdfWhnr5R+oypenNdTZtnelAYvuPEyrS0s6z2/dw9Bejj0d2OLd2HTeZ+SvZC8BYwQYwKWKnuxyom+LZd37N149vVxQ/mDsllwOOHPIu7i2zPjPmJQpqAI1G8TMAYofWeL7NTHOnFw3xGUySnF3R8C5KWPVvU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751627955; 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=NqE5fVFQfHyb6UDdosLT6q2NRwyGZ/+U3lfNU21fzaw=; b=ZLJ1Z129H2xnurYwCIYAiernmIxlP/rKCEEmiZRL7tb1K85lN2Xw/uGpa1WHh6zvzmyww8Ps1y/2Ssw1Fe4mPlON0SYILiXpENaFUi2n03zbMg/yRzD/24GRdmMTev1G2NQT53xXQ4a/+/u5EPfNXWSY9G7FuxVyPwhvzUdM5ZI= 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 175162795513081.91981081403424; Fri, 4 Jul 2025 04:19:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uXeOm-0000KZ-UJ; Fri, 04 Jul 2025 07:16:09 -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 1uXeNH-0005R1-Ce for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:35 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uXeNF-0004Vc-3q for qemu-devel@nongnu.org; Fri, 04 Jul 2025 07:14:35 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2366e5e4dbaso14995485ad.1 for ; Fri, 04 Jul 2025 04:14:32 -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 d9443c01a7336-23c8431a206sm18002655ad.28.2025.07.04.04.14.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jul 2025 04:14:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751627671; x=1752232471; 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=NqE5fVFQfHyb6UDdosLT6q2NRwyGZ/+U3lfNU21fzaw=; b=jxjhTwoKWvq6bLGPBTS+773odY0j1v8roVNUJX0DPrQIAkyYIxCwqgF0orzPUdyfpv k/2cqQNRhxTnCoHLeQyiKFAY8PA/KpTx7ExPfvpeZSCVA3BVaS8ZQ54wzjSLZGTaR2SL A5DnkGyuPLZVPpIqYkm8nNXw4VkrIrO/Mkx7G/8NplTy6Im3bfGojJUFXrQ7a5gEIbU0 auSkiDd6GSCs7q7GAyso865UEQ6y+sH4xvnyWYtAas/Jm2G58cvsXXdwXTocgmaKmIW/ JmXLyoA0M3jb6Fx9LdcCEakFeNu7i4PUIIAnyaLCx9z94bluE3ntCZ8UmQwvHRFuZknd QTaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751627671; x=1752232471; 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=NqE5fVFQfHyb6UDdosLT6q2NRwyGZ/+U3lfNU21fzaw=; b=jTod3/3uIe24lZ9pfeebGw3atkn/y+pAVIxFZ+AvHi3aQM1B3J0wtbfowRMs/pCkZ1 6vgRIomz6foFEB7JzaHeISXO5cnDYpGpBMv9uEOhlnUODc9bTQPgWu0UrowBf9ifPgQj vwy3ifCV7nBuUmnD+VxzAN5ZSk+YCT940cPJ2KPneQcdgRaI+lQNQEFT11aR5zcVr5r9 uVEwov0rsHwQNPS2Eb21Hl5kkm19Bee3ppgMxykVnt6MJuSSK/6+RcCXf+v50n28RiHh zZaMqw4xBnMMq0130X8BN5XNmzGP+vJTBvngxgxeGEeU5hkwwn+P1VFATnMoiy3h0M/h q6ug== X-Gm-Message-State: AOJu0YzUfdmwws8WI2PfJ5QFVyb3FFCHa/DRWwd2c7zKvbd/1xTvDsSH pTA0EwASP55sMx5GWnHb41cVxbjq+WVEv4o/JGX/1g6kBgn8fs+qOpvJ7L1P/g== X-Gm-Gg: ASbGncvd73HfY3sOA3/zCwm0RXvaMQvLxNL7JS5TZmXBKuwOj/sjqSvtHCjdJ7m8+Xd A8Zzh6a9sdzYzMwBkYYPe5Qhs1ixaHAvectZNFZq+9+sxv6doGsuE08yeCSHiGnFEqO+ZKjl+eO 0reM4qvb0OX7m9FL7LnmDciBBJKC3rx2AyezioeRbPdowezgkIX8XlGQLX272pziuOeHYzverbl 859TfkICR//uNgmei8x3NCLdXD5e/Q3+TodZg8y+wsocTgzDc3ZrWXAeA4HzpJyMFveGUiM6w4A hif+JaZnIUdSbqnLi8UQ4jyMdaZwhUf7ObiYSwlXa81b3Qr6b7xMLcGqd3LTm36tPxAmS0N3efM 9WCJuLmsS3/Y2BdJ/6Kcr5HlQUctYxm89u6JFLickIqRHytHm3q1edcrMv+TMQDP0jwQ= X-Google-Smtp-Source: AGHT+IELRC4nApgmQVoI2EPIDY80ZcIwXWLiU6MMxWxl7m7bEpKxELKvjtWZDJhhfj9h/ZMBiNLiFQ== X-Received: by 2002:a17:903:22d0:b0:234:1e11:95a3 with SMTP id d9443c01a7336-23c84b6842dmr43353245ad.13.1751627671528; Fri, 04 Jul 2025 04:14:31 -0700 (PDT) From: alistair23@gmail.com X-Google-Original-From: alistair.francis@wdc.com To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Alexandre Ghiti , Deepak Gupta , Daniel Henrique Barboza , Nutty Liu , Alistair Francis Subject: [PULL 40/40] target: riscv: Add Svrsw60t59b extension support Date: Fri, 4 Jul 2025 21:12:07 +1000 Message-ID: <20250704111207.591994-41-alistair.francis@wdc.com> X-Mailer: git-send-email 2.50.0 In-Reply-To: <20250704111207.591994-1-alistair.francis@wdc.com> References: <20250704111207.591994-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::634; envelope-from=alistair23@gmail.com; helo=mail-pl1-x634.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1751627957653116600 Content-Type: text/plain; charset="utf-8" From: Alexandre Ghiti The Svrsw60t59b extension allows to free the PTE reserved bits 60 and 59 for software to use. Reviewed-by: Deepak Gupta Signed-off-by: Alexandre Ghiti Reviewed-by: Daniel Henrique Barboza Reviewed-by: Nutty Liu Message-ID: <20250702-dev-alex-svrsw60b59b_v2-v2-1-504ddf0f8530@rivosinc.co= m> Signed-off-by: Alistair Francis --- hw/riscv/riscv-iommu-bits.h | 1 + target/riscv/cpu_bits.h | 3 ++- target/riscv/cpu_cfg_fields.h.inc | 1 + hw/riscv/riscv-iommu.c | 3 ++- target/riscv/cpu.c | 2 ++ target/riscv/cpu_helper.c | 3 ++- target/riscv/tcg/tcg-cpu.c | 8 ++++++++ 7 files changed, 18 insertions(+), 3 deletions(-) diff --git a/hw/riscv/riscv-iommu-bits.h b/hw/riscv/riscv-iommu-bits.h index 1017d73fc6..47fe01bee5 100644 --- a/hw/riscv/riscv-iommu-bits.h +++ b/hw/riscv/riscv-iommu-bits.h @@ -79,6 +79,7 @@ struct riscv_iommu_pq_record { #define RISCV_IOMMU_CAP_SV39 BIT_ULL(9) #define RISCV_IOMMU_CAP_SV48 BIT_ULL(10) #define RISCV_IOMMU_CAP_SV57 BIT_ULL(11) +#define RISCV_IOMMU_CAP_SVRSW60T59B BIT_ULL(14) #define RISCV_IOMMU_CAP_SV32X4 BIT_ULL(16) #define RISCV_IOMMU_CAP_SV39X4 BIT_ULL(17) #define RISCV_IOMMU_CAP_SV48X4 BIT_ULL(18) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index e6b3e28386..b62dd82fe7 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -735,7 +735,8 @@ typedef enum { #define PTE_SOFT 0x300 /* Reserved for Software */ #define PTE_PBMT 0x6000000000000000ULL /* Page-based memory typ= es */ #define PTE_N 0x8000000000000000ULL /* NAPOT translation */ -#define PTE_RESERVED 0x1FC0000000000000ULL /* Reserved bits */ +#define PTE_RESERVED(svrsw60t59b) \ + (svrsw60t59b ? 0x07C0000000000000ULL : 0x1FC0000000000000ULL) /* Reser= ved bits */ #define PTE_ATTR (PTE_N | PTE_PBMT) /* All attributes bits */ =20 /* Page table PPN shift amount */ diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index 98ceb7b340..e2d116f0df 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -57,6 +57,7 @@ BOOL_FIELD(ext_svadu) BOOL_FIELD(ext_svinval) BOOL_FIELD(ext_svnapot) BOOL_FIELD(ext_svpbmt) +BOOL_FIELD(ext_svrsw60t59b) BOOL_FIELD(ext_svvptc) BOOL_FIELD(ext_svukte) BOOL_FIELD(ext_zdinx) diff --git a/hw/riscv/riscv-iommu.c b/hw/riscv/riscv-iommu.c index d8b1cb03a8..96a7fbdefc 100644 --- a/hw/riscv/riscv-iommu.c +++ b/hw/riscv/riscv-iommu.c @@ -2351,7 +2351,8 @@ static void riscv_iommu_realize(DeviceState *dev, Err= or **errp) } if (s->enable_g_stage) { s->cap |=3D RISCV_IOMMU_CAP_SV32X4 | RISCV_IOMMU_CAP_SV39X4 | - RISCV_IOMMU_CAP_SV48X4 | RISCV_IOMMU_CAP_SV57X4; + RISCV_IOMMU_CAP_SV48X4 | RISCV_IOMMU_CAP_SV57X4 | + RISCV_IOMMU_CAP_SVRSW60T59B; } =20 if (s->hpm_cntrs > 0) { diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 6f1d0618f1..d055ddf462 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -230,6 +230,7 @@ const RISCVIsaExtData isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(svinval, PRIV_VERSION_1_12_0, ext_svinval), ISA_EXT_DATA_ENTRY(svnapot, PRIV_VERSION_1_12_0, ext_svnapot), ISA_EXT_DATA_ENTRY(svpbmt, PRIV_VERSION_1_12_0, ext_svpbmt), + ISA_EXT_DATA_ENTRY(svrsw60t59b, PRIV_VERSION_1_13_0, ext_svrsw60t59b), ISA_EXT_DATA_ENTRY(svukte, PRIV_VERSION_1_13_0, ext_svukte), ISA_EXT_DATA_ENTRY(svvptc, PRIV_VERSION_1_13_0, ext_svvptc), ISA_EXT_DATA_ENTRY(xtheadba, PRIV_VERSION_1_11_0, ext_xtheadba), @@ -1285,6 +1286,7 @@ const RISCVCPUMultiExtConfig riscv_cpu_extensions[] = =3D { MULTI_EXT_CFG_BOOL("svinval", ext_svinval, false), MULTI_EXT_CFG_BOOL("svnapot", ext_svnapot, false), MULTI_EXT_CFG_BOOL("svpbmt", ext_svpbmt, false), + MULTI_EXT_CFG_BOOL("svrsw60t59b", ext_svrsw60t59b, false), MULTI_EXT_CFG_BOOL("svvptc", ext_svvptc, true), =20 MULTI_EXT_CFG_BOOL("zicntr", ext_zicntr, true), diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 2ed69d7c2d..3479a62cc7 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -1309,6 +1309,7 @@ static int get_physical_address(CPURISCVState *env, h= waddr *physical, bool svade =3D riscv_cpu_cfg(env)->ext_svade; bool svadu =3D riscv_cpu_cfg(env)->ext_svadu; bool adue =3D svadu ? env->menvcfg & MENVCFG_ADUE : !svade; + bool svrsw60t59b =3D riscv_cpu_cfg(env)->ext_svrsw60t59b; =20 if (first_stage && two_stage && env->virt_enabled) { pbmte =3D pbmte && (env->henvcfg & HENVCFG_PBMTE); @@ -1376,7 +1377,7 @@ static int get_physical_address(CPURISCVState *env, h= waddr *physical, if (riscv_cpu_sxl(env) =3D=3D MXL_RV32) { ppn =3D pte >> PTE_PPN_SHIFT; } else { - if (pte & PTE_RESERVED) { + if (pte & PTE_RESERVED(svrsw60t59b)) { qemu_log_mask(LOG_GUEST_ERROR, "%s: reserved bits set in P= TE: " "addr: 0x%" HWADDR_PRIx " pte: 0x" TARGET_FM= T_lx "\n", __func__, pte_addr, pte); diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 163e7ce364..78fb279184 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -839,6 +839,12 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, = Error **errp) cpu->cfg.ext_ssctr =3D false; } =20 + if (cpu->cfg.ext_svrsw60t59b && + (!cpu->cfg.mmu || mcc->def->misa_mxl_max =3D=3D MXL_RV32)) { + error_setg(errp, "svrsw60t59b is not supported on RV32 and MMU-les= s platforms"); + return; + } + /* * Disable isa extensions based on priv spec after we * validated and set everything we need. @@ -1588,6 +1594,8 @@ static void riscv_init_max_cpu_extensions(Object *obj) =20 if (env->misa_mxl !=3D MXL_RV32) { isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_zcf), false); + } else { + isa_ext_update_enabled(cpu, CPU_CFG_OFFSET(ext_svrsw60t59b), false= ); } =20 /* --=20 2.50.0