From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739158; cv=none; d=zohomail.com; s=zohoarc; b=GwA+E3PUUFUNqMQQdhfZnVr0q0qNW/0vnEQse/XcVFq0X4EFVxqynb81/WAJGvU8oqIjlOPlZFPxjF29sCpWM8mVGJIg7iDHYpNeKxpGbSElEhXCGDGN/JI/DkVJveYOWm1C7kuf9Xs9ZA3Z/dL4HoIsDQ/udLgL6LO3Cyg8Tqs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739158; 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=mEPKkKRJjj2lmXwVNX0YwsAiiOP8WMc3UNx5qDidAh8=; b=OLjCtz++SjN9shcUEvGxTe/OzCAnqEYNX/iiGeoSSDgVMgyji/a4VLG9UfiM24pLhnBiuvibTkcA5EPZTnbdlbI94oIOaTjyqivPjnBvHYsnISDRWSSQok8TCJg4DmD1SdvEcLW8NQrOr6YNN9FP1F+RxHi+45WLfsiVoKSuIi0= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739158688631.2478002831504; Tue, 20 May 2025 04:05:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKmy-0006Z9-SH; Tue, 20 May 2025 07:05:40 -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 1uHKmw-0006Xo-T1 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKmu-0002yf-VB for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:38 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-503-GyrXv32wO_STS4ed0F0O8Q-1; Tue, 20 May 2025 07:05:35 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-6002ac84dddso4161144a12.0 for ; Tue, 20 May 2025 04:05:34 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4382f8sm723576666b.94.2025.05.20.04.05.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mEPKkKRJjj2lmXwVNX0YwsAiiOP8WMc3UNx5qDidAh8=; b=jAdgAGPtjCRCm8LMaCKXR2QLTJLYKfXxsoBT+RkzkemdQXKnBigpWy0aoChMo3+OgUVrFK wFt1v4AqSr2yC3B+SJGSo2owUroEEYsRI/94lr68DL7+17nE9W9wLOOLoGu0X2OQ8Zvhsy q+ZZgimeXrkFju5M7tc7S8T8ONQmkNM= X-MC-Unique: GyrXv32wO_STS4ed0F0O8Q-1 X-Mimecast-MFC-AGG-ID: GyrXv32wO_STS4ed0F0O8Q_1747739134 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739133; x=1748343933; 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=mEPKkKRJjj2lmXwVNX0YwsAiiOP8WMc3UNx5qDidAh8=; b=SFmEvvszFxO2GPVKXEivrRtf0lkwV9EyXAheosDJdQulUwF4R2G5zUtRNup7wJpbUj XP93PvFkrw4I4uW6qmhNYLLNrhfO02T9CLgqOL/BVGp19tSaSjigJHVkIq+SzMrUEbbk NHVQbvIRKRsbCU9lkdwQhBQCHt6uCjbvFyPkH8r3BLYdghxP0/mRCJzZg+glal5WJ4Hc NItZCe87e/CUXG2CSedDMPpeEzSV4/wy6ms40byFNadmCGjT45PvQqTeQ5cs62Y2NsFA c1466emoQsLX/oCCP5tpiPGJxVIkAyPhjTR3auPc6ccfwTGw5At5XoodU9oOqiP45+Fg 3Szw== X-Gm-Message-State: AOJu0YxgkwkOCj5B8CJPO/xjhJcZr8DcRY5Rb9jZE1xFHqP9X7fSqAiF 84RINPbv/5BDnyaKRMwzV5Mn7xTpxzhx05fql5pevEzuGedLuLLNetAWLZSvUr9nKYV91kG51CJ f31D4aCpzjg7ikMUEvktb2CetNxIvgYXyuu+xdxBSyf0Qi6dWb/vC4zrUDoBoWC4NdmRD+geXzU OiIsYFkCrVvoB3iysUQwclp5K1j6NQ4h+PTkgySygb X-Gm-Gg: ASbGncsPrlJSIch988E0jaqiIw1f5Vmi+CfGauRF+ZNB9xVtG6LhvnUVcJSebWS4+ZA xip05FFwc6R4NKqt+DJ4UyzjNpjMyQLOPIumxBLumXU3MqxQk6CY0hva7U0SsS/6rRayOOGfm1s wSxOqfZJr8V+axIxkcAOYtm7dOSrYXUkCMUvg4YpVLANHA5KdkYtR6XxHS5Wsk4+g3Tht+Ssv3Z w8kTXk2smdcgpznEFY2B48TMWJyU5G7VPJEiOdURG8EUR5Eozgi3ZjSIOSWaQAM/+jKt3lDJivJ ChnJ1uDBtuk6aw== X-Received: by 2002:a17:907:7f08:b0:ad2:549b:4c8d with SMTP id a640c23a62f3a-ad52d604c1cmr1335556866b.51.1747739133388; Tue, 20 May 2025 04:05:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHjxXsIo/cAWS+nwnkY0amfX5EwHFCf6Yuhq9jjSmUnF99BWM0V1UEBOi5G2J861EF/sTdQNg== X-Received: by 2002:a17:907:7f08:b0:ad2:549b:4c8d with SMTP id a640c23a62f3a-ad52d604c1cmr1335553066b.51.1747739132855; Tue, 20 May 2025 04:05:32 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Xiaoyao Li , Ewan Hai Subject: [PULL 01/35] i386/tcg: Make CPUID_HT and CPUID_EXT3_CMP_LEG supported Date: Tue, 20 May 2025 13:04:56 +0200 Message-ID: <20250520110530.366202-2-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739160474116600 Content-Type: text/plain; charset="utf-8" From: Xiaoyao Li Since commit c6bd2dd63420 ("i386/cpu: Set up CPUID_HT in x86_cpu_expand_features() instead of cpu_x86_cpuid()") and commit 99a637a86f55 ("i386/cpu: Set and track CPUID_EXT3_CMP_LEG in env->features[FEAT_8000_0001_ECX]"), it gets warnings when booting the VM with vcpus >=3D 2 and with tcg: qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID= .01H:EDX.ht [bit 28] qemu-system-x86_64: warning: TCG doesn't support requested feature: CPUID= .80000001H:ECX.cmp-legacy [bit 1] This is because, after the two commits, CPUID_HT and CPUID_EXT3_CMP_LEG are set in env->features[] when vcpus >=3D2 (in x86_cpu_expand_features()) later in x86_cpu_filter_features() it will check against the TCG supported bits. However, current TCG doesn't mark the two bits as supported, hence the warnings. Fix it by adding the two bits to the supported bits of TCG since multiple vcpus are supported by TCG. Fixes: c6bd2dd63420 ("i386/cpu: Set up CPUID_HT in x86_cpu_expand_features(= ) instead of cpu_x86_cpuid()") Fixes: 99a637a86f55 ("i386/cpu: Set and track CPUID_EXT3_CMP_LEG in env->fe= atures[FEAT_8000_0001_ECX]") Reported-by: Ewan Hai Signed-off-by: Xiaoyao Li Link: https://lore.kernel.org/r/20250514031652.838763-2-xiaoyao.li@intel.com Signed-off-by: Paolo Bonzini --- target/i386/cpu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index ec908d7d360..9689f6374e6 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -776,11 +776,12 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t ven= dor1, CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | \ CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | \ CPUID_PSE36 | CPUID_CLFLUSH | CPUID_ACPI | CPUID_MMX | \ - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | CPUID_DE) + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | CPUID_DE | \ + CPUID_HT) /* partly implemented: CPUID_MTRR, CPUID_MCA, CPUID_CLFLUSH (needed for Win64) */ /* missing: - CPUID_VME, CPUID_DTS, CPUID_SS, CPUID_HT, CPUID_TM, CPUID_PBE */ + CPUID_VME, CPUID_DTS, CPUID_SS, CPUID_TM, CPUID_PBE */ =20 /* * Kernel-only features that can be shown to usermode programs even if @@ -848,7 +849,8 @@ void x86_cpu_vendor_words2str(char *dst, uint32_t vendo= r1, =20 #define TCG_EXT3_FEATURES (CPUID_EXT3_LAHF_LM | CPUID_EXT3_SVM | \ CPUID_EXT3_CR8LEG | CPUID_EXT3_ABM | CPUID_EXT3_SSE4A | \ - CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_KERNEL_FEATURES) + CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_KERNEL_FEATURES | \ + CPUID_EXT3_CMP_LEG) =20 #define TCG_EXT4_FEATURES 0 =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739192; cv=none; d=zohomail.com; s=zohoarc; b=FyLWPnPt8cXLFwqXLYT0RkmCC6vwkFi5bZ4oAWFuw7mNOuENk+8efpdMl/AdrDpAFzdpw1WcRiDqh+GBfhZSTU9VXGH8U4OkMYiml6nvune95SZKlF2GW2c6bOJHiSAtcAO2Pj0ezpBzbHsV5eGHjj70jISN5ggQwbbJuzbtaa4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739192; 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=s+j85f5BC5kk8p8XZ+YdfTGU6qWtK2LXVcZTdVTr8ts=; b=Xs0qitSa4/Hrji3sQyY01Vz0t7SSRpom2uifmgSQ7MawMT1UEzmOtesJPT6xZz/SazJScxJptK111qlCeO6rlO5piM8cOKYl9cI308S4N8aw6Kd14PTAclGrgvRZ/vTuDpcjzNh+fJk/hbxBl66jmIQIWUm137h5R4UYGbHKIdk= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174773919216252.10592627288952; Tue, 20 May 2025 04:06:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKn2-0006iz-Np; Tue, 20 May 2025 07:05:44 -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 1uHKmz-0006Zw-PO for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:41 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKmy-0002zK-1y for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:41 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-90-uR8oSz8xPmmo8pWnsb-7cg-1; Tue, 20 May 2025 07:05:37 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad55e9a80acso178299066b.3 for ; Tue, 20 May 2025 04:05:37 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad5572f6436sm464394466b.182.2025.05.20.04.05.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=s+j85f5BC5kk8p8XZ+YdfTGU6qWtK2LXVcZTdVTr8ts=; b=f+HFFpE2HnlKqZCl3EtG5g0eDVdDL6kQG/oFfiyhPsWX+VU8aBkIcEiG6hpfHlwLoskVbc UQh/59LX+QsXxKObCR4BqSmNOMkjnguWz/i+JNeNehVA6HVLNaAXd/87oKxr3ly2X1/cOw JIwIcZtSDYm+szgEafo1hADaUur2wOE= X-MC-Unique: uR8oSz8xPmmo8pWnsb-7cg-1 X-Mimecast-MFC-AGG-ID: uR8oSz8xPmmo8pWnsb-7cg_1747739136 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739136; x=1748343936; 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=s+j85f5BC5kk8p8XZ+YdfTGU6qWtK2LXVcZTdVTr8ts=; b=uFCS2TStURCesNftypTvd1BntmtlxDb1wpeI2mOLGQ4ZQffQy9D3Fahiy7SZDOyU9w H72X3H0fRs7nBE1LvuME52XB2rX3WKflafKrV2k1NjfbLYZ7ovh/rkQczowQezYZRtv/ 3KgTA3nOnGzJKWfk331JB7DAff36lTCSE2WNwJBnrU+Wbu9XP0BOD2k55Xmy4gp2D3tB GPGoKV7JueoVl4DFJKDFC6u1ESzRKShj3dSK1daZaNEViOFCLMiYhMOEUNmxSNqRLeEe Dhqx3QXN67buLCqynNbIz55D4H4ute2MKQulIt9KjvKqnxGzLldpfc42pXVB0Dgi9Ux9 sxzA== X-Gm-Message-State: AOJu0YwNeGlaee4kVCUflGr7/rdaJxZ4eB84WzsW89m+tTYxqUMmto7d LRsRMxuFgGt3d68qeD2HIQk5aCToQw5iIgS+EmFDCShViQTrP9i2axOExb8jFd3jyevl3NOmP/7 gK9DJtYcb7QWwJ6kUwm4fG0FE577vIGbMvGlLA9F+Rj/K/x6bOctmTHVDnuh742i9eNXqPB6xPU wXMyQY9/+2VQeUZV09fKODD8W3m8UHkUFipu3qzG9+ X-Gm-Gg: ASbGncsWrqkvnJUVVaVgRffK9iMytpY3CW8ds7Kpfe5hPD8v9/CLCEIsQCdSZIR+yVk KqkZ8WNY2rbmWNRnchFqVzw1AbOakYqXEnEvyA80JvJpWbe3qFbEGLw2RodBPKEz1jZPgapObxn SEfhAMUKlA4W4/5r3qnXVNfV/oFlS4wquTUhwj1zbxM+TKiOy8mnz+SbQdOC+13VZ2uoTFmEEhk XCgVRetcthcMwm8/stnQMnix5uaIWvAMabhko0oqsNtUraTLEmtBNKh1YyE6Le1HZMVtnYPk5h9 ZoCxrjGZ0+MQuQ== X-Received: by 2002:a17:907:1c0a:b0:ad2:2146:3b7d with SMTP id a640c23a62f3a-ad52d583b9cmr1351128566b.46.1747739136003; Tue, 20 May 2025 04:05:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG9JF5Ct4fe7EDmcELF+i3c/NBGGMXCpwFa2iLan6DP2imU7KE9jSdr7AjWwXSpWmDvPqYPpw== X-Received: by 2002:a17:907:1c0a:b0:ad2:2146:3b7d with SMTP id a640c23a62f3a-ad52d583b9cmr1351124966b.46.1747739135548; Tue, 20 May 2025 04:05:35 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Xiaoyao Li Subject: [PULL 02/35] i386/hvf: Make CPUID_HT supported Date: Tue, 20 May 2025 13:04:57 +0200 Message-ID: <20250520110530.366202-3-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739194310116600 Content-Type: text/plain; charset="utf-8" From: Xiaoyao Li Since Commit c6bd2dd63420 ("i386/cpu: Set up CPUID_HT in x86_cpu_expand_features() instead of cpu_x86_cpuid()"), CPUID_HT will be set in env->features[] in x86_cpu_expand_features() when vcpus >=3D 2. Later in x86_cpu_filter_features() it will check against the HVF supported bits. It will trigger the warning like qemu-system-x86_64: warning: host doesn't support requested feature: CP= UID.01H:EDX.ht [bit 28] Add CPUID_HT to HVF supported CPUID bits to fix it. Signed-off-by: Xiaoyao Li Link: https://lore.kernel.org/r/20250514031652.838763-3-xiaoyao.li@intel.com Signed-off-by: Paolo Bonzini --- target/i386/hvf/x86_cpuid.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/hvf/x86_cpuid.c b/target/i386/hvf/x86_cpuid.c index fa131b18c6d..0798a0cbafb 100644 --- a/target/i386/hvf/x86_cpuid.c +++ b/target/i386/hvf/x86_cpuid.c @@ -73,7 +73,7 @@ uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t = idx, CPUID_MSR | CPUID_PAE | CPUID_MCE | CPUID_CX8 | CPUID_APIC | CPUID_SEP | CPUID_MTRR | CPUID_PGE | CPUID_MCA | CPUID_CMOV | CPUID_PAT | CPUID_PSE36 | CPUID_CLFLUSH | CPUID_MMX | - CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS; + CPUID_FXSR | CPUID_SSE | CPUID_SSE2 | CPUID_SS | CPUID_HT; ecx &=3D CPUID_EXT_SSE3 | CPUID_EXT_PCLMULQDQ | CPUID_EXT_SSSE3 | CPUID_EXT_FMA | CPUID_EXT_CX16 | CPUID_EXT_PCID | CPUID_EXT_SSE41 | CPUID_EXT_SSE42 | CPUID_EXT_MOVBE | --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739161; cv=none; d=zohomail.com; s=zohoarc; b=oAs/AvrOANYb8PGlHxzFx1aYxOQy7CX14IfY9ltOeqvZJnNJlwPP5rEq+dhNltJgT9QzfwofnqQRbUJ9cKqKG86e3PUENR0WYXFuYe9l6ocsYKN5kuKKMpbpgSUkc/n+SMg8jkdVqMJv4x3VnLktI/5PAGHE49r+qNqK90kRBxo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739161; 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=a0Xcm5bA00Me362rRmynF1HaRtvSKHHPxRY26ytB2T0=; b=gMyqO+7+fU0c0zctFzdCAb5ztBcQIz26A23EGDM7xuTTEiwVNdsnWE4zD2IS5TQoGkDp2/ZZSjzUYaLeXfvNdqrL7/0ljWWNFcUcyXwhO9LjFhLabJl1yAr1d8c7qQPVFMGCKLj7ajVnO483FXYYufXHatEqqRLLnaxFF4d9DGU= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739161266127.87033820847637; Tue, 20 May 2025 04:06:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKn4-0006nG-Ut; Tue, 20 May 2025 07:05:47 -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 1uHKn2-0006hz-2n for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKmz-000301-SO for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:43 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-278-DeXnH3GRNC6SqTTrFigFVA-1; Tue, 20 May 2025 07:05:39 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-acbbb00099eso467801466b.2 for ; Tue, 20 May 2025 04:05:39 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4967c9sm712361966b.129.2025.05.20.04.05.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739141; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a0Xcm5bA00Me362rRmynF1HaRtvSKHHPxRY26ytB2T0=; b=Z8Dnin8hA6LvZrDUUBwU8QTlkb+I4up7HPTVlBShMd31tuhSyQeG9Wneuu62Veur+hfep/ keOTTqOffrkgt/f8p7aPo7DBOisEX2j1MYdeBwhYAJ5hlCGCNddkpbJocRz9xwkXBUy6dB peTgyk9wtJclsgo/87xpfJen3KUVxDg= X-MC-Unique: DeXnH3GRNC6SqTTrFigFVA-1 X-Mimecast-MFC-AGG-ID: DeXnH3GRNC6SqTTrFigFVA_1747739139 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739138; x=1748343938; 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=a0Xcm5bA00Me362rRmynF1HaRtvSKHHPxRY26ytB2T0=; b=O75uiBTxy/W5PidiSTP4Xs0IXtxjKMQP0uI5RScOsUe7G6LcVxl9cOuahl07z2/isf oOEtvrg3FSBjty2drF9Dp35fTFXk00mHFaLPZ93NCAX5hP/65Xxn/cm6uO5o/ZKt8OKD 0a3Zet+BzLi/2kjS+FMBSaC6I5t6Sf5hS1Neu23WFx/ZX7n5d49wur/EXtcFyrfR/031 bhqxM0vE21eLbiRKNBDVuAcR2b5vQxQvjIENxgYOI17p05TOewZGZ2fxXzGyKflKjKty Xb5Wtegsjsqwos2YCTU5m75q+zn8QidH6S7SeCsMvPmZP3V0TA1XSkmDI9fm0VoP7O+f Uwzg== X-Gm-Message-State: AOJu0YylzsZMDg6X/rUy/0lcN3JIBs4qqDYB1Aelsq35N0jCH5XA1NKv ewKj9TMtXyv6hK/SaAHa6h71wrHC2orEXns4j9/A+vpfwV5hbRqEyVId7mAqWLxbozCk6rsmK4n MZNItGlQ7XWN/nb3wgbI2U2odo5gz8lxERvCo0xhOrjASxcWdNq42ZzUPI9zXcBXgkw2Eq68/bp oXPLZ47rCZXVTMOpGhpG7JDRg9Clcg0XbE+s/kIpWs X-Gm-Gg: ASbGncsVlc9gZfaM0haWOFhDJxLrQSHOzzKvdVyioDP+EOmFwz+da6cdbIGlqblF+P7 aon/YcEh2SI/sA42jHxiEqHoxnwMIEHAT6JVZjdz0JdFK8jGW175EryUY5XHVJAsMgfmWaJFjvy +fFGcRjCEXO+6m261FQmZTvAj8YjeJDbjVHZM7jf4qcSBWsf2SDGfUQqj2X2p2DLgeTAP4nf3Sx s3zRgfQ7OLNXX5x2JHyOgSy33nzVIPWk2faoGO1wJzeGXxn0jdBgEmzKuNUIcUrZh961qLnYbn1 IB85EgNR/X+Weg== X-Received: by 2002:a17:907:94d0:b0:ad2:2949:bdfc with SMTP id a640c23a62f3a-ad536b7ca51mr1548033466b.3.1747739137716; Tue, 20 May 2025 04:05:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFUw2cXljvCSutROYFW3Mdqws4CmPEUGC/f872J0I+xkvn4QpQTlEgMWW50kLldGYlDmSMGiQ== X-Received: by 2002:a17:907:94d0:b0:ad2:2949:bdfc with SMTP id a640c23a62f3a-ad536b7ca51mr1548030466b.3.1747739137256; Tue, 20 May 2025 04:05:37 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Rakesh Jeyasingh , Thomas Huth Subject: [PULL 03/35] hw/pci-host/gt64120: Fix endianness handling Date: Tue, 20 May 2025 13:04:58 +0200 Message-ID: <20250520110530.366202-4-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739162149116600 Content-Type: text/plain; charset="utf-8" From: Rakesh Jeyasingh The GT-64120 PCI controller requires special handling where: 1. Host bridge(bus 0 ,device 0) must never be byte-swapped 2. Other devices follow MByteSwap bit in GT_PCI0_CMD The previous implementation incorrectly swapped all accesses, breaking host bridge detection (lspci -d 11ab:4620). Changes made: 1. Removed gt64120_update_pci_cfgdata_mapping() and moved data_mem initiali= zation to gt64120_realize() for cleaner setup 2. Implemented custom read/write handlers that: - Preserve host bridge accesses (extract32(config_reg,11,13)=3D=3D0) - apply swapping only for non-bridge devices in big-endian mode Fixes: 145e2198 ("hw/mips/gt64xxx_pci: Endian-swap using PCI_HOST_BRIDGE Me= moryRegionOps") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2826 Signed-off-by: Rakesh Jeyasingh Tested-by: Thomas Huth Link: https://lore.kernel.org/r/20250429170354.150581-2-rakeshjb010@gmail.c= om Signed-off-by: Paolo Bonzini --- hw/pci-host/gt64120.c | 82 +++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 34 deletions(-) diff --git a/hw/pci-host/gt64120.c b/hw/pci-host/gt64120.c index 56a6ef93b7a..b12a25696c4 100644 --- a/hw/pci-host/gt64120.c +++ b/hw/pci-host/gt64120.c @@ -320,38 +320,6 @@ static void gt64120_isd_mapping(GT64120State *s) memory_region_transaction_commit(); } =20 -static void gt64120_update_pci_cfgdata_mapping(GT64120State *s) -{ - /* Indexed on MByteSwap bit, see Table 158: PCI_0 Command, Offset: 0xc= 00 */ - static const MemoryRegionOps *pci_host_data_ops[] =3D { - &pci_host_data_be_ops, &pci_host_data_le_ops - }; - PCIHostState *phb =3D PCI_HOST_BRIDGE(s); - - memory_region_transaction_begin(); - - /* - * The setting of the MByteSwap bit and MWordSwap bit in the PCI Inter= nal - * Command Register determines how data transactions from the CPU to/f= rom - * PCI are handled along with the setting of the Endianness bit in the= CPU - * Configuration Register. See: - * - Table 16: 32-bit PCI Transaction Endianness - * - Table 158: PCI_0 Command, Offset: 0xc00 - */ - - if (memory_region_is_mapped(&phb->data_mem)) { - memory_region_del_subregion(&s->ISD_mem, &phb->data_mem); - object_unparent(OBJECT(&phb->data_mem)); - } - memory_region_init_io(&phb->data_mem, OBJECT(phb), - pci_host_data_ops[s->regs[GT_PCI0_CMD] & 1], - s, "pci-conf-data", 4); - memory_region_add_subregion_overlap(&s->ISD_mem, GT_PCI0_CFGDATA << 2, - &phb->data_mem, 1); - - memory_region_transaction_commit(); -} - static void gt64120_pci_mapping(GT64120State *s) { memory_region_transaction_begin(); @@ -645,7 +613,6 @@ static void gt64120_writel(void *opaque, hwaddr addr, case GT_PCI0_CMD: case GT_PCI1_CMD: s->regs[saddr] =3D val & 0x0401fc0f; - gt64120_update_pci_cfgdata_mapping(s); break; case GT_PCI0_TOR: case GT_PCI0_BS_SCS10: @@ -1024,6 +991,48 @@ static const MemoryRegionOps isd_mem_ops =3D { }, }; =20 +static bool bswap(const GT64120State *s)=20 +{ + PCIHostState *phb =3D PCI_HOST_BRIDGE(s); + /*check for bus =3D=3D 0 && device =3D=3D 0, Bits 11:15 =3D Device , B= its 16:23 =3D Bus*/ + bool is_phb_dev0 =3D extract32(phb->config_reg, 11, 13) =3D=3D 0; + bool le_mode =3D FIELD_EX32(s->regs[GT_PCI0_CMD], GT_PCI0_CMD, MByteSw= ap); + /* Only swap for non-bridge devices in big-endian mode */ + return !le_mode && !is_phb_dev0; +} + +static uint64_t gt64120_pci_data_read(void *opaque, hwaddr addr, unsigned = size) +{ + GT64120State *s =3D opaque; + uint32_t val =3D pci_host_data_le_ops.read(opaque, addr, size); + + if (bswap(s)) { + val =3D bswap32(val); + } + return val; +} + +static void gt64120_pci_data_write(void *opaque, hwaddr addr,=20 + uint64_t val, unsigned size) +{ + GT64120State *s =3D opaque; + + if (bswap(s)) { + val =3D bswap32(val);=20 + } + pci_host_data_le_ops.write(opaque, addr, val, size); =20 +} + +static const MemoryRegionOps gt64120_pci_data_ops =3D { + .read =3D gt64120_pci_data_read, + .write =3D gt64120_pci_data_write, + .endianness =3D DEVICE_LITTLE_ENDIAN, + .valid =3D { + .min_access_size =3D 4, + .max_access_size =3D 4, + }, +}; + static void gt64120_reset(DeviceState *dev) { GT64120State *s =3D GT64120_PCI_HOST_BRIDGE(dev); @@ -1178,7 +1187,6 @@ static void gt64120_reset(DeviceState *dev) =20 gt64120_isd_mapping(s); gt64120_pci_mapping(s); - gt64120_update_pci_cfgdata_mapping(s); } =20 static void gt64120_realize(DeviceState *dev, Error **errp) @@ -1202,6 +1210,12 @@ static void gt64120_realize(DeviceState *dev, Error = **errp) memory_region_add_subregion_overlap(&s->ISD_mem, GT_PCI0_CFGADDR << 2, &phb->conf_mem, 1); =20 + memory_region_init_io(&phb->data_mem, OBJECT(phb), + >64120_pci_data_ops, + s, "pci-conf-data", 4); + memory_region_add_subregion_overlap(&s->ISD_mem, GT_PCI0_CFGDATA << 2, + &phb->data_mem, 1); + =20 /* * The whole address space decoded by the GT-64120A doesn't generate --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739153; cv=none; d=zohomail.com; s=zohoarc; b=cPFrFO30Vdruhr1Ig4oRrKTRTMbZOzWeQbjZkseSpF1fs+UZbNLAo8cWfTgVZpyqvhg20ABzUCuzv+NSJc94+1HHQdgFh9rlLmT8qnBVtf2isVxSVJa8sJY62utE+1WKx4f5/vHgzKrRkmLYd79cgx8bR6/oIqXfy6EhItiqwxw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739153; 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=AhJISerm2MBOLD8G5i0s1NB8oNLkNhlk+u12xLmgWOk=; b=ALZFsw147c7pHqPCd6nS3MGOoFZcyBcU/RZbboxMj2wPrco0VhFj42jKLPmEChQT9hZQa7Ps+jgjGUe0ZH+0yi3qlGRDbr9KLbdKOHm+bPH+Q8YxsBK+pKw3YFzj1YiistQwgjiWp/n+l6vRFueF1RSXxWjRNEwhfkR1kj875sE= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739153498537.8564647450717; Tue, 20 May 2025 04:05:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKn6-0006q9-18; Tue, 20 May 2025 07:05:48 -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 1uHKn4-0006n4-KC for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn2-00030R-II for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:46 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-482-Zpd-C4tYMwaLe_bNx7qIgw-1; Tue, 20 May 2025 07:05:42 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-acb8f9f58ebso439016666b.2 for ; Tue, 20 May 2025 04:05:42 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04b08bsm721623366b.13.2025.05.20.04.05.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739143; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AhJISerm2MBOLD8G5i0s1NB8oNLkNhlk+u12xLmgWOk=; b=REtI3QqS5YLG/G8QVUHeK9d/soUdX/JsM/VOnrx2pAriV6ulEKbz1oM62jgqmjtYs4zcQv Bk30Jh42dm9mKAr6DtudlD80itKUDxRtpMEVbkjqMaSg2TZhoc3AgKIABq3KBiUHWEFPJg tX5zff2orpJeXL1KY19I7zA77AesIJk= X-MC-Unique: Zpd-C4tYMwaLe_bNx7qIgw-1 X-Mimecast-MFC-AGG-ID: Zpd-C4tYMwaLe_bNx7qIgw_1747739141 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739140; x=1748343940; 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=AhJISerm2MBOLD8G5i0s1NB8oNLkNhlk+u12xLmgWOk=; b=sp5Ghb/xdYVQZndcN9bEZdfaLqSYdxNrLwqYWw1SryZkHd3OnmGmVZ4IwFCqcFbb0W sPHQwxj3gsNCYCltdhEv97P+Po7tlgmb4atCEsPCbOgT/dUYjRROdjfc2xONtXmkHsxT Lnolr70ZY5SoKI20ijVBezMYyckkrKJgyvJnzseYZUURIYcn/0BN4QZPCbEjKWcFcGoJ 4g6etuWHZaq7YzBn6CdBUJd42qsj60W0HcgML78vEXdaWOFbk4aGTeEU0nuwkFAISnW3 EZKgAffNFpY/3XH5Ti0Uq9chpi6+P9PsJaT4d25accO6KqRfHEXLnHJbdzlAG3uR2bfO LZGg== X-Gm-Message-State: AOJu0YxfLpyS59kajFAuf0fZebSvbm0ZlpTDHnWq7MeUR0OWiQy2xHuB 4pHjU5uoURR/1rogDveT34SRA1BycNWkwWdjporGJVRi8TkAfta210x3iHRHiHIDQ3GYtBOmbRw IlCd+MtU2mSqJoUULylVebe2VAfXv0WbPubMcl9ngIBsgTWTZRfAfUfvE+pp/v5Oka1q+ISfq2z eqE3BCGTW87TSa5EBwHecgrw9WuDISZ90wEjvssjRE X-Gm-Gg: ASbGnct8gKvjXPnMlnAnF5iIcQsLORvUcrYs+I28Az6xQIhqL7H7emg8Uqa8wzQ9feu wJabzfaVOQIdHbsVDFpSWiLoXTfyIw7zXjb8+1HDA7du/NpDtNGFOY+5vlux6QRSTZk0E0wjpgy UPC8dDyZqgphrlPCmd2rZcqGlg5OiNMrr4X4pUXzetiKmxLhMe0CsMd3AJ3Da2JdarYu45+z72d MKIOpsZtgsp902gt/xpUGjAN04m8K5YEVQC0M7wBrGl6x8zEIC23/axyc9BgGPtKiewkeiZA0Q+ EffHLqV+Y8AYQw== X-Received: by 2002:a17:907:72d6:b0:ad5:840b:77f0 with SMTP id a640c23a62f3a-ad5840b78ccmr371512966b.31.1747739140012; Tue, 20 May 2025 04:05:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEvOq5jBynVcxyzdMHlBpyjPtJBpmrihIbS0/LNuXNHfep5N3yGps/aHXD358UGFF/teytWIg== X-Received: by 2002:a17:907:72d6:b0:ad5:840b:77f0 with SMTP id a640c23a62f3a-ad5840b78ccmr371508866b.31.1747739139433; Tue, 20 May 2025 04:05:39 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Rakesh Jeyasingh , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Thomas Huth Subject: [PULL 04/35] hw/pci-host: Remove unused pci_host_data_be_ops Date: Tue, 20 May 2025 13:04:59 +0200 Message-ID: <20250520110530.366202-5-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739156484116600 From: Rakesh Jeyasingh pci_host_data_be_ops became unused after endianness fixes Suggested-by: Paolo Bonzini Signed-off-by: Rakesh Jeyasingh Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Thomas Huth Link: https://lore.kernel.org/r/20250429170354.150581-3-rakeshjb010@gmail.c= om Signed-off-by: Paolo Bonzini --- include/hw/pci-host/dino.h | 4 ---- include/hw/pci/pci_host.h | 1 - hw/pci/pci_host.c | 6 ------ 3 files changed, 11 deletions(-) diff --git a/include/hw/pci-host/dino.h b/include/hw/pci-host/dino.h index fd7975c7984..5dc8cdf6108 100644 --- a/include/hw/pci-host/dino.h +++ b/include/hw/pci-host/dino.h @@ -109,10 +109,6 @@ static const uint32_t reg800_keep_bits[DINO800_REGS] = =3D { struct DinoState { PCIHostState parent_obj; =20 - /* - * PCI_CONFIG_ADDR is parent_obj.config_reg, via pci_host_conf_be_ops, - * so that we can map PCI_CONFIG_DATA to pci_host_data_be_ops. - */ uint32_t config_reg_dino; /* keep original copy, including 2 lowest bi= ts */ =20 uint32_t iar0; diff --git a/include/hw/pci/pci_host.h b/include/hw/pci/pci_host.h index e52d8ec2cdc..954dd446fa4 100644 --- a/include/hw/pci/pci_host.h +++ b/include/hw/pci/pci_host.h @@ -68,6 +68,5 @@ uint32_t pci_data_read(PCIBus *s, uint32_t addr, unsigned= len); extern const MemoryRegionOps pci_host_conf_le_ops; extern const MemoryRegionOps pci_host_conf_be_ops; extern const MemoryRegionOps pci_host_data_le_ops; -extern const MemoryRegionOps pci_host_data_be_ops; =20 #endif /* PCI_HOST_H */ diff --git a/hw/pci/pci_host.c b/hw/pci/pci_host.c index abe83bbab89..7179d99178b 100644 --- a/hw/pci/pci_host.c +++ b/hw/pci/pci_host.c @@ -217,12 +217,6 @@ const MemoryRegionOps pci_host_data_le_ops =3D { .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 -const MemoryRegionOps pci_host_data_be_ops =3D { - .read =3D pci_host_data_read, - .write =3D pci_host_data_write, - .endianness =3D DEVICE_BIG_ENDIAN, -}; - static bool pci_host_needed(void *opaque) { PCIHostState *s =3D opaque; --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739177; cv=none; d=zohomail.com; s=zohoarc; b=gcla6Wcm77ZdHrfEE6Glry6ChreZb3LCEUl05ADe4kksyVmdmV1Ycoe9pD2ZiHDlsd3VGTvLxQ6YGArWH3UZbhILTlJuFX6RGE6D0tk0VUHo4BdIe4jvZBTrqzKYOIf5p51Dc0ypXysaF8LdCtLd/TcLUcky1DZc9LlMSjjjDz8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739177; 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=8qOlExwNMcagvx/lGsDp7j3+eP/poXrPNaeClAqyXqw=; b=ZwPBivU6WkdrnPWuPMltmV1TektRQ5EUFoAeNdA6zsxZAK8Vmtc7cpC+AyqxeT7ZEXR7xYCsS5dtlB4KqMx4/IO8vd3jfhFTUdqM6fFoi6Qjnbz7JBWJNAQymsEQ03lh3ogK/L1DpZmFahPFfI+fLgd3WvP4y5V3S/2vtc0VbZo= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739177150990.2924230068353; Tue, 20 May 2025 04:06:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKn8-0006tz-4k; Tue, 20 May 2025 07:05:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn5-0006q3-Ua for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:47 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn3-00030f-Ly for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:47 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-380-Ckl99zI5PgipzVlfyE5jzQ-1; Tue, 20 May 2025 07:05:43 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-601803587fcso3630649a12.1 for ; Tue, 20 May 2025 04:05:43 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d502719sm7065536a12.26.2025.05.20.04.05.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739145; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8qOlExwNMcagvx/lGsDp7j3+eP/poXrPNaeClAqyXqw=; b=YkKXqCWqtrdSxyMu7ixNl6kOUKhYMoJrExSY+bOfdLZlLkHmQlkRCd2QJi2q++i+zZ9nGs f3v5iNOv406dk9kyZYl7E+g/rd9A1t8uHkPlOGaSYjYMrvY46zue/rt8COBOKWtymQUb94 nHa45w8e0iURW03fTBJyV8o9+hDVwfs= X-MC-Unique: Ckl99zI5PgipzVlfyE5jzQ-1 X-Mimecast-MFC-AGG-ID: Ckl99zI5PgipzVlfyE5jzQ_1747739143 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739141; x=1748343941; 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=8qOlExwNMcagvx/lGsDp7j3+eP/poXrPNaeClAqyXqw=; b=Oqp6/SUgP8jjtflWBGyBQKlKRaD0ib4noVsbU7m3mARNZHk911nR74MV0SApR8Xqo3 wcjPQrY0A4GRcz1mqPjLJnznvmmHCMM1EM3r/YaqZHT23xMwV7qmt/lUkZ61XvGDRw/T EZ3SniL6bYkVxAslgCsOXuH9MN5+5VVnyqtnOfDkhefSFMHS6+xAlJtjQtpb7dOnNcRh OjWjE/XlTkMLEgQJkPtt8ej3ZklL8j3J33j6bsLRVtwf5jMnSjdN3w/mb/dNPxhVuFSk ve4iyTwX48p+098Qk7FcXLqYIK2YjJ3M+0g3M52j0ecIOf0jamyIbBPt0CH6NlxAd2k3 9Z4A== X-Gm-Message-State: AOJu0Yyp3ulerd9/7x/KAAZ063QJVCWOagjsMXBFZdSS8dQR9VsxbDs+ yPgH0H8zkbGPTc1bvDKWSvuSr4hRW4lHDBZeQljaflLGR9tMnzPjhsbVxKkIkrQm3kxr/IQ5Odm 1XIEeNJOX30RyTbDttIjw2IPybKthyBTZ2LISBgoZyDhV2PvvnA+HvtUybyujXJhb4vI/RxyAbh /i9Rw9aufeObaFRuxTVlvMlZ5iWP0LXaMuCslwaDt3 X-Gm-Gg: ASbGncuRpHv4fO2v4n/a1m8pB5y4kD3ZEb5OM8IbSIsUD5g/rcc9zDTr4FNe3BX2Yyn OsvZzBjbaQ+X8L4sobyo5xE5BWC19TNAc++R8YT3tMf2bpr5Eu0izpfkIQaVpcsmO5dT3o14sft 8HcgWsfKCcObFlnPVm2bSAblk02YCIe5bWFJSFi1H8eeZ4V0vSdg/BWben8mLSYlmgcQivL+scx YC7ojCEjh1ic8EQ5AEDH8iGCdagSR0lq0KrUzoa0Xa+Wiaq+HN2qYg6SgvDBQel4itZfcANuyy8 YRfLt4P4rpSsFg== X-Received: by 2002:a05:6402:4415:b0:5fb:f347:88cb with SMTP id 4fb4d7f45d1cf-6008a5a9085mr14796342a12.13.1747739141250; Tue, 20 May 2025 04:05:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuYoCGRyO1J76SqiC3YI84pvxvXe2U8rLu2JYe4ub2XokJgptkyCgiaaUv/lNDku5QleGRsA== X-Received: by 2002:a05:6402:4415:b0:5fb:f347:88cb with SMTP id 4fb4d7f45d1cf-6008a5a9085mr14796312a12.13.1747739140693; Tue, 20 May 2025 04:05:40 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Zhao Liu Subject: [PULL 05/35] qapi/misc-target: Rename SGXEPCSection to SgxEpcSection Date: Tue, 20 May 2025 13:05:00 +0200 Message-ID: <20250520110530.366202-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739178198116600 Content-Type: text/plain; charset="utf-8" From: Zhao Liu QAPI requires strict PascalCase naming style, i.e., only the first letter of a single word is allowed to be uppercase, which could help with readability. Rename SGXEPCSection to SgxEpcSection. Signed-off-by: Zhao Liu Link: https://lore.kernel.org/r/20250516091130.2374221-2-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini --- qapi/misc-target.json | 6 +++--- hw/i386/sgx.c | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/qapi/misc-target.json b/qapi/misc-target.json index 42e4a7417dc..a1275d3873a 100644 --- a/qapi/misc-target.json +++ b/qapi/misc-target.json @@ -319,7 +319,7 @@ 'if': 'TARGET_ARM' } =20 ## -# @SGXEPCSection: +# @SgxEpcSection: # # Information about intel SGX EPC section info # @@ -329,7 +329,7 @@ # # Since: 7.0 ## -{ 'struct': 'SGXEPCSection', +{ 'struct': 'SgxEpcSection', 'data': { 'node': 'int', 'size': 'uint64'}} =20 @@ -355,7 +355,7 @@ 'sgx1': 'bool', 'sgx2': 'bool', 'flc': 'bool', - 'sections': ['SGXEPCSection']}, + 'sections': ['SgxEpcSection']}, 'if': 'TARGET_I386' } =20 ## diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 5685c4fb802..3c601689eb7 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -84,10 +84,10 @@ static uint64_t sgx_calc_section_metric(uint64_t low, u= int64_t high) ((high & MAKE_64BIT_MASK(0, 20)) << 32); } =20 -static SGXEPCSectionList *sgx_calc_host_epc_sections(void) +static SgxEpcSectionList *sgx_calc_host_epc_sections(void) { - SGXEPCSectionList *head =3D NULL, **tail =3D &head; - SGXEPCSection *section; + SgxEpcSectionList *head =3D NULL, **tail =3D &head; + SgxEpcSection *section; uint32_t i, type; uint32_t eax, ebx, ecx, edx; uint32_t j =3D 0; @@ -104,7 +104,7 @@ static SGXEPCSectionList *sgx_calc_host_epc_sections(vo= id) break; } =20 - section =3D g_new0(SGXEPCSection, 1); + section =3D g_new0(SgxEpcSection, 1); section->node =3D j++; section->size =3D sgx_calc_section_metric(ecx, edx); QAPI_LIST_APPEND(tail, section); @@ -183,17 +183,17 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp) return info; } =20 -static SGXEPCSectionList *sgx_get_epc_sections_list(void) +static SgxEpcSectionList *sgx_get_epc_sections_list(void) { GSList *device_list =3D sgx_epc_get_device_list(); - SGXEPCSectionList *head =3D NULL, **tail =3D &head; - SGXEPCSection *section; + SgxEpcSectionList *head =3D NULL, **tail =3D &head; + SgxEpcSection *section; =20 for (; device_list; device_list =3D device_list->next) { DeviceState *dev =3D device_list->data; Object *obj =3D OBJECT(dev); =20 - section =3D g_new0(SGXEPCSection, 1); + section =3D g_new0(SgxEpcSection, 1); section->node =3D object_property_get_uint(obj, SGX_EPC_NUMA_NODE_= PROP, &error_abort); section->size =3D object_property_get_uint(obj, SGX_EPC_SIZE_PROP, @@ -237,7 +237,7 @@ SGXInfo *qmp_query_sgx(Error **errp) void hmp_info_sgx(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; - SGXEPCSectionList *section_list, *section; + SgxEpcSectionList *section_list, *section; g_autoptr(SGXInfo) info =3D qmp_query_sgx(&err); uint64_t size =3D 0; =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739220; cv=none; d=zohomail.com; s=zohoarc; b=P4xOSV+3nktDYI1aAvUOd6FFlglnE8aWI3+DEiioTREgBtQHC9i3Hbyrjr4bgsbxWR2emDIvg8EMqKjrJkdJxTyUfSaE1h/WRCQmzV8xbZXOntmANvTHzwRkb7aINEBQEyq8MIi89SNTg9WBWJVkHYOkj9J00bv8vl+EUgO7hys= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739220; 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=/oubsQIn5BGzqrXUUzIWldpKT0QQbTDt/12TcMjXir4=; b=ln1s1yTUsFiZfe4xqSTO8hf5OCSmbjd20Mwfa25MJ+iodtuTrevFtlC4eLr28v1A9bfKIKDPf8iFbP2yfGVtdom+6SnlntqWOtpYymek5REnL3vxJIQJb5K4eI7Bk+3HTHomlhyLAOeReuoIWFjMU1lwDltB4XWILBrqeGVGp30= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739217103275.59958740124137; Tue, 20 May 2025 04:06:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnB-00078s-8m; Tue, 20 May 2025 07:05:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn8-0006wx-Em for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn6-00031N-Bt for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:50 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-518-kNY5N8IYOwyb_mNlJORu3w-1; Tue, 20 May 2025 07:05:46 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad54ada24ffso382864266b.3 for ; Tue, 20 May 2025 04:05:46 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4c516dsm711052066b.154.2025.05.20.04.05.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/oubsQIn5BGzqrXUUzIWldpKT0QQbTDt/12TcMjXir4=; b=J7qMKrOUOfXDxWw+n6MS8YSyY9u/Bd3X86MbOsbpbyJMlQv/f/l7LCjMI4espF/dFbu9ZE UxJv6prnyzsutM3vMFM8usgtI9i5oeP6g8hgujLpegvils3gl3lwKYD7hXb9bbGoEOXL2p DWddVT9aQKrjLsGp2j5Ce8ZXjh7iQBA= X-MC-Unique: kNY5N8IYOwyb_mNlJORu3w-1 X-Mimecast-MFC-AGG-ID: kNY5N8IYOwyb_mNlJORu3w_1747739145 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739144; x=1748343944; 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=/oubsQIn5BGzqrXUUzIWldpKT0QQbTDt/12TcMjXir4=; b=tNQ400p9z3d1qDHvt7zMNTaWyfUljuMvGqtPuNT7UXarq08iaVEn03suW8iryJN3Sc 8105UDfTqIvDrQ0cbq5Ri9wttlS+T6ViZeq1P7FGbR18BMki/0YEWAghYfcpZC/gjT60 WVwXr7ytkqY4ig1w+cmRQsnuycIoIfA8YwSlvOtUUIvphJGbFSABidcfaE/DAn8m5coT SNFll3hp5vAxhFa8/bXG4XScyFocEg06TxoEuWG7r6+vV4oBk0fCj8AbUcPTmN9AIDOM 9ANFkPdpXWdp2z6TicTdWl5ZHehg+2nOla0Q21VCzuzknnVIOqK+31klKMk9YJiLn6FV PWgg== X-Gm-Message-State: AOJu0Ywxyt7R1tIJxSwM5QJm269WDnyyXLMXbbjeTlpkuvqG3d+TIPS/ elEGbXc348ZdTx1TCQgRf8RR5/oKDeXRvReMwUWcNHWa7zA0/os0SYNiVUWtL241LsWDccLpJzc Y+pUknKnhAcrtV6CsaceR3u86Naagh61C3bKFvTdAkNLq+tpnUybqSQjv6dZLE4tIrqMBO9Y2DN xtkSdWaROv+yy2C3JQGehAdroTXLCeNsEaE/odVSxR X-Gm-Gg: ASbGnct0BuL+hLptEcCyzKgDjBNMCFDG5uytB4F08TA3wvd5QRj9mhjk5EZaMIiCMsh XZvGc1SJj3kPRANbOt8mJ7o/+qDShfjkAGXCDzC5ALshhFmmXaedZ0nhkkaJVysHw3GcwMhhRaV jPzyIDlO06NJl1Mna6ceueyk6WG2cyemNMRulvSi3KKKg1EqwD6i/Hf8uXvG+svpenWbm7b4ZzW KKQPLRxTozMzP4ox65MfwEi6JWMRkW8IYhZBqFBR55JECfhuybVUEY+vxdkQROMs3T/Zd6or1dc gp3LQyX//bZX5g== X-Received: by 2002:a17:906:c10b:b0:ad5:5e61:b091 with SMTP id a640c23a62f3a-ad55e61b421mr970269466b.54.1747739144340; Tue, 20 May 2025 04:05:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH8AX3ZbSwauJd4nXQfRXUCwpHLiuZs6ddJaaBik9vrqyeCNWo80ugUH5zUvAvAfFXRI2Kuxg== X-Received: by 2002:a17:906:c10b:b0:ad5:5e61:b091 with SMTP id a640c23a62f3a-ad55e61b421mr970266766b.54.1747739143820; Tue, 20 May 2025 04:05:43 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Zhao Liu Subject: [PULL 06/35] qapi/misc-target: Rename SGXInfo to SgxInfo Date: Tue, 20 May 2025 13:05:01 +0200 Message-ID: <20250520110530.366202-7-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739233857116600 Content-Type: text/plain; charset="utf-8" From: Zhao Liu QAPI requires strict PascalCase naming style, i.e., only the first letter of a single word is allowed to be uppercase, which could help with readability. Rename SGXInfo to SgxInfo. Signed-off-by: Zhao Liu Link: https://lore.kernel.org/r/20250516091130.2374221-3-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini --- qapi/misc-target.json | 12 ++++++------ hw/i386/sgx-stub.c | 4 ++-- hw/i386/sgx.c | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/qapi/misc-target.json b/qapi/misc-target.json index a1275d3873a..6b3c9d8bd58 100644 --- a/qapi/misc-target.json +++ b/qapi/misc-target.json @@ -334,7 +334,7 @@ 'size': 'uint64'}} =20 ## -# @SGXInfo: +# @SgxInfo: # # Information about intel Safe Guard eXtension (SGX) support # @@ -350,7 +350,7 @@ # # Since: 6.2 ## -{ 'struct': 'SGXInfo', +{ 'struct': 'SgxInfo', 'data': { 'sgx': 'bool', 'sgx1': 'bool', 'sgx2': 'bool', @@ -363,7 +363,7 @@ # # Returns information about SGX # -# Returns: @SGXInfo +# Returns: @SgxInfo # # Since: 6.2 # @@ -375,14 +375,14 @@ # "sections": [{"node": 0, "size": 67108864}, # {"node": 1, "size": 29360128}]} } ## -{ 'command': 'query-sgx', 'returns': 'SGXInfo', 'if': 'TARGET_I386' } +{ 'command': 'query-sgx', 'returns': 'SgxInfo', 'if': 'TARGET_I386' } =20 ## # @query-sgx-capabilities: # # Returns information from host SGX capabilities # -# Returns: @SGXInfo +# Returns: @SgxInfo # # Since: 6.2 # @@ -394,7 +394,7 @@ # "section" : [{"node": 0, "size": 67108864}, # {"node": 1, "size": 29360128}]} } ## -{ 'command': 'query-sgx-capabilities', 'returns': 'SGXInfo', 'if': 'TARGET= _I386' } +{ 'command': 'query-sgx-capabilities', 'returns': 'SgxInfo', 'if': 'TARGET= _I386' } =20 =20 ## diff --git a/hw/i386/sgx-stub.c b/hw/i386/sgx-stub.c index 38ff75e9f37..ccb21a975d7 100644 --- a/hw/i386/sgx-stub.c +++ b/hw/i386/sgx-stub.c @@ -10,13 +10,13 @@ void sgx_epc_build_srat(GArray *table_data) { } =20 -SGXInfo *qmp_query_sgx(Error **errp) +SgxInfo *qmp_query_sgx(Error **errp) { error_setg(errp, "SGX support is not compiled in"); return NULL; } =20 -SGXInfo *qmp_query_sgx_capabilities(Error **errp) +SgxInfo *qmp_query_sgx_capabilities(Error **errp) { error_setg(errp, "SGX support is not compiled in"); return NULL; diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c index 3c601689eb7..c80203b438e 100644 --- a/hw/i386/sgx.c +++ b/hw/i386/sgx.c @@ -153,9 +153,9 @@ static void sgx_epc_reset(void *opaque) } } =20 -SGXInfo *qmp_query_sgx_capabilities(Error **errp) +SgxInfo *qmp_query_sgx_capabilities(Error **errp) { - SGXInfo *info =3D NULL; + SgxInfo *info =3D NULL; uint32_t eax, ebx, ecx, edx; Error *local_err =3D NULL; =20 @@ -166,7 +166,7 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp) return NULL; } =20 - info =3D g_new0(SGXInfo, 1); + info =3D g_new0(SgxInfo, 1); host_cpuid(0x7, 0, &eax, &ebx, &ecx, &edx); =20 info->sgx =3D ebx & (1U << 2) ? true : false; @@ -205,9 +205,9 @@ static SgxEpcSectionList *sgx_get_epc_sections_list(voi= d) return head; } =20 -SGXInfo *qmp_query_sgx(Error **errp) +SgxInfo *qmp_query_sgx(Error **errp) { - SGXInfo *info =3D NULL; + SgxInfo *info =3D NULL; X86MachineState *x86ms; PCMachineState *pcms =3D (PCMachineState *)object_dynamic_cast(qdev_get_machine(), @@ -223,7 +223,7 @@ SGXInfo *qmp_query_sgx(Error **errp) return NULL; } =20 - info =3D g_new0(SGXInfo, 1); + info =3D g_new0(SgxInfo, 1); =20 info->sgx =3D true; info->sgx1 =3D true; @@ -238,7 +238,7 @@ void hmp_info_sgx(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; SgxEpcSectionList *section_list, *section; - g_autoptr(SGXInfo) info =3D qmp_query_sgx(&err); + g_autoptr(SgxInfo) info =3D qmp_query_sgx(&err); uint64_t size =3D 0; =20 if (err) { --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747740556; cv=none; d=zohomail.com; s=zohoarc; b=C6UMDVPIbVyDEjFRBfMq/usRUUv3MCY0FoJw0BJJ55fkLTHNOUVj28mUAYX/RSosCUjhg03FuaECdL7bwOt77ajt0ncGfD37ORCib315BSQg2SPH6ZvSQoRBMVAcCK4g92qWmn7RMLsYAGny6VeKaSrOLSeYj/Id4HIy/EzLh1Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747740556; 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=ZNAkHHLNPF5LdPic5qNP2qinaPDR6IQbUe7+qMe8esk=; b=DyNje6rxFQW+NLvtHSTaKAEkDec+mt6K6bIC3OiPsNwoU9+qkzbirxO/6V9qtrmx/dd9+ivQUQyWh9IrUDnDhRNAZfO90Ny9vPeNpkthIiJldFi5Cv1RSF0hiROrTp8uML2uaKjogGkcgOa97q/v1JXzHwdqWzhG/WSsIfNpGvo= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747740556388248.0022087965384; Tue, 20 May 2025 04:29:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnD-0007Dm-Df; Tue, 20 May 2025 07:05: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 1uHKnA-00076y-Jb for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKn8-00031x-NA for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:52 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-331-oubZ6BtkPCqWS3_bbT1LHA-1; Tue, 20 May 2025 07:05:48 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-601898cca80so3610898a12.1 for ; Tue, 20 May 2025 04:05:48 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ae39175sm7042840a12.69.2025.05.20.04.05.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZNAkHHLNPF5LdPic5qNP2qinaPDR6IQbUe7+qMe8esk=; b=CrWDsPOY6hz1bOAvrHI3uU79IcTjhEEz86/HpRkDjKp5Rh3+Wbw6p4UhXrz0DK0RdaYShG b+bS5GiUhxHhGX6SOuxs9oJLTr9PDs+u1UcrrbItU578SgZ3MTRNpKyva51m21RS/Wg0kH yVwIaZwm3UIhsZdSUKWbZrdXdDiTRsc= X-MC-Unique: oubZ6BtkPCqWS3_bbT1LHA-1 X-Mimecast-MFC-AGG-ID: oubZ6BtkPCqWS3_bbT1LHA_1747739147 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739145; x=1748343945; 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=ZNAkHHLNPF5LdPic5qNP2qinaPDR6IQbUe7+qMe8esk=; b=w0co/sxmcqFBP8Fj1UXTj4Be3lcNkkRc1Wr+CGRqgYeeVOvLb3rudvCld/FuPidAq4 9OMrhx0fQN7xtx0t+zpvtOQCckrZK2XSrk0nBfECncvEiN/sG0NkK+6GLyR9HnHanzn+ WPD1WnmLZTBo3PhY0Wugm864C1URskOSAKcOtwmpeHFeJbYP7k4W9VbaWzZ7+wobdJ0b Ox9ZOo0eKuZbdzP4MV0OtGpusLeVKDKsmsoZO1WLhyK6qTH1akWvHVlCfo7Ae3u/AVd2 P1LBkasrZNzjm93HuX/nJ+C/f/Vcl/QzuIbVLNYGPTIunhm7RRljd4Urlmwm4BrBC802 ZxAg== X-Gm-Message-State: AOJu0Yxb3+XGAYcpEfPDEqRMbx+Wl4UM2K+h1sUQTazCU6ptOU6tGta9 ufE5dtPjORA/SwjmKQkStcc9PBQcuwMzZsjtlu/0xk7+E4wwriR0t4IRMx05scMVtIJ/QpkUcOU jQ6bkKDnTVJPaQitVOT8Obhnizb4atiDMowu9XheW/6geS2aV3A5O7V3cXg9OSc3pm1XMUfmSW2 UZFvjehLhbtbfqD2ejEWSeGemUL/vfhxSqjjwh7IP8 X-Gm-Gg: ASbGnctA3gN9dusIim2uTFiXNaCDi4DD1Y7DqX12ksRfV5faQEGpZNyaa51cGrfUN44 tpvXBsS+RyWjT1tXc7XalwE3zH1Iw1KP+uZ6d6e2wrZQsjmhOsTrUIR2gRyhSoqAPVQhbleNla+ IcW3sjWJKMVMtJS1LD1dPU+nPQRmZOKu2cyv5os6S0ISXCEExCAMf5jf8mUMnIS4DPKZpPvLGPd UrbJ1pOb8fuU9W57K124zY1JrongVPq6wpj9kATO+LXo3Us8E0aRX/xQMyzEHWYxmI5O27yxDhp 9myuvK4BK8GU4A== X-Received: by 2002:a05:6402:1ed0:b0:602:53:cb06 with SMTP id 4fb4d7f45d1cf-6020053ccacmr3736876a12.17.1747739145584; Tue, 20 May 2025 04:05:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmVJw+ts25lQp/akB78FEBM/Ealhq/hrdgdSuCfLezF80kSeLSuXvV3XJPrSmpGC7kT4s5rw== X-Received: by 2002:a05:6402:1ed0:b0:602:53:cb06 with SMTP id 4fb4d7f45d1cf-6020053ccacmr3736826a12.17.1747739145004; Tue, 20 May 2025 04:05:45 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Zhao Liu , Markus Armbruster Subject: [PULL 07/35] qapi/misc-target: Fix the doc related SGXEPCSection Date: Tue, 20 May 2025 13:05:02 +0200 Message-ID: <20250520110530.366202-8-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747740557966116600 Content-Type: text/plain; charset="utf-8" From: Zhao Liu The "sections" field of SGXInfo is used to gather EPC section information for both the guest and the host. Therefore, delete the "for guest" limitation. Additionally, avoid the abbreviation "info" and use "information" instead. And for SGXEPCSection, delete the redundant word "info". Reported-by: Markus Armbruster Signed-off-by: Zhao Liu Acked-by: Markus Armbruster Link: https://lore.kernel.org/r/20250513143131.2008078-2-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini --- qapi/misc-target.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qapi/misc-target.json b/qapi/misc-target.json index 6b3c9d8bd58..6814708972d 100644 --- a/qapi/misc-target.json +++ b/qapi/misc-target.json @@ -321,7 +321,7 @@ ## # @SgxEpcSection: # -# Information about intel SGX EPC section info +# Information about intel SGX EPC section # # @node: the numa node # @@ -346,7 +346,7 @@ # # @flc: true if FLC is supported # -# @sections: The EPC sections info for guest (Since: 7.0) +# @sections: The EPC sections information (Since: 7.0) # # Since: 6.2 ## --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739310; cv=none; d=zohomail.com; s=zohoarc; b=OYw/tiQGZDvjIWOf92o2NtOspA0BLPd3IIFq1Thk2YgDyQG2QF68O42ox6oxWoydfqmEPtp2lwurCIePyFcMGy75bTYS10ewXgA76C2hXILyYWW6TVaxLPuNIX8bi4ZECq9dc/34yjrFL4rRb+SkJDFph2GYJwgNlQW3F1u69Ek= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739310; 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=1mgYSHkWd+aIUzWuoObJiO8RMau0iMJObXQde7QL4iU=; b=VFnxhB5WykR8iKf461bFJfbo6UCOluUlDgfAtX2TgCxgkVKv0fs3Ip+3wW4YHvlrNtRTOadA2A3PrnWaLTgVYmMoxwfpbzEE6enbGIyOj+OPANod99vgqy67EMFfareD4CrFnNq7xvkJ9JBySrFCYG6oD6PtthFmO0z/0UuqtqQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739310181894.9869811298009; Tue, 20 May 2025 04:08:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnN-0007RX-K0; Tue, 20 May 2025 07:06:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnD-0007JH-KY for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:56 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnB-00032Q-IW for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:55 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-258-cgbp4UobNWOKmtDlkXKfVw-1; Tue, 20 May 2025 07:05:50 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-acb8f9f58ebso439027566b.2 for ; Tue, 20 May 2025 04:05:50 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d277a2esm715706866b.83.2025.05.20.04.05.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1mgYSHkWd+aIUzWuoObJiO8RMau0iMJObXQde7QL4iU=; b=hzZC52NMisCOiiqbLfVCoc4WvdvlJca/rUDLu36MUqR9RrjDDBkrpXzwXu21ijKxLp3tlS M4Jbs43I/fF7OSTABglCiEaZ1W2Am3nTB+1QBtkHduxztGsIr3RnHQuZhY/qxepTiMwZMI q9rWon8Hts8iEoxf4maoqesJCeYH9TI= X-MC-Unique: cgbp4UobNWOKmtDlkXKfVw-1 X-Mimecast-MFC-AGG-ID: cgbp4UobNWOKmtDlkXKfVw_1747739149 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739149; x=1748343949; 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=1mgYSHkWd+aIUzWuoObJiO8RMau0iMJObXQde7QL4iU=; b=V/Czw8Rin2kgCKRmJKRqVhZthNfXxwar6Wzip4r+OnKXtjCQLQZIwaNPEbL+OulO+o dMKO4c7NWxPZ9YziURVEb5Jdzf6WnOIJEyz9Y0eL1k5+qolv8HIVoteW+IUNK2nOhDP0 pGDcD6GBrni7Egyrujz00g1jsPAPw/N7xpxEKf2aD9Fy5vZOTEmLlEQ3Jf0vxd3OcXJa NoglAguAhKwo5L1LaKgcDZgpGdhyHKWW1WWq7pomg8delGKNfMO+V2/5OsjjUAzPfiNi mua66QL5Qyk9ciFfnbU+vi09XLY/I/lCyG2r4V5D5pa1oOFLMCgOVSEex1D1b1ogh+HI eU4w== X-Gm-Message-State: AOJu0YwNarBwX2cs82HnPUCMV2yUXrD/83W49ucduZJfOCv9h/T8lz8/ YDXg/zGnrEfuqHgzBm1eBWw+emhGFKTjSUHmK984p/FseWYJUk5IQqbzL727kCt433AS31d4JUn ja5AyDSDTqUJoKwrILFpOHTImPj9kJawFuLbVcTRcYWxmx7Y85KbzqaiGZQoXhz41QphrW8vflK tloI0Lg2h3QKLO0Xx77aYlbKf7N8l2jlPDfHNrIhy8 X-Gm-Gg: ASbGncufSY7qt1U3+beBAubSWBa/msR3hqt4I/MCLW6gfRNbzhBpxStpbLj2uha2onS y6CaQf3OoSsNsP/YB3Fe1qALmf5WD5I+zTyRonNLSdYgUgq5TJHBIXq1wGWIP4oYBGN7mjlN6eH s7yRo25fLcvyPk6XuEJDcl+oI/eKXTzFnQFr1+tq5/Gpu7DSuFMfXtsaDvy7oobg5UGy4Fg8L4H /bIfOS+PNKybEz8actOLv6ALYFX870dXra55+1OVD9r/w0qYeTTwOjIT5gfaEE2yaQqDa/+EZKc s+3N1zYUHUvHuQ== X-Received: by 2002:a17:907:970b:b0:ad5:2bb1:8c85 with SMTP id a640c23a62f3a-ad52d511cd9mr1489706166b.29.1747739148728; Tue, 20 May 2025 04:05:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFwXGUSHs2/AQdu/ppolwpUvhDLe9nNqzyOxCKgqmwQ0A8DP7eC2uUz92OaD3mJfnI7w4O+Lw== X-Received: by 2002:a17:907:970b:b0:ad5:2bb1:8c85 with SMTP id a640c23a62f3a-ad52d511cd9mr1489702366b.29.1747739148218; Tue, 20 May 2025 04:05:48 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Zhao Liu , Markus Armbruster Subject: [PULL 08/35] qapi/misc-target: Fix the doc to distinguish query-sgx and query-sgx-capabilities Date: Tue, 20 May 2025 13:05:03 +0200 Message-ID: <20250520110530.366202-9-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739312371116600 Content-Type: text/plain; charset="utf-8" From: Zhao Liu There're 2 QMP commands: query-sgx and query-sgx-capabilities, but their outputs are very similar and the documentation lacks clear differentiation. From the codes, query-sgx is used to gather guest's SGX capabilities (including SGX related CPUIDs and EPC sections' size, in SGXInfo), and if guest doesn't have SGX, then QEMU will report the error message. On the other hand, query-sgx-capabilities is used to gather host's SGX capabilities (descripted by SGXInfo as well). And if host doesn't support SGX, then QEMU will also report the error message. Considering that SGXInfo is already documented and both these 2 commands have enough error messages (for the exception case in their codes). Therefore the QAPI documentation for these two commands only needs to emphasize that one of them applies to the guest and the other to the host. Fix their documentation to reflect this difference. Reported-by: Markus Armbruster Suggested-by: Paolo Bonzini Signed-off-by: Zhao Liu Acked-by: Markus Armbruster Link: https://lore.kernel.org/r/20250513143131.2008078-3-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini --- qapi/misc-target.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qapi/misc-target.json b/qapi/misc-target.json index 6814708972d..f7ec695caad 100644 --- a/qapi/misc-target.json +++ b/qapi/misc-target.json @@ -361,7 +361,7 @@ ## # @query-sgx: # -# Returns information about SGX +# Returns information about configured SGX capabilities of guest # # Returns: @SgxInfo # @@ -380,7 +380,7 @@ ## # @query-sgx-capabilities: # -# Returns information from host SGX capabilities +# Returns information about SGX capabilities of host # # Returns: @SgxInfo # --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739312; cv=none; d=zohomail.com; s=zohoarc; b=Jd5EVUwHDis6dLE1Z70U+UHvKGPTo9O9g8WWOFWNAtocfWkO1vBrgBLAALe6e6vZy8JFOmrPJqrreUWVB3otVOE/RH/FayJCXhv+u/VtYxVw0z9Haxwvck/GkbqP2HNqYBdjmY0xmfn3ETommZqxTpVzkmERDgeDwCKbC/JQiEs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739312; 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=ZeJSoI1oYQ0zCCATRLISYxzasklWXEzQTXEkeQ9H7tU=; b=b8C5PMC8cyO0ImnCQCep6o0Hq8UMlUGr3SHg5eNokhizTPlp8/48l53hP4nhU9gGU/A8Zvk/wAukP308vP6Xzs5SXVTfXor47h4mPzGGURBnRawMYvSAOEAZ+E0iLZ2vGJzHprOd01WFd+D6OTwFudEFs/nnIZJJ/5I+ESOHQxQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739312192102.4445049584732; Tue, 20 May 2025 04:08:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnW-0007f4-H0; Tue, 20 May 2025 07:06: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 1uHKnG-0007N3-3K for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:59 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnE-00032k-DC for qemu-devel@nongnu.org; Tue, 20 May 2025 07:05:57 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-605-LKKSitI9Mt-52av6N0i1uw-1; Tue, 20 May 2025 07:05:54 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ad53f8a49fdso293534766b.1 for ; Tue, 20 May 2025 04:05:54 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d06c20bsm711351566b.44.2025.05.20.04.05.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZeJSoI1oYQ0zCCATRLISYxzasklWXEzQTXEkeQ9H7tU=; b=RnxBT2evD36x3D96/L50pMti34g5uqpBpWIi0idHuS2mde+TAH+1TfQb2izgjzXWkhEb5Z ooiDf5eSv9+9Y6xt97BpG348t4gl+qOrVg0veT0wq9II0lgOcgWirV+nemFN7/XSxNZYJC uz48TL+4PloWnocwxPWTCkecybdOQrs= X-MC-Unique: LKKSitI9Mt-52av6N0i1uw-1 X-Mimecast-MFC-AGG-ID: LKKSitI9Mt-52av6N0i1uw_1747739153 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739152; x=1748343952; 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=ZeJSoI1oYQ0zCCATRLISYxzasklWXEzQTXEkeQ9H7tU=; b=sJ/r1HoUq0zav3qXVb3Ar0zG5myTWKPrjnbmgO1luOfSjnLII2zwPk7mMHLoTrDTWa TMyG8n7PB3Kumj2U2LQJJLhDqmegFruBf70x+13bDtRPRKcp1/kG3xE/bD7wAQkWj7Ze j1aUcv9vG/LJpaioVoeRSzcJ1oEq0VnlUjLHspoNZ4CrOzfTDlVISsllwqV6lm6Q606U JdYU0RDK7oS5sNjpW8MIsSAbilNo5zKSpdCu50Vjl5scq7KDiJs1NRJUgTjP2S4NXUUV /bGg0vYKdBDE8Eb2WnwO1K3lI5UZmw/+kAJmNR+gyyqFfOUrNo4HyREt801SwkZ/kFM/ 0nqA== X-Gm-Message-State: AOJu0Yx9CxqNHhOWHpitmUzPZRLThkr+ePYxjZlQ9LsER6xskw3U58uR MCJzUwFKYhfihHIFy7kJrHRaaeUyRGop9xin0H+XGVq90nJOT0yWNwseLjGNJHar2X4PAxAz3D4 ZKqeltd6iNpnE+P7VM7/rJk0FpOqvH7a/iV2mBf26dtc+DtBIm60BFngdj9qS8B2gX0UgDq3K4D dXkhTsY7onksqr6adJ4/6Z1G99XIiMMCEmUK5iWIXZ X-Gm-Gg: ASbGncvQ4ffxYbnY10fuVr6MDELf7hKI7xipn3a1vhZVkcEBmO3TnUdDz+0Lafg7hln nHJSi1u6TpZCKA/BQHmhq8CiMSRN1fchD76lNVx+uZMQbAzMi+ODXkM/TsfaoRHzKde7Zneq3H/ LtglQ4MRWt76f5hExWtAf02zA7UqzDjd/AY4AHdSLGrMdhxk1OIJCt8j55IOf2SoKzGh19naY1F IkVsbqXFSLjlGc6mMZCIKJUbl/h19DT9QiZ0CnMLhDO4t6r22EYEDvGedMNAMk7tK49HrqRFlk5 TgElybE+7nkRfQ== X-Received: by 2002:a17:907:6d01:b0:ad5:58f7:6c8 with SMTP id a640c23a62f3a-ad558f74558mr991251366b.49.1747739152231; Tue, 20 May 2025 04:05:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGPHFMGoj63uHLU9GiJXRJv38O44XZcAMiQ36jpFYVwZ/Mc1bZiFJ3suEOz95lMbhmUIvq5YA== X-Received: by 2002:a17:907:6d01:b0:ad5:58f7:6c8 with SMTP id a640c23a62f3a-ad558f74558mr991248466b.49.1747739151767; Tue, 20 May 2025 04:05:51 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 09/35] hw/riscv: acpi: only create RHCT MMU entry for supported types Date: Tue, 20 May 2025 13:05:04 +0200 Message-ID: <20250520110530.366202-10-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739314451116600 Content-Type: text/plain; charset="utf-8" Do not create the RHCT MMU type entry for RV32 CPUs, since it only has definitions for SV39/SV48/SV57. Likewise, check that satp_mode_max_from_map() will actually return a valid value, skipping the MMU type entry if all MMU types were disabled on the command line. Acked-by: Alistair Francis Signed-off-by: Paolo Bonzini --- hw/riscv/virt-acpi-build.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c index 1eef2fb4eb3..e693d529e15 100644 --- a/hw/riscv/virt-acpi-build.c +++ b/hw/riscv/virt-acpi-build.c @@ -288,6 +288,7 @@ static void build_rhct(GArray *table_data, RISCVCPU *cpu =3D &s->soc[0].harts[0]; uint32_t mmu_offset =3D 0; uint8_t satp_mode_max; + bool rv32 =3D riscv_cpu_is_32bit(cpu); g_autofree char *isa =3D NULL; =20 AcpiTable table =3D { .sig =3D "RHCT", .rev =3D 1, .oem_id =3D s->oem_= id, @@ -307,7 +308,8 @@ static void build_rhct(GArray *table_data, num_rhct_nodes++; } =20 - if (cpu->cfg.satp_mode.supported !=3D 0) { + if (!rv32 && cpu->cfg.satp_mode.supported !=3D 0 && + (cpu->cfg.satp_mode.map & ~(1 << VM_1_10_MBARE))) { num_rhct_nodes++; } =20 @@ -367,7 +369,8 @@ static void build_rhct(GArray *table_data, } =20 /* MMU node structure */ - if (cpu->cfg.satp_mode.supported !=3D 0) { + if (!rv32 && cpu->cfg.satp_mode.supported !=3D 0 && + (cpu->cfg.satp_mode.map & ~(1 << VM_1_10_MBARE))) { satp_mode_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.map); mmu_offset =3D table_data->len - table.table_offset; build_append_int_noprefix(table_data, 2, 2); /* Type */ @@ -382,7 +385,7 @@ static void build_rhct(GArray *table_data, } else if (satp_mode_max =3D=3D VM_1_10_SV39) { build_append_int_noprefix(table_data, 0, 1); /* Sv39 */ } else { - assert(1); + g_assert_not_reached(); } } =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739291; cv=none; d=zohomail.com; s=zohoarc; b=hvTe9+mNl8iMufo6YZ6kDKJhg95f+Txk4VRg6BR24O3vOrJRw8eEJkRq/NBbjyonhJW8JvZDCzrhyYFh9x4/yuTZgaQjE4psasMCs1qnu82nI2z6KYDt3D/AKK/KAqoqVKeRljLiebGWST0A2Tk80WEBCED1deNaZEhKTh+2Y1o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739291; 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=2tMZM2SvIHbt7dyi/YnpmaamQemKlOM0b0XlIhcw77k=; b=LoXa86BqWRj+cfYQu7V4z7yaD6qd0FMrJAGwiI4+0y8MLfyIhgleLjrDLfxDOFLpACv7v21+0KLFJLvQlR4AGJMZpAiB+CAzVqQ+wOVYDF6i99lEdLYc3CR42Wa4ZiiEOozxTdPjeGsofVVd6kmEtzxIvDjYDTezsgGKqvVeazk= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739291749490.0641224773814; Tue, 20 May 2025 04:08:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnb-0007zv-1j; Tue, 20 May 2025 07:06:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnJ-0007RP-UR for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnI-00033K-8s for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:01 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-694-bDgVqFjfN6ifovwmAQq9YQ-1; Tue, 20 May 2025 07:05:56 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-ad51ceda1d9so447258566b.1 for ; Tue, 20 May 2025 04:05:56 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d276592sm712788766b.73.2025.05.20.04.05.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2tMZM2SvIHbt7dyi/YnpmaamQemKlOM0b0XlIhcw77k=; b=E+ov/Vg4CIXUJDoHtuYGHqzsGQNUUV+yYACUCEhfkjV4ETwPunFIdvWzxLqZJCeiCWkkq5 cPJRRfKvZ4na7llF0G7/inBvESpnQ/Hzec1XANM9FgkNyz94HRpJocV/MYPQqYWOUp4G6M joa22Uo8HEnvbwxsamdMS9oohyIV7Jc= X-MC-Unique: bDgVqFjfN6ifovwmAQq9YQ-1 X-Mimecast-MFC-AGG-ID: bDgVqFjfN6ifovwmAQq9YQ_1747739155 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739153; x=1748343953; 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=2tMZM2SvIHbt7dyi/YnpmaamQemKlOM0b0XlIhcw77k=; b=MRJiD3yezxKa4meguCXN+75HJcGG2oYxJkVeCkCDSEmflmdvARnvfHzAwYS68AykGq Ca1+AR1g+p+08NfWbM2cVDViqxpIeGZh7y/Qzi2QteUVpE2nFr0eIAIqBm/5rR+EIUt3 PWBKxa9SCDq/R7QFaeS7MWntba8qAFfjhqCCz0ecL+7CifMWzFAm8GDqod0UZ535ovGW loqJydEdrtxd4bMrZlGazu5rZ7hKg+S2FKU+goY1b1ll3J3qYSTfiQRFr77dWENqwEQJ WTliekM1AnWP0bJERmRuY5n6g9Dh6u4gbfT74hFZez4SPsN+1Lohrs2FlVPvzWkTgHPQ sx5w== X-Gm-Message-State: AOJu0YxYik5B+CGFzepoo6k8Nf7GYRWrFn5e99WAlFA83eZDyHd6UExX v4g4lQdRjx8+sLpjsABLpi3a0ZY0En/S9szzqRGpk4Ogh6ittzhSdCp97w9hQZe7ozXkPdYKiF5 zVphSdV5tv3jOse2+rdcWQLQ02/6R6KNOVmYsDlvzXgiaakbVIECWC/OYfjXq2ABkgD1WN4YDls ksjSwfsHXLulEF8+0gdo7EyjEuqV73KHWDgJCaTKOn X-Gm-Gg: ASbGnctUjQiMGngvQnpI/kXkU6SDbNx7Ff2NxVCb2LkHaTQJlQGZEmS+nW1hpYdHZfs LFGh97JJk9Xp4L5aquBg2YPfILT6X3EkLlV8FkWvvk5ulXGpbhAnaxBtmP4A56x+CTlMZg1YO3+ lFIMjSqc6xg0ut7fZ5IWs58l3Iwm4tvVylMigbYXJLm+0Gf5QhyIeyZAPnkG13zrZrgUEu9NcWa j7IRJtgFnXZL2UZUgD5zxkcXWGbtyeYpAMHLp3g47LU1d52cgpY6cWkjrbIZPWXpxdaMc9pzNz/ dPhBToVZSDyM8Q== X-Received: by 2002:a17:907:960a:b0:ad3:e742:69ea with SMTP id a640c23a62f3a-ad52f86c635mr1283732466b.14.1747739153365; Tue, 20 May 2025 04:05:53 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEYpriw6KYQE9vflfI0tonrAr+6DNshdLi9pD7CiWJiuM/Lyi5AquqLNVkmP4Ar8Ek5xpRwbg== X-Received: by 2002:a17:907:960a:b0:ad3:e742:69ea with SMTP id a640c23a62f3a-ad52f86c635mr1283729666b.14.1747739152920; Tue, 20 May 2025 04:05:52 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 10/35] target/riscv: assert argument to set_satp_mode_max_supported is valid Date: Tue, 20 May 2025 13:05:05 +0200 Message-ID: <20250520110530.366202-11-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739293966116600 Content-Type: text/plain; charset="utf-8" Check that the argument to set_satp_mode_max_supported is valid for the MXL value of the CPU. It would be a bug in the CPU definition if it weren't. In fact, there is such a bug in riscv_bare_cpu_init(): not just SV64 is not a valid VM mode for 32-bit CPUs, SV64 is not a valid VM mode at all, not yet at least. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index d92874baa06..0f7ce5305be 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -444,6 +444,8 @@ static void set_satp_mode_max_supported(RISCVCPU *cpu, cpu->cfg.satp_mode.supported |=3D (1 << i); } } + + assert(cpu->cfg.satp_mode.supported & (1 << satp_mode)); } =20 /* Set the satp mode to the max supported */ @@ -1497,7 +1499,9 @@ static void riscv_bare_cpu_init(Object *obj) * satp_mode manually (see set_satp_mode_default()). */ #ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_SV64); + set_satp_mode_max_supported(RISCV_CPU(obj), + riscv_cpu_mxl(&RISCV_CPU(obj)->env) =3D=3D MXL_RV32 ? + VM_1_10_SV32 : VM_1_10_SV57); #endif } =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739279; cv=none; d=zohomail.com; s=zohoarc; b=KafP7MFmDZ1HWARH1+I1V3zlrfVf7RZ0ZF3JGtXffNaDaL9PChmpBvqF4KKwwQqS2gW61iludHjlZU1PVm7uIDCpSEZRJqQAu3jMAFdmRgTirW+KWbA8caExv7shVBSHBxVK7NOZK91p9ahSX8wB0ICtlx15UElvnqxn7MKXbDY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739279; 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=kEA8gwAABu9nmeknGeEHK1bKLRjIK+6tDEYM+UBOQHw=; b=hUCCBmMWP9wNgSFU7XQjSIKWzy7GTzBAIJxv79CRwMXEsPAZL7tXdt53e+giPOXw9v/2C0lrObR++j5orhXiO/SvFGU03UXCt7MMwmB21uoyoFfB1V8Egnf29AofSwa7gEZPxxNrZ/MPHaCtaf/b0UIF6JWRMtBWDytOA65n5KQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739279482995.679278858676; Tue, 20 May 2025 04:07:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnV-0007bM-IE; Tue, 20 May 2025 07:06: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 1uHKnK-0007RZ-OB for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:03 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnJ-00033Y-5X for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:02 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-175-jlYsvj8PNjydM_k__wj8nw-1; Tue, 20 May 2025 07:05:59 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-60214f89ce0so366267a12.3 for ; Tue, 20 May 2025 04:05:59 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005a6dfbc3sm6991310a12.33.2025.05.20.04.05.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kEA8gwAABu9nmeknGeEHK1bKLRjIK+6tDEYM+UBOQHw=; b=GJejuWXvQQBnKPXUmvKibw0U7Gy6RMmg/Rsmtf/qb99Q2gAoF4MkTbhjbxh00+I9aQKFPr 6fAgEnxxSKsOMRhOHEerQRP9or7p/y25yDaOD1fzYdW45lWSfALDotv8zaGv/r+j4N4s0X c89Nhnc0EWszUyfuyvrQA7JfqY8PIYk= X-MC-Unique: jlYsvj8PNjydM_k__wj8nw-1 X-Mimecast-MFC-AGG-ID: jlYsvj8PNjydM_k__wj8nw_1747739158 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739157; x=1748343957; 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=kEA8gwAABu9nmeknGeEHK1bKLRjIK+6tDEYM+UBOQHw=; b=m1VVCQbA1zQX3S0LZlydChC9jb6cFRtz/ZHPnSqQjaBnQnI177HnKWjVkAhehYe/t3 7jgcY2hv1k8po5Ti1N9E58iDJJabA3x2xm/GcukX61C7wQQs4peTyq3K5qk/g1K5R0/N kMrZ+1nMbx1moqmy5jCO2B00xwb5s4tyTXFu/HvD2pulawKL0P0ShaCl9IFys7xZ5deK xDEvevOh0l3pW9ztjgnTXba48w8JUETV0AheX0rCIJpJ5zmC2NnfgJxvAkVTpNO2eV+/ aJ2xe6p89xQl6JIH1ROz4qlUEpYsiJOZbnCRD6AImvJpHv3oVT8TrLW+lT/gvR0zMvQD tFfg== X-Gm-Message-State: AOJu0Yye0kGc6gbxqcqkV83HbZpDF6ouJ2fVZTjxWjKPhBxf8FmKR1/+ UPhtqsKOTWBFjizo0cN/t+mq0QrHTQdhCzRSMhZXisp6aJHZN0PaRmRerQNzuvPjN4qeCvuYkyr Mldb7fy+R9nzAIXK1b0GDuswpLPBaxcpvQz42ez9JNH4LVo5oOKRZ4tHBSJP7u4u2RxmlgoEjkl xXeGUV1lzfF3eqyagPVZvp6sgYT3SBpv8LP+jvYM3V X-Gm-Gg: ASbGncui5N5tq6JBxUW/9mk5qGz/sweRDxdGODSDpEwU/LpkaSirPZ3+C21EgckrxkR U4bmWaB4Tv6GUSijBpIfRzwh2xrwEum4k0Jshh7p/JlUXv0FpjOo5MmtyYTE76vN/+rHzGbtltC A7xW4vAAPxDjT2jZJ6yMGfP1BKxvG+6MH7hfHgEnNOQPK5YoChw8qEjEgRYy/I6/soJS4op1dse 6GAvTp7TVBtOOVtr7AlUPZfs66GCcM8Qi09tA3fyWAPleMafv0C0bdTDNKMTcia2BmCXkAgensQ mjN8v2LYa7ZJxg== X-Received: by 2002:a05:6402:26cd:b0:601:d9f4:eac6 with SMTP id 4fb4d7f45d1cf-601d9f4eef5mr7385086a12.21.1747739156941; Tue, 20 May 2025 04:05:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IETTXRCwUdIKJvLsbDAW52kqK1Gn+07//37dM5DQzJmY6Sn1AO6XWGNk13vsvYRtfcDCMH3MQ== X-Received: by 2002:a05:6402:26cd:b0:601:d9f4:eac6 with SMTP id 4fb4d7f45d1cf-601d9f4eef5mr7385051a12.21.1747739156449; Tue, 20 May 2025 04:05:56 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 11/35] target/riscv: cpu: store max SATP mode as a single integer Date: Tue, 20 May 2025 13:05:06 +0200 Message-ID: <20250520110530.366202-12-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739281969116600 Content-Type: text/plain; charset="utf-8" The maximum available SATP mode implies all the shorter virtual address siz= es. Store it in RISCVCPUConfig and avoid recomputing it via satp_mode_max_from_= map. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu_cfg.h | 1 + target/riscv/cpu.c | 11 +++++------ target/riscv/tcg/tcg-cpu.c | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index cfe371b829d..c8ea5cdc870 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -196,6 +196,7 @@ struct RISCVCPUConfig { =20 bool short_isa_string; =20 + int8_t max_satp_mode; RISCVSATPMap satp_mode; }; =20 diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 0f7ce5305be..32c283a6628 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -446,6 +446,7 @@ static void set_satp_mode_max_supported(RISCVCPU *cpu, } =20 assert(cpu->cfg.satp_mode.supported & (1 << satp_mode)); + cpu->cfg.max_satp_mode =3D satp_mode; } =20 /* Set the satp mode to the max supported */ @@ -1172,16 +1173,13 @@ static void riscv_cpu_disas_set_info(CPUState *s, d= isassemble_info *info) static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp) { bool rv32 =3D riscv_cpu_is_32bit(cpu); - uint8_t satp_mode_map_max, satp_mode_supported_max; + uint8_t satp_mode_map_max; =20 /* The CPU wants the OS to decide which satp mode to use */ if (cpu->cfg.satp_mode.supported =3D=3D 0) { return; } =20 - satp_mode_supported_max =3D - satp_mode_max_from_map(cpu->cfg.satp_mode.supported); - if (cpu->cfg.satp_mode.map =3D=3D 0) { if (cpu->cfg.satp_mode.init =3D=3D 0) { /* If unset by the user, we fallback to the default satp mode.= */ @@ -1210,10 +1208,10 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *= cpu, Error **errp) satp_mode_map_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.map); =20 /* Make sure the user asked for a supported configuration (HW and qemu= ) */ - if (satp_mode_map_max > satp_mode_supported_max) { + if (satp_mode_map_max > cpu->cfg.max_satp_mode) { error_setg(errp, "satp_mode %s is higher than hw max capability %s= ", satp_mode_str(satp_mode_map_max, rv32), - satp_mode_str(satp_mode_supported_max, rv32)); + satp_mode_str(cpu->cfg.max_satp_mode, rv32)); return; } =20 @@ -1473,6 +1471,7 @@ static void riscv_cpu_init(Object *obj) cpu->cfg.cbop_blocksize =3D 64; cpu->cfg.cboz_blocksize =3D 64; cpu->env.vext_ver =3D VEXT_VERSION_1_00_0; + cpu->cfg.max_satp_mode =3D -1; } =20 static void riscv_bare_cpu_init(Object *obj) diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index 55e00972b79..ab8659f3044 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -816,8 +816,9 @@ static bool riscv_cpu_validate_profile_satp(RISCVCPU *c= pu, RISCVCPUProfile *profile, bool send_warn) { - int satp_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.supported); + int satp_max =3D cpu->cfg.max_satp_mode; =20 + assert(satp_max >=3D 0); if (profile->satp_mode > satp_max) { if (send_warn) { bool is_32bit =3D riscv_cpu_is_32bit(cpu); --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739401; cv=none; d=zohomail.com; s=zohoarc; b=YDrGl6LZ/2vhFm2O2pA3zBBg46bRzz89NTl/dQpqrqwZCsdcBLD3rsYGOafGEKTbkL/LW58lKFw8V3U1Oix8BVVYTRcv3i1VO3qJYQM9VdkvLh421u620GGCW6agO3CSD3cygDr4RHwFbVFWleksBVT6WqW9r78/80wg55WNjI4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739401; 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=5+fawoZt72WxmxvxgB95BnK3u4G4Pjm8I8VgnrOzzHs=; b=hcq7LtPqy46cUQQNnEHQzBbTBSogq+z/8CImfCTyKxnldwKugrRP1xqiIu5lKF3npQsosSuOXjn1V+w7B4px6s8hEkrBhPKX0QaA7Dt3NJX4vFeF6zrPjgCEcWninMofD2DdztFoYWtA/6rcWMFw2+xM+DNkbXw5v5ogMJNftas= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174773940169845.867109371044876; Tue, 20 May 2025 04:10:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnf-0008Fl-9P; Tue, 20 May 2025 07:06:23 -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 1uHKnO-0007VQ-FP for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnM-00035b-BA for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:06 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-197-i-2Iv_C6MLSn-oUYlZK09g-1; Tue, 20 May 2025 07:06:02 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-5ffe81b2ec9so5995341a12.1 for ; Tue, 20 May 2025 04:06:02 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4d27e8sm718579966b.174.2025.05.20.04.05.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:05:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739163; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5+fawoZt72WxmxvxgB95BnK3u4G4Pjm8I8VgnrOzzHs=; b=SZ7MhrI0Jv5TifPVY/95vGXp+fBngNzcSWC98NB1jwJwYPvqXnewpXOTLXYeuLNmNQsyrB RjAlsfIS1hQIHCuJ7LQJzdTJ9f/4upykYX7F0pqjgitM+CO5EYoFz9inoDj7UILvCOlrRW XedXMD6YUluVNMuh0ywdjFqUQoEo4uc= X-MC-Unique: i-2Iv_C6MLSn-oUYlZK09g-1 X-Mimecast-MFC-AGG-ID: i-2Iv_C6MLSn-oUYlZK09g_1747739161 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739160; x=1748343960; 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=5+fawoZt72WxmxvxgB95BnK3u4G4Pjm8I8VgnrOzzHs=; b=AmaQA+4po/hkmC8ryqMHbWCKx7DbQ9MKFfz0oDHw3XiFlgNkZUZ2/KKL7W2szFUPKB FJbCNRPOlCwH/geMPKNG33FPt8aCbD5QLKOxw0VKMylZEc0HwmlQrSWphat6txN+jd2b xNHidE/LgCl7ruFqSpNdLaRbikPr5iCGKv14BovLZ0IXn43+FSa5/FlM0WDGVWvS+HC5 roPQoeB46H9+PUCOc6IhNgqTG27LZJ1eq+70c6WC37JllWX4olq1FYULoJZ4KYUY7z9M K4fFDgECkj8m+aG3QQSeYp8EII0S6sAOCJN0xPG2m0kdLjgTCGm91sI8L3Oy76fZJr8E RSTw== X-Gm-Message-State: AOJu0Yzff4gi0mVqBi1eVxUBwBw6i+1VlPPmdHeyZkvGaBZ4xS70kQrw ZEq/HdphvNIVyqpdzifoQIff878G7kfL8r2pQvwRE+0llUOQhvETAh2/aoPz3vR9oH1/ibBazqk 7BJK2HCdQD4z1L4q4suUHPE9w8W2OAWJNqHGactPRQj8/TglVS0+DC7jW6uxL5BLF41MXtAWkxQ Dg92KWCOdja1jVRNchgQW/XYc6CrAdtrIJiHCL6j4g X-Gm-Gg: ASbGncu3b5uTPPNDf7uHMW7dPCvMGSxwTKD6SBCfK52zOJYK0jSqDzzt3lBKF31jA/0 eCsDX1BIq7/KC69kTTwV7UnVHVg2cwk48cdoPfBfHq4OFysKqsNbGcPxGJjLxIonRUFqysBNyyd 0B6Xgpsji2+SF1C5qzMyiPEAbMMOA9oXV706z9RpPcOesmRq6xM8Qdp96XJRRkO9FgQji/zZQyc HMbw9fUXcnG66EmXVU2eaTfir3gX6+Qa2Xyl6pHdA97qjibIB5LM1YxwuJKnB8tkkTiOEEhAhhC m/K0KrcciOhK5g== X-Received: by 2002:a17:907:3f1b:b0:ad5:6c8c:2d24 with SMTP id a640c23a62f3a-ad56c8c2eb8mr833558066b.58.1747739159986; Tue, 20 May 2025 04:05:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE14IqJOFZWKR9V7VC4MzEk5lPb1cCG2VDU+rUKf0LSgYAKd4q5NRR6/O3vSh5/iCF54MxbxQ== X-Received: by 2002:a17:907:3f1b:b0:ad5:6c8c:2d24 with SMTP id a640c23a62f3a-ad56c8c2eb8mr833553166b.58.1747739159397; Tue, 20 May 2025 04:05:59 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 12/35] target/riscv: update max_satp_mode based on QOM properties Date: Tue, 20 May 2025 13:05:07 +0200 Message-ID: <20250520110530.366202-13-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739405775116600 Content-Type: text/plain; charset="utf-8" Almost all users of cpu->cfg.satp_mode care about the "max" value satp_mode_max_from_map(cpu->cfg.satp_mode.map). Convert the QOM properties back into it. For TCG, deduce the bitmap of supported modes from valid_vm[]. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 1 - hw/riscv/virt-acpi-build.c | 14 +++++--------- hw/riscv/virt.c | 5 ++--- target/riscv/cpu.c | 27 ++++++++++----------------- target/riscv/csr.c | 9 +++++++-- 5 files changed, 24 insertions(+), 32 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index b56d3afa696..3d89a4a83ba 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -930,7 +930,6 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs); target_ulong riscv_new_csr_seed(target_ulong new_value, target_ulong write_mask); =20 -uint8_t satp_mode_max_from_map(uint32_t map); const char *satp_mode_str(uint8_t satp_mode, bool is_32_bit); =20 /* Implemented in th_csr.c */ diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c index e693d529e15..8b5683dbdeb 100644 --- a/hw/riscv/virt-acpi-build.c +++ b/hw/riscv/virt-acpi-build.c @@ -287,7 +287,6 @@ static void build_rhct(GArray *table_data, uint32_t isa_offset, num_rhct_nodes, cmo_offset =3D 0; RISCVCPU *cpu =3D &s->soc[0].harts[0]; uint32_t mmu_offset =3D 0; - uint8_t satp_mode_max; bool rv32 =3D riscv_cpu_is_32bit(cpu); g_autofree char *isa =3D NULL; =20 @@ -308,8 +307,7 @@ static void build_rhct(GArray *table_data, num_rhct_nodes++; } =20 - if (!rv32 && cpu->cfg.satp_mode.supported !=3D 0 && - (cpu->cfg.satp_mode.map & ~(1 << VM_1_10_MBARE))) { + if (!rv32 && cpu->cfg.max_satp_mode >=3D VM_1_10_SV39) { num_rhct_nodes++; } =20 @@ -369,20 +367,18 @@ static void build_rhct(GArray *table_data, } =20 /* MMU node structure */ - if (!rv32 && cpu->cfg.satp_mode.supported !=3D 0 && - (cpu->cfg.satp_mode.map & ~(1 << VM_1_10_MBARE))) { - satp_mode_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.map); + if (!rv32 && cpu->cfg.max_satp_mode >=3D VM_1_10_SV39) { mmu_offset =3D table_data->len - table.table_offset; build_append_int_noprefix(table_data, 2, 2); /* Type */ build_append_int_noprefix(table_data, 8, 2); /* Length */ build_append_int_noprefix(table_data, 0x1, 2); /* Revision */ build_append_int_noprefix(table_data, 0, 1); /* Reserved */ /* MMU Type */ - if (satp_mode_max =3D=3D VM_1_10_SV57) { + if (cpu->cfg.max_satp_mode =3D=3D VM_1_10_SV57) { build_append_int_noprefix(table_data, 2, 1); /* Sv57 */ - } else if (satp_mode_max =3D=3D VM_1_10_SV48) { + } else if (cpu->cfg.max_satp_mode =3D=3D VM_1_10_SV48) { build_append_int_noprefix(table_data, 1, 1); /* Sv48 */ - } else if (satp_mode_max =3D=3D VM_1_10_SV39) { + } else if (cpu->cfg.max_satp_mode =3D=3D VM_1_10_SV39) { build_append_int_noprefix(table_data, 0, 1); /* Sv39 */ } else { g_assert_not_reached(); diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 0dcced1b49d..cf280a92e5a 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -237,10 +237,10 @@ static void create_fdt_socket_cpus(RISCVVirtState *s,= int socket, uint32_t cpu_phandle; MachineState *ms =3D MACHINE(s); bool is_32_bit =3D riscv_is_32bit(&s->soc[0]); - uint8_t satp_mode_max; =20 for (cpu =3D s->soc[socket].num_harts - 1; cpu >=3D 0; cpu--) { RISCVCPU *cpu_ptr =3D &s->soc[socket].harts[cpu]; + int8_t satp_mode_max =3D cpu_ptr->cfg.max_satp_mode; g_autofree char *cpu_name =3D NULL; g_autofree char *core_name =3D NULL; g_autofree char *intc_name =3D NULL; @@ -252,8 +252,7 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, i= nt socket, s->soc[socket].hartid_base + cpu); qemu_fdt_add_subnode(ms->fdt, cpu_name); =20 - if (cpu_ptr->cfg.satp_mode.supported !=3D 0) { - satp_mode_max =3D satp_mode_max_from_map(cpu_ptr->cfg.satp_mod= e.map); + if (satp_mode_max !=3D -1) { sv_name =3D g_strdup_printf("riscv,%s", satp_mode_str(satp_mode_max, is_32_b= it)); qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type", sv_name= ); diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 32c283a6628..48576bff92c 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -389,7 +389,7 @@ static uint8_t satp_mode_from_str(const char *satp_mode= _str) g_assert_not_reached(); } =20 -uint8_t satp_mode_max_from_map(uint32_t map) +static uint8_t satp_mode_max_from_map(uint32_t map) { /* * 'map =3D 0' will make us return (31 - 32), which C will @@ -455,15 +455,13 @@ static void set_satp_mode_default_map(RISCVCPU *cpu) /* * Bare CPUs do not default to the max available. * Users must set a valid satp_mode in the command - * line. + * line. Otherwise, leave the existing max_satp_mode + * in place. */ if (object_dynamic_cast(OBJECT(cpu), TYPE_RISCV_BARE_CPU) !=3D NULL) { warn_report("No satp mode set. Defaulting to 'bare'"); - cpu->cfg.satp_mode.map =3D (1 << VM_1_10_MBARE); - return; + cpu->cfg.max_satp_mode =3D VM_1_10_MBARE; } - - cpu->cfg.satp_mode.map =3D cpu->cfg.satp_mode.supported; } #endif =20 @@ -1175,8 +1173,8 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) bool rv32 =3D riscv_cpu_is_32bit(cpu); uint8_t satp_mode_map_max; =20 - /* The CPU wants the OS to decide which satp mode to use */ - if (cpu->cfg.satp_mode.supported =3D=3D 0) { + if (cpu->cfg.max_satp_mode =3D=3D -1) { + /* The CPU wants the hypervisor to decide which satp mode to allow= */ return; } =20 @@ -1195,14 +1193,14 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *= cpu, Error **errp) (cpu->cfg.satp_mode.supported & (1 << i))) { for (int j =3D i - 1; j >=3D 0; --j) { if (cpu->cfg.satp_mode.supported & (1 << j)) { - cpu->cfg.satp_mode.map |=3D (1 << j); - break; + cpu->cfg.max_satp_mode =3D j; + return; } } - break; } } } + return; } =20 satp_mode_map_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.map); @@ -1232,12 +1230,7 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *c= pu, Error **errp) } } =20 - /* Finally expand the map so that all valid modes are set */ - for (int i =3D satp_mode_map_max - 1; i >=3D 0; --i) { - if (cpu->cfg.satp_mode.supported & (1 << i)) { - cpu->cfg.satp_mode.map |=3D (1 << i); - } - } + cpu->cfg.max_satp_mode =3D satp_mode_map_max; } #endif =20 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 288edeedea4..9843fd21914 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -1912,8 +1912,13 @@ static RISCVException read_mstatus(CPURISCVState *en= v, int csrno, =20 static bool validate_vm(CPURISCVState *env, target_ulong vm) { - uint64_t mode_supported =3D riscv_cpu_cfg(env)->satp_mode.map; - return get_field(mode_supported, (1 << vm)); + bool rv32 =3D riscv_cpu_mxl(env) =3D=3D MXL_RV32; + RISCVCPU *cpu =3D env_archcpu(env); + int satp_mode_supported_max =3D cpu->cfg.max_satp_mode; + const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; + + assert(satp_mode_supported_max >=3D 0); + return vm <=3D satp_mode_supported_max && valid_vm[vm]; } =20 static target_ulong legalize_xatp(CPURISCVState *env, target_ulong old_xat= p, --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739254; cv=none; d=zohomail.com; s=zohoarc; b=Tpvkv7y68wCey+rzocPH5DiVbhxcdBZ7uBAnzHGjtd+PqDvBiNcGbUSROZtPvb6R2y2vgFOfsBDJ9YJBIm0oVTYHkiCzJiwMApuZFAOtRxsIUyd/qtIFeCN1Ufd7rxXIkwfWwKyLSv2tslhRtEAYCGIl0FOupeL6MctJlqT+k9k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739254; 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=/Pog9+CcCvTaueB7szePLyjoe1mtNsA/WsjKjKhQNgk=; b=gOVfLUdQ5+KPjfySOmUyeK20tuZCo6cUB+Xo7pfVcJFqBJUeNxQku2TKA4F50bMGuTvcD+DMBPF9A80Plux/5blxlYvH3QmQreEG9n/5EYBQ7ljr+JVjU6dKcANpkJNSUku0mnLy3AxfNbKqQx6ULkU6eLRfIKC11LC5Zhs5kuQ= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739254612906.6090032792589; Tue, 20 May 2025 04:07:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnh-0008Ko-7U; Tue, 20 May 2025 07:06:25 -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 1uHKnP-0007ZJ-Sg for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:09 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnN-000369-Rf for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:07 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-55-4sPRAdTvMHWBI00ecb0oRQ-1; Tue, 20 May 2025 07:06:03 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-601c0493731so1265539a12.3 for ; Tue, 20 May 2025 04:06:03 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005a6e6366sm7145203a12.44.2025.05.20.04.06.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739165; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/Pog9+CcCvTaueB7szePLyjoe1mtNsA/WsjKjKhQNgk=; b=JJb3tF090VejuxhR8HZSQTfjd1q87apvh3RBzAGmOXOl5lQg/W+s+wQdz6qG7Wo+SLPpS3 NpP9F1kCK93GXR6k7I7gdvGtN5UsfNMe+Tp5QGXB2tx0zgASuMImZu0jnbkjTXVMBd9Cnb dwcj5Vk40KayCokeg3oO4T/KF6gJkX8= X-MC-Unique: 4sPRAdTvMHWBI00ecb0oRQ-1 X-Mimecast-MFC-AGG-ID: 4sPRAdTvMHWBI00ecb0oRQ_1747739163 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739161; x=1748343961; 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=/Pog9+CcCvTaueB7szePLyjoe1mtNsA/WsjKjKhQNgk=; b=jqrXve/AsilmQ5NWpolEDP0mrJTAJD2hc2RmyHtc1GShI+lCBS83jY3ENHHlPsM0jO v9fFOfLh/3ayjIbFy4goeJFzGsPQQMmHT4aujpekPPb/yAj/K1aoWIFyAIaQrFPafL1o xY12jgYZV3pNntajDWbgtN7PR+uh+5BbPbhEE72O5GIANQA7yJ7fQTYHlxUkixE6f0Lr EkO4wpn9eg2wtftvwvzvkU+lO76NijKz5Dy6G3gnEUSKjCZU3AWBPP4TLNz6x4/Q2ENW TUuDK3YgbnwsPsV/jR6B6TXlRKTFySThlzfJUngGMXiYIXf8RpxqxFCUY7Z9r1+rsd6R ZF/w== X-Gm-Message-State: AOJu0YwQxLv3JDkvjwQTQWSF/MGm6fgfIFBW1xmskEcz2b0xqI1t2Yjq PL83N7p+7QfsJpcfAKdqHtv+cI/P7G1aZ0RTao6FFJu06orNlZyA5GxdjBv3qA8fqDlm73jbZkQ lDBF88JJkCDr1RwkfvB8Axyr5cLOfT+GbtB/y3LS68G45pbMV5j7Y85X0+mH1e7cCTVZalOAaL8 Ob13eXGlBY+PU7PHGOg827oaPMJ2nn8UaEnSYYKinY X-Gm-Gg: ASbGncuLy7OCs+74fcrFw1cRyJ9Udk2q9tE9K60BF+z1QZD8ExZHduV/OylwIkdVSmo CKvW06QiTP0iSShlWStT6PPMC5nto7xJ8IFGAODdUvHvXPkwei+stbGfOa2rHENAKOsXED/9+CG oZXG620vTY+A9nwJcvnSOJsiquNNoQu2jolzCccWRFgSMS7EfVUdr/ZtFKclbGkpACBJG7MVstO p6QvAKtqL1ghcw1pYFS/NON6NW3zdVSkM6YXYobF+iMz8au0HBfSWt/UY8yaVjua7C2Y4IR40Wq oVwF1+R1sCIf+A== X-Received: by 2002:a05:6402:2793:b0:601:d77f:47d9 with SMTP id 4fb4d7f45d1cf-601d77f4b72mr7563494a12.5.1747739161125; Tue, 20 May 2025 04:06:01 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGHY3dXKMAW8daj6ym23qtWsq2CmUHvMnu4sPPFtmTGcq6JknLcoF1wEsWpS2nnV/b1iSVZhQ== X-Received: by 2002:a05:6402:2793:b0:601:d77f:47d9 with SMTP id 4fb4d7f45d1cf-601d77f4b72mr7563465a12.5.1747739160659; Tue, 20 May 2025 04:06:00 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 13/35] target/riscv: remove supported from RISCVSATPMap Date: Tue, 20 May 2025 13:05:08 +0200 Message-ID: <20250520110530.366202-14-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739255587116600 Content-Type: text/plain; charset="utf-8" "supported" can be computed on the fly based on the max_satp_mode. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu_cfg.h | 4 +--- target/riscv/cpu.c | 34 ++++++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index c8ea5cdc870..8b80e03c9ab 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -29,11 +29,9 @@ * * init is a 16-bit bitmap used to make sure the user selected a correct * configuration as per the specification. - * - * supported is a 16-bit bitmap used to reflect the hw capabilities. */ typedef struct { - uint16_t map, init, supported; + uint16_t map, init; } RISCVSATPMap; =20 struct RISCVCPUConfig { diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 48576bff92c..0326cd8e563 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -439,14 +439,27 @@ static void set_satp_mode_max_supported(RISCVCPU *cpu, bool rv32 =3D riscv_cpu_mxl(&cpu->env) =3D=3D MXL_RV32; const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; =20 - for (int i =3D 0; i <=3D satp_mode; ++i) { - if (valid_vm[i]) { - cpu->cfg.satp_mode.supported |=3D (1 << i); - } + assert(valid_vm[satp_mode]); + cpu->cfg.max_satp_mode =3D satp_mode; +} + +static bool get_satp_mode_supported(RISCVCPU *cpu, uint16_t *supported) +{ + bool rv32 =3D riscv_cpu_is_32bit(cpu); + const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; + int satp_mode =3D cpu->cfg.max_satp_mode; + + if (satp_mode =3D=3D -1) { + return false; } =20 - assert(cpu->cfg.satp_mode.supported & (1 << satp_mode)); - cpu->cfg.max_satp_mode =3D satp_mode; + *supported =3D 0; + for (int i =3D 0; i <=3D satp_mode; ++i) { + if (valid_vm[i]) { + *supported |=3D (1 << i); + } + } + return true; } =20 /* Set the satp mode to the max supported */ @@ -1171,9 +1184,10 @@ static void riscv_cpu_disas_set_info(CPUState *s, di= sassemble_info *info) static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp) { bool rv32 =3D riscv_cpu_is_32bit(cpu); + uint16_t supported; uint8_t satp_mode_map_max; =20 - if (cpu->cfg.max_satp_mode =3D=3D -1) { + if (!get_satp_mode_supported(cpu, &supported)) { /* The CPU wants the hypervisor to decide which satp mode to allow= */ return; } @@ -1190,9 +1204,9 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) */ for (int i =3D 1; i < 16; ++i) { if ((cpu->cfg.satp_mode.init & (1 << i)) && - (cpu->cfg.satp_mode.supported & (1 << i))) { + supported & (1 << i)) { for (int j =3D i - 1; j >=3D 0; --j) { - if (cpu->cfg.satp_mode.supported & (1 << j)) { + if (supported & (1 << j)) { cpu->cfg.max_satp_mode =3D j; return; } @@ -1221,7 +1235,7 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) for (int i =3D satp_mode_map_max - 1; i >=3D 0; --i) { if (!(cpu->cfg.satp_mode.map & (1 << i)) && (cpu->cfg.satp_mode.init & (1 << i)) && - (cpu->cfg.satp_mode.supported & (1 << i))) { + (supported & (1 << i))) { error_setg(errp, "cannot disable %s satp mode if %s " "is enabled", satp_mode_str(i, false), satp_mode_str(satp_mode_map_max, false)); --=20 2.49.0 From nobody Sat Nov 15 20:49:58 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1747741015; cv=none; d=zohomail.com; s=zohoarc; b=I7XqBYSFVb4qMX+952PG6+RSz7KJh22VvyPaTLkL6tiyLwPkLjMyrYy+p/aQcOAIlerbU5PABLs6ufo5oT280/evoW6fp0jNXIL/G9ElJ+u8hqLkU2ceMdiWK0eT660zMuNnQDGnN+XiNfeVU/ns6o3UxS8aENBUFQspSP6enr8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741015; 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:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=pclGgII9H31kAnQAAEP1/Lu0tJNerW4w1K/5Ar8SzF4=; b=LfesPwZa6AplMNG8RZmC1N0ncBECai7EJB51t0U/cLkK9cC6vI4t9GXpiGo3vX5R0z9oNtGen+sNLQRDcjCw4sohk3xOqZIPrzim4m+mMpVCJVN5yAuiBVPGGhgeN+9PaDu6pVfQaUZhlGWaBoz5ho0cniOsJgMgPwlvow7hStQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1747741015657140.9270758848079; Tue, 20 May 2025 04:36:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnj-0008PW-7u; Tue, 20 May 2025 07:06:27 -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 1uHKnR-0007ae-VM for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:11 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnP-000379-Uw for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:09 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-10-lieydUO1MwelzMujmcXrsA-1; Tue, 20 May 2025 07:06:05 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ad56437a03eso190598266b.0 for ; Tue, 20 May 2025 04:06:05 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d497214sm716844266b.146.2025.05.20.04.06.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pclGgII9H31kAnQAAEP1/Lu0tJNerW4w1K/5Ar8SzF4=; b=ha/w1qaRwS0mrcWhmBrvu77R7EbaDVP0nOGBgdm+OzH1XUL/r4I4lpgy4AvBCEVjymZDUB RHex5q4JcYW6nR1CCzzBcYlU1NFcF3R3uYJP6iQcYTnSN8QpMa4vbsEhOL9JhW9mb1cyA6 tIdSWrH9uQuA/G+/0x4eisNOx4TpLOI= X-MC-Unique: lieydUO1MwelzMujmcXrsA-1 X-Mimecast-MFC-AGG-ID: lieydUO1MwelzMujmcXrsA_1747739165 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739164; x=1748343964; 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=pclGgII9H31kAnQAAEP1/Lu0tJNerW4w1K/5Ar8SzF4=; b=u6HewECwmYcjucTxpIGE2UUsR16TC83vQpeea9BtB0VFQRFhJAJ+SZqxOHzQssH10q rPsT+Ju8dTmwPoK75N02/Gn6rVcMfZ+SNpS+iRmYZ/8kuDqfHWFVTCyw/0jtIWec25JK zme0nmRLXQsBFeWqjJmGHrJVDvGZ4lwJDFAOa9QoshLn9MYCTNwZAdSfEi2Nc7QSsa+P R7HCKqV28EK38Jk3x2epoVOc7DhueCrnSQmU1RrJdb4GG9NtBOEezeK3NPxP3MfHStDu VJPjKQuJnxoW7H765fQVN2UJEdkU/KcRCQMUTpQMhNqndd5HbUB5o0aDooIcweBhlRUm dD+A== X-Gm-Message-State: AOJu0Ywbav7kOHdmIcz3gqX7OISfk3LBCMKHQbdVvEUYzqQfhwWz0DKn l4NuaVaYO6e5nBSnRjeQgLrHrMZmj9CmUdZKHeeX8magZ/FkMq/anz8aEr1QhdswM0Ljl7ZjEyZ BGBIIW27Lip6q99HjgY42hQrEyail7VL8rFF9zQYMKynSMnkwNeXPWVUO0VRB/3lA7li7aTfCHL pZ7xzwDQFmRzB71guV4sS/dpbfCSQmjXpgn6S+xNnv X-Gm-Gg: ASbGnctD0IzdU2DkuCC4TEfYJQ7neZ5KZkjs0jKLTYPUkZPxNPtSj6ulFmEpEJNZkED XsCmuJhIByZTzr6K+E3cr7U4sGlSLYP3+v9v9OjNhkO1yYDf9SEQ7vDBY5EDScJbICoR/Qt3NJY 0TkvgsnzxgyejIt8fTb0aTteQMZ4I81aBiZ1FnFPIvCTszfOzG7QJg3f40Q67fYnUkyI8SCm9+0 2XvluufeYZFpYwEuemQlhyrutU4x+j8YYvPv0L+iiHrXZv30TD8onNMGRloWPzPBCiovi9ji8q9 aHC3eUEpJkK/yg== X-Received: by 2002:a17:907:c21:b0:ad2:28be:9a16 with SMTP id a640c23a62f3a-ad536f280cbmr1348924166b.51.1747739164199; Tue, 20 May 2025 04:06:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHlXPn0UvUgq6Gd5dQIKpoX2TmKQpCnj+jyS7nsRzP9ub3aWGnvRK2fADinHJjehb1d4xCTzQ== X-Received: by 2002:a17:907:c21:b0:ad2:28be:9a16 with SMTP id a640c23a62f3a-ad536f280cbmr1348920766b.51.1747739163754; Tue, 20 May 2025 04:06:03 -0700 (PDT) To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 14/35] target/riscv: move satp_mode.{map, init} out of CPUConfig Date: Tue, 20 May 2025 13:05:09 +0200 Message-ID: <20250520110530.366202-15-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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: , Reply-to: Paolo Bonzini From: Paolo Bonzini via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1747741018342116600 Content-Type: text/plain; charset="utf-8" They are used to provide the nice QOM properties for svNN, but the canonical source of the CPU configuration is now cpu->cfg.max_satp_mode. Store them in the ArchCPU struct. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 14 ++++++++++++++ target/riscv/cpu_cfg.h | 14 -------------- target/riscv/cpu.c | 32 ++++++++++++++++---------------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 3d89a4a83ba..731ea2540cd 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -499,6 +499,19 @@ struct CPUArchState { uint64_t rnmi_excpvec; }; =20 +/* + * map is a 16-bit bitmap: the most significant set bit in map is the maxi= mum + * satp mode that is supported. It may be chosen by the user and must resp= ect + * what qemu implements (valid_1_10_32/64) and what the hw is capable of + * (supported bitmap below). + * + * init is a 16-bit bitmap used to make sure the user selected a correct + * configuration as per the specification. + */ +typedef struct { + uint16_t map, init; +} RISCVSATPModes; + /* * RISCVCPU: * @env: #CPURISCVState @@ -515,6 +528,7 @@ struct ArchCPU { =20 /* Configuration Settings */ RISCVCPUConfig cfg; + RISCVSATPModes satp_modes; =20 QEMUTimer *pmu_timer; /* A bitmask of Available programmable counters */ diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index 8b80e03c9ab..8fa73c8a07d 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -21,19 +21,6 @@ #ifndef RISCV_CPU_CFG_H #define RISCV_CPU_CFG_H =20 -/* - * map is a 16-bit bitmap: the most significant set bit in map is the maxi= mum - * satp mode that is supported. It may be chosen by the user and must resp= ect - * what qemu implements (valid_1_10_32/64) and what the hw is capable of - * (supported bitmap below). - * - * init is a 16-bit bitmap used to make sure the user selected a correct - * configuration as per the specification. - */ -typedef struct { - uint16_t map, init; -} RISCVSATPMap; - struct RISCVCPUConfig { bool ext_zba; bool ext_zbb; @@ -195,7 +182,6 @@ struct RISCVCPUConfig { bool short_isa_string; =20 int8_t max_satp_mode; - RISCVSATPMap satp_mode; }; =20 typedef struct RISCVCPUConfig RISCVCPUConfig; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 0326cd8e563..54a996c2927 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1192,8 +1192,8 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) return; } =20 - if (cpu->cfg.satp_mode.map =3D=3D 0) { - if (cpu->cfg.satp_mode.init =3D=3D 0) { + if (cpu->satp_modes.map =3D=3D 0) { + if (cpu->satp_modes.init =3D=3D 0) { /* If unset by the user, we fallback to the default satp mode.= */ set_satp_mode_default_map(cpu); } else { @@ -1203,7 +1203,7 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) * valid_vm_1_10_32/64. */ for (int i =3D 1; i < 16; ++i) { - if ((cpu->cfg.satp_mode.init & (1 << i)) && + if ((cpu->satp_modes.init & (1 << i)) && supported & (1 << i)) { for (int j =3D i - 1; j >=3D 0; --j) { if (supported & (1 << j)) { @@ -1217,7 +1217,7 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) return; } =20 - satp_mode_map_max =3D satp_mode_max_from_map(cpu->cfg.satp_mode.map); + satp_mode_map_max =3D satp_mode_max_from_map(cpu->satp_modes.map); =20 /* Make sure the user asked for a supported configuration (HW and qemu= ) */ if (satp_mode_map_max > cpu->cfg.max_satp_mode) { @@ -1233,8 +1233,8 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cp= u, Error **errp) */ if (!rv32) { for (int i =3D satp_mode_map_max - 1; i >=3D 0; --i) { - if (!(cpu->cfg.satp_mode.map & (1 << i)) && - (cpu->cfg.satp_mode.init & (1 << i)) && + if (!(cpu->satp_modes.map & (1 << i)) && + (cpu->satp_modes.init & (1 << i)) && (supported & (1 << i))) { error_setg(errp, "cannot disable %s satp mode if %s " "is enabled", satp_mode_str(i, false), @@ -1322,11 +1322,11 @@ bool riscv_cpu_accelerator_compatible(RISCVCPU *cpu) static void cpu_riscv_get_satp(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - RISCVSATPMap *satp_map =3D opaque; + RISCVSATPModes *satp_modes =3D opaque; uint8_t satp =3D satp_mode_from_str(name); bool value; =20 - value =3D satp_map->map & (1 << satp); + value =3D satp_modes->map & (1 << satp); =20 visit_type_bool(v, name, &value, errp); } @@ -1334,7 +1334,7 @@ static void cpu_riscv_get_satp(Object *obj, Visitor *= v, const char *name, static void cpu_riscv_set_satp(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - RISCVSATPMap *satp_map =3D opaque; + RISCVSATPModes *satp_modes =3D opaque; uint8_t satp =3D satp_mode_from_str(name); bool value; =20 @@ -1342,8 +1342,8 @@ static void cpu_riscv_set_satp(Object *obj, Visitor *= v, const char *name, return; } =20 - satp_map->map =3D deposit32(satp_map->map, satp, 1, value); - satp_map->init |=3D 1 << satp; + satp_modes->map =3D deposit32(satp_modes->map, satp, 1, value); + satp_modes->init |=3D 1 << satp; } =20 void riscv_add_satp_mode_properties(Object *obj) @@ -1352,16 +1352,16 @@ void riscv_add_satp_mode_properties(Object *obj) =20 if (cpu->env.misa_mxl =3D=3D MXL_RV32) { object_property_add(obj, "sv32", "bool", cpu_riscv_get_satp, - cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode); + cpu_riscv_set_satp, NULL, &cpu->satp_modes); } else { object_property_add(obj, "sv39", "bool", cpu_riscv_get_satp, - cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode); + cpu_riscv_set_satp, NULL, &cpu->satp_modes); object_property_add(obj, "sv48", "bool", cpu_riscv_get_satp, - cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode); + cpu_riscv_set_satp, NULL, &cpu->satp_modes); object_property_add(obj, "sv57", "bool", cpu_riscv_get_satp, - cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode); + cpu_riscv_set_satp, NULL, &cpu->satp_modes); object_property_add(obj, "sv64", "bool", cpu_riscv_get_satp, - cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode); + cpu_riscv_set_satp, NULL, &cpu->satp_modes); } } =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747740528; cv=none; d=zohomail.com; s=zohoarc; b=QqmcglLhz8oabzvtIrDX49LruJrr0pjEkAI6X3lFKv6y/uTaT3MykIqXjmA1Exz1VnfQcabCzai86R66NeZR6HzDgZ20APEL9jRsCkO+y0pyIKuxK83tKJUEHA65VqSyyTmVzxaDr1jYnvZFcwuc2Gwgg5ldjc5M6dXi39um4U4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747740528; 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=A9jTCBoT4fjDiWE43eOzjmB5Ao3aqWWwZwOIympmqY0=; b=MV+5odZzBUXkHeVGulU+60FxgYKY21CJedUtpBFiFVH3natkNpVWd2NelI7N6+xUGyaksrqSRRIzF/glqo2On3up8Z76QXv12p2dC/z7PU3V3uks5e1bIZaL7N1fOmq0tEsPPJslRi6QNv7uPOuHiQwoi5WfmKX3hThTtBOGE5g= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747740528329160.15717559167035; Tue, 20 May 2025 04:28:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnZ-0007sJ-AJ; Tue, 20 May 2025 07:06:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnT-0007bm-Q7 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnS-00038G-6e for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:11 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-112-c4zRCJ2JOd6Ctcs6wydXwg-1; Tue, 20 May 2025 07:06:08 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad56c5412f2so159391266b.1 for ; Tue, 20 May 2025 04:06:08 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4ca654sm705669466b.158.2025.05.20.04.06.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739169; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A9jTCBoT4fjDiWE43eOzjmB5Ao3aqWWwZwOIympmqY0=; b=FbSzkMVNiiEZwtocd+OkN9qc+RYNZw+s2FKDKf0OCzZt0jRa6lNDS8RJ14KNInymNqmEd1 pmuyXXNNS/eGFzL4hXglxwN4IhphYQivZtXzYw6jkhq8o5y1hdBURp5MiTHdLonJhr0BH7 O2a/BZzqIbGBkSRYy4r7njW0WiVagN4= X-MC-Unique: c4zRCJ2JOd6Ctcs6wydXwg-1 X-Mimecast-MFC-AGG-ID: c4zRCJ2JOd6Ctcs6wydXwg_1747739167 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739166; x=1748343966; 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=A9jTCBoT4fjDiWE43eOzjmB5Ao3aqWWwZwOIympmqY0=; b=iDuWRk1OiyUO+ATs8MVGE5cWS3jfLx8mgFJMqAao/PlZN1kyVtDjJ8UzBzvp0UCjLX bJYR2MZSzvJP/+yyKUqhRL8FMj7ikQz3Wl9mgLK7+H2Ob+h25et4Uand2pgOL4qb/+7T 9QGJThsNt+uXTMOHkNtvUjYzLeoqjE1Hw8sR3KqRzJ7XSWS0qO9xN6EwEmurIjzwrmG0 Ht9f3pDCvVmOa5yrEw68V61Pme2txDN2bgh2oHDNvs+Mb3dDnrQ17HEMMklQZk4foMfx xXxcRDGVgL5+akVCLZ0FWlkwf8Nu5HPkb90E6Wq9RbcKgE3I0lf8+62wpGnt+WucbZe1 8OZQ== X-Gm-Message-State: AOJu0Yz2Vi5nEMY2S8KW6nwa3T9V1DeCj5epsSVIssri2rajHk39goUF B1m0C9QRHxpBeQseKAiPPGeefzi9radw4uH1rKTZSpGOI4emxyYmainoKAGODeZnm40QVAMuynB 0brg+QsQlM9X1AkUGHU9CBVkbbSIc3tD8oUcEX/AEicgdOTl6S0qC5M5xtrznD0YMDY80IGs11D ytfBeVGO9HyQogeCvpbU6T4tvHNtHttgrjPNoemhMo X-Gm-Gg: ASbGncvSjmBBUqw3Vxts4kDq+hjq5GyIj6GBcxsdkFwbAwIphSCZFZQcT55XDKSJSHW IObDbpoefk+fuIzyj/P1N8zhGS+ZZ+GYk4cOeEwLwY+muRNFnh5vWzR87e/O3ZB747+ce3Egy0v GpYPCGTe1F7L0F2SSQPSYzjXOtUbPCRLq8FezVrADAei0XDMxy04ksGwTA/TT85HMo6lgcLiBs4 8Ex3R7RqHFwunJbOowzoqfXSLcoiAZ7yBjimfG82kpO4LvHsAypRQze4GF+IL1d9XZVkLL+mlP6 8T6n+bFBgMNjzQ== X-Received: by 2002:a17:907:3e16:b0:ad2:3fa9:7511 with SMTP id a640c23a62f3a-ad536dce687mr1566825466b.41.1747739166451; Tue, 20 May 2025 04:06:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEs2cxroTfvAWEaKtopxIAhFdhfBy06xh+Uz1wkv+9GuwaUY7DbB52JXZk/XCZxDnJP985HHg== X-Received: by 2002:a17:907:3e16:b0:ad2:3fa9:7511 with SMTP id a640c23a62f3a-ad536dce687mr1566822366b.41.1747739165982; Tue, 20 May 2025 04:06:05 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 15/35] target/riscv: introduce RISCVCPUDef Date: Tue, 20 May 2025 13:05:10 +0200 Message-ID: <20250520110530.366202-16-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747740529501116600 Content-Type: text/plain; charset="utf-8" Start putting all the CPU definitions in a struct. Later this will replace instance_init functions with declarative code, for now just remove the ugly cast of class_data. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 4 ++++ target/riscv/cpu.c | 27 ++++++++++++++++++--------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 731ea2540cd..9de3f716ea6 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -538,6 +538,10 @@ struct ArchCPU { const GPtrArray *decoders; }; =20 +typedef struct RISCVCPUDef { + RISCVMXL misa_mxl_max; /* max mxl for this cpu */ +} RISCVCPUDef; + /** * RISCVCPUClass: * @parent_realize: The parent class' realize handler. diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 54a996c2927..6e92fbb9928 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -3073,8 +3073,9 @@ static void riscv_cpu_common_class_init(ObjectClass *= c, const void *data) static void riscv_cpu_class_init(ObjectClass *c, const void *data) { RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); + const RISCVCPUDef *def =3D data; =20 - mcc->misa_mxl_max =3D (RISCVMXL)GPOINTER_TO_UINT(data); + mcc->misa_mxl_max =3D def->misa_mxl_max; riscv_cpu_validate_misa_mxl(mcc); } =20 @@ -3170,40 +3171,48 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, = char *nodename) } #endif =20 -#define DEFINE_DYNAMIC_CPU(type_name, misa_mxl_max, initfn) \ +#define DEFINE_DYNAMIC_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ .parent =3D TYPE_RISCV_DYNAMIC_CPU, \ .instance_init =3D (initfn), \ .class_init =3D riscv_cpu_class_init, \ - .class_data =3D GUINT_TO_POINTER(misa_mxl_max) \ + .class_data =3D &(const RISCVCPUDef) { \ + .misa_mxl_max =3D (misa_mxl_max_), \ + }, \ } =20 -#define DEFINE_VENDOR_CPU(type_name, misa_mxl_max, initfn) \ +#define DEFINE_VENDOR_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ .parent =3D TYPE_RISCV_VENDOR_CPU, \ .instance_init =3D (initfn), \ .class_init =3D riscv_cpu_class_init, \ - .class_data =3D GUINT_TO_POINTER(misa_mxl_max) \ + .class_data =3D &(const RISCVCPUDef) { \ + .misa_mxl_max =3D (misa_mxl_max_), \ + }, \ } =20 -#define DEFINE_BARE_CPU(type_name, misa_mxl_max, initfn) \ +#define DEFINE_BARE_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ .parent =3D TYPE_RISCV_BARE_CPU, \ .instance_init =3D (initfn), \ .class_init =3D riscv_cpu_class_init, \ - .class_data =3D GUINT_TO_POINTER(misa_mxl_max) \ + .class_data =3D &(const RISCVCPUDef) { \ + .misa_mxl_max =3D (misa_mxl_max_), \ + }, \ } =20 -#define DEFINE_PROFILE_CPU(type_name, misa_mxl_max, initfn) \ +#define DEFINE_PROFILE_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ .parent =3D TYPE_RISCV_BARE_CPU, \ .instance_init =3D (initfn), \ .class_init =3D riscv_cpu_class_init, \ - .class_data =3D GUINT_TO_POINTER(misa_mxl_max) \ + .class_data =3D &(const RISCVCPUDef) { \ + .misa_mxl_max =3D (misa_mxl_max_), \ + }, \ } =20 static const TypeInfo riscv_cpu_type_infos[] =3D { --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739387; cv=none; d=zohomail.com; s=zohoarc; b=lNMGdR51j4nbKrykulUtb2yXMNYw7EqSLb9lUaecJdZr2vCpY9XXRezpIoEMMLhd6PGJZ7RXyVX/tv/Y4zKwM7h1A2br7yb29jmP/FHV124EjFIPmcaP/34lGOIkI1vaHbNbUEuG+dMXgqZxH7bv7e9vBF2sslM50jdxkRHvBe4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739387; 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=SBN1wh4YzzbsobsYn66L3HN47kUSmOzF97Y6lN+HLpw=; b=AqLqETPO9LWswGUnx6tb53vo+mdhJZ2Ivkn4H+UL/r1KaCz0y5wTZmOVBOf04vninccSpoOlPbwEIq9IyjhDZ6tG5H+/dJRDuz7vkf5SwpelvTM3yyIkrF4SR45TDQgfN8dBLB43CbT0/3XumixeWDUZDULJ99KmzVFIQsyp2nA= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739387911265.8114404719988; Tue, 20 May 2025 04:09:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnd-0008Bo-Nb; Tue, 20 May 2025 07:06:21 -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 1uHKnX-0007lD-Oq for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:16 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnV-00039s-9Y for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:15 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-498-KAkPHDxiNt-eLv8LN-xr-w-1; Tue, 20 May 2025 07:06:11 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad55e6f09efso218859066b.3 for ; Tue, 20 May 2025 04:06:11 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d50364dsm7006487a12.32.2025.05.20.04.06.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SBN1wh4YzzbsobsYn66L3HN47kUSmOzF97Y6lN+HLpw=; b=X5LMt7I2Yebt2xk0lM+Fj15WfEPp1g2N102WThHpvA36FZASaOa8PswTJKp5GprlFhf+mK 1zNHuFoZkkYr1SleSS2pTncUbzKf7v9ECV6LL2dDXnjBIPwF2FQOFPyibBnRddqdnGNCwS VP3xxkbps8+KFVOU2zlXy8YFvbIzswE= X-MC-Unique: KAkPHDxiNt-eLv8LN-xr-w-1 X-Mimecast-MFC-AGG-ID: KAkPHDxiNt-eLv8LN-xr-w_1747739170 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739169; x=1748343969; 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=SBN1wh4YzzbsobsYn66L3HN47kUSmOzF97Y6lN+HLpw=; b=nBKyl69gye8QquhOgFjvXl46PDd9v/l/VeA9j7SnOKfWFeiKWfClKDJAfvoUcoseGJ j6GTjOpfywG6+kntSU6X7j9XjcsOAqxvzSsEUZzPCzEgFsY/BAgnMJpoIR8789k7YimC aZ8u5xqkeqnBudikHlnwsj7bvyVzRGyIbpK6aV4ekUzej4YaLcyPc4bjbA8H4POSy7Mg ffOmYPvmXEFp8BZj3i/4GmhLB0CCF774majiFOGg9UERQmRjZaMq3VTKut6Wns9SVh/k 6wLvt73ZqyEbsAy6x4QlUB1RtPbgAxFqsLFuMTK9zgMftrSLWJqcugaNwrUcNPnzBIIS JUbg== X-Gm-Message-State: AOJu0YwqPpocc63PYrE/wQyEKnPeyCReflCXucT1dzuZOfrXRNrTnH5y 3p6jW6SQEQhWLipo8GHCgBaAu2ZpL6yAIC1P//ARQj+Cp2+QHnevW9o9G8pcWlRaaplDDOcZbQi InX+aUDfU1m5ktG4UkNJL4fdva+wk8QkaV3rr7jzfe5edKg7WqtM6iHuKZNLEdpFNwM7FbkWKZI 6VzmoBKijaml631l99bFIMaVLu0oGdrLa7Uw/Tc2Im X-Gm-Gg: ASbGncs/IMaubT9NwQUyq6oRguaQdAb14v9s7wH7njU7ta4WcaJW554jnviP0kOW+Li QL2TA8GpYz1oCAiiMpXluIugMrUa/bF9lGd6+/EGKHy41GdcdIE0c/xljqyCRqiyqoVjatizoE5 iSSKWLEpJC5FynlPsz10pmk093WfkCgBHTh3eB13UCwlp1IxYOCtwBurXB24HkbSFtGqttljONb wDMU/QkeygQy4Z5U2OUUdvVDpIFcBR2Qzh1xCigAbGmo53UTu//uouRIZO+nhm6Dv+uX7WSEc3U ttPAeBzBFJWojg== X-Received: by 2002:a05:6402:3508:b0:5fc:954e:bd4f with SMTP id 4fb4d7f45d1cf-60114099a55mr14035052a12.8.1747739169081; Tue, 20 May 2025 04:06:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFJ8rGiHodLH989Tiu+ToTeHxvEiv49XDtXu2fOf0yjn0Z44RjGnyXNcskDA8TldoJLb3XS4w== X-Received: by 2002:a05:6402:3508:b0:5fc:954e:bd4f with SMTP id 4fb4d7f45d1cf-60114099a55mr14035018a12.8.1747739168592; Tue, 20 May 2025 04:06:08 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 16/35] target/riscv: store RISCVCPUDef struct directly in the class Date: Tue, 20 May 2025 13:05:11 +0200 Message-ID: <20250520110530.366202-17-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739391583116600 Content-Type: text/plain; charset="utf-8" Prepare for adding more fields to RISCVCPUDef and reading them in riscv_cpu_init: instead of storing the misa_mxl_max field in RISCVCPUClass, ensure that there's always a valid RISCVCPUDef struct and go through it. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 2 +- hw/riscv/boot.c | 2 +- target/riscv/cpu.c | 23 ++++++++++++++++++----- target/riscv/gdbstub.c | 6 +++--- target/riscv/kvm/kvm-cpu.c | 21 +++++++++------------ target/riscv/machine.c | 2 +- target/riscv/tcg/tcg-cpu.c | 10 +++++----- target/riscv/translate.c | 2 +- 8 files changed, 39 insertions(+), 29 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 9de3f716ea6..d2d4db95c17 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -554,7 +554,7 @@ struct RISCVCPUClass { =20 DeviceRealize parent_realize; ResettablePhases parent_phases; - RISCVMXL misa_mxl_max; /* max mxl for this cpu */ + RISCVCPUDef *def; }; =20 static inline int riscv_has_ext(CPURISCVState *env, target_ulong ext) diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index 765b9e2b1ab..828a867be39 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -37,7 +37,7 @@ bool riscv_is_32bit(RISCVHartArrayState *harts) { RISCVCPUClass *mcc =3D RISCV_CPU_GET_CLASS(&harts->harts[0]); - return mcc->misa_mxl_max =3D=3D MXL_RV32; + return mcc->def->misa_mxl_max =3D=3D MXL_RV32; } =20 /* diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 6e92fbb9928..22e3a2211ed 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -356,7 +356,7 @@ void riscv_cpu_set_misa_ext(CPURISCVState *env, uint32_= t ext) =20 int riscv_cpu_max_xlen(RISCVCPUClass *mcc) { - return 16 << mcc->misa_mxl_max; + return 16 << mcc->def->misa_mxl_max; } =20 #ifndef CONFIG_USER_ONLY @@ -1047,7 +1047,7 @@ static void riscv_cpu_reset_hold(Object *obj, ResetTy= pe type) mcc->parent_phases.hold(obj, type); } #ifndef CONFIG_USER_ONLY - env->misa_mxl =3D mcc->misa_mxl_max; + env->misa_mxl =3D mcc->def->misa_mxl_max; env->priv =3D PRV_M; env->mstatus &=3D ~(MSTATUS_MIE | MSTATUS_MPRV); if (env->misa_mxl > MXL_RV32) { @@ -1449,7 +1449,7 @@ static void riscv_cpu_init(Object *obj) RISCVCPU *cpu =3D RISCV_CPU(obj); CPURISCVState *env =3D &cpu->env; =20 - env->misa_mxl =3D mcc->misa_mxl_max; + env->misa_mxl =3D mcc->def->misa_mxl_max; =20 #ifndef CONFIG_USER_ONLY qdev_init_gpio_in(DEVICE(obj), riscv_cpu_set_irq, @@ -1543,7 +1543,7 @@ static void riscv_cpu_validate_misa_mxl(RISCVCPUClass= *mcc) CPUClass *cc =3D CPU_CLASS(mcc); =20 /* Validate that MISA_MXL is set properly. */ - switch (mcc->misa_mxl_max) { + switch (mcc->def->misa_mxl_max) { #ifdef TARGET_RISCV64 case MXL_RV64: case MXL_RV128: @@ -3070,12 +3070,24 @@ static void riscv_cpu_common_class_init(ObjectClass= *c, const void *data) device_class_set_props(dc, riscv_cpu_properties); } =20 +static void riscv_cpu_class_base_init(ObjectClass *c, const void *data) +{ + RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); + RISCVCPUClass *pcc =3D RISCV_CPU_CLASS(object_class_get_parent(c)); + + if (pcc->def) { + mcc->def =3D g_memdup2(pcc->def, sizeof(*pcc->def)); + } else { + mcc->def =3D g_new0(RISCVCPUDef, 1); + } +} + static void riscv_cpu_class_init(ObjectClass *c, const void *data) { RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); const RISCVCPUDef *def =3D data; =20 - mcc->misa_mxl_max =3D def->misa_mxl_max; + mcc->def->misa_mxl_max =3D def->misa_mxl_max; riscv_cpu_validate_misa_mxl(mcc); } =20 @@ -3226,6 +3238,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .abstract =3D true, .class_size =3D sizeof(RISCVCPUClass), .class_init =3D riscv_cpu_common_class_init, + .class_base_init =3D riscv_cpu_class_base_init, }, { .name =3D TYPE_RISCV_DYNAMIC_CPU, diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index 18e88f416af..1934f919c01 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -62,7 +62,7 @@ int riscv_cpu_gdb_read_register(CPUState *cs, GByteArray = *mem_buf, int n) return 0; } =20 - switch (mcc->misa_mxl_max) { + switch (mcc->def->misa_mxl_max) { case MXL_RV32: return gdb_get_reg32(mem_buf, tmp); case MXL_RV64: @@ -82,7 +82,7 @@ int riscv_cpu_gdb_write_register(CPUState *cs, uint8_t *m= em_buf, int n) int length =3D 0; target_ulong tmp; =20 - switch (mcc->misa_mxl_max) { + switch (mcc->def->misa_mxl_max) { case MXL_RV32: tmp =3D (int32_t)ldl_p(mem_buf); length =3D 4; @@ -359,7 +359,7 @@ void riscv_cpu_register_gdb_regs_for_features(CPUState = *cs) ricsv_gen_dynamic_vector_feature(cs, cs->= gdb_num_regs), 0); } - switch (mcc->misa_mxl_max) { + switch (mcc->def->misa_mxl_max) { case MXL_RV32: gdb_register_coprocessor(cs, riscv_gdb_get_virtual, riscv_gdb_set_virtual, diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index 82f97286360..e77f612af35 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -2086,22 +2086,19 @@ static void kvm_cpu_accel_register_types(void) } type_init(kvm_cpu_accel_register_types); =20 -static void riscv_host_cpu_class_init(ObjectClass *c, const void *data) -{ - RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); - -#if defined(TARGET_RISCV32) - mcc->misa_mxl_max =3D MXL_RV32; -#elif defined(TARGET_RISCV64) - mcc->misa_mxl_max =3D MXL_RV64; -#endif -} - static const TypeInfo riscv_kvm_cpu_type_infos[] =3D { { .name =3D TYPE_RISCV_CPU_HOST, .parent =3D TYPE_RISCV_CPU, - .class_init =3D riscv_host_cpu_class_init, +#if defined(TARGET_RISCV32) + .class_data =3D &(const RISCVCPUDef) { + .misa_mxl_max =3D MXL_RV32, + }, +#elif defined(TARGET_RISCV64) + .class_data =3D &(const RISCVCPUDef) { + .misa_mxl_max =3D MXL_RV64, + }, +#endif } }; =20 diff --git a/target/riscv/machine.c b/target/riscv/machine.c index a1f70cc9556..c97e9ce9df1 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -170,7 +170,7 @@ static bool rv128_needed(void *opaque) { RISCVCPUClass *mcc =3D RISCV_CPU_GET_CLASS(opaque); =20 - return mcc->misa_mxl_max =3D=3D MXL_RV128; + return mcc->def->misa_mxl_max =3D=3D MXL_RV128; } =20 static const VMStateDescription vmstate_rv128 =3D { diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c index ab8659f3044..305912b8dd3 100644 --- a/target/riscv/tcg/tcg-cpu.c +++ b/target/riscv/tcg/tcg-cpu.c @@ -691,7 +691,7 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, E= rror **errp) return; } =20 - if (mcc->misa_mxl_max !=3D MXL_RV32 && cpu->cfg.ext_zcf) { + if (mcc->def->misa_mxl_max !=3D MXL_RV32 && cpu->cfg.ext_zcf) { error_setg(errp, "Zcf extension is only relevant to RV32"); return; } @@ -788,7 +788,7 @@ void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, E= rror **errp) return; } =20 - if (mcc->misa_mxl_max =3D=3D MXL_RV32 && cpu->cfg.ext_svukte) { + if (mcc->def->misa_mxl_max =3D=3D MXL_RV32 && cpu->cfg.ext_svukte) { error_setg(errp, "svukte is not supported for RV32"); return; } @@ -1026,7 +1026,7 @@ static void cpu_enable_zc_implied_rules(RISCVCPU *cpu) cpu_cfg_ext_auto_update(cpu, CPU_CFG_OFFSET(ext_zcmp), true); cpu_cfg_ext_auto_update(cpu, CPU_CFG_OFFSET(ext_zcmt), true); =20 - if (riscv_has_ext(env, RVF) && mcc->misa_mxl_max =3D=3D MXL_RV32) { + if (riscv_has_ext(env, RVF) && mcc->def->misa_mxl_max =3D=3D MXL_R= V32) { cpu_cfg_ext_auto_update(cpu, CPU_CFG_OFFSET(ext_zcf), true); } } @@ -1035,7 +1035,7 @@ static void cpu_enable_zc_implied_rules(RISCVCPU *cpu) if (riscv_has_ext(env, RVC) && env->priv_ver >=3D PRIV_VERSION_1_12_0)= { cpu_cfg_ext_auto_update(cpu, CPU_CFG_OFFSET(ext_zca), true); =20 - if (riscv_has_ext(env, RVF) && mcc->misa_mxl_max =3D=3D MXL_RV32) { + if (riscv_has_ext(env, RVF) && mcc->def->misa_mxl_max =3D=3D MXL_R= V32) { cpu_cfg_ext_auto_update(cpu, CPU_CFG_OFFSET(ext_zcf), true); } =20 @@ -1161,7 +1161,7 @@ static bool riscv_tcg_cpu_realize(CPUState *cs, Error= **errp) #ifndef CONFIG_USER_ONLY RISCVCPUClass *mcc =3D RISCV_CPU_GET_CLASS(cpu); =20 - if (mcc->misa_mxl_max >=3D MXL_RV128 && qemu_tcg_mttcg_enabled()) { + if (mcc->def->misa_mxl_max >=3D MXL_RV128 && qemu_tcg_mttcg_enabled())= { /* Missing 128-bit aligned atomics */ error_setg(errp, "128-bit RISC-V currently does not work with Multi " diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 0d4f7d601c9..d7a6de02df5 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1276,7 +1276,7 @@ static void riscv_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cs) ctx->cfg_vta_all_1s =3D cpu->cfg.rvv_ta_all_1s; ctx->vstart_eq_zero =3D FIELD_EX32(tb_flags, TB_FLAGS, VSTART_EQ_ZERO); ctx->vl_eq_vlmax =3D FIELD_EX32(tb_flags, TB_FLAGS, VL_EQ_VLMAX); - ctx->misa_mxl_max =3D mcc->misa_mxl_max; + ctx->misa_mxl_max =3D mcc->def->misa_mxl_max; ctx->xl =3D FIELD_EX32(tb_flags, TB_FLAGS, XL); ctx->address_xl =3D FIELD_EX32(tb_flags, TB_FLAGS, AXL); ctx->cs =3D cs; --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739375; cv=none; d=zohomail.com; s=zohoarc; b=lun8BtT3xzdHuPZD2rCPLe9ia4R8WX8UbnuRZp5ZO6vFhI/ofSc1vFtnD5mgeyuhQv5wlwJOn/xh2EHpkna9Z/1rahatRWSx+YHW0qGy44lteMsYFHqL1sOlSqB8jKARv/KWFy3/jwcWVbupgvGMOQU7ORPx8+7EF5UbMs9MqJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739375; 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=L/ldiH4Ix3h0scGsDf0SMs7uYHu1Qxq4H72fOj8bd+g=; b=K+1qXzlMJJF4eViXkFKtm+G1rEbkfbUnzONw8AKGKdZVPSpgbzL5fh9nOCROGPTPMkX1Beg9poynGB7Oi56WCp0aaDoCwwmMOt/xPb0NtHbRAzNirFLnrzPSqVVKoyIZezg4oKAqLZcB15WHd80NGjuMSW2bV1f8UejmK5JgI2o= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739375649592.775165769041; Tue, 20 May 2025 04:09:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnf-0008GQ-Cs; Tue, 20 May 2025 07:06:23 -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 1uHKnZ-0007sQ-5E for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:17 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnX-0003AR-GI for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:16 -0400 Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-246-KNY7uK4RNEqi-lUtFmMY6Q-1; Tue, 20 May 2025 07:06:13 -0400 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-ad56222a1easo207997566b.1 for ; Tue, 20 May 2025 04:06:13 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d502719sm7066215a12.26.2025.05.20.04.06.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739174; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=L/ldiH4Ix3h0scGsDf0SMs7uYHu1Qxq4H72fOj8bd+g=; b=cWdryemq5uNXDkxIQwyVC1Hyue9p5AKacu4JMuQjCpFldDC30HRnGA70E2UxBYw+Ml1XsP fj8tB9duVACYTmJfveN9RNZqMBeVNPMKXrdLVRrzMwhWH5uK4lMKtXdhZwTEhoFnw0B5EX v34Q2aeyFwGKYNRGZ4c3PNH0DxwvynA= X-MC-Unique: KNY7uK4RNEqi-lUtFmMY6Q-1 X-Mimecast-MFC-AGG-ID: KNY7uK4RNEqi-lUtFmMY6Q_1747739172 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739170; x=1748343970; 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=L/ldiH4Ix3h0scGsDf0SMs7uYHu1Qxq4H72fOj8bd+g=; b=JIX7QipKPc8Q4H5RmvNyjDunsf9Cp8y7I4njWXCWJu1o9jjoALCF26aNMjSRC9JmF2 jg1byOGGepWFsnbwSGp2HfATSo8FzklNt//tanOMIaesLV0JZUQV/gMAUiHGkfW95tWb jmpIlY9NmYM76nnZkfM5G1x8FpHhJgcT1wmcFmXiFtHDOV2l1qt1jwArmNH+lHxKDx8w Hpl8M+S65Qmmql609CPlv3o3UxAtEvLZYXlZ2LNvStiW069NpV5FL5CGK+QTqmYCxWEx OFYi326cdwsDegW1OD9P3l2XTuu25Csp8jgtMqf7As4diakOw7q7P/vSUzqp5oEsjsoW si7g== X-Gm-Message-State: AOJu0Yw5VnfVzA8oXD4uSNvW0exwcGlzd9J5miC1sDyPzR5DbcO4/yFd d/WxkUYfaqwN5c7z/AO81eieG+07sN9+x3G9tLy08vCTwX32Zt1PE1bWZasCNOJWTDSCO23LEhi KdiV2YV1gQxZjxZK/tOKWxsifJkccDsV1JyTqL1fKRH2MjkYtZQpOLeBCzkyGHk9G6pwKGBKNdN LJQNGM56Zjq0Bb4/BffXOYH/Pr1bvi9R33tgi/JefF X-Gm-Gg: ASbGncsnZIurwKeIutNNlX6o/+Gvqb04t6TeP3W31qnVuHZcr3mggea5umCJcJFkIzs xk1KIkukhgmNusadCzKMsG/t+XJFKnKlbSLovrj+q9jVuq4ARqDa5T4oy1CheH+WDgVqNA4pGIy q95jb6kVV44qxgAu3gmIRsdW6hFf51ynRIKSMTI1aeN77ttkapL1oCNSGpFC8KyoJdChp7jqpLH 7EPWH7FAUG0pI71NVFPM9ik+ISaY0A4Xzy+E78zvC0iGl9oE5F+e3+JXyO1kn3qgIWxAAcBg24n 1ay1oECGqcekjg== X-Received: by 2002:a17:907:72c3:b0:ad2:50ef:492e with SMTP id a640c23a62f3a-ad52d516e6dmr1549045566b.32.1747739170224; Tue, 20 May 2025 04:06:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHe2A2TpgzusI7mi0e703MG8AWPuYSrtqchHZP33f/3QPsf0MTzpBjUi1KtyWAtpXcUVW0S2g== X-Received: by 2002:a17:907:72c3:b0:ad2:50ef:492e with SMTP id a640c23a62f3a-ad52d516e6dmr1549042366b.32.1747739169801; Tue, 20 May 2025 04:06:09 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 17/35] target/riscv: merge riscv_cpu_class_init with the class_base function Date: Tue, 20 May 2025 13:05:12 +0200 Message-ID: <20250520110530.366202-18-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739377186116600 Content-Type: text/plain; charset="utf-8" Since all TYPE_RISCV_CPU subclasses support a class_data of type RISCVCPUDef, process it even before calling the .class_init function for the subclasses. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 22e3a2211ed..334791eebdf 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -3080,15 +3080,18 @@ static void riscv_cpu_class_base_init(ObjectClass *= c, const void *data) } else { mcc->def =3D g_new0(RISCVCPUDef, 1); } -} =20 -static void riscv_cpu_class_init(ObjectClass *c, const void *data) -{ - RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); - const RISCVCPUDef *def =3D data; + if (data) { + const RISCVCPUDef *def =3D data; + if (def->misa_mxl_max) { + assert(def->misa_mxl_max <=3D MXL_RV128); + mcc->def->misa_mxl_max =3D def->misa_mxl_max; + } + } =20 - mcc->def->misa_mxl_max =3D def->misa_mxl_max; - riscv_cpu_validate_misa_mxl(mcc); + if (!object_class_is_abstract(c)) { + riscv_cpu_validate_misa_mxl(mcc); + } } =20 static void riscv_isa_string_ext(RISCVCPU *cpu, char **isa_str, @@ -3188,7 +3191,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .name =3D (type_name), \ .parent =3D TYPE_RISCV_DYNAMIC_CPU, \ .instance_init =3D (initfn), \ - .class_init =3D riscv_cpu_class_init, \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ }, \ @@ -3199,7 +3201,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .name =3D (type_name), \ .parent =3D TYPE_RISCV_VENDOR_CPU, \ .instance_init =3D (initfn), \ - .class_init =3D riscv_cpu_class_init, \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ }, \ @@ -3210,7 +3211,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .name =3D (type_name), \ .parent =3D TYPE_RISCV_BARE_CPU, \ .instance_init =3D (initfn), \ - .class_init =3D riscv_cpu_class_init, \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ }, \ @@ -3221,7 +3221,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .name =3D (type_name), \ .parent =3D TYPE_RISCV_BARE_CPU, \ .instance_init =3D (initfn), \ - .class_init =3D riscv_cpu_class_init, \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ }, \ --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747741077; cv=none; d=zohomail.com; s=zohoarc; b=BzaEoVXOJJhY7hLEKkrd8SRO1Un2MCVgvjFYaxH1rDBe3VIkxtxA0vUOCThGpSuml0hjD19h0dPIUURpnZ0Vjm1lotL3E9mQOJMEtKs11wxps56r2WlOSaa/q1LxMQHteDaHbIbe3nWIfimMVlIuJ71h20m50exVa9pKD/ywdm8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741077; 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=QMXo66W8Fv+oEZ1N8r8N0cJj++ferTBKf7av3RQbUiw=; b=Y3tY4qAe2k8e+tjWukQwUCKkFfiLwOgAdDnAFJHdPNR8wwCIfbI39TNgLb5EYGLCrLp+qQxw2lZ4+41QbLDhiDaEGOm1vu5sXMdYoVE0PWEYbJI/tvyLY3m45C5pEnACFqaH1y+JCYz8Z1Ccx76aqzPAHLpIEuMVz7XATigAM4g= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747741077698644.8221663714216; Tue, 20 May 2025 04:37:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnn-0000Pj-PW; Tue, 20 May 2025 07:06: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 1uHKnc-0008Aj-PN for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKna-0003Bt-Dm for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:20 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-617-9HWqrR5gOd-qZUh5h_OGTA-1; Tue, 20 May 2025 07:06:16 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-601f87bb9c8so1296072a12.2 for ; Tue, 20 May 2025 04:06:15 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-602047c4b73sm1174355a12.10.2025.05.20.04.06.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739177; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QMXo66W8Fv+oEZ1N8r8N0cJj++ferTBKf7av3RQbUiw=; b=W913THDG8zcAkkamy4MWp/SGJqWWbMnqqsCfX+h3ShEAPAqHN/rpwxCTpNj9tlrGluerlg dSOBTgO2kVpUFXtvO2Knzgo7cKCfBLWoMphompGihHOZVhh5r5qkGS6vhjWoMQEPy1QhNA scgmDfvPr/6NSdPTObs0pbhacKAeCOU= X-MC-Unique: 9HWqrR5gOd-qZUh5h_OGTA-1 X-Mimecast-MFC-AGG-ID: 9HWqrR5gOd-qZUh5h_OGTA_1747739175 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739174; x=1748343974; 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=QMXo66W8Fv+oEZ1N8r8N0cJj++ferTBKf7av3RQbUiw=; b=ZYdb3G76KUMoLSuQ62njJ+0H3WFlyIs88RqCey3EQd1Rr7ymbRXaetbuIRF9HD/y3Z 1djNPGrHbxDBaeSoStoKF2ftEAXty72jQQLZEOIIEY+XxYL0BhJtMSPVPb9h/Evbi3Hs 8DYTzt8p9gsmxqYTnJGAX7MEt1lS6MCF56MYvZ2e7tfZFNLw0NoTZhH9M6Bv3ABDYnyo yUmiiaTWM5Om0coOSu+mSjCrQDbw2aJbRInK9PWGuOLL015JmBAC9OeRA1YZBTsrBate LsFaYE+Jf1fTxAwryaeS2Sa8X6Q1qu1FFvVwFb9yU4MIN3czbtFXetvFYMVAADbAiaed st3A== X-Gm-Message-State: AOJu0YwRHEK7e1j1mk5gkynjtsjifgcOGmP2dfMt3yLu5i8fCDVdpSTZ ntTq8DKmTw7ZR9eWeeQlb/kQrV1zx20QZI5HCWGjX6NxoTvSdWfke/QApXtUh/NXaHLcoz2HWHr DfE6FQdxmR19IkTmbkYhIQ9fTsKnc2TpER1EON7J2Ub+mg6Bk/lC8O4W8xvrMc6ol+DwJz7qzJF r7EyTjiQPsBfuZa/YyM3vcfV0MGEKItEMlEqikhn1/ X-Gm-Gg: ASbGnctd88ULaoMFC/pYiHgDxthdtuN+rkkR3JQd/p5xbtsA5H5O6zRvxo5WxuJIpV2 NIoU8MjKEDzGREdUkEIJYaueET22QqoyhY21VyUuTdpaYZj6iHSE5WRTDrWR6YtMl2SFQohv3kR YdjyPL45+DQ+li97jFkr9IkTZvS85Ev5xz/jT0u6+ewWSagYK7Q8K33m3giP4s1pvNfjE+zmSAy hivj/OCEtZmJhhkXhbvYstD8lr4P3EJ3rZVhr97yRAGecj8t0ry/dK/dt6IEuzJXVhpflF4LWwP muEIZL+0rVLMng== X-Received: by 2002:a05:6402:4311:b0:602:a0:1f43 with SMTP id 4fb4d7f45d1cf-60200a02ce3mr3493746a12.9.1747739173900; Tue, 20 May 2025 04:06:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEEFh7BnA3AbkaWmDbCyTdAqcoxhi0agEZ0us/DcttUyCVU6V1zzcNRpxTFTTLB/0yOHsSGGw== X-Received: by 2002:a05:6402:4311:b0:602:a0:1f43 with SMTP id 4fb4d7f45d1cf-60200a02ce3mr3493707a12.9.1747739173400; Tue, 20 May 2025 04:06:13 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 18/35] target/riscv: move RISCVCPUConfig fields to a header file Date: Tue, 20 May 2025 13:05:13 +0200 Message-ID: <20250520110530.366202-19-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747741081387116600 Content-Type: text/plain; charset="utf-8" To support merging a subclass's RISCVCPUDef into the superclass, a list of all the CPU features is needed. Put them into a header file that can be included multiple times, expanding the macros BOOL_FIELD and TYPE_FIELD to different operations. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu_cfg.h | 163 +--------------------------- target/riscv/cpu_cfg_fields.h.inc | 170 ++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+), 160 deletions(-) create mode 100644 target/riscv/cpu_cfg_fields.h.inc diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index 8fa73c8a07d..e9bf75730a6 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -22,166 +22,9 @@ #define RISCV_CPU_CFG_H =20 struct RISCVCPUConfig { - bool ext_zba; - bool ext_zbb; - bool ext_zbc; - bool ext_zbkb; - bool ext_zbkc; - bool ext_zbkx; - bool ext_zbs; - bool ext_zca; - bool ext_zcb; - bool ext_zcd; - bool ext_zce; - bool ext_zcf; - bool ext_zcmp; - bool ext_zcmt; - bool ext_zk; - bool ext_zkn; - bool ext_zknd; - bool ext_zkne; - bool ext_zknh; - bool ext_zkr; - bool ext_zks; - bool ext_zksed; - bool ext_zksh; - bool ext_zkt; - bool ext_zifencei; - bool ext_zicntr; - bool ext_zicsr; - bool ext_zicbom; - bool ext_zicbop; - bool ext_zicboz; - bool ext_zicfilp; - bool ext_zicfiss; - bool ext_zicond; - bool ext_zihintntl; - bool ext_zihintpause; - bool ext_zihpm; - bool ext_zimop; - bool ext_zcmop; - bool ext_ztso; - bool ext_smstateen; - bool ext_sstc; - bool ext_smcdeleg; - bool ext_ssccfg; - bool ext_smcntrpmf; - bool ext_smcsrind; - bool ext_sscsrind; - bool ext_ssdbltrp; - bool ext_smdbltrp; - bool ext_svadu; - bool ext_svinval; - bool ext_svnapot; - bool ext_svpbmt; - bool ext_svvptc; - bool ext_svukte; - bool ext_zdinx; - bool ext_zaamo; - bool ext_zacas; - bool ext_zama16b; - bool ext_zabha; - bool ext_zalrsc; - bool ext_zawrs; - bool ext_zfa; - bool ext_zfbfmin; - bool ext_zfh; - bool ext_zfhmin; - bool ext_zfinx; - bool ext_zhinx; - bool ext_zhinxmin; - bool ext_zve32f; - bool ext_zve32x; - bool ext_zve64f; - bool ext_zve64d; - bool ext_zve64x; - bool ext_zvbb; - bool ext_zvbc; - bool ext_zvkb; - bool ext_zvkg; - bool ext_zvkned; - bool ext_zvknha; - bool ext_zvknhb; - bool ext_zvksed; - bool ext_zvksh; - bool ext_zvkt; - bool ext_zvkn; - bool ext_zvknc; - bool ext_zvkng; - bool ext_zvks; - bool ext_zvksc; - bool ext_zvksg; - bool ext_zmmul; - bool ext_zvfbfmin; - bool ext_zvfbfwma; - bool ext_zvfh; - bool ext_zvfhmin; - bool ext_smaia; - bool ext_ssaia; - bool ext_smctr; - bool ext_ssctr; - bool ext_sscofpmf; - bool ext_smepmp; - bool ext_smrnmi; - bool ext_ssnpm; - bool ext_smnpm; - bool ext_smmpm; - bool ext_sspm; - bool ext_supm; - bool rvv_ta_all_1s; - bool rvv_ma_all_1s; - bool rvv_vl_half_avl; - - uint32_t mvendorid; - uint64_t marchid; - uint64_t mimpid; - - /* Named features */ - bool ext_svade; - bool ext_zic64b; - bool ext_ssstateen; - bool ext_sha; - - /* - * Always 'true' booleans for named features - * TCG always implement/can't be user disabled, - * based on spec version. - */ - bool has_priv_1_13; - bool has_priv_1_12; - bool has_priv_1_11; - - /* Always enabled for TCG if has_priv_1_11 */ - bool ext_ziccrse; - - /* Vendor-specific custom extensions */ - bool ext_xtheadba; - bool ext_xtheadbb; - bool ext_xtheadbs; - bool ext_xtheadcmo; - bool ext_xtheadcondmov; - bool ext_xtheadfmemidx; - bool ext_xtheadfmv; - bool ext_xtheadmac; - bool ext_xtheadmemidx; - bool ext_xtheadmempair; - bool ext_xtheadsync; - bool ext_XVentanaCondOps; - - uint32_t pmu_mask; - uint16_t vlenb; - uint16_t elen; - uint16_t cbom_blocksize; - uint16_t cbop_blocksize; - uint16_t cboz_blocksize; - bool mmu; - bool pmp; - bool debug; - bool misa_w; - - bool short_isa_string; - - int8_t max_satp_mode; +#define BOOL_FIELD(x) bool x; +#define TYPED_FIELD(type, x) type x; +#include "cpu_cfg_fields.h.inc" }; =20 typedef struct RISCVCPUConfig RISCVCPUConfig; diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc new file mode 100644 index 00000000000..cb86bfc5dc3 --- /dev/null +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -0,0 +1,170 @@ +/* + * Required definitions before including this file: + * + * #define BOOL_FIELD(x) + * #define TYPED_FIELD(type, x) + */ + +BOOL_FIELD(ext_zba) +BOOL_FIELD(ext_zbb) +BOOL_FIELD(ext_zbc) +BOOL_FIELD(ext_zbkb) +BOOL_FIELD(ext_zbkc) +BOOL_FIELD(ext_zbkx) +BOOL_FIELD(ext_zbs) +BOOL_FIELD(ext_zca) +BOOL_FIELD(ext_zcb) +BOOL_FIELD(ext_zcd) +BOOL_FIELD(ext_zce) +BOOL_FIELD(ext_zcf) +BOOL_FIELD(ext_zcmp) +BOOL_FIELD(ext_zcmt) +BOOL_FIELD(ext_zk) +BOOL_FIELD(ext_zkn) +BOOL_FIELD(ext_zknd) +BOOL_FIELD(ext_zkne) +BOOL_FIELD(ext_zknh) +BOOL_FIELD(ext_zkr) +BOOL_FIELD(ext_zks) +BOOL_FIELD(ext_zksed) +BOOL_FIELD(ext_zksh) +BOOL_FIELD(ext_zkt) +BOOL_FIELD(ext_zifencei) +BOOL_FIELD(ext_zicntr) +BOOL_FIELD(ext_zicsr) +BOOL_FIELD(ext_zicbom) +BOOL_FIELD(ext_zicbop) +BOOL_FIELD(ext_zicboz) +BOOL_FIELD(ext_zicfilp) +BOOL_FIELD(ext_zicfiss) +BOOL_FIELD(ext_zicond) +BOOL_FIELD(ext_zihintntl) +BOOL_FIELD(ext_zihintpause) +BOOL_FIELD(ext_zihpm) +BOOL_FIELD(ext_zimop) +BOOL_FIELD(ext_zcmop) +BOOL_FIELD(ext_ztso) +BOOL_FIELD(ext_smstateen) +BOOL_FIELD(ext_sstc) +BOOL_FIELD(ext_smcdeleg) +BOOL_FIELD(ext_ssccfg) +BOOL_FIELD(ext_smcntrpmf) +BOOL_FIELD(ext_smcsrind) +BOOL_FIELD(ext_sscsrind) +BOOL_FIELD(ext_ssdbltrp) +BOOL_FIELD(ext_smdbltrp) +BOOL_FIELD(ext_svadu) +BOOL_FIELD(ext_svinval) +BOOL_FIELD(ext_svnapot) +BOOL_FIELD(ext_svpbmt) +BOOL_FIELD(ext_svvptc) +BOOL_FIELD(ext_svukte) +BOOL_FIELD(ext_zdinx) +BOOL_FIELD(ext_zaamo) +BOOL_FIELD(ext_zacas) +BOOL_FIELD(ext_zama16b) +BOOL_FIELD(ext_zabha) +BOOL_FIELD(ext_zalrsc) +BOOL_FIELD(ext_zawrs) +BOOL_FIELD(ext_zfa) +BOOL_FIELD(ext_zfbfmin) +BOOL_FIELD(ext_zfh) +BOOL_FIELD(ext_zfhmin) +BOOL_FIELD(ext_zfinx) +BOOL_FIELD(ext_zhinx) +BOOL_FIELD(ext_zhinxmin) +BOOL_FIELD(ext_zve32f) +BOOL_FIELD(ext_zve32x) +BOOL_FIELD(ext_zve64f) +BOOL_FIELD(ext_zve64d) +BOOL_FIELD(ext_zve64x) +BOOL_FIELD(ext_zvbb) +BOOL_FIELD(ext_zvbc) +BOOL_FIELD(ext_zvkb) +BOOL_FIELD(ext_zvkg) +BOOL_FIELD(ext_zvkned) +BOOL_FIELD(ext_zvknha) +BOOL_FIELD(ext_zvknhb) +BOOL_FIELD(ext_zvksed) +BOOL_FIELD(ext_zvksh) +BOOL_FIELD(ext_zvkt) +BOOL_FIELD(ext_zvkn) +BOOL_FIELD(ext_zvknc) +BOOL_FIELD(ext_zvkng) +BOOL_FIELD(ext_zvks) +BOOL_FIELD(ext_zvksc) +BOOL_FIELD(ext_zvksg) +BOOL_FIELD(ext_zmmul) +BOOL_FIELD(ext_zvfbfmin) +BOOL_FIELD(ext_zvfbfwma) +BOOL_FIELD(ext_zvfh) +BOOL_FIELD(ext_zvfhmin) +BOOL_FIELD(ext_smaia) +BOOL_FIELD(ext_ssaia) +BOOL_FIELD(ext_smctr) +BOOL_FIELD(ext_ssctr) +BOOL_FIELD(ext_sscofpmf) +BOOL_FIELD(ext_smepmp) +BOOL_FIELD(ext_smrnmi) +BOOL_FIELD(ext_ssnpm) +BOOL_FIELD(ext_smnpm) +BOOL_FIELD(ext_smmpm) +BOOL_FIELD(ext_sspm) +BOOL_FIELD(ext_supm) +BOOL_FIELD(rvv_ta_all_1s) +BOOL_FIELD(rvv_ma_all_1s) +BOOL_FIELD(rvv_vl_half_avl) +/* Named features */ +BOOL_FIELD(ext_svade) +BOOL_FIELD(ext_zic64b) +BOOL_FIELD(ext_ssstateen) +BOOL_FIELD(ext_sha) + +/* + * Always 'true' booleans for named features + * TCG always implement/can't be user disabled, + * based on spec version. + */ +BOOL_FIELD(has_priv_1_13) +BOOL_FIELD(has_priv_1_12) +BOOL_FIELD(has_priv_1_11) + +/* Always enabled for TCG if has_priv_1_11 */ +BOOL_FIELD(ext_ziccrse) + +/* Vendor-specific custom extensions */ +BOOL_FIELD(ext_xtheadba) +BOOL_FIELD(ext_xtheadbb) +BOOL_FIELD(ext_xtheadbs) +BOOL_FIELD(ext_xtheadcmo) +BOOL_FIELD(ext_xtheadcondmov) +BOOL_FIELD(ext_xtheadfmemidx) +BOOL_FIELD(ext_xtheadfmv) +BOOL_FIELD(ext_xtheadmac) +BOOL_FIELD(ext_xtheadmemidx) +BOOL_FIELD(ext_xtheadmempair) +BOOL_FIELD(ext_xtheadsync) +BOOL_FIELD(ext_XVentanaCondOps) + +BOOL_FIELD(mmu) +BOOL_FIELD(pmp) +BOOL_FIELD(debug) +BOOL_FIELD(misa_w) + +BOOL_FIELD(short_isa_string) + +TYPED_FIELD(uint32_t, mvendorid) +TYPED_FIELD(uint64_t, marchid) +TYPED_FIELD(uint64_t, mimpid) + +TYPED_FIELD(uint32_t, pmu_mask) +TYPED_FIELD(uint16_t, vlenb) +TYPED_FIELD(uint16_t, elen) +TYPED_FIELD(uint16_t, cbom_blocksize) +TYPED_FIELD(uint16_t, cbop_blocksize) +TYPED_FIELD(uint16_t, cboz_blocksize) + +TYPED_FIELD(int8_t, max_satp_mode) + +#undef BOOL_FIELD +#undef TYPED_FIELD --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747741018; cv=none; d=zohomail.com; s=zohoarc; b=UoYB1eXLt8hlXrbVPPX0+IXknD5fIcW2/zvEFywMzpFGZ6w+vVvVwy6IkADKrbuN4B7/cWdeyG8XreEE1RFz4B/HIVHd5LDPzBMKl6ta7XO8cYAcmaa2APVFuToj9B2OvKSLJL2vLiNffxz7KsjERcBm48q0M4xe+KQsp0tH24Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741018; 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=SBicW1h0/r2veCX2mitXgZUVrMQigI9U0cjfaTeztOQ=; b=LSvcIv0C/E5A1pTlqNH1VvmWoqDfG+ClgvMU8/+6NeYvE8gef/XBDb/avGYcXNJdCH0bhfDXDSq1sw2aMJFgTgF4yXXCTK4JaMreRAhZQzpkkZ8d/aZs8PdZU/Th4boxaTdJE9VZWJNc04Bhozhbk+Jk1f5SPvz5dWfXcAcTmtA= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174774101829812.802334340237849; Tue, 20 May 2025 04:36:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnj-0008PU-4q; Tue, 20 May 2025 07:06:27 -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 1uHKnd-0008Cy-Mk for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:21 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnc-0003Cv-1y for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:21 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-426-Y7a54K0HOvapuN63oh5xpA-1; Tue, 20 May 2025 07:06:18 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-acb94dbd01fso546557966b.1 for ; Tue, 20 May 2025 04:06:18 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4908cesm717662466b.132.2025.05.20.04.06.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SBicW1h0/r2veCX2mitXgZUVrMQigI9U0cjfaTeztOQ=; b=TumAT8pHjBrF5mqtCcH973ipZMMMznhsso0ZQ5EoZMFcSMv69FcUqhg0sabC24AdPqEfec 8hiJZqh/iSUb9cYY57a6fSpdLxvxAZ9FfZ4ai9kXa5PDcy75Z26wF72cAVjlnPsoCJ3/3g O5Brarzb71NYtBAIkIJc05lB8vEzt58= X-MC-Unique: Y7a54K0HOvapuN63oh5xpA-1 X-Mimecast-MFC-AGG-ID: Y7a54K0HOvapuN63oh5xpA_1747739177 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739176; x=1748343976; 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=SBicW1h0/r2veCX2mitXgZUVrMQigI9U0cjfaTeztOQ=; b=Jdp2qpdl5T0gD+YfV2GAO1RFSP1YsRCIyd9o88PnftWCWW1E5nhspyhyWpmKdcv4aF T6cJpsyXhbQOB81tmO9/MSeUWdkb6QSsWAWZtU+6yXaawgvBZCt2oZ5Qt/utt8ZOppJ1 F52fYNTsLfZfT091sztcKwNMSU6zTyJ9zCdEp6Dwk5n71rSWifQjkXxj5wMql1s6Neeg fHQ1gBMDonNSv+DTEIEwSWvQAcsRxF9UjvksTzBMsOPkGEFMRP0Z5qh+X+3mC7Iiq08L CRkK0UdKAyp0mFshmuiu1gM3CHpMMa4dsddrF2+NGGVDjzQx9MQXXAh11uMxr+HNckpm o5Aw== X-Gm-Message-State: AOJu0YzSWfIK/bp6ZpbEuPTa3bBrjht5bfWcWpejSVS00M+FrR3L2Zjq JkEV7Kv/1lw8Usk+NP8biEy/5k0rUWBM+QBor5dmSk3+76MrK3vLj7J7B/Ue4sxx89gmrOtFW+8 dWhaZ4Ux+/hjwhXTEAOeadAQFVm0nORUjpRMF2VxQXCZVHpk5OUVYfbxSYvmXhRCLLBD9tI8ZCJ llzQUwcuKOHK1+Vd3eDgniULMwhrKgAMH0EEcupYmA X-Gm-Gg: ASbGncvIADRnUHR0MG3mUOKvaUgz/sozPRYqcdWzNtMxRl9E0pRjtwaUnkzwhM3HTJK gllTR+i0gFFZuls6U1YC6qUGBrCtz8RCsFtXhVZOvKTR+nKVbxMF+3a0WXRH6tzI3oXjyKWIrQj 6lL/aPxAsy1JO4qhDJvL4Hw27RfF4TwqjuXTApOW6TQlkR4LF+SFlolRmSHX1BJ+LaLUzah/bwA 6TkctyyrRkM90aWDgrknZhmFTIjVEiWvQD3M49Pmwu3siW1+/2LpQTLhK2c35hrr7Lj5f6LhE6n z5xt5byqSNwaBw== X-Received: by 2002:a17:907:7291:b0:ad1:dbec:44d3 with SMTP id a640c23a62f3a-ad536bdf275mr1473389966b.27.1747739176094; Tue, 20 May 2025 04:06:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHowjTnT4qH12nfh2SsatRXCk76ngau5dw3EnjDcTdPH+FYVOYQuz5sNvsJyZeBJklvU6GDdA== X-Received: by 2002:a17:907:7291:b0:ad1:dbec:44d3 with SMTP id a640c23a62f3a-ad536bdf275mr1473385466b.27.1747739175608; Tue, 20 May 2025 04:06:15 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 19/35] target/riscv: include default value in cpu_cfg_fields.h.inc Date: Tue, 20 May 2025 13:05:14 +0200 Message-ID: <20250520110530.366202-20-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747741020135116600 Content-Type: text/plain; charset="utf-8" In preparation for adding a function to merge two RISCVCPUConfigs (pulling values from the parent if they are not overridden) annotate cpu_cfg_fields.h.inc with the default value of the fields. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu_cfg.h | 2 +- target/riscv/cpu_cfg_fields.h.inc | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/target/riscv/cpu_cfg.h b/target/riscv/cpu_cfg.h index e9bf75730a6..aa28dc8d7e6 100644 --- a/target/riscv/cpu_cfg.h +++ b/target/riscv/cpu_cfg.h @@ -23,7 +23,7 @@ =20 struct RISCVCPUConfig { #define BOOL_FIELD(x) bool x; -#define TYPED_FIELD(type, x) type x; +#define TYPED_FIELD(type, x, default) type x; #include "cpu_cfg_fields.h.inc" }; =20 diff --git a/target/riscv/cpu_cfg_fields.h.inc b/target/riscv/cpu_cfg_field= s.h.inc index cb86bfc5dc3..59f134a4192 100644 --- a/target/riscv/cpu_cfg_fields.h.inc +++ b/target/riscv/cpu_cfg_fields.h.inc @@ -2,7 +2,7 @@ * Required definitions before including this file: * * #define BOOL_FIELD(x) - * #define TYPED_FIELD(type, x) + * #define TYPED_FIELD(type, x, default) */ =20 BOOL_FIELD(ext_zba) @@ -153,18 +153,18 @@ BOOL_FIELD(misa_w) =20 BOOL_FIELD(short_isa_string) =20 -TYPED_FIELD(uint32_t, mvendorid) -TYPED_FIELD(uint64_t, marchid) -TYPED_FIELD(uint64_t, mimpid) +TYPED_FIELD(uint32_t, mvendorid, 0) +TYPED_FIELD(uint64_t, marchid, 0) +TYPED_FIELD(uint64_t, mimpid, 0) =20 -TYPED_FIELD(uint32_t, pmu_mask) -TYPED_FIELD(uint16_t, vlenb) -TYPED_FIELD(uint16_t, elen) -TYPED_FIELD(uint16_t, cbom_blocksize) -TYPED_FIELD(uint16_t, cbop_blocksize) -TYPED_FIELD(uint16_t, cboz_blocksize) +TYPED_FIELD(uint32_t, pmu_mask, 0) +TYPED_FIELD(uint16_t, vlenb, 0) +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) =20 -TYPED_FIELD(int8_t, max_satp_mode) +TYPED_FIELD(int8_t, max_satp_mode, -1) =20 #undef BOOL_FIELD #undef TYPED_FIELD --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747741069; cv=none; d=zohomail.com; s=zohoarc; b=hMGbyf22zJlA2h/DNmxD6DCTxwnlVjovy4HYPJHFnnNdBkoihAMY43hJtOQxFlT6CWY7pjEt/epiU5eNl1AF03rnf1l5A6IS83NtubL4YFzaMHAnRAaVJcCF6lt4PG3eFvt5xjdFIJoDa8tzpEJIevp1bwYxuXBYl2Gb4OhhUhE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741069; 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=wAk3VJycK08RmuxbhLOpqsKTeVaRPtp4EDzgHmUZ2g8=; b=Uz0p5gcHS+iQ7XbgRkRvnbxBCGBUoif+CyBjOPhnbo4wUUv7V+ZwowZZ+cp105aV7YRkVVMRQsjf/jl72DvEHX9GrlbbwHym2uIBYdp7FX9Dy9y5BMgptI24rmP2f2tQT949LPqnZKRKqWIHB20Pld3Kjo74+58Um1QUTANgJ9w= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747741069525131.22841751906674; Tue, 20 May 2025 04:37:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnn-0000Od-Pi; Tue, 20 May 2025 07:06: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 1uHKnh-0008Mq-6x for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:25 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKne-0003EG-TS for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:24 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-427-Jm4sCJ7RNQSP_ZPPg1X-Kw-1; Tue, 20 May 2025 07:06:21 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-ac6ef2d1b7dso429027366b.0 for ; Tue, 20 May 2025 04:06:20 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d490794sm718639166b.131.2025.05.20.04.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wAk3VJycK08RmuxbhLOpqsKTeVaRPtp4EDzgHmUZ2g8=; b=ciY3Gev5iDdk2/tIHXbaTIGkszuFGJgL5RXWimVt76AvXJMnpMQHZTbZdk1R5l8t4oi11v r752ApaiBtn8rJvev9AWLF6d0vaCp9x872t70Yqu6RkH/b/kXPQDhMGVl75d0p1eP9xB7y KB4jHX7k6NqCYsnCmYVdi5V9g2jMQPw= X-MC-Unique: Jm4sCJ7RNQSP_ZPPg1X-Kw-1 X-Mimecast-MFC-AGG-ID: Jm4sCJ7RNQSP_ZPPg1X-Kw_1747739180 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739179; x=1748343979; 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=wAk3VJycK08RmuxbhLOpqsKTeVaRPtp4EDzgHmUZ2g8=; b=PEyB+VCX8wCydd086CxDOiAFcA6+2OAettGHn0O60dZHvOkNhH7+A7oJx94aDeWmbk rEY3r9tTiae1u6tRoE17TDMauhSEdXETJ+/xqIyqNbm6/grKCu4iRTx/Zib68yI3WHgp fQ8v1FIQGkdJVX0HxYv5H7jnCo1CreRTyfbq2fDRUVHy2wrWchtLoibaIYAyzEhwVhg7 06b/ZqST1XWZgVT6wNufXMY2V3PIYQykIxcErj+cZ3k+QTu15kSHlFmRbazQbJwr9YNz 351IMiaDnaQ3sqYjeeDn+lGZPnLuEjVcvmRPSgVMEopKOebS/20DjYjP51mHLPGbJJyc aCyA== X-Gm-Message-State: AOJu0YzfMUu9L9nqJMV0idGOqLQPmqZxOFQVwGttjiHTDtubrdnS6rpw TA1l4nZqj/6fuVLKz5tcQRCMW8IJvIdGRiiwH/hW7bJXT+dAM/UkpDWU/WpwpzvlPOm/bjTo6Kt Vl/QvSVqiFmmM9D3PVHIcHF7ePlB4UhaO+PyD7nZpBJoyf47HmNWl880neL2w7MdJpcYta1rqzU Y+O4x2Zg8uV0wFFk26InkpeR1GN+oL7cRIzS2maLqC X-Gm-Gg: ASbGncu5YstQgBhIYfq8/0zDfnAPZvFKBE0Zdb4nc062pLuO+jmOiOCXQ7UuWV4+YN7 HxK+TYrUqXEJ/2YHu+VyBnOzETTxHA3o8wu41sye/twmR4HzyyslBSSxWG9Ambp02KC5/JGDNxV a0fAOQUN/EhN8+5Ye08nElDl45vkU9ursjtjkEhhQwL8/UD9UXbiOkPYAtu13D6MTQwcJ/yPavE k3IrLP+ruCfuocLIEMXvPm18Wn30FBQPMzXHnc5JGF18sICYqg3Wk1+WA3wNMzndhdGNBve4Oi8 laXQh9OKob90bg== X-Received: by 2002:a17:907:3e20:b0:ad5:6d1a:6fa4 with SMTP id a640c23a62f3a-ad56d1a72c0mr705556766b.44.1747739178648; Tue, 20 May 2025 04:06:18 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF+lsNnPhSldruvQx3pEXqHfvs0QzXpXaF+W6k25TWWTk0YO/Fv75HOdqGG+XhNQU5i4oHx2g== X-Received: by 2002:a17:907:3e20:b0:ad5:6d1a:6fa4 with SMTP id a640c23a62f3a-ad56d1a72c0mr705552966b.44.1747739178159; Tue, 20 May 2025 04:06:18 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 20/35] target/riscv: add more RISCVCPUDef fields Date: Tue, 20 May 2025 13:05:15 +0200 Message-ID: <20250520110530.366202-21-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747741072010116600 Content-Type: text/plain; charset="utf-8" Allow using RISCVCPUDef to replicate all the logic of custom .instance_init functions. To simulate inheritance, merge the child's RISCVCPUDef with the parent and then finally move it to the CPUState at the end of TYPE_RISCV_CPU's own instance_init function. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 4 ++++ target/riscv/cpu.c | 42 +++++++++++++++++++++++++++++++++++++- target/riscv/kvm/kvm-cpu.c | 6 ++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index d2d4db95c17..29b01e9aa86 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -540,6 +540,10 @@ struct ArchCPU { =20 typedef struct RISCVCPUDef { RISCVMXL misa_mxl_max; /* max mxl for this cpu */ + uint32_t misa_ext; + int priv_spec; + int32_t vext_spec; + RISCVCPUConfig cfg; } RISCVCPUDef; =20 /** diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 334791eebdf..634216870ed 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -73,6 +73,13 @@ bool riscv_cpu_option_set(const char *optname) return g_hash_table_contains(general_user_opts, optname); } =20 +static void riscv_cpu_cfg_merge(RISCVCPUConfig *dest, const RISCVCPUConfig= *src) +{ +#define BOOL_FIELD(x) dest->x |=3D src->x; +#define TYPED_FIELD(type, x, default_) if (src->x !=3D default_) dest->x = =3D src->x; +#include "cpu_cfg_fields.h.inc" +} + #define ISA_EXT_DATA_ENTRY(_name, _min_ver, _prop) \ {#_name, _min_ver, CPU_CFG_OFFSET(_prop)} =20 @@ -434,7 +441,7 @@ const char *satp_mode_str(uint8_t satp_mode, bool is_32= _bit) } =20 static void set_satp_mode_max_supported(RISCVCPU *cpu, - uint8_t satp_mode) + int satp_mode) { bool rv32 =3D riscv_cpu_mxl(&cpu->env) =3D=3D MXL_RV32; const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; @@ -1479,6 +1486,16 @@ static void riscv_cpu_init(Object *obj) cpu->cfg.cboz_blocksize =3D 64; cpu->env.vext_ver =3D VEXT_VERSION_1_00_0; cpu->cfg.max_satp_mode =3D -1; + + env->misa_ext_mask =3D env->misa_ext =3D mcc->def->misa_ext; + riscv_cpu_cfg_merge(&cpu->cfg, &mcc->def->cfg); + + if (mcc->def->priv_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { + cpu->env.priv_ver =3D mcc->def->priv_spec; + } + if (mcc->def->vext_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { + cpu->env.vext_ver =3D mcc->def->vext_spec; + } } =20 static void riscv_bare_cpu_init(Object *obj) @@ -3087,6 +3104,17 @@ static void riscv_cpu_class_base_init(ObjectClass *c= , const void *data) assert(def->misa_mxl_max <=3D MXL_RV128); mcc->def->misa_mxl_max =3D def->misa_mxl_max; } + if (def->priv_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { + assert(def->priv_spec <=3D PRIV_VERSION_LATEST); + mcc->def->priv_spec =3D def->priv_spec; + } + if (def->vext_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { + assert(def->vext_spec !=3D 0); + mcc->def->vext_spec =3D def->vext_spec; + } + mcc->def->misa_ext |=3D def->misa_ext; + + riscv_cpu_cfg_merge(&mcc->def->cfg, &def->cfg); } =20 if (!object_class_is_abstract(c)) { @@ -3193,6 +3221,9 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .instance_init =3D (initfn), \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .cfg.max_satp_mode =3D -1, \ }, \ } =20 @@ -3203,6 +3234,9 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .instance_init =3D (initfn), \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .cfg.max_satp_mode =3D -1, \ }, \ } =20 @@ -3213,6 +3247,9 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .instance_init =3D (initfn), \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .cfg.max_satp_mode =3D -1, \ }, \ } =20 @@ -3223,6 +3260,9 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, ch= ar *nodename) .instance_init =3D (initfn), \ .class_data =3D &(const RISCVCPUDef) { \ .misa_mxl_max =3D (misa_mxl_max_), \ + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .cfg.max_satp_mode =3D -1, \ }, \ } =20 diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c index e77f612af35..efb41fac53e 100644 --- a/target/riscv/kvm/kvm-cpu.c +++ b/target/riscv/kvm/kvm-cpu.c @@ -2093,10 +2093,16 @@ static const TypeInfo riscv_kvm_cpu_type_infos[] = =3D { #if defined(TARGET_RISCV32) .class_data =3D &(const RISCVCPUDef) { .misa_mxl_max =3D MXL_RV32, + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, + .cfg.max_satp_mode =3D -1, }, #elif defined(TARGET_RISCV64) .class_data =3D &(const RISCVCPUDef) { .misa_mxl_max =3D MXL_RV64, + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, + .cfg.max_satp_mode =3D -1, }, #endif } --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739417; cv=none; d=zohomail.com; s=zohoarc; b=E/Qam/1znlnLgpcOINWw48wegFz7RLttjPkI7bHq0zFLUFuEzaDqrPD5d32oNWwCwz4A//ieuspWPbKAVFqxMDi1M+88NRbJqc0pl4poHCs2/3lKqz9aJl3SbH+V72YMEpuOFNnVxHEcjPFtx6/nUd9hB7eg2uBmIF7KfRvEnQw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739417; 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=IlP2lhS81+uvghTLlJlc3pWMGTZTvlZCWSW9BG7siWs=; b=cpECVQyQjEDG/k9sZnzlFhj8xDrzocWfxLstk8zI2hO0Ph+pRzFgTYqtk4WgMaaH7bj3WV4W+8SWqBNtLPy/hh18BJYr5USaWU5xt4KZ2zD8Ci+HPqjw3H8imsF/eDm8S0OCX72tuOHCZVPZiHdz28OooUh0XVaIAT6goQHbvFc= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739417342583.696348414229; Tue, 20 May 2025 04:10:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKno-0000Rt-7x; Tue, 20 May 2025 07:06: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 1uHKni-0008Sd-HL for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:27 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKng-0003F0-Kp for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:26 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-150-4RnYBLuKNsC4T6460vmM2g-1; Tue, 20 May 2025 07:06:22 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad56c38dbeaso237090066b.0 for ; Tue, 20 May 2025 04:06:22 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d271916sm721976166b.69.2025.05.20.04.06.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IlP2lhS81+uvghTLlJlc3pWMGTZTvlZCWSW9BG7siWs=; b=hwtW9tmjHpoyJ5A8VTLYv3YS1506NJcuwjAhwo/0SGIXAz4f8qI9dTU9h+UNurg7LLJ9Pf 1URIvmYMY4JA94F6RwfbGtLBLI5Vlo66vIZNetGtp5PEVUk5J92ZMJpE6ziKg4MXEUuj9d 9/wgUZq+dcJcHpVY03ioGyo5dKTqngk= X-MC-Unique: 4RnYBLuKNsC4T6460vmM2g-1 X-Mimecast-MFC-AGG-ID: 4RnYBLuKNsC4T6460vmM2g_1747739181 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739180; x=1748343980; 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=IlP2lhS81+uvghTLlJlc3pWMGTZTvlZCWSW9BG7siWs=; b=PRpyRBxKJ/0IdMgFLHWrmJZQeOGKJUHj18lnKEPLRDKXeTrGarX0gDG40SUqIkwnbs GRrH3Mqy4XEMU4+x3dNfzI6W82SstVtlaTSkx+NXIiLVV3eZHObtULVV7G9n7IuRk3/D xGgS8QS871azUQnYV4DBh3Hbgp58hHdL4l2I3FmVYW5K7m/KOpfbO8VaNobAEAJjOK8p zoa6eqimM9UcgD0Wia1v3FXFNmq1IAQEW9FNH0IROLsk2BcmRoYzDJ3+Do4ecRuOTewy LF2VQqVJfNLSIoGHNYc31rqoAzXzju0s8HtYHNfVahVmSZZwAp93xfhQdnHRVjGUg5ac K/fQ== X-Gm-Message-State: AOJu0Yyb4BsBz/RM+PW5HTshPFPKuKd2xzIIagYJOIjTcP+RgZfNRplE heZWzjvwjpbW9B//SOGpKNWK4L0XLicV0cj8pPZeKFa3I3aiMPnTcabyzjBQvqnrKa9C4n9Dkxg ljPQa8rgI/ooNYmVT/09P59aRUUCs6IAiIjw0mPZkVRwul9JfjRvGdEkc1yvFvjIN8aaTj7MIUT 3Oikdml2s5J98I5HJNRlC6IRMGuWDPa6NILhKwLiBO X-Gm-Gg: ASbGncuT8tQXcEk58wjvwDaEhzXfohf13y2e2bt+BaWF6ZyqtmyddXS8LRYYoNqdxUv Kh/5GvynamKmlfYXqDEooHjqWWc0GKFOeE3ned1cop8EA44QpYrggAlWG3vEWGEko8F+OamyoOe pXltA9UTut7dFOozVN6GFB+Q+FELLDRoOf5RK0vq2dFGYJ7BPGMY5ATfovKgW6yU2ZVd7FWS44c R8isLCt0msOQ92IzQpraBcAv+t8tAbU/jxuwSebU4nen6hagZyOncqpWvslm53JP+ZtiDHvdAOt TNJko08AquWx2g== X-Received: by 2002:a17:907:97ca:b0:ace:cc7f:8abe with SMTP id a640c23a62f3a-ad536c22d77mr1336393066b.31.1747739179855; Tue, 20 May 2025 04:06:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFjNeQQAM/zF/aDpbVwh+PLHjjWyJ9Pdk2e64I2dTGCjPWeMQIRNr8SK6hMyJ+kH93nVbQSPA== X-Received: by 2002:a17:907:97ca:b0:ace:cc7f:8abe with SMTP id a640c23a62f3a-ad536c22d77mr1336389766b.31.1747739179350; Tue, 20 May 2025 04:06:19 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 21/35] target/riscv: convert abstract CPU classes to RISCVCPUDef Date: Tue, 20 May 2025 13:05:16 +0200 Message-ID: <20250520110530.366202-22-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739419839116600 Content-Type: text/plain; charset="utf-8" Start from the top of the hierarchy: dynamic and vendor CPUs are just markers, whereas bare CPUs can have their instance_init function replaced by RISCVCPUDef. The only difference is that the maximum supported SATP mode has to be specified separately for 32-bit and 64-bit modes. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 1 + target/riscv/cpu.c | 93 ++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 48 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 29b01e9aa86..f3d70afb866 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -544,6 +544,7 @@ typedef struct RISCVCPUDef { int priv_spec; int32_t vext_spec; RISCVCPUConfig cfg; + bool bare; } RISCVCPUDef; =20 /** diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 634216870ed..7dcaf72fc14 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1474,8 +1474,8 @@ static void riscv_cpu_init(Object *obj) * for all CPUs. Each accelerator will decide what to do when * users disable them. */ - RISCV_CPU(obj)->cfg.ext_zicntr =3D true; - RISCV_CPU(obj)->cfg.ext_zihpm =3D true; + RISCV_CPU(obj)->cfg.ext_zicntr =3D !mcc->def->bare; + RISCV_CPU(obj)->cfg.ext_zihpm =3D !mcc->def->bare; =20 /* Default values for non-bool cpu properties */ cpu->cfg.pmu_mask =3D MAKE_64BIT_MASK(3, 16); @@ -1498,36 +1498,6 @@ static void riscv_cpu_init(Object *obj) } } =20 -static void riscv_bare_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - - /* - * Bare CPUs do not inherit the timer and performance - * counters from the parent class (see riscv_cpu_init() - * for info on why the parent enables them). - * - * Users have to explicitly enable these counters for - * bare CPUs. - */ - cpu->cfg.ext_zicntr =3D false; - cpu->cfg.ext_zihpm =3D false; - - /* Set to QEMU's first supported priv version */ - cpu->env.priv_ver =3D PRIV_VERSION_1_10_0; - - /* - * Support all available satp_mode settings. The default - * value will be set to MBARE if the user doesn't set - * satp_mode manually (see set_satp_mode_default()). - */ -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), - riscv_cpu_mxl(&RISCV_CPU(obj)->env) =3D=3D MXL_RV32 ? - VM_1_10_SV32 : VM_1_10_SV57); -#endif -} - typedef struct misa_ext_info { const char *name; const char *description; @@ -3100,6 +3070,7 @@ static void riscv_cpu_class_base_init(ObjectClass *c,= const void *data) =20 if (data) { const RISCVCPUDef *def =3D data; + mcc->def->bare |=3D def->bare; if (def->misa_mxl_max) { assert(def->misa_mxl_max <=3D MXL_RV128); mcc->def->misa_mxl_max =3D def->misa_mxl_max; @@ -3253,6 +3224,19 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, c= har *nodename) }, \ } =20 +#define DEFINE_ABSTRACT_RISCV_CPU(type_name, parent_type_name, ...) \ + { \ + .name =3D (type_name), \ + .parent =3D (parent_type_name), \ + .abstract =3D true, \ + .class_data =3D &(const RISCVCPUDef) { \ + .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ + .cfg.max_satp_mode =3D -1, \ + __VA_ARGS__ \ + }, \ + } + #define DEFINE_PROFILE_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ @@ -3279,22 +3263,35 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .class_init =3D riscv_cpu_common_class_init, .class_base_init =3D riscv_cpu_class_base_init, }, - { - .name =3D TYPE_RISCV_DYNAMIC_CPU, - .parent =3D TYPE_RISCV_CPU, - .abstract =3D true, - }, - { - .name =3D TYPE_RISCV_VENDOR_CPU, - .parent =3D TYPE_RISCV_CPU, - .abstract =3D true, - }, - { - .name =3D TYPE_RISCV_BARE_CPU, - .parent =3D TYPE_RISCV_CPU, - .instance_init =3D riscv_bare_cpu_init, - .abstract =3D true, - }, + + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_DYNAMIC_CPU, TYPE_RISCV_CPU), + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_VENDOR_CPU, TYPE_RISCV_CPU), + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_BARE_CPU, TYPE_RISCV_CPU, + /* + * Bare CPUs do not inherit the timer and performance + * counters from the parent class (see riscv_cpu_init() + * for info on why the parent enables them). + * + * Users have to explicitly enable these counters for + * bare CPUs. + */ + .bare =3D true, + + /* Set to QEMU's first supported priv version */ + .priv_spec =3D PRIV_VERSION_1_10_0, + + /* + * Support all available satp_mode settings. By default + * only MBARE will be available if the user doesn't enable + * a mode manually (see riscv_cpu_satp_mode_finalize()). + */ +#ifdef TARGET_RISCV32 + .cfg.max_satp_mode =3D VM_1_10_SV32, +#else + .cfg.max_satp_mode =3D VM_1_10_SV57, +#endif + ), + #if defined(TARGET_RISCV32) DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_MAX, MXL_RV32, riscv_max_cpu_= init), #elif defined(TARGET_RISCV64) --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747740964; cv=none; d=zohomail.com; s=zohoarc; b=PEMPVD99AWHDhiNuclqXxt0XwLKZ/Fvh7ffxo4YSBGqjYKmRmOgn5VnZAVDT/QjBUlDkOAedPTftprNg+foK4HsbR6YEQOCUB0VGiqmOSqCmizseqfp/tEHjCO220+pllsoi+uURa8YxV5LdhoMoZ8JOwn9Rgk01swY/EahNW4U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747740964; 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=GSu2alUzM9T0qhDYQxjTZn22Z500RiRCFW3ogDdklg4=; b=Yoo2IWQqpLW8eT1S0INoH+sKs+vTVxicSbrnjb4TEusBQLKB8QRXVHCk6nUpvpHYmf3lsaJr92rLiN61Uql3Cv/o60Az0l90T6edNi3xnOwt6PJvvILjL67dzflNIuqvKfjAiarlSeLw/b/WxCbtA4hBUsPECxd0iiZRA0cTEUk= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747740964747822.5973463620318; Tue, 20 May 2025 04:36:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKns-0000l5-SS; Tue, 20 May 2025 07:06: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 1uHKnk-0000Fm-SO for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:28 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKni-0003GL-P9 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:28 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-675-WQZ8DWGjOT2IfS749TzP_Q-1; Tue, 20 May 2025 07:06:24 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-601a4318a39so2336489a12.2 for ; Tue, 20 May 2025 04:06:24 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ae39181sm6967714a12.67.2025.05.20.04.06.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=GSu2alUzM9T0qhDYQxjTZn22Z500RiRCFW3ogDdklg4=; b=bkj1c6+U8OzWYBFlopexVmAzM2SBPrn0y3KZPvm6l1uwII7y+ZuCTSP65VclwxYFi0zdZI ZlOSyAWXmWApT3TQkLngJvpuzVPR4cemHwYrX03i3u3HMQGXViit2/rtw1jwmWqCNbyzkC 2i+QzFATkvp7pQDvk6a4wOx670NFD38= X-MC-Unique: WQZ8DWGjOT2IfS749TzP_Q-1 X-Mimecast-MFC-AGG-ID: WQZ8DWGjOT2IfS749TzP_Q_1747739184 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739183; x=1748343983; 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=GSu2alUzM9T0qhDYQxjTZn22Z500RiRCFW3ogDdklg4=; b=vfPlB+AIXpu8Dqz1lCHxvNdwh21xBOjq0u96KuJfIxFktCCs4flxLkjoecfWSPw72P XMQzvb9dtX+WxEoetQ/G6kihpHuVM+AZxF2pQOtsNm0ehiriJBrogJD9ikJ43T0qYSRu u7ZU/800eda1XsxRO4Z+HNuMClczUY4bmTL4nFiMdDH46ULri56XBkdEp5wVHW87rQTV jXGCTPKQ6s6SSfJdnk91P4+aSLA0wUtnxKT5I84fCgfwoRyOGpFC0dgc39nrd+iTQaab /FfD3eEBs1OWLhUCMmSmEwWDtVYF6dM/bfkb8JsNWmOtJfZH1XnJtmjdU3n0ng+pTcoB vW0Q== X-Gm-Message-State: AOJu0Yy4w0fq1xZ90Gqr23+O2ZKM15wA/d+Ks83T+uid23IYWV7RGtR+ 04jIn6ClfZ7DRfpmx0jV7gtHNosxGkSADi/Pz8V7PEoyP8qTYWevBLXVP1S0xMiGEP6/PH8Q49U FA7a9V/HbiWrS9DnktVkfH1jv3y5H4aVOOGiD+JHCKGNLJZJZLRGBAI/az5F6Dnj9Oy2d0JiYdb sHnJkHDrK43O71qbldoy5xuSQmat7GJXOWnk9tP7tg X-Gm-Gg: ASbGnct7a4LO12fC2PoWsCQ4V5W/hqyEC2IApMBGS77Ozg/P4/1N0O0E7E5Ai5c8dgt cd7E+5r51xzDhhtwEcnG8oqiNlEeFGtTudwFTzUpYgQUuKjnpWAIKV2jucLolEQn9uzqkpb7Cr5 JB+SDMlYHj2dUV9sn50r4OvS1zITT5Pa0DN4p6SnT7Ldl0sZQg+kafhbv78TxxOHavCSUhj4tBD S+AhVMy8bxFCh1HsVa9ZrZO3mzNR4UWxpseDX/+C8fVrosDshqDbJQJGDxggph1XNEe7bW15jfx 98j4CdrklnFvGQ== X-Received: by 2002:a05:6402:2713:b0:5f8:cf9b:d896 with SMTP id 4fb4d7f45d1cf-6011408876emr13252303a12.12.1747739182898; Tue, 20 May 2025 04:06:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEy3dGcqms+S9LcuPCtvpf7YveTHxMASxELpeqO0IaQd/HF5ikIaejvADV3I5hCahBVCs8N0Q== X-Received: by 2002:a05:6402:2713:b0:5f8:cf9b:d896 with SMTP id 4fb4d7f45d1cf-6011408876emr13252280a12.12.1747739182491; Tue, 20 May 2025 04:06:22 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 22/35] target/riscv: convert profile CPU models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:17 +0200 Message-ID: <20250520110530.366202-23-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747740967489116600 Content-Type: text/plain; charset="utf-8" Profile CPUs reuse the instance_init function for bare CPUs; make them proper subclasses instead. Enabling a profile is now done based on the RISCVCPUDef struct: even though there is room for only one in RISCVCPUDef, subclasses check that the parent class's profile is enabled through the parent profile mechanism. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 1 + target/riscv/cpu.c | 85 +++++++++++++++++++++++++--------------------- 2 files changed, 48 insertions(+), 38 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index f3d70afb866..ed88adef452 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -540,6 +540,7 @@ struct ArchCPU { =20 typedef struct RISCVCPUDef { RISCVMXL misa_mxl_max; /* max mxl for this cpu */ + RISCVCPUProfile *profile; uint32_t misa_ext; int priv_spec; int32_t vext_spec; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7dcaf72fc14..54fce767657 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1487,6 +1487,10 @@ static void riscv_cpu_init(Object *obj) cpu->env.vext_ver =3D VEXT_VERSION_1_00_0; cpu->cfg.max_satp_mode =3D -1; =20 + if (mcc->def->profile) { + mcc->def->profile->enabled =3D true; + } + env->misa_ext_mask =3D env->misa_ext =3D mcc->def->misa_ext; riscv_cpu_cfg_merge(&cpu->cfg, &mcc->def->cfg); =20 @@ -2959,36 +2963,6 @@ static const Property riscv_cpu_properties[] =3D { DEFINE_PROP_BOOL("x-misa-w", RISCVCPU, cfg.misa_w, false), }; =20 -#if defined(TARGET_RISCV64) -static void rva22u64_profile_cpu_init(Object *obj) -{ - rv64i_bare_cpu_init(obj); - - RVA22U64.enabled =3D true; -} - -static void rva22s64_profile_cpu_init(Object *obj) -{ - rv64i_bare_cpu_init(obj); - - RVA22S64.enabled =3D true; -} - -static void rva23u64_profile_cpu_init(Object *obj) -{ - rv64i_bare_cpu_init(obj); - - RVA23U64.enabled =3D true; -} - -static void rva23s64_profile_cpu_init(Object *obj) -{ - rv64i_bare_cpu_init(obj); - - RVA23S64.enabled =3D true; -} -#endif - static const gchar *riscv_gdb_arch_name(CPUState *cs) { RISCVCPU *cpu =3D RISCV_CPU(cs); @@ -3057,6 +3031,32 @@ static void riscv_cpu_common_class_init(ObjectClass = *c, const void *data) device_class_set_props(dc, riscv_cpu_properties); } =20 +static bool profile_extends(RISCVCPUProfile *trial, RISCVCPUProfile *paren= t) +{ + RISCVCPUProfile *curr; + if (!parent) { + return true; + } + + curr =3D trial; + while (curr) { + if (curr =3D=3D parent) { + return true; + } + curr =3D curr->u_parent; + } + + curr =3D trial; + while (curr) { + if (curr =3D=3D parent) { + return true; + } + curr =3D curr->s_parent; + } + + return false; +} + static void riscv_cpu_class_base_init(ObjectClass *c, const void *data) { RISCVCPUClass *mcc =3D RISCV_CPU_CLASS(c); @@ -3071,6 +3071,11 @@ static void riscv_cpu_class_base_init(ObjectClass *c= , const void *data) if (data) { const RISCVCPUDef *def =3D data; mcc->def->bare |=3D def->bare; + if (def->profile) { + assert(profile_extends(def->profile, mcc->def->profile)); + assert(mcc->def->bare); + mcc->def->profile =3D def->profile; + } if (def->misa_mxl_max) { assert(def->misa_mxl_max <=3D MXL_RV128); mcc->def->misa_mxl_max =3D def->misa_mxl_max; @@ -3237,19 +3242,22 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, = char *nodename) }, \ } =20 -#define DEFINE_PROFILE_CPU(type_name, misa_mxl_max_, initfn) \ +#define DEFINE_RISCV_CPU(type_name, parent_type_name, ...) \ { \ .name =3D (type_name), \ - .parent =3D TYPE_RISCV_BARE_CPU, \ - .instance_init =3D (initfn), \ + .parent =3D (parent_type_name), \ .class_data =3D &(const RISCVCPUDef) { \ - .misa_mxl_max =3D (misa_mxl_max_), \ .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ .cfg.max_satp_mode =3D -1, \ + __VA_ARGS__ \ }, \ } =20 +#define DEFINE_PROFILE_CPU(type_name, parent_type_name, profile_) \ + DEFINE_RISCV_CPU(type_name, parent_type_name, \ + .profile =3D &(profile_)) + static const TypeInfo riscv_cpu_type_infos[] =3D { { .name =3D TYPE_RISCV_CPU, @@ -3328,10 +3336,11 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV64I, MXL_RV64, rv64i_bare_cpu= _init), DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV64E, MXL_RV64, rv64e_bare_cpu= _init), - DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22U64, MXL_RV64, rva22u64_profi= le_cpu_init), - DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22S64, MXL_RV64, rva22s64_profi= le_cpu_init), - DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23U64, MXL_RV64, rva23u64_profi= le_cpu_init), - DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23S64, MXL_RV64, rva23s64_profi= le_cpu_init), + + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22U64, TYPE_RISCV_CPU_RV64I, RV= A22U64), + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22S64, TYPE_RISCV_CPU_RV64I, RV= A22S64), + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23U64, TYPE_RISCV_CPU_RV64I, RV= A23U64), + DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA23S64, TYPE_RISCV_CPU_RV64I, RV= A23S64), #endif /* TARGET_RISCV64 */ }; =20 --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739431; cv=none; d=zohomail.com; s=zohoarc; b=U5RdF4u2dhEbiM1zkmPUd28OKCw/YAdEcqxSDlL7DqbhLt8D1lameMJzIn0UFj6MXW/Cr6a8qxOeY0A1B6WXN1yXHh0tltTrGPbZOeS9O3HZbajvD12JPK8wLhzCMPfUO5yYObZ5zjAL6KiUw4pvtoaFtF0olt6NbHGU3bC/YWo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739431; 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=+u7O99sOeNI6w8Mk9SYljAjsaua2ADq398/ujKmLpFI=; b=l+KXC+IEansiG5F/jZBkMGPoCz54MKSTzTycT1M8/3nKO0SgzSDbAYIB27Jas2EI1BKrCjznxk8YYKxpYTO6UOGF49DLa+A2K0YopDVVveZQzogvp39jfGEfWYsgKe8ZEbWesL5RiLq3dbLTf57ezywoOk97AG/QYrdc5wTbiqA= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739431148851.4611063023225; Tue, 20 May 2025 04:10:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnv-0000yw-JM; Tue, 20 May 2025 07:06:39 -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 1uHKno-0000U9-DO for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:32 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnm-0003Gt-7F for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:32 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-582-_nCgPB9iPgCgnSym-TrWQg-1; Tue, 20 May 2025 07:06:28 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-ad56bfb164eso211691366b.2 for ; Tue, 20 May 2025 04:06:27 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04e990sm711153466b.35.2025.05.20.04.06.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+u7O99sOeNI6w8Mk9SYljAjsaua2ADq398/ujKmLpFI=; b=ESN/ZLZwkVtZ5LXKv2rglMJpUIE7so9Nc+d4BiZCn6VvYBPhjTXLDacCp0/gflX4i7hyfx kEaZnJ1vqkN8NjUonHS/ca6UOx9VilDt9gmbnwwEHuEyARHRl3rlpATW2FTNv/oLHQK6YY xcp+w3+jDNhwWygXP8LM5EIqKEyuRa8= X-MC-Unique: _nCgPB9iPgCgnSym-TrWQg-1 X-Mimecast-MFC-AGG-ID: _nCgPB9iPgCgnSym-TrWQg_1747739187 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739186; x=1748343986; 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=+u7O99sOeNI6w8Mk9SYljAjsaua2ADq398/ujKmLpFI=; b=v7chYu4Mo2Gb92DZI9yp04U2EwQ4/Xyq2+WDDFhmt8dK/by0T4c7gl3jowML1cC/cF IvOWLn9Jd2ZxPiYS6Itel8+g8glFtqBR60h/Lbh6Ci4LrOejpBCdBtE3w9dAuMVpJuzU Z60Fasz8S7zZqOHVvB+ksxFN7QZTO/CHpPdhRuFf9xqCYgzsfmGb+5/b6l00MyE2lEmM 0xJ7w7rN6Q/T84DDmVnWabN6y9EexsdMzvRQwp+0DEXcnZmQVoaQq5QhdMkDs1GK6grr XgXWfAh9HZSu1XQqtfqWElZwylC+BLeo6wTX03unhIQ2/Xsg5ZCdTJLBOx7OMPrEEJX2 1aMg== X-Gm-Message-State: AOJu0YxTE1XzhkoxfufKUdCduL51gPpwTfp8MqHP20RLwngvVqfMSkT+ kU/IhssHfOa8kVcPQbmqcvTlM2lh6GaMAcQxlDTYM+nOusQm3lxePtCgbw1oWwC3hMqjgVBaCdg 2RVd7NbLvoAqU1P0Ui4OUs2p43HrSwPvM4wHqsQD87tL6E32oIbM1w5CqYrOaP5YEgmDSnk4R2s hEMFT+iIP/UxG3j75ADs36r52TZ5J1xbP8AyzY+CCv X-Gm-Gg: ASbGnctsLICdZbQlSl+m5JeSqRt39m6rVAMU1NC2hmaIU/Pl4zsEq8KZyCO7XCYrbMk Xvffg9x/D9Wj1ffo1tvTkkjFM11UNkRpt2T2OHPmW7wiyWHb+GEdhf4j9GtTQw8OCRhDR9dlQd7 hjucJlyInJlI7yffG653+Yc/moMIZgrjDX3kCM2kyxXLGWbWF1rKpcq1InDlN0fv/vo7wZQK0ud 3XJeouiftj6Ijno/SjgoL0WxegqjbiHuvmkcea6LC5X6RveKzAUaqNVtBO5AFTn0c2UQuPM+ldo NCumuRg51hfBQw== X-Received: by 2002:a17:907:8e96:b0:acb:b9db:aa22 with SMTP id a640c23a62f3a-ad52d0756b4mr1315947466b.0.1747739185740; Tue, 20 May 2025 04:06:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHb9PgC3na+3M8FulaJgnz8LJNqM0DebK9+Q1AbatAbHaUv4/VTbkK2CVcjqx5qrcs9LH8W2Q== X-Received: by 2002:a17:907:8e96:b0:acb:b9db:aa22 with SMTP id a640c23a62f3a-ad52d0756b4mr1315944866b.0.1747739185313; Tue, 20 May 2025 04:06:25 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 23/35] target/riscv: convert bare CPU models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:18 +0200 Message-ID: <20250520110530.366202-24-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739431788116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 58 ++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 54fce767657..8b82a1b7b33 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -732,18 +732,6 @@ static void rv128_base_cpu_init(Object *obj) } #endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ =20 -static void rv64i_bare_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - riscv_cpu_set_misa_ext(env, RVI); -} - -static void rv64e_bare_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - riscv_cpu_set_misa_ext(env, RVE); -} - #endif /* !TARGET_RISCV64 */ =20 #if defined(TARGET_RISCV32) || \ @@ -836,18 +824,6 @@ static void rv32_imafcu_nommu_cpu_init(Object *obj) cpu->cfg.ext_zicsr =3D true; cpu->cfg.pmp =3D true; } - -static void rv32i_bare_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - riscv_cpu_set_misa_ext(env, RVI); -} - -static void rv32e_bare_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - riscv_cpu_set_misa_ext(env, RVE); -} #endif =20 static ObjectClass *riscv_cpu_class_by_name(const char *cpu_model) @@ -3216,19 +3192,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, c= har *nodename) }, \ } =20 -#define DEFINE_BARE_CPU(type_name, misa_mxl_max_, initfn) \ - { \ - .name =3D (type_name), \ - .parent =3D TYPE_RISCV_BARE_CPU, \ - .instance_init =3D (initfn), \ - .class_data =3D &(const RISCVCPUDef) { \ - .misa_mxl_max =3D (misa_mxl_max_), \ - .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .cfg.max_satp_mode =3D -1, \ - }, \ - } - #define DEFINE_ABSTRACT_RISCV_CPU(type_name, parent_type_name, ...) \ { \ .name =3D (type_name), \ @@ -3313,8 +3276,15 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E31, MXL_RV32, rv32_sifive_e_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E34, MXL_RV32, rv32_imafcu_no= mmu_cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U34, MXL_RV32, rv32_sifive_u_= cpu_init), - DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV32I, MXL_RV32, rv32i_bare_cpu= _init), - DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV32E, MXL_RV32, rv32e_bare_cpu= _init), + + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV32I, TYPE_RISCV_BARE_CPU, + .misa_mxl_max =3D MXL_RV32, + .misa_ext =3D RVI + ), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV32E, TYPE_RISCV_BARE_CPU, + .misa_mxl_max =3D MXL_RV32, + .misa_ext =3D RVE + ), #endif =20 #if (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) @@ -3334,8 +3304,14 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_BASE128, MXL_RV128, rv128_base_cpu= _init), #endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ - DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV64I, MXL_RV64, rv64i_bare_cpu= _init), - DEFINE_BARE_CPU(TYPE_RISCV_CPU_RV64E, MXL_RV64, rv64e_bare_cpu= _init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV64I, TYPE_RISCV_BARE_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVI + ), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV64E, TYPE_RISCV_BARE_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVE + ), =20 DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22U64, TYPE_RISCV_CPU_RV64I, RV= A22U64), DEFINE_PROFILE_CPU(TYPE_RISCV_CPU_RVA22S64, TYPE_RISCV_CPU_RV64I, RV= A22S64), --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739361; cv=none; d=zohomail.com; s=zohoarc; b=aaSxeiivlG8lbpLD6qG0vLsgSVWYcBeMGr8twEKNRrMwPJ3p42ZfEXd5kUaHFFFM3svp58772nD02DISzUFUaBzFyVVjg1Rgnx2xvxVRH9jAiMzpjtpMZsJ2yPIU9aujUYOrnjfPCTwV638voSVVMaKow9B3HQguV+a8R6xvN34= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739361; 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=98EAejV0BwhHSzKOR1AkN1dMFBQxypZdBrFVxi6EVuA=; b=OKWEm9/OJb/A7/DiVCiPHSyGse/9R8qYXBkrXwCCPGmcSNkFwt7iyhkWS/qgsg9cNDCXE7h7Q5qc1m0bC3URHOZvqzw1tSr+M00zf5MhUJjpUvbYja3c55N/ec7CipVWMQ+lDCGNpieJSXZEeuzzABVUFHjH7h+Xw/PMIJaBRf4= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739361511357.2121547078182; Tue, 20 May 2025 04:09:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKo0-0001Ci-2X; Tue, 20 May 2025 07:06:44 -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 1uHKnq-0000dM-AC for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:34 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnm-0003H0-Sh for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:33 -0400 Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-245-xm5gpKm8OP2LtjclzSP_WQ-1; Tue, 20 May 2025 07:06:29 -0400 Received: by mail-ed1-f72.google.com with SMTP id 4fb4d7f45d1cf-60211a1705dso553663a12.2 for ; Tue, 20 May 2025 04:06:28 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ac336d5sm7061829a12.54.2025.05.20.04.06.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=98EAejV0BwhHSzKOR1AkN1dMFBQxypZdBrFVxi6EVuA=; b=IBcVEKfvwF9uP+LTQ79KGcIXeI3UX0yXjkSmjme4bGDqWZh9wIVePZpMY2ueELpQWe/nng ixijnrXRWsbmyBGGVheTNuBHkILJ7FEOmZflyNqjGNPo1in+6LIHXXnYgmffN/F/p/digG n+zoETTn21z112o2M21tm6ASZK14xsU= X-MC-Unique: xm5gpKm8OP2LtjclzSP_WQ-1 X-Mimecast-MFC-AGG-ID: xm5gpKm8OP2LtjclzSP_WQ_1747739188 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739187; x=1748343987; 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=98EAejV0BwhHSzKOR1AkN1dMFBQxypZdBrFVxi6EVuA=; b=R97RaJx3u2zt9+tGSqnH9zOGzUDTJFSHTK7LVHEudBhK3lU5daCjzyWQfsAZpz0E3S CjB2WjdULCkrIAd9SjpPxmt7aiQB7Grqsrbj/7XcsQI/j+v6eEjRQAXnJqX8+uozVwqL u2y2n+1vnPo96R3SykqbuvA3MaHDLDRvCANxSmIBuFNgSR6AZH6nXtxmi1ywXM8Lm7AB OPoD55pQc6Skvgvfiy5Xq3Lccex0OFKW5bosyDhBsOCpYvHetF1ZMze2Gp87ULpbJFbI cW6xa0Ng5n8hFGTmTdNbcVbupUGwMlXU1tK2sWETaPxdpdpxceEaIyLUIiswZSHOySCO BhNw== X-Gm-Message-State: AOJu0YzTPCsFWZGXgTsxtvZ6ePGWXj6Vv8J5zZBve+mIQWKwleNeOwrE n+1JP+r1k6K1b/FH2id1Lbi2sX0IZValF/AeqIbYAZtOqqQ65n2Dne4UG54JLMidDD3JiWcFnzg 8JspI8DIEAG/Ueo98cV+aM8TAnL+yyK92TIR6KbIEbctThME4mrAbHHQEkWsmTvuvx5FdGUXvUX SXMKlA8WqmPBiewzDmLMEDXX9sFR/XvOvk8N7v3HHR X-Gm-Gg: ASbGncuCedjZJ/TmQV1QuO4dUWBUpGLBZ7jX3qFPkgOD9GLlXwR2evM4n5dYEFk+Mq/ 0Q4wLHcwo0omuz3a0mm9o9PQMyEhmVCLGaKuzjiRHUwwj9yhx3Ra5j+8HurhthnrbA+bDiaNdIi bPAjtKvJ4tJ9KnHQFHKjzT0EFqV7VGIaNAA3Ta0/j2Z2pRmM3IEeqWl6ih+8shF9U50MImRh9PL UnhFzuecKiXnFxFsbEwGe1Eg8Qf+fpnBvC0/j0ek+HK2Ndf048DMEfK8yux39XOBfUpRCPLwTii 3BRhKiRgDspZEg== X-Received: by 2002:a05:6402:280a:b0:601:f5b2:af97 with SMTP id 4fb4d7f45d1cf-601f5b2b070mr5146842a12.19.1747739187130; Tue, 20 May 2025 04:06:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEMjcNgkfs8etsVs9m8XapxhNEFWc+jdKX/v4+ALpAQH2xPIrlvypKjNyXbNdGBfgbcbh80Yw== X-Received: by 2002:a05:6402:280a:b0:601:f5b2:af97 with SMTP id 4fb4d7f45d1cf-601f5b2b070mr5146815a12.19.1747739186396; Tue, 20 May 2025 04:06:26 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 24/35] target/riscv: convert dynamic CPU models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:19 +0200 Message-ID: <20250520110530.366202-25-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739362987116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 113 +++++++++++++-------------------------------- 1 file changed, 31 insertions(+), 82 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 8b82a1b7b33..2b26f23bd0a 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -485,38 +485,7 @@ static void set_satp_mode_default_map(RISCVCPU *cpu) } #endif =20 -static void riscv_max_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; - - env->priv_ver =3D PRIV_VERSION_LATEST; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), - riscv_cpu_mxl(&RISCV_CPU(obj)->env) =3D=3D MXL_RV32 ? - VM_1_10_SV32 : VM_1_10_SV57); -#endif -} - #if defined(TARGET_RISCV64) -static void rv64_base_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; - - /* Set latest version of privileged specification */ - env->priv_ver =3D PRIV_VERSION_LATEST; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV57); -#endif -} - static void rv64_sifive_u_cpu_init(Object *obj) { RISCVCPU *cpu =3D RISCV_CPU(obj); @@ -717,41 +686,11 @@ static void rv64_xiangshan_nanhu_cpu_init(Object *obj) #endif } =20 -#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) -static void rv128_base_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; - - /* Set latest version of privileged specification */ - env->priv_ver =3D PRIV_VERSION_LATEST; - set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV57); -} -#endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ - #endif /* !TARGET_RISCV64 */ =20 #if defined(TARGET_RISCV32) || \ (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) =20 -static void rv32_base_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; - - /* Set latest version of privileged specification */ - env->priv_ver =3D PRIV_VERSION_LATEST; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV32); -#endif -} - static void rv32_sifive_u_cpu_init(Object *obj) { RISCVCPU *cpu =3D RISCV_CPU(obj); @@ -3166,19 +3105,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, c= har *nodename) } #endif =20 -#define DEFINE_DYNAMIC_CPU(type_name, misa_mxl_max_, initfn) \ - { \ - .name =3D (type_name), \ - .parent =3D TYPE_RISCV_DYNAMIC_CPU, \ - .instance_init =3D (initfn), \ - .class_data =3D &(const RISCVCPUDef) { \ - .misa_mxl_max =3D (misa_mxl_max_), \ - .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .cfg.max_satp_mode =3D -1, \ - }, \ - } - #define DEFINE_VENDOR_CPU(type_name, misa_mxl_max_, initfn) \ { \ .name =3D (type_name), \ @@ -3235,7 +3161,12 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .class_base_init =3D riscv_cpu_class_base_init, }, =20 - DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_DYNAMIC_CPU, TYPE_RISCV_CPU), + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_DYNAMIC_CPU, TYPE_RISCV_CPU, + .cfg.mmu =3D true, + .cfg.pmp =3D true, + .priv_spec =3D PRIV_VERSION_LATEST, + ), + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_VENDOR_CPU, TYPE_RISCV_CPU), DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_BARE_CPU, TYPE_RISCV_CPU, /* @@ -3263,15 +3194,23 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #endif ), =20 + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_MAX, TYPE_RISCV_DYNAMIC_CPU, #if defined(TARGET_RISCV32) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_MAX, MXL_RV32, riscv_max_cpu_= init), + .misa_mxl_max =3D MXL_RV32, + .cfg.max_satp_mode =3D VM_1_10_SV32, #elif defined(TARGET_RISCV64) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_MAX, MXL_RV64, riscv_max_cpu_= init), + .misa_mxl_max =3D MXL_RV64, + .cfg.max_satp_mode =3D VM_1_10_SV57, #endif + ), =20 #if defined(TARGET_RISCV32) || \ (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_BASE32, MXL_RV32, rv32_base_cpu_= init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE32, TYPE_RISCV_DYNAMIC_CPU, + .cfg.max_satp_mode =3D VM_1_10_SV32, + .misa_mxl_max =3D MXL_RV32, + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_IBEX, MXL_RV32, rv32_ibex_cpu_= init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E31, MXL_RV32, rv32_sifive_e_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E34, MXL_RV32, rv32_imafcu_no= mmu_cpu_init), @@ -3288,11 +3227,18 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #endif =20 #if (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_MAX32, MXL_RV32, riscv_max_cpu_= init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_MAX32, TYPE_RISCV_DYNAMIC_CPU, + .cfg.max_satp_mode =3D VM_1_10_SV32, + .misa_mxl_max =3D MXL_RV32, + ), #endif =20 #if defined(TARGET_RISCV64) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_BASE64, MXL_RV64, rv64_base_cpu_= init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE64, TYPE_RISCV_DYNAMIC_CPU, + .cfg.max_satp_mode =3D VM_1_10_SV57, + .misa_mxl_max =3D MXL_RV64, + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E51, MXL_RV64, rv64_sifive_e_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U54, MXL_RV64, rv64_sifive_u_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SHAKTI_C, MXL_RV64, rv64_sifive_u_= cpu_init), @@ -3302,8 +3248,11 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, MXL_RV64, rv64_xiangshan_= nanhu_cpu_init), #if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) - DEFINE_DYNAMIC_CPU(TYPE_RISCV_CPU_BASE128, MXL_RV128, rv128_base_cpu= _init), -#endif /* CONFIG_TCG && !CONFIG_USER_ONLY */ + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE128, TYPE_RISCV_DYNAMIC_CPU, + .cfg.max_satp_mode =3D VM_1_10_SV57, + .misa_mxl_max =3D MXL_RV128, + ), +#endif /* CONFIG_TCG */ DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV64I, TYPE_RISCV_BARE_CPU, .misa_mxl_max =3D MXL_RV64, .misa_ext =3D RVI --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739359; cv=none; d=zohomail.com; s=zohoarc; b=DUsHX2vRQZCalnb7rllkQSR7nN0bVqDlEjCC+iwICsiWcacVrrYuJI5wl4wKIdEMIj9+x9d+zzNN1s0UEozhngVFIjgiFx3N0O6PFuwi+FRzAcn3NKxzlsFv2RNx6c+h5wi41Fe9LLKE2ShisP18fRvkOp8BLE6gbizVJZ8/Vag= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739359; 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=/9zNVAvbEj/OZ5dGDTKyCkTLrX0UKtdUcXjm8cpwpc8=; b=G7s6FD34LB0OIolZweXmzSJgx4qkQ+NFuc+uYtxlqX89X0sFNoiW7GuFZIl7z+zS92FJb4Uxege2p6e4Iu/Ujbe8aaiJtiueJGiIEnV82xBjk1nNNyupXZQMNE1m9YMduolN7hzY21O/Q5i+lj8H+RQa5tZLJ2qOV9eJZgZvRU8= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739359708412.01566645753974; Tue, 20 May 2025 04:09:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnw-0000zX-DD; Tue, 20 May 2025 07:06:40 -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 1uHKnr-0000fv-Bb for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:35 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnp-0003HX-3E for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:35 -0400 Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-423-YNRunw6QMd-x0oux76ToQA-1; Tue, 20 May 2025 07:06:31 -0400 Received: by mail-ed1-f70.google.com with SMTP id 4fb4d7f45d1cf-601a4d2913fso3007051a12.0 for ; Tue, 20 May 2025 04:06:30 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d4f1ca8sm7034642a12.6.2025.05.20.04.06.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/9zNVAvbEj/OZ5dGDTKyCkTLrX0UKtdUcXjm8cpwpc8=; b=UdOkjo9UI/nXIF3vVAMlkGrznYT2D/qYtxnBnkM013aFGsteEae5VAdriTQ/PK2Ca6nWPw 1xY86IMb8G5qPk8AcmcWAdIg8NJlD612AWYnR/hODiZQjbIVC0ZH4kqpF047YZLjcf8urV zLhvLXOXMdMaPWMu0bCVdibJeoJkWok= X-MC-Unique: YNRunw6QMd-x0oux76ToQA-1 X-Mimecast-MFC-AGG-ID: YNRunw6QMd-x0oux76ToQA_1747739190 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739189; x=1748343989; 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=/9zNVAvbEj/OZ5dGDTKyCkTLrX0UKtdUcXjm8cpwpc8=; b=CB9UPtXjj9Y4h2SzmWLICOUgVFPIbijbigVJFoVR7lZF6c8U3m6+Ado+1Mhazzh02X azbxU0b6VKAysui+zOuelGrjJrdb75kYHiVhfEX8m634G6EmA3PqtHwQAw5KvzCMtk/D pMsdD0hPzNV2hZRqxExMaDzY7OuDYrib7i7BccrvDWmrcRwIpIk32lDCc4tNqzSSp6L1 5TN5f1RKFXoKk2e2BgU1HhEv9EgGIWRZiBQNJ/s0x8ZQ46YjgTTrG7Nm24SFYG5p5jlM WzNhZSWh1NvEbSEMox09oqtVF4EEGWV2tiwoQ4m6yRSkcdptPr0+sBBQdAYMNSi+Ghsj dLgw== X-Gm-Message-State: AOJu0YxJGh7xiJLDMCpAyk3rmYbLjTq1hVtHU64CEumlmh89rldKeWez qFDtrgpPwpgAh1JA/5RNFlJoWfV8TMhvIcLX6FoAvJfmuMu6lyKP2/sssRvFyUYSGLJB3tEWi3d WBQ8NXcoTX3dyH2MIYl3hZ4kXsWrRHLiBIOIij12iQPgh/gTLAHvqbTQ8L+h0bsu7Q6hex1DhrM FiA+qSae74r1WzIrkxdYe1/7b8KMw/L9uEZvyuBvMD X-Gm-Gg: ASbGnctKD7EC6GXj4DiDXGyejeF+Up8Op1RnKWnWLx5IT50yZVUem2JSvU2C/Geb1um WhGqQWyTNZ7ndnmcLWzNjRBIfA6OAHYZ6p3fs90UV99UdhsFB0IE2JhumvXxNdMLCKMQJJLBH0f 2zY9tgZuVUOQsyLF7UGaxq2BXdNVpHSYIotjjFNrMj6+oP612dDgSnnBN46O3J8Io7Wp0Iu/wzJ rSDnM334QN6BhPbi8xqzhS9FgcdOxU5hpUV/ttS4XCAi7j9ILRyvIAx9Oi79qc4sqcS7aKvfYZn cDno5wdQiXLuGg== X-Received: by 2002:a05:6402:1e89:b0:5fc:aa51:4d9a with SMTP id 4fb4d7f45d1cf-6011411d313mr14105429a12.26.1747739189124; Tue, 20 May 2025 04:06:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGWzzdSeHlcdQBsRZD5rn0JDj2k/BnLC4gOxcNYghM6mOH2UG5KF433ACa2R1Jp3bmiYW3Fxg== X-Received: by 2002:a05:6402:1e89:b0:5fc:aa51:4d9a with SMTP id 4fb4d7f45d1cf-6011411d313mr14105395a12.26.1747739188638; Tue, 20 May 2025 04:06:28 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 25/35] target/riscv: convert SiFive E CPU models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:20 +0200 Message-ID: <20250520110530.366202-26-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739360955116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu-qom.h | 1 + target/riscv/cpu.c | 74 ++++++++++++------------------------------ 2 files changed, 21 insertions(+), 54 deletions(-) diff --git a/target/riscv/cpu-qom.h b/target/riscv/cpu-qom.h index 4cfdb74891e..0f9be15e47b 100644 --- a/target/riscv/cpu-qom.h +++ b/target/riscv/cpu-qom.h @@ -44,6 +44,7 @@ #define TYPE_RISCV_CPU_RVA23S64 RISCV_CPU_TYPE_NAME("rva23s64") #define TYPE_RISCV_CPU_IBEX RISCV_CPU_TYPE_NAME("lowrisc-ibex") #define TYPE_RISCV_CPU_SHAKTI_C RISCV_CPU_TYPE_NAME("shakti-c") +#define TYPE_RISCV_CPU_SIFIVE_E RISCV_CPU_TYPE_NAME("sifive-e") #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") #define TYPE_RISCV_CPU_SIFIVE_E34 RISCV_CPU_TYPE_NAME("sifive-e34") #define TYPE_RISCV_CPU_SIFIVE_E51 RISCV_CPU_TYPE_NAME("sifive-e51") diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 2b26f23bd0a..17ad8b2ca1f 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -503,23 +503,6 @@ static void rv64_sifive_u_cpu_init(Object *obj) cpu->cfg.pmp =3D true; } =20 -static void rv64_sifive_e_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVI | RVM | RVA | RVC | RVU); - env->priv_ver =3D PRIV_VERSION_1_10_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_MBARE); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.pmp =3D true; -} - static void rv64_thead_c906_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -708,23 +691,6 @@ static void rv32_sifive_u_cpu_init(Object *obj) cpu->cfg.pmp =3D true; } =20 -static void rv32_sifive_e_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVI | RVM | RVA | RVC | RVU); - env->priv_ver =3D PRIV_VERSION_1_10_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_MBARE); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.pmp =3D true; -} - static void rv32_ibex_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -746,23 +712,6 @@ static void rv32_ibex_cpu_init(Object *obj) cpu->cfg.ext_zbc =3D true; cpu->cfg.ext_zbs =3D true; } - -static void rv32_imafcu_nommu_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVI | RVM | RVA | RVF | RVC | RVU); - env->priv_ver =3D PRIV_VERSION_1_10_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_MBARE); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.pmp =3D true; -} #endif =20 static ObjectClass *riscv_cpu_class_by_name(const char *cpu_model) @@ -3204,6 +3153,15 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #endif ), =20 + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E, TYPE_RISCV_VENDOR_C= PU, + .misa_ext =3D RVI | RVM | RVA | RVC | RVU, + .priv_spec =3D PRIV_VERSION_1_10_0, + .cfg.max_satp_mode =3D VM_1_10_MBARE, + .cfg.ext_zifencei =3D true, + .cfg.ext_zicsr =3D true, + .cfg.pmp =3D true + ), + #if defined(TARGET_RISCV32) || \ (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE32, TYPE_RISCV_DYNAMIC_CPU, @@ -3212,8 +3170,14 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { ), =20 DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_IBEX, MXL_RV32, rv32_ibex_cpu_= init), - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E31, MXL_RV32, rv32_sifive_e_= cpu_init), - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E34, MXL_RV32, rv32_imafcu_no= mmu_cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E31, TYPE_RISCV_CPU_SIFIVE_E, + .misa_mxl_max =3D MXL_RV32 + ), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E34, TYPE_RISCV_CPU_SIFIVE_E, + .misa_mxl_max =3D MXL_RV32, + .misa_ext =3D RVF, /* IMAFCU */ + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U34, MXL_RV32, rv32_sifive_u_= cpu_init), =20 DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV32I, TYPE_RISCV_BARE_CPU, @@ -3239,7 +3203,9 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .misa_mxl_max =3D MXL_RV64, ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_E51, MXL_RV64, rv64_sifive_e_= cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E51, TYPE_RISCV_CPU_SIFIVE_E, + .misa_mxl_max =3D MXL_RV64 + ), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U54, MXL_RV64, rv64_sifive_u_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SHAKTI_C, MXL_RV64, rv64_sifive_u_= cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_THEAD_C906, MXL_RV64, rv64_thead_c90= 6_cpu_init), --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739230; cv=none; d=zohomail.com; s=zohoarc; b=INaKvZCTR2GPgi2hbNZ4v2xfNHstd9vbmFViinu+W5P6DIDSufwU9Twy74O0ZcfkzEpLPe4N5vIYFbF3ZSyeV5bhCl1X/2akcfLVLP/2nDpjAy481+CNANaD9ZbTrnkg/6JPIleoIZumeedrCrVZOHy9ceYygTh3IOk3L5mx1IY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739230; 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=O+ysdJnjVluo6jSebuS5er9F+Pln3PK7sOvJMqbaJlM=; b=fk7W1FBEYVa6e2HpzocAYFkSC9CDvjz6u2FI17AHJfXOwke7ycHBmun9VSZEv7m2HaRhQFHmlWJq9RiXgib0v0nKy92+asWrR2sRNghTbkxz5IRl6Hz3ByieQ4VO/isWdkesPZj6xjj3q8Fy3K46h46xuw3lHxUFH2T6N/k2uwM= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 174773923020951.94752804790369; Tue, 20 May 2025 04:07:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKo2-0001On-Tg; Tue, 20 May 2025 07:06:47 -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 1uHKnt-0000pA-7Q for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:37 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnr-0003I0-BJ for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:36 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-287-gMn3RLEePbWTlp8F225_9Q-1; Tue, 20 May 2025 07:06:33 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-601fb2b7859so1546461a12.3 for ; Tue, 20 May 2025 04:06:32 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4ca827sm707166166b.163.2025.05.20.04.06.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739194; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O+ysdJnjVluo6jSebuS5er9F+Pln3PK7sOvJMqbaJlM=; b=C4p0GgsTzw0G7Ya3Gqs0P8xw/X68XDkWOW3nIccdFQGzR1BvyiuPqeBiJTZLzTObsx7cuA iWyXyhzZKOpHsfmhARbXAA/IMUjLDljmasdWQYWZqAuGNQrR0SLDN7X2GV9m3aM+Av4pt1 MumrLdNfUBfBAyLIMFALP0rvR2Wssm0= X-MC-Unique: gMn3RLEePbWTlp8F225_9Q-1 X-Mimecast-MFC-AGG-ID: gMn3RLEePbWTlp8F225_9Q_1747739192 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739191; x=1748343991; 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=O+ysdJnjVluo6jSebuS5er9F+Pln3PK7sOvJMqbaJlM=; b=UaeFbtQDMQ2ifvRNTgbRbqfJq+StWU2Nx/J/5Ndgzl+0FhhN53hsppA5sLzbHpSkmS EQTe/hWnQvUsUls3c/CsdxO8pE6/2qQ/AV3NmThCKHbaLbM9VYdhgIAyuWVTnQDhRpar FMlwi1qC7+7d1mfbH0HDMSBtjK7yU1dF0Bxh1yxiGWoX5GOUMVw9agveX5UpMkQRshs0 XOUAtuHz2SjVIvwbtdJBLRvi7sIqR6AbRMUwRX0o8mjIP31tXkYy6qi30hXykBgal+70 w5Ak5a81smlrXiT5G/8PlohRGR8PJpgIRXvDHIT6ivYLhLKruANcXEyRg9Yexcdf+vQT OZfQ== X-Gm-Message-State: AOJu0YyieOs4tdGDIEC3vsL+2dGlYAQC8CKc/MJTpbBzW4BZoatrQbUQ M+R9dlt4OviqtvYgGxDAbZL4oXM6puzbRTlpkd+wyPhkDadSdCdJVea3sQDOqdEsCMSsBwdb0gj mxy1yPdmgd+0wqX8/VKmC657epdnuQylOyKa81i82DergHrqhb6ioDTJLjk76VO5inl7rrfP5tc REMt6id5pdKPVFBZi0gIquGA7ku9ckSe1MCw6ymHJz X-Gm-Gg: ASbGncurLV4ltpxf1s4eAAFBj0nkOzcVWSybDHyLeTqIpkad3hZM0azC+yc2kA6eB9A bEW/d55d2Tz/lAbngEIWoJ7Wu9h+yHhxLIH4g6RPPRwlUBfElcNjgeI6lhj7lzqSpe2f3EDTNg3 X5Twwrcav1duRxKlJeS8Y0PYQtMwyhYArySI/mzc1Ywvf2H0MjGjAj+4II1tIX6w3xCjKGdEv2/ zAtQVUnOgxnO11HARRc4V7aUSwKeJS+Z3MaWACzlu0llqFErZYrIzxHuVXqrRwIoHuJaa4AyvAY 2+5FZffUVPG1SQ== X-Received: by 2002:a17:907:1b02:b0:ad5:3504:a6d with SMTP id a640c23a62f3a-ad536ddeb5bmr1335953566b.47.1747739191232; Tue, 20 May 2025 04:06:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE89vo4xSX4+K4YhVeAXV07upmmA17APg/BFZ8fw3rbsDMfq5N6SyLjljasnYNCeWGZosB7gw== X-Received: by 2002:a17:907:1b02:b0:ad5:3504:a6d with SMTP id a640c23a62f3a-ad536ddeb5bmr1335949866b.47.1747739190663; Tue, 20 May 2025 04:06:30 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 26/35] target/riscv: convert ibex CPU models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:21 +0200 Message-ID: <20250520110530.366202-27-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739235118116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 17ad8b2ca1f..689c33916e0 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -690,28 +690,6 @@ static void rv32_sifive_u_cpu_init(Object *obj) cpu->cfg.mmu =3D true; cpu->cfg.pmp =3D true; } - -static void rv32_ibex_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVI | RVM | RVC | RVU); - env->priv_ver =3D PRIV_VERSION_1_12_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_MBARE); -#endif - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.pmp =3D true; - cpu->cfg.ext_smepmp =3D true; - - cpu->cfg.ext_zba =3D true; - cpu->cfg.ext_zbb =3D true; - cpu->cfg.ext_zbc =3D true; - cpu->cfg.ext_zbs =3D true; -} #endif =20 static ObjectClass *riscv_cpu_class_by_name(const char *cpu_model) @@ -3169,7 +3147,22 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .misa_mxl_max =3D MXL_RV32, ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_IBEX, MXL_RV32, rv32_ibex_cpu_= init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_IBEX, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV32, + .misa_ext =3D RVI | RVM | RVC | RVU, + .priv_spec =3D PRIV_VERSION_1_12_0, + .cfg.max_satp_mode =3D VM_1_10_MBARE, + .cfg.ext_zifencei =3D true, + .cfg.ext_zicsr =3D true, + .cfg.pmp =3D true, + .cfg.ext_smepmp =3D true, + + .cfg.ext_zba =3D true, + .cfg.ext_zbb =3D true, + .cfg.ext_zbc =3D true, + .cfg.ext_zbs =3D true + ), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E31, TYPE_RISCV_CPU_SIFIVE_E, .misa_mxl_max =3D MXL_RV32 ), --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739401; cv=none; d=zohomail.com; s=zohoarc; b=iHl1/y1m1Nrn3goeOx7xa+GJjiSc7UksUE3mYelGCkclSfpR9cT6r42OBorbtAAi9FDEv8af5a2XoApU0mdvZirVseSNPHE5/04DSaTFGfekK+4PF1hzqbu/UIs9Md0xQJCIqFDlbFqVP9u7pQssFU1DhU/ks8Z2nx23oG1agpg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739401; 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=Xl0LCbPEvchG6572FkpZMEourGBm16C5tJpn9HWtYJc=; b=KIb+ugWEDIFeM0QuRF3zOC/+Xf9NNN1NXO2ynvb5fq5I7o01mlQHWxy6k3JHf30nsj0odYF8NQEPBSUYWf0YVvLy6pdwP9dx6cJirM6x1+85Qfp3Ijh7bjoYVZ231LLUCuDLyu6G0vGrja/MfpS+6elgMh2PYzK4S/V9KAdH6q4= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739401573962.5584116999283; Tue, 20 May 2025 04:10:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKnz-00019o-0Y; Tue, 20 May 2025 07:06:43 -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 1uHKnv-0000yv-8x for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKns-0003IY-HG for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:38 -0400 Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-385-YvpmgmeHMV6yg0i8qhkJkQ-1; Tue, 20 May 2025 07:06:34 -0400 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-601a3e44997so2411485a12.0 for ; Tue, 20 May 2025 04:06:34 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6004d4f2968sm6979041a12.2.2025.05.20.04.06.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739195; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Xl0LCbPEvchG6572FkpZMEourGBm16C5tJpn9HWtYJc=; b=Ci1p4ZX94WBU2SfYFtRto+kS1VcAGuGKTN8yo9TbnxxNaZ7PQYPs30+QLd5uUe31HS27lC nAlBJhwytS9l1CDIMQuZQJLZ7fRonwDjOWKmhiRw19zWFWahUXx5MUgrsMnyyk3BoRgNq5 FHm3sUEV/NcPvc5VGQ5BlTY3bstFeEI= X-MC-Unique: YvpmgmeHMV6yg0i8qhkJkQ-1 X-Mimecast-MFC-AGG-ID: YvpmgmeHMV6yg0i8qhkJkQ_1747739193 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739192; x=1748343992; 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=Xl0LCbPEvchG6572FkpZMEourGBm16C5tJpn9HWtYJc=; b=PQkOpetSy6zengHKWa4RtoGsoCKAAA3iQl5j3/UsQheYpsT+YbnTegoaJwiJJQ6PB3 vx8+HsjEp9K0TYNaNTJATDL/vYNr7lIC/s8C1wMYvSwhYNHQOu0cPN2JCENM+ok/Udaf 8MKMtDNsJHpNifZyWjQDA00LkBcu+d38cDKXdNI5FuxewIvG+dhlptZHZyyOr3wBWodu HEbTxVojaxW6P/jiRSdUOr/3FaMxRtvDSXI0KMD37BEcJq5+KD9turOTtyJmJMH+kPbz 27CiKnCEiy7HXtnvqGiFxr4HFFkND2VtBiaBGp2ObYUnKQSpJtxgWCqBo2yo37UU2D06 zxaA== X-Gm-Message-State: AOJu0YzXzmqgDczO86nFoMLjuRZbVkLluFakNVso/77c7DFtikSaMlEj IqMxqiQ69+fHPM+KX67A3jjsnxuOgS3jJdMsazpnASNTe6Z0jh/3NFRpdjMxW6C10rUxEZrZKKX CEFVZdAXn3nlx/siOWVMiisik9L4hrjkG1U9NC3cLvy7o3ghrlZ26DCRYh/QACbkiqX3UpGIdAw NSrpmWA04NjP3+h6p+Tw8DgFHKZHxk7JqTtFNoAva5 X-Gm-Gg: ASbGncu76r+MD4mpJqSZq+2wuSvyl8WaPB+yyVu85ARojxP03nLCQCI9leMK8eIlmCv zgg1LZ5oikblX4xyfkIwu+qnLRcy8Oza9joomjxM9BiaXahcW0z6niAPnA+aRV+xrzmQXHw5SqA d0Z9llzhny7lK/XPo1vpB986W6DV///kA4RgHUVwcZFjLs6h/Yj3VpyOhUZNYRY9Zv4BIjX5PTc PFLaI3Yge+/pOBLSX6ViuH5FBXDe58tMCG2h++NHrh7eW0iuPK0QCYdnzEy8tJl8NHcZ4TgeGVW sRDvTwm/B9cEsg== X-Received: by 2002:a05:6402:5110:b0:601:bcc5:a50 with SMTP id 4fb4d7f45d1cf-601bcc50ccemr8205009a12.8.1747739192366; Tue, 20 May 2025 04:06:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHqP/KiZAvuAJ7g58ft/JVpfa3O3/iNbKBl0/DV4/5dJfULc56QhHUIHa3EHD93ptko6YVcMA== X-Received: by 2002:a05:6402:5110:b0:601:bcc5:a50 with SMTP id 4fb4d7f45d1cf-601bcc50ccemr8204976a12.8.1747739191866; Tue, 20 May 2025 04:06:31 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 27/35] target/riscv: convert SiFive U models to RISCVCPUDef Date: Tue, 20 May 2025 13:05:22 +0200 Message-ID: <20250520110530.366202-28-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739403452116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu-qom.h | 1 + target/riscv/cpu.c | 79 +++++++++++++++++++----------------------- 2 files changed, 37 insertions(+), 43 deletions(-) diff --git a/target/riscv/cpu-qom.h b/target/riscv/cpu-qom.h index 0f9be15e47b..1ee05eb393d 100644 --- a/target/riscv/cpu-qom.h +++ b/target/riscv/cpu-qom.h @@ -48,6 +48,7 @@ #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") #define TYPE_RISCV_CPU_SIFIVE_E34 RISCV_CPU_TYPE_NAME("sifive-e34") #define TYPE_RISCV_CPU_SIFIVE_E51 RISCV_CPU_TYPE_NAME("sifive-e51") +#define TYPE_RISCV_CPU_SIFIVE_U RISCV_CPU_TYPE_NAME("sifive-u") #define TYPE_RISCV_CPU_SIFIVE_U34 RISCV_CPU_TYPE_NAME("sifive-u34") #define TYPE_RISCV_CPU_SIFIVE_U54 RISCV_CPU_TYPE_NAME("sifive-u54") #define TYPE_RISCV_CPU_THEAD_C906 RISCV_CPU_TYPE_NAME("thead-c906") diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 689c33916e0..01b028653a3 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -440,8 +440,8 @@ const char *satp_mode_str(uint8_t satp_mode, bool is_32= _bit) g_assert_not_reached(); } =20 -static void set_satp_mode_max_supported(RISCVCPU *cpu, - int satp_mode) +static void __attribute__((unused)) +set_satp_mode_max_supported(RISCVCPU *cpu, int satp_mode) { bool rv32 =3D riscv_cpu_mxl(&cpu->env) =3D=3D MXL_RV32; const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; @@ -486,23 +486,6 @@ static void set_satp_mode_default_map(RISCVCPU *cpu) #endif =20 #if defined(TARGET_RISCV64) -static void rv64_sifive_u_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - riscv_cpu_set_misa_ext(env, RVI | RVM | RVA | RVF | RVD | RVC | RVS | = RVU); - env->priv_ver =3D PRIV_VERSION_1_10_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV39); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; -} - static void rv64_thead_c906_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -671,27 +654,6 @@ static void rv64_xiangshan_nanhu_cpu_init(Object *obj) =20 #endif /* !TARGET_RISCV64 */ =20 -#if defined(TARGET_RISCV32) || \ - (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) - -static void rv32_sifive_u_cpu_init(Object *obj) -{ - RISCVCPU *cpu =3D RISCV_CPU(obj); - CPURISCVState *env =3D &cpu->env; - riscv_cpu_set_misa_ext(env, RVI | RVM | RVA | RVF | RVD | RVC | RVS | = RVU); - env->priv_ver =3D PRIV_VERSION_1_10_0; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV32); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; -} -#endif - static ObjectClass *riscv_cpu_class_by_name(const char *cpu_model) { ObjectClass *oc; @@ -2921,6 +2883,17 @@ static void riscv_cpu_class_base_init(ObjectClass *c= , const void *data) if (def->misa_mxl_max) { assert(def->misa_mxl_max <=3D MXL_RV128); mcc->def->misa_mxl_max =3D def->misa_mxl_max; + +#ifndef CONFIG_USER_ONLY + /* + * Hack to simplify CPU class hierarchies that include both 32= - and + * 64-bit models: reduce SV39/48/57/64 to SV32 for 32-bit mode= ls. + */ + if (mcc->def->misa_mxl_max =3D=3D MXL_RV32 && + !valid_vm_1_10_32[mcc->def->cfg.max_satp_mode]) { + mcc->def->cfg.max_satp_mode =3D VM_1_10_SV32; + } +#endif } if (def->priv_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { assert(def->priv_spec <=3D PRIV_VERSION_LATEST); @@ -3140,6 +3113,17 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.pmp =3D true ), =20 + DEFINE_ABSTRACT_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_U, TYPE_RISCV_VENDOR_C= PU, + .misa_ext =3D RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU, + .priv_spec =3D PRIV_VERSION_1_10_0, + + .cfg.max_satp_mode =3D VM_1_10_SV39, + .cfg.ext_zifencei =3D true, + .cfg.ext_zicsr =3D true, + .cfg.mmu =3D true, + .cfg.pmp =3D true + ), + #if defined(TARGET_RISCV32) || \ (defined(TARGET_RISCV64) && !defined(CONFIG_USER_ONLY)) DEFINE_RISCV_CPU(TYPE_RISCV_CPU_BASE32, TYPE_RISCV_DYNAMIC_CPU, @@ -3171,7 +3155,9 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .misa_ext =3D RVF, /* IMAFCU */ ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U34, MXL_RV32, rv32_sifive_u_= cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_U34, TYPE_RISCV_CPU_SIFIVE_U, + .misa_mxl_max =3D MXL_RV32, + ), =20 DEFINE_RISCV_CPU(TYPE_RISCV_CPU_RV32I, TYPE_RISCV_BARE_CPU, .misa_mxl_max =3D MXL_RV32, @@ -3199,8 +3185,15 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_E51, TYPE_RISCV_CPU_SIFIVE_E, .misa_mxl_max =3D MXL_RV64 ), - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SIFIVE_U54, MXL_RV64, rv64_sifive_u_= cpu_init), - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_SHAKTI_C, MXL_RV64, rv64_sifive_u_= cpu_init), + + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SIFIVE_U54, TYPE_RISCV_CPU_SIFIVE_U, + .misa_mxl_max =3D MXL_RV64, + ), + + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_SHAKTI_C, TYPE_RISCV_CPU_SIFIVE_U, + .misa_mxl_max =3D MXL_RV64, + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_THEAD_C906, MXL_RV64, rv64_thead_c90= 6_cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_TT_ASCALON, MXL_RV64, rv64_tt_ascalo= n_cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_VEYRON_V1, MXL_RV64, rv64_veyron_v1= _cpu_init), --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739279; cv=none; d=zohomail.com; s=zohoarc; b=JyCrfaN+7kKKNGrpkvgnV/w4sDqXJSOiRdSee3/QbEwQ38f7AOSpf4LvmT97hFn9mbS9bAmzisuvHED08LgPSjWfJunCRKghp7mgYRtCUfeSHTw/v8dntGLkkkRiFI4ZOGWeW/pAnytaGdNM5KmN3MeGfJieEd9QA9OfauIJjBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739279; 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=vI4DnVjNkhsHegIRh504HY8E3e3XL3fmDWImMxQ9guA=; b=Kfd6dwYhJNmrtvbatl2CDF/BT6+THURpuI8PpK1XCJn5Lkuw+xUS21tJG9pgVPXhPK/s8t32/LYawp+cJlOewJ6ByzEf7I2P4iRknp8DIdlY8105+QV9q4lWNrYr5aeDKTowm+QBF6WVQn2P09QI2EZ7KJ5imTJD/u8t3bCf3Js= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739279521872.38199032209; Tue, 20 May 2025 04:07:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKo4-0001Vx-Ma; Tue, 20 May 2025 07:06:49 -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 1uHKny-0001An-Ke for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:42 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnw-0003JZ-Tv for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:42 -0400 Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-690-DudTQ1HtMZufkiprzKPkzA-1; Tue, 20 May 2025 07:06:37 -0400 Received: by mail-ed1-f69.google.com with SMTP id 4fb4d7f45d1cf-601f918c628so1933236a12.3 for ; Tue, 20 May 2025 04:06:37 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6005ae3940fsm6978321a12.74.2025.05.20.04.06.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vI4DnVjNkhsHegIRh504HY8E3e3XL3fmDWImMxQ9guA=; b=h4cfOo0yvJ/FXqvj4XihpJcEqhYjFKVKYqoFKtlPGmsvx8YbJkU9Nd4i2AezuWjOe3U8Y8 U0d4JOw6gGBbpcTLcMdnJOmKdPOyx+DTXPmnAr68XkQkcMpRm1ao5Gu/9AbUOzwdD7dpcZ nwcYZCV6RmDNZzRotR1XdJQbITx2F2k= X-MC-Unique: DudTQ1HtMZufkiprzKPkzA-1 X-Mimecast-MFC-AGG-ID: DudTQ1HtMZufkiprzKPkzA_1747739197 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739195; x=1748343995; 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=vI4DnVjNkhsHegIRh504HY8E3e3XL3fmDWImMxQ9guA=; b=Dk02hkUChCqgqPfzTB2pMpC78RwORn3P/w84641iTvkf3I6r/78Iod4CQ6lqmQFB0u QG2t8VTsWzgNs+xZ/HQn3zNqZraQZxXjwRYc7RVKDnhhAWdnDknPH8Ryud93+mntHzlK gWhFWqmLm/IWZEX9CLwmTpGoFKwZtdjyOHzlHeq4xJv+KgYMAG6b3fW9W66ID3TMHwCc HJCK2cL6bzef5lA1BcFtuU2STFCVaUsLjfgtKEgeYFuwEgbmFD15YLxXC09ipCSPizKj 7MhHss0l5+BlKSB/M8nVZ/cem0rQRad8nlkaSAZS3wRV+bqgssMJSY2NalQj3fliAf/A ERiw== X-Gm-Message-State: AOJu0YzvqetDLmh9ViRTHkNEF0Jc8ORMal9f8tATRSmjnf+OToEj70Zp KzBNPzo5kFFHrhiF9Yc1jrdCAYuiHJvmv06llC4XDavJrGw1I5kNMBF6M7TOOH8+yAakz28CdMi 3MUshcjw0peoJwN0WhwE+L4PusH5zZt8c+sJ6iZwrQJT1MNzJOAuCXD1DaFWw+fE4mhG3I7xlgU xQ69dwrXVnOV+ked5KZux0SQPJB/Hbn/+6u6mcHKYb X-Gm-Gg: ASbGnctXtmP+te5EnG6R1zchbShyrvnGC+s5bU72PfHdZBT7rDtYnjHTovYa9UHt33K lAOkL0I9YwSLvw/3vcZftNjKP5WxzFohSH5Vfh5exTLjpMA4HjDLV+haOJjXo+9oG9NnV4Wvpxr 8MtdNzSqvADAnJe+AVeKg5kccuL2jLT4J0l73t0RlncVX0wMHrGMq8YvTLTmescmj/3Y7ftQIZo wmSiYK4KwXtC2Z3unyrtg076HgJOJGJq2Wjzgspzo9B+FVzDffHG3BIb7MmYMpVmtB2ssG8m0B4 8N26a2aGh/tV2w== X-Received: by 2002:a05:6402:520f:b0:5fe:7b09:9e27 with SMTP id 4fb4d7f45d1cf-60114088719mr12589620a12.12.1747739195450; Tue, 20 May 2025 04:06:35 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEGQaUpDWbzrYSsRJHvQHkHpTLD/3Qu8vlVNid6J0mL9p8Hk95pdkj3ugJi1ucDuzjtI0y7ag== X-Received: by 2002:a05:6402:520f:b0:5fe:7b09:9e27 with SMTP id 4fb4d7f45d1cf-60114088719mr12589594a12.12.1747739194968; Tue, 20 May 2025 04:06:34 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 28/35] target/riscv: th: make CSR insertion test a bit more intuitive Date: Tue, 20 May 2025 13:05:23 +0200 Message-ID: <20250520110530.366202-29-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739279863116600 Content-Type: text/plain; charset="utf-8" In preparation for generalizing the custom CSR functionality, make the test return bool instead of int. Make the insertion_test optional, too. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/th_csr.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/target/riscv/th_csr.c b/target/riscv/th_csr.c index 6c970d4e813..969a9fe3c80 100644 --- a/target/riscv/th_csr.c +++ b/target/riscv/th_csr.c @@ -29,7 +29,7 @@ =20 typedef struct { int csrno; - int (*insertion_test)(RISCVCPU *cpu); + bool (*insertion_test)(RISCVCPU *cpu); riscv_csr_operations csr_ops; } riscv_csr; =20 @@ -42,13 +42,9 @@ static RISCVException smode(CPURISCVState *env, int csrn= o) return RISCV_EXCP_ILLEGAL_INST; } =20 -static int test_thead_mvendorid(RISCVCPU *cpu) +static bool test_thead_mvendorid(RISCVCPU *cpu) { - if (cpu->cfg.mvendorid !=3D THEAD_VENDOR_ID) { - return -1; - } - - return 0; + return cpu->cfg.mvendorid =3D=3D THEAD_VENDOR_ID; } =20 static RISCVException read_th_sxstatus(CPURISCVState *env, int csrno, @@ -66,13 +62,12 @@ static riscv_csr th_csr_list[] =3D { .csr_ops =3D { "th.sxstatus", smode, read_th_sxstatus } } }; - void th_register_custom_csrs(RISCVCPU *cpu) { for (size_t i =3D 0; i < ARRAY_SIZE(th_csr_list); i++) { int csrno =3D th_csr_list[i].csrno; riscv_csr_operations *csr_ops =3D &th_csr_list[i].csr_ops; - if (!th_csr_list[i].insertion_test(cpu)) { + if (!th_csr_list[i].insertion_test || th_csr_list[i].insertion_tes= t(cpu)) { riscv_set_csr_ops(csrno, csr_ops); } } --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739286; cv=none; d=zohomail.com; s=zohoarc; b=aSs1zJS4xsUFeLZRK869EAEkt19sRhfInPV9zFRO7I9cVYtDBjg91jqSLutegHQTSiLnDynGeH+VXYi3R0lMZtqC8ct3Ji7JPNeEUUm2ggRwcncIsKWncQnhOSg3a0XGGfjN65HFzHAHkM1VlvjTnRcY8P5NJnwznIXwjTuEyHU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739286; 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=czKKNWxqZekPBvQJbIT+i70WaEQuVqWlGBCzzJatP78=; b=m73dS6/NH0bI/oHn/2dDmcgy+PDpb0vMWlhJHLeOziygtB6NylLfWv+vzR+B8FkFUr1EuE0zUhW23zAf5uPXvL9Zx0nLsGPxEe2posCK0r4vR+lCanviFqfO/BwOs/NRf6+VzlthZVdAo+EVwKmov0Og8F3suaUgm3C7qWgKxV0= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739286641939.2929049252031; Tue, 20 May 2025 04:08:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKoA-0001nP-PY; Tue, 20 May 2025 07:06: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 1uHKo1-0001L3-2M for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:45 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKny-0003Jw-S6 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:44 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-330-fzYxYz_YNNC36uI_OyTQ-A-1; Tue, 20 May 2025 07:06:40 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-acf00f500d2so111265066b.2 for ; Tue, 20 May 2025 04:06:40 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4ca731sm704409266b.166.2025.05.20.04.06.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739202; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=czKKNWxqZekPBvQJbIT+i70WaEQuVqWlGBCzzJatP78=; b=KXpLs82wSe8Qn7eMksPKQ8bo3uRXJ9q0iXPvyfSgrhEHwSnUB30ju/NHbEMfCPeDd1o0vB DbtvL8d1Z+DRn2RHMDD/cwBRzm06Dd5v/nE8oq6GWdGvVKyiz2PdsNdJz6caSLwMqnjIVG SubLY9iGh7gFzqva4ni/VCnkwrRl/FQ= X-MC-Unique: fzYxYz_YNNC36uI_OyTQ-A-1 X-Mimecast-MFC-AGG-ID: fzYxYz_YNNC36uI_OyTQ-A_1747739200 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739198; x=1748343998; 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=czKKNWxqZekPBvQJbIT+i70WaEQuVqWlGBCzzJatP78=; b=b8nJ9BAVdC2lAxKu3Fpnll1exBTNexxPhTP490bQMfHKuPrEHTXl01/7tLFeBIWMUn SWqsDeYVI83ntk+hjnfAJIc8A8gN+izvyYEqeABefy3hfqQslm6sxjb91bieYVZ1DM/K nWPbaQdf+GQM2b9FVN8jA1mDC6tZtEZDS7sG0QGkzbSqYy+6BXeSI1GsBn7LsK/fRR1f ECtcu1qm9Af7M95j9MQKIs4mtHn8A61TAIOFH+U0dkLdh1Vclt3qYv1Vu+PAaut8U2cD 74Cxs7GOsFQAQv/JoqO70SItF7PsFMjkPF/jFXtyjMBkYkcy14QCfRmFHXJeyAR9A9RW ep0Q== X-Gm-Message-State: AOJu0YwMN6bbubTGQFT98kGWuom1xWCcPaQckH347M7Htdtc3jbe+wJZ mDwWqpTyVTdWlSKO1XOooZ/x6kO1UfeMVqjxDMI0xnNklo99u9DMIy1QhgC6RikP6ofel5VW4tP 8uKdQsyXFkJiel6TLs232sezycuyotYedO1pdNZhEoZEOZ31m7YSdfyv9WuTgoxHXPxw1x26yon C6/V/XtvC2ca8e56Y/XErXKKJkPwhudb21iDpW2FKq X-Gm-Gg: ASbGncvV18gqBWLgA05o1Kc2gtsxHtXOHLZF9Epkx4sHa1F4f4LxA7dHsu7XmxrIhci qaqGGWL0iTw73N36o1LffDKdHxOawndtQ/nXz/9Jl2ANhrKVoqZWtF5R9L/XgAnamTb3SDtt0uv D4mb3uI/xNBtNBU4v5uLO1fabCa73ep2uoGUSPSVsxQ9y5uweDhUdhwINmbaacL+i35ExCss5o4 cRl0DeID069k+inIeiZ+DVf956/Fkzl54nb9BxvT0mk6lsx9iXJreyk9v3nR0zARtXS5fTLC2lO JOmNrmRu4nKSNA== X-Received: by 2002:a17:907:6e9e:b0:ad5:6cb5:fc0e with SMTP id a640c23a62f3a-ad56cb60bccmr783555966b.25.1747739198403; Tue, 20 May 2025 04:06:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEuKAzrgM9RJdkWd+hivaNV60g9URDIZS5BJdOpC8vRBt0fT2MqN5zDz70P0Nylmgrm5hc3iQ== X-Received: by 2002:a17:907:6e9e:b0:ad5:6cb5:fc0e with SMTP id a640c23a62f3a-ad56cb60bccmr783551866b.25.1747739197938; Tue, 20 May 2025 04:06:37 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 29/35] target/riscv: generalize custom CSR functionality Date: Tue, 20 May 2025 13:05:24 +0200 Message-ID: <20250520110530.366202-30-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739288093116600 Content-Type: text/plain; charset="utf-8" While at it, constify it so that the RISCVCSR array in RISCVCPUDef can also be const. Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.h | 15 ++++++++++++--- target/riscv/cpu.c | 25 ++++++++++++++++++++++++- target/riscv/csr.c | 2 +- target/riscv/th_csr.c | 21 +++------------------ 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index ed88adef452..229ade9ed91 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -538,6 +538,8 @@ struct ArchCPU { const GPtrArray *decoders; }; =20 +typedef struct RISCVCSR RISCVCSR; + typedef struct RISCVCPUDef { RISCVMXL misa_mxl_max; /* max mxl for this cpu */ RISCVCPUProfile *profile; @@ -546,6 +548,7 @@ typedef struct RISCVCPUDef { int32_t vext_spec; RISCVCPUConfig cfg; bool bare; + const RISCVCSR *custom_csrs; } RISCVCPUDef; =20 /** @@ -893,6 +896,12 @@ typedef struct { uint32_t min_priv_ver; } riscv_csr_operations; =20 +struct RISCVCSR { + int csrno; + bool (*insertion_test)(RISCVCPU *cpu); + riscv_csr_operations csr_ops; +}; + /* CSR function table constants */ enum { CSR_TABLE_SIZE =3D 0x1000 @@ -947,7 +956,7 @@ extern riscv_csr_operations csr_ops[CSR_TABLE_SIZE]; extern const bool valid_vm_1_10_32[], valid_vm_1_10_64[]; =20 void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops); -void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops); +void riscv_set_csr_ops(int csrno, const riscv_csr_operations *ops); =20 void riscv_cpu_register_gdb_regs_for_features(CPUState *cs); =20 @@ -956,8 +965,8 @@ target_ulong riscv_new_csr_seed(target_ulong new_value, =20 const char *satp_mode_str(uint8_t satp_mode, bool is_32_bit); =20 -/* Implemented in th_csr.c */ -void th_register_custom_csrs(RISCVCPU *cpu); +/* In th_csr.c */ +extern const RISCVCSR th_csr_list[]; =20 const char *priv_spec_to_str(int priv_version); #endif /* RISCV_CPU_H */ diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 01b028653a3..12f4bc41514 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -485,6 +485,19 @@ static void set_satp_mode_default_map(RISCVCPU *cpu) } #endif =20 +#ifndef CONFIG_USER_ONLY +static void riscv_register_custom_csrs(RISCVCPU *cpu, const RISCVCSR *csr_= list) +{ + for (size_t i =3D 0; csr_list[i].csr_ops.name; i++) { + int csrno =3D csr_list[i].csrno; + const riscv_csr_operations *csr_ops =3D &csr_list[i].csr_ops; + if (!csr_list[i].insertion_test || csr_list[i].insertion_test(cpu)= ) { + riscv_set_csr_ops(csrno, csr_ops); + } + } +} +#endif + #if defined(TARGET_RISCV64) static void rv64_thead_c906_cpu_init(Object *obj) { @@ -511,7 +524,7 @@ static void rv64_thead_c906_cpu_init(Object *obj) cpu->cfg.mvendorid =3D THEAD_VENDOR_ID; #ifndef CONFIG_USER_ONLY set_satp_mode_max_supported(cpu, VM_1_10_SV39); - th_register_custom_csrs(cpu); + riscv_register_custom_csrs(cpu, th_csr_list); #endif =20 /* inherited from parent obj via riscv_cpu_init() */ @@ -1304,6 +1317,11 @@ static void riscv_cpu_init(Object *obj) if (mcc->def->vext_spec !=3D RISCV_PROFILE_ATTR_UNUSED) { cpu->env.vext_ver =3D mcc->def->vext_spec; } +#ifndef CONFIG_USER_ONLY + if (mcc->def->custom_csrs) { + riscv_register_custom_csrs(cpu, mcc->def->custom_csrs); + } +#endif } =20 typedef struct misa_ext_info { @@ -2906,6 +2924,11 @@ static void riscv_cpu_class_base_init(ObjectClass *c= , const void *data) mcc->def->misa_ext |=3D def->misa_ext; =20 riscv_cpu_cfg_merge(&mcc->def->cfg, &def->cfg); + + if (def->custom_csrs) { + assert(!mcc->def->custom_csrs); + mcc->def->custom_csrs =3D def->custom_csrs; + } } =20 if (!object_class_is_abstract(c)) { diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 9843fd21914..fb149721691 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -40,7 +40,7 @@ void riscv_get_csr_ops(int csrno, riscv_csr_operations *o= ps) *ops =3D csr_ops[csrno & (CSR_TABLE_SIZE - 1)]; } =20 -void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops) +void riscv_set_csr_ops(int csrno, const riscv_csr_operations *ops) { csr_ops[csrno & (CSR_TABLE_SIZE - 1)] =3D *ops; } diff --git a/target/riscv/th_csr.c b/target/riscv/th_csr.c index 969a9fe3c80..49eb7bbab5f 100644 --- a/target/riscv/th_csr.c +++ b/target/riscv/th_csr.c @@ -27,12 +27,6 @@ #define TH_SXSTATUS_MAEE BIT(21) #define TH_SXSTATUS_THEADISAEE BIT(22) =20 -typedef struct { - int csrno; - bool (*insertion_test)(RISCVCPU *cpu); - riscv_csr_operations csr_ops; -} riscv_csr; - static RISCVException smode(CPURISCVState *env, int csrno) { if (riscv_has_ext(env, RVS)) { @@ -55,20 +49,11 @@ static RISCVException read_th_sxstatus(CPURISCVState *e= nv, int csrno, return RISCV_EXCP_NONE; } =20 -static riscv_csr th_csr_list[] =3D { +const RISCVCSR th_csr_list[] =3D { { .csrno =3D CSR_TH_SXSTATUS, .insertion_test =3D test_thead_mvendorid, .csr_ops =3D { "th.sxstatus", smode, read_th_sxstatus } - } + }, + { } }; -void th_register_custom_csrs(RISCVCPU *cpu) -{ - for (size_t i =3D 0; i < ARRAY_SIZE(th_csr_list); i++) { - int csrno =3D th_csr_list[i].csrno; - riscv_csr_operations *csr_ops =3D &th_csr_list[i].csr_ops; - if (!th_csr_list[i].insertion_test || th_csr_list[i].insertion_tes= t(cpu)) { - riscv_set_csr_ops(csrno, csr_ops); - } - } -} --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747740466; cv=none; d=zohomail.com; s=zohoarc; b=nurbRzHprRqZ6IiSnzXnSlDoyTTFx/1AX1JFIgfA/Serk8LZDQ2XdMt2hxV5Kgd+/A5Se6DH/+lt5eo3zQj7g5ZoEomIxfdBWSrOuh9uA5CNvWWdhvxQxv3L0acWrMejfWEjuzVW4UUeGyphzd9310Gv4Wl3tlC8w+E03aabvI0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747740466; 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=wr6/aXmZS/WJzFdqxr3n+Ds8ycR5EVa/Shpd3AuylyY=; b=Rz3aOmxyzN4U4709cS9xHaht+0zR4od2ukZKp8xixG0NrQXbyOaJ1qgy3GD97vYaoOHTcdluueMU3yMtzhmmZan7sOG5kd/QnUP7VL3JQqecysZkqERRwspRYq+VAbnjhJwYQSXgK8mgfon+V8FrYzELedoeDF5q0AksvgrfJmE= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747740466153621.2393189488934; Tue, 20 May 2025 04:27:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKo6-0001dS-OA; Tue, 20 May 2025 07:06:51 -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 1uHKo1-0001O2-UC for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:46 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKnz-0003Ki-T0 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:45 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-183-KgnzTWioOaywExRXv-B9pg-1; Tue, 20 May 2025 07:06:41 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad56437a03eso190649866b.0 for ; Tue, 20 May 2025 04:06:41 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04b04esm720954266b.15.2025.05.20.04.06.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739203; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wr6/aXmZS/WJzFdqxr3n+Ds8ycR5EVa/Shpd3AuylyY=; b=UEyBRGwgMZOuMA9uktv07mjoKYEk/ZFELvALLwAjhRCeOIO1YcpfpScjtRdGciQRECrLz4 f4VDSG/Vuuz03ZAKBaEq8wdI9y5KaA0jnpNRYkW4lMQVTHs1KhF1Rf4HMAn/Z4VK45FxuG CFx1JA4/An2Q0ed0JOjvR/uZ+WcG6Q0= X-MC-Unique: KgnzTWioOaywExRXv-B9pg-1 X-Mimecast-MFC-AGG-ID: KgnzTWioOaywExRXv-B9pg_1747739201 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739200; x=1748344000; 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=wr6/aXmZS/WJzFdqxr3n+Ds8ycR5EVa/Shpd3AuylyY=; b=EiKVTlu0BSu1XTN70VXnxxW65+M8RkATQ6Hq//OGshXjHwpB1+5Mi2usl+/cZlD3xw r0Iotag8joigaCKOlNebmsS1mHHTRwkO0RpQAQCXdNyMORNIp5A9CjB79oYvdAFk7ipd ag5nwvva02VttPETyy0SrtJX/99di6ucjCcUPvXQQzs92OcFqZ0rT4aWQVRYWVOQXL2H XlMz+qp/Hu22X5cWWdkuALinq9PGdxanX5on/Uk1+JnbCtuwC1VyPxy8fnKarVaikjJf rhzDIupthLChc5YdGNnE9DZMnqBB6/72xscXbmSKX6bfpS1XfmvTjQEzZPiVnEsO9yng rk4g== X-Gm-Message-State: AOJu0YyGm7KSxgGsSCHacNI1F+b/Xfp+i57HclcCu051tEcCoFjdd+BA RxUqz94GUm7TSGORFSSHzSFOGIUaGftYZtjVCY+F/vv8O3RIArbg5e0lhdNPFxO19/DAAfNbpIj EUZPopee3AYHi7ua2xXF9GR9n7ZLX7FnQiu5t0QF2k1LHeeKCXA5Yle0hFzplGZJAZYjKu14/xn 4R6oslsvSUKQgLqJIJtjvZ0xqDVj9mWIth0MI6D/C6 X-Gm-Gg: ASbGnctrGsFLa7QfAZ8lgMtE6TRztZwp0Cqh3k9+YMhny3VpcnEv2aBZo+E8PXW20D/ 9hRyUueZt2ndRSOCt3i8vA2y36lVYV4GSsa9Az7v1iC9ZNpMJr7lXjwIJF7WGbFddADRXZuH2MD 5xhfOPUCKVX4lBt5ViFz3ZmUY3O70ncKQpFlMXplnATC7f42IFFTHf/Oz9VSNd01qJZsR9++QvO T+DR3zmpwIp4mKBp8+2jI14ZAmN/c8m0bosG1cniNMECcAPVfTDVFrvzuiIJ7CFT37/jnKONl+4 MO/B3bnQ4o0LGg== X-Received: by 2002:a17:907:1c17:b0:ad5:3504:a5e with SMTP id a640c23a62f3a-ad536bcaaa0mr1271958566b.33.1747739199611; Tue, 20 May 2025 04:06:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHMR09Lm2XhQq+/4PfIT3j7yTV5gMtsjfzYIaOkrZhlUAczzmkKWQ3ECbGUcH+EshRAfc3MXQ== X-Received: by 2002:a17:907:1c17:b0:ad5:3504:a5e with SMTP id a640c23a62f3a-ad536bcaaa0mr1271956066b.33.1747739199131; Tue, 20 May 2025 04:06:39 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 30/35] target/riscv: convert THead C906 to RISCVCPUDef Date: Tue, 20 May 2025 13:05:25 +0200 Message-ID: <20250520110530.366202-31-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747740466760116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 61 +++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 12f4bc41514..5d2ccf647dd 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -499,38 +499,6 @@ static void riscv_register_custom_csrs(RISCVCPU *cpu, = const RISCVCSR *csr_list) #endif =20 #if defined(TARGET_RISCV64) -static void rv64_thead_c906_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVG | RVC | RVS | RVU); - env->priv_ver =3D PRIV_VERSION_1_11_0; - - cpu->cfg.ext_zfa =3D true; - cpu->cfg.ext_zfh =3D true; - cpu->cfg.mmu =3D true; - cpu->cfg.ext_xtheadba =3D true; - cpu->cfg.ext_xtheadbb =3D true; - cpu->cfg.ext_xtheadbs =3D true; - cpu->cfg.ext_xtheadcmo =3D true; - cpu->cfg.ext_xtheadcondmov =3D true; - cpu->cfg.ext_xtheadfmemidx =3D true; - cpu->cfg.ext_xtheadmac =3D true; - cpu->cfg.ext_xtheadmemidx =3D true; - cpu->cfg.ext_xtheadmempair =3D true; - cpu->cfg.ext_xtheadsync =3D true; - - cpu->cfg.mvendorid =3D THEAD_VENDOR_ID; -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_SV39); - riscv_register_custom_csrs(cpu, th_csr_list); -#endif - - /* inherited from parent obj via riscv_cpu_init() */ - cpu->cfg.pmp =3D true; -} - static void rv64_veyron_v1_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -3217,7 +3185,34 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .misa_mxl_max =3D MXL_RV64, ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_THEAD_C906, MXL_RV64, rv64_thead_c90= 6_cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_THEAD_C906, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVG | RVC | RVS | RVU, + .priv_spec =3D PRIV_VERSION_1_11_0, + + .cfg.ext_zfa =3D true, + .cfg.ext_zfh =3D true, + .cfg.mmu =3D true, + .cfg.ext_xtheadba =3D true, + .cfg.ext_xtheadbb =3D true, + .cfg.ext_xtheadbs =3D true, + .cfg.ext_xtheadcmo =3D true, + .cfg.ext_xtheadcondmov =3D true, + .cfg.ext_xtheadfmemidx =3D true, + .cfg.ext_xtheadmac =3D true, + .cfg.ext_xtheadmemidx =3D true, + .cfg.ext_xtheadmempair =3D true, + .cfg.ext_xtheadsync =3D true, + .cfg.pmp =3D true, + + .cfg.mvendorid =3D THEAD_VENDOR_ID, + + .cfg.max_satp_mode =3D VM_1_10_SV39, +#ifndef CONFIG_USER_ONLY + .custom_csrs =3D th_csr_list, +#endif + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_TT_ASCALON, MXL_RV64, rv64_tt_ascalo= n_cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_VEYRON_V1, MXL_RV64, rv64_veyron_v1= _cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747741181; cv=none; d=zohomail.com; s=zohoarc; b=Pu+O28wvd90iKX08Z+pWUbifWG3mDmRL7nsBFxJMB1EnlsWoIz5t7qg2sT8HHSbEut+Hvx9f73Hx80g3vgz6Jead4vxJv+0RVR05cJx6FSzDXRTBkb0YIsNhgp59LdUFLq9263A7+1Qt26KJKkRfFehtx0klsG89u7sEai2XGgY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741181; 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=qyOPdIuUi/7DofZnYNRdMGzsex21bHLbgxIz/sIZi/g=; b=leRWWiTfgmYE26lOVZ1HmX9iE44kkTtM354GAdzLKbxO2gi6LSbgQB0lYSJpeiCKp+Sr3XlGgsu5kv3tL+7kZaZv9Zdoym1S/ZtEaTnQUXcjBXowyO9PkhbjZ7krD3Qk4JUuJyrJi/Wx6iE4bNEkxN9Q1RQpmNeo9ZcQLpRhliE= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747741181545683.4815758840225; Tue, 20 May 2025 04:39:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKoE-000276-PG; Tue, 20 May 2025 07:07:00 -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 1uHKo4-0001b9-Sp for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKo2-0003Ng-LU for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:48 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-92-j1ngOHgVNKqk3r_KSW-5Lg-1; Tue, 20 May 2025 07:06:44 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-acb8f9f58ebso439106766b.2 for ; Tue, 20 May 2025 04:06:44 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d498b2fsm718345266b.147.2025.05.20.04.06.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qyOPdIuUi/7DofZnYNRdMGzsex21bHLbgxIz/sIZi/g=; b=hJjgt0Oj/3nmVFuAOzQQ5uSkeDNWJhW/YWknbyxOpKxngyq2SCZVMTI1X8HLmf5V3qFaJh lC2CefV4RKwipgTm2f1rqOXUtoVFPK6AlSE3QdjsfzUpD+J26aots5pq5kw1LDeaIOKUI/ T+ZUY12LECiX+R/A+8dKF6dCKQP38/M= X-MC-Unique: j1ngOHgVNKqk3r_KSW-5Lg-1 X-Mimecast-MFC-AGG-ID: j1ngOHgVNKqk3r_KSW-5Lg_1747739203 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739203; x=1748344003; 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=qyOPdIuUi/7DofZnYNRdMGzsex21bHLbgxIz/sIZi/g=; b=eEMKXaiuIpZWn1YazGrSCiACdK3TQrqWHRNhcwHAbWvRFQfhuc1XZLUFqirA37nV9k gEimBmo/j5OT4n24s50U16zFeoXEqmW+ZSOxKRpYCwa8GL2VTfiAVWYzssC/ZyY63iI/ A0zl7GeKcuz4XdFlG1oOTTu+cxkJPT9Vq8l7XrEO9iQexHjfx9GVjyOH0aBmPyPzi6mu naUZgvpLxs081nplbfvwE1wijja5xi+S/1DPKOS9ghQRvYrhM9v+9eTPSfE9udo+QIOM 4GqiWu4gsgXp8ViDAy3oEn5UeR4KcHfjji5e0fBwbCGmfdwuNkjdoMPZMithoacBylu9 YW8w== X-Gm-Message-State: AOJu0YzOea1c0M/+32Rr/7faMImyDumycR9kRX27pllnAa67L8EG7fr+ 8C+MVzqfhoVTdtpCzVYtHEiFrQoS/Ng1ym8ww/ubflwHKpZcjbOXYEDbLyDeVae31GGfWEP5sPz BLL/d8OsYVRb0tLcVMPXged2GrrPDA9/7ljFSF7w+t24u3IClzYioBm89Ju+YQgtH+ymjtvEMj9 JdeTGm402JJkXUfsfpXNiCJD/MMbp+Y/3A9pP0DT4S X-Gm-Gg: ASbGncs0swzcDj+ctXbn7wZfhULNBB9jZagMyywJN65I5ozpDzc4n/q8UKYjcKJ+lrL vI37DVGsYp3gi5tnYaem6bMrw85fOaS8ePTIgNia3Bl6UW7BmCCljf86a3cZLp0YMC4Hfxm2P2i 99OFgwcUfvODkEUc+ojbLeGKI6Gahx/DRt3zsygE1N5OVgAQJsPGxgTEcW3xPiuxmNQ25wE3O5F paXLY34Nax37NvjuyHArg9ApB5NCrlt1/es9kW7yPxJrbTVR7aPJR6gaFvTAnWQkQO3i1/OvUgi U4EBcX8N4F5jvg== X-Received: by 2002:a17:907:3f1b:b0:ad5:6dac:ec09 with SMTP id a640c23a62f3a-ad56dacee7emr656813266b.60.1747739202845; Tue, 20 May 2025 04:06:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IECBOdtifwA13QgRpTxliMRgHO946AxVvVd2yhzB3GrgghW1tDSyoUewOvbmDCRZavRyELgzQ== X-Received: by 2002:a17:907:3f1b:b0:ad5:6dac:ec09 with SMTP id a640c23a62f3a-ad56dacee7emr656809366b.60.1747739202263; Tue, 20 May 2025 04:06:42 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 31/35] target/riscv: convert TT Ascalon to RISCVCPUDef Date: Tue, 20 May 2025 13:05:26 +0200 Message-ID: <20250520110530.366202-32-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747741183509116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 127 +++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 67 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 5d2ccf647dd..48939adaafe 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -539,72 +539,6 @@ static void rv64_veyron_v1_cpu_init(Object *obj) #endif } =20 -/* Tenstorrent Ascalon */ -static void rv64_tt_ascalon_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVG | RVC | RVS | RVU | RVH | RVV); - env->priv_ver =3D PRIV_VERSION_1_13_0; - - /* Enable ISA extensions */ - cpu->cfg.mmu =3D true; - cpu->cfg.vlenb =3D 256 >> 3; - cpu->cfg.elen =3D 64; - cpu->env.vext_ver =3D VEXT_VERSION_1_00_0; - cpu->cfg.rvv_ma_all_1s =3D true; - cpu->cfg.rvv_ta_all_1s =3D true; - cpu->cfg.misa_w =3D true; - cpu->cfg.pmp =3D true; - cpu->cfg.cbom_blocksize =3D 64; - cpu->cfg.cbop_blocksize =3D 64; - cpu->cfg.cboz_blocksize =3D 64; - cpu->cfg.ext_zic64b =3D true; - cpu->cfg.ext_zicbom =3D true; - cpu->cfg.ext_zicbop =3D true; - cpu->cfg.ext_zicboz =3D true; - cpu->cfg.ext_zicntr =3D true; - cpu->cfg.ext_zicond =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zihintntl =3D true; - cpu->cfg.ext_zihintpause =3D true; - cpu->cfg.ext_zihpm =3D true; - cpu->cfg.ext_zimop =3D true; - cpu->cfg.ext_zawrs =3D true; - cpu->cfg.ext_zfa =3D true; - cpu->cfg.ext_zfbfmin =3D true; - cpu->cfg.ext_zfh =3D true; - cpu->cfg.ext_zfhmin =3D true; - cpu->cfg.ext_zcb =3D true; - cpu->cfg.ext_zcmop =3D true; - cpu->cfg.ext_zba =3D true; - cpu->cfg.ext_zbb =3D true; - cpu->cfg.ext_zbs =3D true; - cpu->cfg.ext_zkt =3D true; - cpu->cfg.ext_zvbb =3D true; - cpu->cfg.ext_zvbc =3D true; - cpu->cfg.ext_zvfbfmin =3D true; - cpu->cfg.ext_zvfbfwma =3D true; - cpu->cfg.ext_zvfh =3D true; - cpu->cfg.ext_zvfhmin =3D true; - cpu->cfg.ext_zvkng =3D true; - cpu->cfg.ext_smaia =3D true; - cpu->cfg.ext_smstateen =3D true; - cpu->cfg.ext_ssaia =3D true; - cpu->cfg.ext_sscofpmf =3D true; - cpu->cfg.ext_sstc =3D true; - cpu->cfg.ext_svade =3D true; - cpu->cfg.ext_svinval =3D true; - cpu->cfg.ext_svnapot =3D true; - cpu->cfg.ext_svpbmt =3D true; - -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_SV57); -#endif -} - static void rv64_xiangshan_nanhu_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; @@ -3213,7 +3147,66 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { #endif ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_TT_ASCALON, MXL_RV64, rv64_tt_ascalo= n_cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_TT_ASCALON, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVG | RVC | RVS | RVU | RVH | RVV, + .priv_spec =3D PRIV_VERSION_1_13_0, + .vext_spec =3D VEXT_VERSION_1_00_0, + + /* ISA extensions */ + .cfg.mmu =3D true, + .cfg.vlenb =3D 256 >> 3, + .cfg.elen =3D 64, + .cfg.rvv_ma_all_1s =3D true, + .cfg.rvv_ta_all_1s =3D true, + .cfg.misa_w =3D true, + .cfg.pmp =3D true, + .cfg.cbom_blocksize =3D 64, + .cfg.cbop_blocksize =3D 64, + .cfg.cboz_blocksize =3D 64, + .cfg.ext_zic64b =3D true, + .cfg.ext_zicbom =3D true, + .cfg.ext_zicbop =3D true, + .cfg.ext_zicboz =3D true, + .cfg.ext_zicntr =3D true, + .cfg.ext_zicond =3D true, + .cfg.ext_zicsr =3D true, + .cfg.ext_zifencei =3D true, + .cfg.ext_zihintntl =3D true, + .cfg.ext_zihintpause =3D true, + .cfg.ext_zihpm =3D true, + .cfg.ext_zimop =3D true, + .cfg.ext_zawrs =3D true, + .cfg.ext_zfa =3D true, + .cfg.ext_zfbfmin =3D true, + .cfg.ext_zfh =3D true, + .cfg.ext_zfhmin =3D true, + .cfg.ext_zcb =3D true, + .cfg.ext_zcmop =3D true, + .cfg.ext_zba =3D true, + .cfg.ext_zbb =3D true, + .cfg.ext_zbs =3D true, + .cfg.ext_zkt =3D true, + .cfg.ext_zvbb =3D true, + .cfg.ext_zvbc =3D true, + .cfg.ext_zvfbfmin =3D true, + .cfg.ext_zvfbfwma =3D true, + .cfg.ext_zvfh =3D true, + .cfg.ext_zvfhmin =3D true, + .cfg.ext_zvkng =3D true, + .cfg.ext_smaia =3D true, + .cfg.ext_smstateen =3D true, + .cfg.ext_ssaia =3D true, + .cfg.ext_sscofpmf =3D true, + .cfg.ext_sstc =3D true, + .cfg.ext_svade =3D true, + .cfg.ext_svinval =3D true, + .cfg.ext_svnapot =3D true, + .cfg.ext_svpbmt =3D true, + + .cfg.max_satp_mode =3D VM_1_10_SV57, + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_VEYRON_V1, MXL_RV64, rv64_veyron_v1= _cpu_init), DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, MXL_RV64, rv64_xiangshan_= nanhu_cpu_init), --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739340; cv=none; d=zohomail.com; s=zohoarc; b=YPn2yJYgk7pI8wE0nhca9YEYxL422PzIwCAqMiSX6njyPPg3nOvgfunuOUBGjAR/m5+xpWKPASECTmrXCyj84gL4OIczEG1Nc4l8euyUWk9nu/hI4s0xreUS7Pw7pFeVeaWACE/KwyfxCg1gN9qXJHjJZADQ4Mt/VISapug8/pY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739340; 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=VaW1FSaFfqqYrc+cQ7/ayUkgedSrm8KzkTTXYcZWKe0=; b=SUKM0n9l8MKvOS3dszs6FrXU27oANyfeB3P0atSQFDgAdSV75lD0R6xeHa2p28iP60p4r+/dR4FApedGnRtKdXBr+TPNHciEAxBVduw0TZS8ehLJ63UL+2YXrnD9LYN1PS9Ho8pk/5iL2ibEeTnyQ76vy2KHuFUHdHUXHp3DUi8= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739339964238.06904596575328; Tue, 20 May 2025 04:08:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKoG-0002Al-Sg; Tue, 20 May 2025 07:07: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 1uHKo5-0001f3-QY for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:50 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKo3-0003Oc-QX for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:49 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-668-77g1XSJCMKyHPJNLd3OCCQ-1; Tue, 20 May 2025 07:06:45 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-ad53f8a49fdso293595666b.1 for ; Tue, 20 May 2025 04:06:45 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d438086sm708581966b.89.2025.05.20.04.06.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VaW1FSaFfqqYrc+cQ7/ayUkgedSrm8KzkTTXYcZWKe0=; b=hXfgcmERksT3MFE32I6kd+4k+/0UITluUKBxiDYU+PzR1LbgOSNJoMmw0N9HExYEunChGG JP+lOWe1C7aVx37wuQKEJ3CmCknwDprua3GNncIcUkq78/N0OjDAixWz+TdMZhkfteJvmP DyhFU0YEJcuY22vP3UujXmr+6aHggsY= X-MC-Unique: 77g1XSJCMKyHPJNLd3OCCQ-1 X-Mimecast-MFC-AGG-ID: 77g1XSJCMKyHPJNLd3OCCQ_1747739205 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739204; x=1748344004; 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=VaW1FSaFfqqYrc+cQ7/ayUkgedSrm8KzkTTXYcZWKe0=; b=EoLzN8y/2SozjZHMWNi6L9jyaThlF7Qe3yfj77uVsJGG1isroCx+RxC0o0ZOc5TGG6 03U6q7nF8BUby7UEk2cSOs6tUQDYv8c57TfAosAB8ZU6bOXvMx+rydEEtmge4yegvfDr LQ7D7NA+xXAgEMqogE4G94L5gXQg5lxjFVZRgUWm57fzHIL9nLt7z5oYWLWeOqUY9aUm vfAUGFxHPq0R3x8VsSYcQkDbMGkIqQt39JHRHH9f3rLtjhQnfFB1Gkav0ALKPi9pSbSu IQjh1qvXji8KgBGuZTkOGrLmzpSH+cwYZYXhRUfw9mIRoE8fHSQIPCjW6/51M8kRQWdt eIvw== X-Gm-Message-State: AOJu0YwO7JBj8d6nA2EV0zpFBWpncvJV2QDyYdEcxWyaxVnlATGyVeBk ojKyKvdtJhKtPWaPCVk7yv4Q4KmghtP6OwBkxS57A0VPWcZt+Au7ICs/vxNk19cXyBJb1ZYHmJ0 Eb6gP5YKVh5vA2IqtqlLOzQszLUCW2D+ZzqgFeOFY6yA2FWCPSft506XUdzL0nYeeY++vpykwcI UGOl9QJA/1dJyoU9byJArka1CQdYqsI0niJL23Fl8A X-Gm-Gg: ASbGnctYRt70RhW40thAIMeZcAuS1UOPcHhRC2q7zxATkxdX220MkxXPS2nLooHaLzj fzZSw4ZIAolANjYuFDkznvPgNRCiDbVmE4pCrYoh7PlPSBAaok767ftJMiQbcQb4K3WvrRysBeN Cbytb66Oa0nrpLuRXpzmZaH6Fn1uTIDt5B1V2ZxfN3Dmd7Au4PV59CkgF1Z5MYmfkF+ZVRxzHd7 yM0sWh4Vls0WRnnaC82C8W3iTJwW8in2aMDAQSDelX07bauL/jwSGWTd6HmIcTGpYy5ecNYg1Mc IHfcl6dxaOUSbg== X-Received: by 2002:a17:906:71cf:b0:ad5:3156:2c04 with SMTP id a640c23a62f3a-ad531562ea1mr1169025366b.25.1747739203860; Tue, 20 May 2025 04:06:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFSL0CCgakMFxxaeQx629ZTH0FDVXtLbIXOZQcmbcwouKD6uMoWKz1KtqHC7yK1vW2GaE+T3g== X-Received: by 2002:a17:906:71cf:b0:ad5:3156:2c04 with SMTP id a640c23a62f3a-ad531562ea1mr1169022166b.25.1747739203415; Tue, 20 May 2025 04:06:43 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 32/35] target/riscv: convert Ventana V1 to RISCVCPUDef Date: Tue, 20 May 2025 13:05:27 +0200 Message-ID: <20250520110530.366202-33-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739344764116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 75 ++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 48939adaafe..000fcc6a1d6 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -499,45 +499,6 @@ static void riscv_register_custom_csrs(RISCVCPU *cpu, = const RISCVCSR *csr_list) #endif =20 #if defined(TARGET_RISCV64) -static void rv64_veyron_v1_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVG | RVC | RVS | RVU | RVH); - env->priv_ver =3D PRIV_VERSION_1_12_0; - - /* Enable ISA extensions */ - cpu->cfg.mmu =3D true; - cpu->cfg.ext_zifencei =3D true; - cpu->cfg.ext_zicsr =3D true; - cpu->cfg.pmp =3D true; - cpu->cfg.ext_zicbom =3D true; - cpu->cfg.cbom_blocksize =3D 64; - cpu->cfg.cboz_blocksize =3D 64; - cpu->cfg.ext_zicboz =3D true; - cpu->cfg.ext_smaia =3D true; - cpu->cfg.ext_ssaia =3D true; - cpu->cfg.ext_sscofpmf =3D true; - cpu->cfg.ext_sstc =3D true; - cpu->cfg.ext_svinval =3D true; - cpu->cfg.ext_svnapot =3D true; - cpu->cfg.ext_svpbmt =3D true; - cpu->cfg.ext_smstateen =3D true; - cpu->cfg.ext_zba =3D true; - cpu->cfg.ext_zbb =3D true; - cpu->cfg.ext_zbc =3D true; - cpu->cfg.ext_zbs =3D true; - cpu->cfg.ext_XVentanaCondOps =3D true; - - cpu->cfg.mvendorid =3D VEYRON_V1_MVENDORID; - cpu->cfg.marchid =3D VEYRON_V1_MARCHID; - cpu->cfg.mimpid =3D VEYRON_V1_MIMPID; - -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_SV48); -#endif -} =20 static void rv64_xiangshan_nanhu_cpu_init(Object *obj) { @@ -3207,7 +3168,41 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.max_satp_mode =3D VM_1_10_SV57, ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_VEYRON_V1, MXL_RV64, rv64_veyron_v1= _cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_VEYRON_V1, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVG | RVC | RVS | RVU | RVH, + .priv_spec =3D PRIV_VERSION_1_12_0, + + /* ISA extensions */ + .cfg.mmu =3D true, + .cfg.ext_zifencei =3D true, + .cfg.ext_zicsr =3D true, + .cfg.pmp =3D true, + .cfg.ext_zicbom =3D true, + .cfg.cbom_blocksize =3D 64, + .cfg.cboz_blocksize =3D 64, + .cfg.ext_zicboz =3D true, + .cfg.ext_smaia =3D true, + .cfg.ext_ssaia =3D true, + .cfg.ext_sscofpmf =3D true, + .cfg.ext_sstc =3D true, + .cfg.ext_svinval =3D true, + .cfg.ext_svnapot =3D true, + .cfg.ext_svpbmt =3D true, + .cfg.ext_smstateen =3D true, + .cfg.ext_zba =3D true, + .cfg.ext_zbb =3D true, + .cfg.ext_zbc =3D true, + .cfg.ext_zbs =3D true, + .cfg.ext_XVentanaCondOps =3D true, + + .cfg.mvendorid =3D VEYRON_V1_MVENDORID, + .cfg.marchid =3D VEYRON_V1_MARCHID, + .cfg.mimpid =3D VEYRON_V1_MIMPID, + + .cfg.max_satp_mode =3D VM_1_10_SV48, + ), + DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, MXL_RV64, rv64_xiangshan_= nanhu_cpu_init), #if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY) --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739374; cv=none; d=zohomail.com; s=zohoarc; b=ljrelMzVsg/t1V6ZMUdt179oTx3Yh+HOELlIYvlA3iDiSl7o0hsO83abOVx0si+oSfnii/RGa8Of/0Teh5/LtC1ePErtpz6xvykQySJOe8/yMp1Qia05aOrgNdG3i/BceJPhfsrnHgly6Uh4UnjjPsqXYwBg95IkadV60SqUMzs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739374; 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=86GzllK77ggRgu/hqIKqxi4f9yCDxALtvTLocr/OfJg=; b=Jg5tA+9k9LVtZxsz0ACXulrpfXsgF9MAC6cu0CJ/23kE9ZgvHgc9nw4wZROXm+RRvpWAn8ZQa/5FfNCBN2qx1WV2nM+U3qX03gY2Pu0h6bwS4YDeQx3NcRzuup19LViLYi73q+qS/QRxMe13jx8t/nQE90LocyJnYKBooQgFmdM= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17477393741691013.0865101076707; Tue, 20 May 2025 04:09:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKow-00035C-Ne; Tue, 20 May 2025 07:07:43 -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 1uHKo8-0001of-JB for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKo6-0003Pj-Ni for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:52 -0400 Received: from mail-ej1-f71.google.com (mail-ej1-f71.google.com [209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-360-tJMlNWY-NcWP35PyX2WZpg-1; Tue, 20 May 2025 07:06:48 -0400 Received: by mail-ej1-f71.google.com with SMTP id a640c23a62f3a-acbbb00099eso467896466b.2 for ; Tue, 20 May 2025 04:06:48 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4cc5e9sm719921966b.173.2025.05.20.04.06.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739210; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=86GzllK77ggRgu/hqIKqxi4f9yCDxALtvTLocr/OfJg=; b=W/eLKjPxrDatCvfYP+ZRche5lxvX38udw0pdcFKs50nNRxsAVp5wk09/g0jaVa5oPxAJp/ JSfArTY3T37RXu38wkCbIQhzpybPT3quc1FaOHdMUEhDlVMsv26KaqNyMvvSWTdGZsRhkY 0crIF8n8nL8iTQU0uJzDLsJch4hqqNY= X-MC-Unique: tJMlNWY-NcWP35PyX2WZpg-1 X-Mimecast-MFC-AGG-ID: tJMlNWY-NcWP35PyX2WZpg_1747739208 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739207; x=1748344007; 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=86GzllK77ggRgu/hqIKqxi4f9yCDxALtvTLocr/OfJg=; b=mmOuWdJdGhL125UDfpv/tjdvQ00hx92g67lfBb9oQMLptSM77kXlxkHOkxTpZvt2FN 9c7eKNVdy2TGLL9zU1xarGaSjISjCuKA4vXaEwaot6ayEXjShOBfrg/deEUUIaa1O8dN Y5ujP4g8Q042AZtUs2oJ72vLjdmlbRUaTJJFpMkVGSPve7gRvmn24SZsTmBWYiRK72DA s9kRT9m9jC3wZz3Pyv0Qv+lEfpX9lhOO4jSIgQuc1/6FUUpaOolfbDy4EUTtaitL5HBU bZPZPJwT4gq5d1mYXs5/Lp8Y1iXUTe1jSF4BvNMVGkfKh4G5iXSaAif3LMA2hKpXfAxt AWGQ== X-Gm-Message-State: AOJu0Yy4dUmMAyAomMmVUpDTAzuHIzmPhxazO7aivIfzCSeHL+4VAt1h Dmrg4iZkZTJ7ox6FMGyVcPNFOikGylgyVfYlq/k89lm0wGpVDw6pnpTMknIpSQPwUjZD0/RSYRl g/lkENbWCg7jG1QmNgpdOV75WEsBR1gBcav35x6bI2I+FX5kZV20+CRBeQP242/5BPzdh2GeY0S QLtQM0W9mAoCtVYrDY7JqOpzEu/GDJ4aKJMEkIhr2u X-Gm-Gg: ASbGncsyLtptwehijJ/9WBSIi0GsH4wbcQQ3grxGZCITj1SQr60oKPogE5+FuKcaJXO wsFGX7XIxIrcURgAJpzTEcCN3Pl4pS9hT96jBUtQXxNJu2O+VuKLzYuZDkY+HW2EtxwoH8ZOI0z rdhSEC5SMNn4CBPSZZ4E+dYvdrjR4Y/3yRrvpbRDLyjRaDeF5MYhEhUQxbMF5Xs1cqPyX0I4dpF c6GRbgpQYXrDA2F1/9FJE9U7Ey4P2LESh9tjMJJy0rL5PJ1jG09BGaxlE2PinZsXuodtppkpl9N sZUb4X6uNYXudA== X-Received: by 2002:a17:907:97ca:b0:ace:cc7f:8abe with SMTP id a640c23a62f3a-ad536c22d77mr1336596166b.31.1747739206805; Tue, 20 May 2025 04:06:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH1yUqbQz+r/6z3qSI+nKsfiCcfYUHUv7zfLlUzhGsE0MxTyoemU9/Qsywv3kLmDv0Z3tkITQ== X-Received: by 2002:a17:907:97ca:b0:ace:cc7f:8abe with SMTP id a640c23a62f3a-ad536c22d77mr1336593366b.31.1747739206334; Tue, 20 May 2025 04:06:46 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 33/35] target/riscv: convert Xiangshan Nanhu to RISCVCPUDef Date: Tue, 20 May 2025 13:05:28 +0200 Message-ID: <20250520110530.366202-34-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739375227116600 Content-Type: text/plain; charset="utf-8" Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 80 +++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 57 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 000fcc6a1d6..640aa958fd4 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -440,16 +440,6 @@ const char *satp_mode_str(uint8_t satp_mode, bool is_3= 2_bit) g_assert_not_reached(); } =20 -static void __attribute__((unused)) -set_satp_mode_max_supported(RISCVCPU *cpu, int satp_mode) -{ - bool rv32 =3D riscv_cpu_mxl(&cpu->env) =3D=3D MXL_RV32; - const bool *valid_vm =3D rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64; - - assert(valid_vm[satp_mode]); - cpu->cfg.max_satp_mode =3D satp_mode; -} - static bool get_satp_mode_supported(RISCVCPU *cpu, uint16_t *supported) { bool rv32 =3D riscv_cpu_is_32bit(cpu); @@ -498,38 +488,6 @@ static void riscv_register_custom_csrs(RISCVCPU *cpu, = const RISCVCSR *csr_list) } #endif =20 -#if defined(TARGET_RISCV64) - -static void rv64_xiangshan_nanhu_cpu_init(Object *obj) -{ - CPURISCVState *env =3D &RISCV_CPU(obj)->env; - RISCVCPU *cpu =3D RISCV_CPU(obj); - - riscv_cpu_set_misa_ext(env, RVG | RVC | RVB | RVS | RVU); - env->priv_ver =3D PRIV_VERSION_1_12_0; - - /* Enable ISA extensions */ - cpu->cfg.ext_zbc =3D true; - cpu->cfg.ext_zbkb =3D true; - cpu->cfg.ext_zbkc =3D true; - cpu->cfg.ext_zbkx =3D true; - cpu->cfg.ext_zknd =3D true; - cpu->cfg.ext_zkne =3D true; - cpu->cfg.ext_zknh =3D true; - cpu->cfg.ext_zksed =3D true; - cpu->cfg.ext_zksh =3D true; - cpu->cfg.ext_svinval =3D true; - - cpu->cfg.mmu =3D true; - cpu->cfg.pmp =3D true; - -#ifndef CONFIG_USER_ONLY - set_satp_mode_max_supported(cpu, VM_1_10_SV39); -#endif -} - -#endif /* !TARGET_RISCV64 */ - static ObjectClass *riscv_cpu_class_by_name(const char *cpu_model) { ObjectClass *oc; @@ -2891,19 +2849,6 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, c= har *nodename) } #endif =20 -#define DEFINE_VENDOR_CPU(type_name, misa_mxl_max_, initfn) \ - { \ - .name =3D (type_name), \ - .parent =3D TYPE_RISCV_VENDOR_CPU, \ - .instance_init =3D (initfn), \ - .class_data =3D &(const RISCVCPUDef) { \ - .misa_mxl_max =3D (misa_mxl_max_), \ - .priv_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .vext_spec =3D RISCV_PROFILE_ATTR_UNUSED, \ - .cfg.max_satp_mode =3D -1, \ - }, \ - } - #define DEFINE_ABSTRACT_RISCV_CPU(type_name, parent_type_name, ...) \ { \ .name =3D (type_name), \ @@ -3203,8 +3148,29 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .cfg.max_satp_mode =3D VM_1_10_SV48, ), =20 - DEFINE_VENDOR_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, - MXL_RV64, rv64_xiangshan_= nanhu_cpu_init), + DEFINE_RISCV_CPU(TYPE_RISCV_CPU_XIANGSHAN_NANHU, TYPE_RISCV_VENDOR_CPU, + .misa_mxl_max =3D MXL_RV64, + .misa_ext =3D RVG | RVC | RVB | RVS | RVU, + .priv_spec =3D PRIV_VERSION_1_12_0, + + /* ISA extensions */ + .cfg.ext_zbc =3D true, + .cfg.ext_zbkb =3D true, + .cfg.ext_zbkc =3D true, + .cfg.ext_zbkx =3D true, + .cfg.ext_zknd =3D true, + .cfg.ext_zkne =3D true, + .cfg.ext_zknh =3D true, + .cfg.ext_zksed =3D true, + .cfg.ext_zksh =3D true, + .cfg.ext_svinval =3D true, + + .cfg.mmu =3D true, + .cfg.pmp =3D true, + + .cfg.max_satp_mode =3D VM_1_10_SV39, + ), + #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.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747741107; cv=none; d=zohomail.com; s=zohoarc; b=kPz+wgRudTM83F3kRmGILlCOeRAPnFIGwVnqCnCb+0TbdWSGxFGaBTKwoWF7SDbO8ugx5SFSk22PeEpENLFKxiwHtlolp4sb5ByYfo4nEKUzFFhm4HVzQiBUkrniecprQv6EPYPrn9eUeA+4OcF1q8DKVyWxpbR3Ns6sjUzrKYQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747741107; 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=2fl19oZy/IVwWxj46KmzPq64RQnPmJ1lzr3l6M+JMxA=; b=NrP70qTWJfZbS0bjVu0j3jmiIWDc1U7YplS+lByprT/K3pwdW+8AZcBQScgFdnwv3PeCV708tJNdSePDMLD9GXHb78x0pif78LZCMbWAVD0rWLktepoQbWPPgloLTNtCDbp5ar5S0GZk6xTDWRFMUo2RzCduoC8AVRY+dUmqAE0= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747741107138658.6040404784892; Tue, 20 May 2025 04:38:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKor-0002lm-PW; Tue, 20 May 2025 07:07:38 -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 1uHKo9-0001qc-Vc for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:54 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKo7-0003Pv-TT for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:53 -0400 Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-159-iILmuyNFP6Sn9sWVLQszCw-1; Tue, 20 May 2025 07:06:50 -0400 Received: by mail-ej1-f69.google.com with SMTP id a640c23a62f3a-ad540ac3219so322668366b.3 for ; Tue, 20 May 2025 04:06:49 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d04e821sm719417366b.17.2025.05.20.04.06.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739211; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2fl19oZy/IVwWxj46KmzPq64RQnPmJ1lzr3l6M+JMxA=; b=IvVsC6hN9wpYl9T4nhOEbnGWnb7SgxGof0X3u4LVscnK6Cl4LiUibqf+yHTkpVgYCvsfql 6YIwNT6/R75onCKtbHFhA66+FEi8GxCnAiZ3FqkFWSRLz5cJ50lPigcxdn+TSiAqNSFv/D TqHQk5sgWWs0UVkLEFhiZ1QA+tqXmYs= X-MC-Unique: iILmuyNFP6Sn9sWVLQszCw-1 X-Mimecast-MFC-AGG-ID: iILmuyNFP6Sn9sWVLQszCw_1747739209 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739208; x=1748344008; 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=2fl19oZy/IVwWxj46KmzPq64RQnPmJ1lzr3l6M+JMxA=; b=nTFUYX0z19ICidz+DnVmsZQ3lxy4B5HKBclacB3dSzn8JutwIkKP2iNnk6UVY7+/Yr Urd88f+OGwNomPXR5FndtjCK4KCxpWUxp5jVXOAGcWy3rykkGUkNtEo7yoE97lwcrwhV +ItbpePPb5IGBCjk8hl9TSEI+kW7EHfuhTBk491/kwtsVPdS1R/jxypnyfvSz6rM/Ntp A/LKXh4s1CCokkhcshJDLSy7ex/cverkme/DPwn+qPDWSwx2sdSn7F+9g3kw46kxSxAV jmwi9Us9DBmBtTlsjOvfeMHa4ubjuXemHkPuhKQfk2wJWlCtwIcD1+s44FUyTwbPy/ci vdIg== X-Gm-Message-State: AOJu0YyfQ3X2kWTcBxxnsrNsOCL+ARlymplUpsFoJNqFgGt0iW2YAnO+ AI1R+rY15IuuoaGRgOIg8h2O1SdXDHE2NQhpmnie58IRSgbI7acW1F4YcK/KtE2vuJg02nkBWh1 HzC69TbhxG5YYSLf0YsRN7kCllsbEB7vdxSjj3DI+lwMqZUpEdAY8HR5NOEqfHtzHXA4XXhnfMk FsYrVexTfSq+oPhDo5FeNqsHX9j58EUN9H5wod+s31 X-Gm-Gg: ASbGncuwwT1sgSH3BoP9xpDQ2Chh3Pcb3bs6Q0u4Djd251f6KiNdZ7NOY37g1VpOU4I 1vZMdX3ngD2P9rAwX5tEmBcR0vq1KApaHVwwa+OWKDhBIAYP96SDmE/mpO3qWub8LpNhd+e5qXP xVgHJJhbKM4kTB3hKJvt3XuMVbM+Bsm7CjilZBrf4RunYExfW8+lbFZJtJxcUK+Pco2Q43lpboM 3edaxrbXVOC9q8AYW5B9BcZU4t8Qz4iza2gTdf/EHwW64wfaVRs08pLJi2nC0010CsYrIKl3Riy DGHrdvqZ70o+OQ== X-Received: by 2002:a17:906:13d2:b0:ad5:4b45:8386 with SMTP id a640c23a62f3a-ad54b4587c7mr877466166b.41.1747739207931; Tue, 20 May 2025 04:06:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFoLnIkej2AfPbFHLczB5BzxDpSg4/1XU1ILNfthjstmg0yAocdmTocEc7JjRPufiCu7hCrRw== X-Received: by 2002:a17:906:13d2:b0:ad5:4b45:8386 with SMTP id a640c23a62f3a-ad54b4587c7mr877463366b.41.1747739207517; Tue, 20 May 2025 04:06:47 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: Alistair Francis Subject: [PULL 34/35] target/riscv: remove .instance_post_init Date: Tue, 20 May 2025 13:05:29 +0200 Message-ID: <20250520110530.366202-35-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.129.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747741108619116600 Content-Type: text/plain; charset="utf-8" Unlike other uses of .instance_post_init, accel_cpu_instance_init() *registers* properties, and therefore must be run before device_post_init() which sets them to their values from -global. In order to move all registration of properties to .instance_init, call accel_cpu_instance_init() at the end of riscv_cpu_init(). Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- target/riscv/cpu.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 640aa958fd4..629ac37501e 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1083,11 +1083,6 @@ static bool riscv_cpu_is_dynamic(Object *cpu_obj) return object_dynamic_cast(cpu_obj, TYPE_RISCV_DYNAMIC_CPU) !=3D NULL; } =20 -static void riscv_cpu_post_init(Object *obj) -{ - accel_cpu_instance_init(CPU(obj)); -} - static void riscv_cpu_init(Object *obj) { RISCVCPUClass *mcc =3D RISCV_CPU_GET_CLASS(obj); @@ -1143,6 +1138,8 @@ static void riscv_cpu_init(Object *obj) riscv_register_custom_csrs(cpu, mcc->def->custom_csrs); } #endif + + accel_cpu_instance_init(CPU(obj)); } =20 typedef struct misa_ext_info { @@ -2885,7 +2882,6 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { .instance_size =3D sizeof(RISCVCPU), .instance_align =3D __alignof(RISCVCPU), .instance_init =3D riscv_cpu_init, - .instance_post_init =3D riscv_cpu_post_init, .abstract =3D true, .class_size =3D sizeof(RISCVCPUClass), .class_init =3D riscv_cpu_common_class_init, --=20 2.49.0 From nobody Sat Nov 15 20:49:58 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1747739419; cv=none; d=zohomail.com; s=zohoarc; b=cScN5pOjLdvo7S6PmvaLc5f3AlNXjT5uu75p1Z+nWezFLGtCYtdnoI4hGpxgZEX1omydoY0Vp31cffIliOKNpXMD2aIQwANppajA0E9Qqwz7B9SNg3Ij+u5fS7FpZau/k59HC9YMl2j41s/41G6i+nLGDPcFYyv0Gej0B5hLlL4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747739419; 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=W6c7Gh9zf4CyzFRI/lQnZmHEbdkuz1V05X93m00FYA0=; b=kV+OB770qnzIqHf2DzUGK0hNdM7B556Eb+rfe2bmOr43bgNfm/5iSllaDIfNwM4cHnyu5xH3lGla21L2D7XxgL+y1s9OS0KvtgsQk4auLBlr0dyRdrifHF4d/aOHKoK/S1qvIIBcZRmg5w7PIEm0am7UZRB1JRwE+NPGSCsaxN4= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747739419421101.70794246117907; Tue, 20 May 2025 04:10:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHKp1-0003K0-0x; Tue, 20 May 2025 07:07:47 -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 1uHKoE-00027Y-B8 for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:58 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHKoC-0003Qk-HG for qemu-devel@nongnu.org; Tue, 20 May 2025 07:06:58 -0400 Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-150-fiPXIFSfOjSxwy7YdEuWvw-1; Tue, 20 May 2025 07:06:54 -0400 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-ad53aaae592so422557466b.0 for ; Tue, 20 May 2025 04:06:53 -0700 (PDT) Received: from [192.168.122.1] ([151.95.46.79]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ad52d4c516dsm711195166b.154.2025.05.20.04.06.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 May 2025 04:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1747739215; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=W6c7Gh9zf4CyzFRI/lQnZmHEbdkuz1V05X93m00FYA0=; b=G775hOV9GHrrJImkLAFQckofDgz/90qyUn/poEmVocrIdvKI5VQzYuNPLMvLOIFCSf0SFW 3iEbhQv2xTD3FnjDJ438IagdJRd0wCnlFIRCnz2t86GXzJCQcNFwRQqAZzOQ1XSX7e1pVe zU2f5eYEFP7FaqKsVUuWqNKZt9tXFGc= X-MC-Unique: fiPXIFSfOjSxwy7YdEuWvw-1 X-Mimecast-MFC-AGG-ID: fiPXIFSfOjSxwy7YdEuWvw_1747739212 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747739211; x=1748344011; 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=W6c7Gh9zf4CyzFRI/lQnZmHEbdkuz1V05X93m00FYA0=; b=RyYB+i0jGBKFuvbFtVeac6lVXswQ15O2TQ5wZyFNI49x4+SEx4Ne0ih/Z0PrQ/yWDa /Fnh5srGKtu8+k9x17zITWODx/nqKJ5EvWJYS5CRTYOZz2t0upoX5/wNWB9pE8TJ0vXA UNTGXK7pDJEu/Q/hlP+8b8AH3mtQ7hOu+BXoYE3XN/Df+A8ZzKEJQYgymg/aYZXMxAHy nTDyLajk1gNCuTBj8s2Q/BHex6vNhIaJ1oIb6kdAGqjlepihk46K2O+CmPdWAuew2BNs Bz4PuMpyCFx/ttVzjl6dyVrO0YmDSkVV7LIlJ4xtkoSrE7oyPcN+whvdgS+SopLcS3ug LA0Q== X-Gm-Message-State: AOJu0YwRlM8HEUzXSX8nFEOPyONTz41V5oBqqOzILbu8RcMNo3PaN7k7 lZkWQLkfYBH+9ZCUA6pSH+bj92o4GgwOJJu9l6g33zkGuIiAV2S+FNTskZiEV9OwrzPsYw0OyqL P7XU2X7ooHGbuDb8FS42dJjVt16/N/VNg5WFIe9UKOeLNqMijYNz+Qw9uOwX1e9v/QGnQsr2S8u 0rconqzWQx9fe0Nxld1HmcqAMD+Mn2KomSr8/yRfgS X-Gm-Gg: ASbGncuqmqIPmtyQPlo2KuNncul5JHZzBKa6Pv4ZbbpW2V9cBYd320yPv7SeXZq8qkQ IUtLucXu60KGLE67397cnLovyr/AwU4cJ4AKHrpzUtqYra9gqREa3BIpKbtOqM18AVF/2ohk+m9 0kXXjJfY7c6LKtiPwHh+PT4CZ+4KIijf3d4PesHfXd/i1o+kCgu5syc2juyiTomzkMSfnDARJnp 6pKqGYwLV5IhJGmaABdRcRc6u+QI98P6WVjkjtCWxYUPtOhOcirjGIfJtNZxkWdkNfoxJRcWZkL +I5+PmouMd/9Uw== X-Received: by 2002:a17:907:9412:b0:ad5:69e7:181e with SMTP id a640c23a62f3a-ad569e71f30mr561319566b.61.1747739210991; Tue, 20 May 2025 04:06:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG6oKRQuB0egJSplQuA7Um/O8LL+NPNaI/1AD4GjYy+RWZp1O3sYm/Auw9nAOER1sn/3orCkA== X-Received: by 2002:a17:907:9412:b0:ad5:69e7:181e with SMTP id a640c23a62f3a-ad569e71f30mr561317566b.61.1747739210160; Tue, 20 May 2025 04:06:50 -0700 (PDT) From: Paolo Bonzini To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis Subject: [PULL 35/35] qom: reverse order of instance_post_init calls Date: Tue, 20 May 2025 13:05:30 +0200 Message-ID: <20250520110530.366202-36-pbonzini@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250520110530.366202-1-pbonzini@redhat.com> References: <20250520110530.366202-1-pbonzini@redhat.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=170.10.133.124; envelope-from=pbonzini@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.487, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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 @redhat.com) X-ZM-MESSAGEID: 1747739421781116600 Currently, the instance_post_init calls are performed from the leaf class and all the way up to Object. This is incorrect because the leaf class cannot observe property values applied by the superclasses; for example, a compat property will be set on a device *after* the class's post_init callback has run. In particular this makes it impossible for implementations of accel_cpu_instance_init() to operate based on the actual values of the properties, though it seems that cxl_dsp_instance_post_init and rp_instance_post_init might have similar issues. Follow instead the same order as instance_init, starting with Object and running the child class's instance_post_init after the parent. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Signed-off-by: Paolo Bonzini --- include/qom/object.h | 3 ++- qom/object.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/qom/object.h b/include/qom/object.h index 1d5b0337242..26df6137b91 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -445,7 +445,8 @@ struct Object * class will have already been initialized so the type is only responsi= ble * for initializing its own members. * @instance_post_init: This function is called to finish initialization of - * an object, after all @instance_init functions were called. + * an object, after all @instance_init functions were called, as well as + * @instance_post_init functions for the parent classes. * @instance_finalize: This function is called during object destruction. = This * is called before the parent @instance_finalize function has been call= ed. * An object should only free the members that are unique to its type in= this diff --git a/qom/object.c b/qom/object.c index 7b013f40a0c..1856bb36c74 100644 --- a/qom/object.c +++ b/qom/object.c @@ -431,13 +431,13 @@ static void object_init_with_type(Object *obj, TypeIm= pl *ti) =20 static void object_post_init_with_type(Object *obj, TypeImpl *ti) { - if (ti->instance_post_init) { - ti->instance_post_init(obj); - } - if (type_has_parent(ti)) { object_post_init_with_type(obj, type_get_parent(ti)); } + + if (ti->instance_post_init) { + ti->instance_post_init(obj); + } } =20 bool object_apply_global_props(Object *obj, const GPtrArray *props, --=20 2.49.0