From nobody Mon Feb 9 13:36:08 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010014.outbound.protection.outlook.com [52.101.46.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E85B22F77B; Wed, 8 Oct 2025 00:14:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759882447; cv=fail; b=AfUU9oFR9sLCdwwcLArPIYLF4VJDA2o4FTghXPYIU5KgUsuDIxzFTSrVzbITOfv1IRVpiFzZLCOoLuRfLfFtznT2tqI7qTZ0SpqTOApXD+i/LTKfOw/Rt45q2sOlNeuelXanJZcRcAEbnkJ+YEUR9hBv4/uDUHk6uiLefWZ820k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759882447; c=relaxed/simple; bh=5jXcxDu6j06Y7OA7bNNflyw6YueMYOkYPoYM/GBHzMM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EIaiYwGburIbn47Qe6ZnY245GU5KaxzCQoRfEtuTAuYpvAvPeyAyiwG3XMgMO78O6V46wPt7ugOx9mYmRmKOrnQ6YKo0UGK0bywhZ1g9WC23R2dPKKTEeu9Jt/9rm70Z+Foyiz2grzVSktiWwyoYKJN1Lh1u6cdLa5UPy6usj90= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=NSLI6kZY; arc=fail smtp.client-ip=52.101.46.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="NSLI6kZY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mF3ZzYdJvblabtNscYVZI7biXPZKC+91AFN70bDy27kq1XUjNCsLLCg5jIkz9iNncQFgROLyn1jof4YQCJlfkv5VBB2CTkzbsAlBaj5/BEp5zLA1LaOdQXx9X6tp+OUv7BRQbgJgv1N+pN15dd/vZ9UQmW7MNHlBiUZT9OmU82i684rO1k9vAODQOYLwwz2iRKcGeOnw4Ht7feiZnY2gBzQ0DLOgjOGNyqigpKGpxVEvdlwIv0fYdvDSL6wVcvNiSF2hJTmIwgxKZdDDeq74TFB4d9DsHsq2cWLJODg51lT6oV7FEgPOPvBw6wI54rJ/NGj3OxxZFNUekj939rmq7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YH//zDOnPNDWjR55GYjV0YCDDW6AXQn837vFF70r+2k=; b=L4xUe2whXS/FwA6UfCwJzcrUsEZdFzKGvshjQuswBdtxOb6/FUQp81XQuTt29b2tFv75jwqzZ88isGjp6GHLsyAke3/6egJguxua5/QfrhYUvygVw9ed8WHE+UvNcCn3BdHw2cqQPYOwZSHHE8WpFdYJ/YGx8l47pr9zHbmKNauxpP79bsMCkYoQIY6LN+/IUc5s572npJ7/5v+6rVvmXzgh0DLuzPGHiKwVWuC0Sh2bEfHc2gRnn2oW7lon6J+LHoUf/Z2S7xIS6ajqOUpigk5F0yuA0LkWe0KoSeZ8rl+t2mk8rq1qkZKu+pydG7p2n0C99ssNcm14XIuXMpKLBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YH//zDOnPNDWjR55GYjV0YCDDW6AXQn837vFF70r+2k=; b=NSLI6kZYwbucWTCTJFdAAKmkI6i9OKw5Yb4odcBb25kCM3Rq7FJGlUePOiUpWJOl5ylH5US3+nHBp8TUTFFjxzdbQlIvB91WJhoMNn9nRwBoWSvbJHBm+cGjbPNUXxwT/kPOC9ocnPTs5M8Ia1uEhbZWZ2hNN30eq+8sQ41C97n9dfNLvtZd+nT76vr8wihZXDAFX/6roKluqflnxw4Z2zVXHafMy8aJgvkk4+rwSe/CT/hmVoBMoYzx4bpnoWsiS5C9MDYGhQxIfmI/niS4HdNxC+PjuC8XACoYn28L2HF5ovH/1DJ0ugJ7rHTpr3sUHCbwxIb7yLia1hmf7V4O0g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by CH2PR12MB4071.namprd12.prod.outlook.com (2603:10b6:610:7b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9203.9; Wed, 8 Oct 2025 00:13:59 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe%4]) with mapi id 15.20.9182.017; Wed, 8 Oct 2025 00:13:59 +0000 From: Alistair Popple To: rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, dakr@kernel.org, acourbot@nvidia.com Cc: Alistair Popple , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , John Hubbard , Joel Fernandes , Timur Tabi , linux-kernel@vger.kernel.org, nouveau@lists.freedesktop.org, Lyude Paul Subject: [PATCH v4 11/13] nova-core: falcon: Add support to check if RISC-V is active Date: Wed, 8 Oct 2025 11:12:50 +1100 Message-ID: <20251008001253.437911-12-apopple@nvidia.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251008001253.437911-1-apopple@nvidia.com> References: <20251008001253.437911-1-apopple@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SY8PR01CA0006.ausprd01.prod.outlook.com (2603:10c6:10:29c::31) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB7726:EE_|CH2PR12MB4071:EE_ X-MS-Office365-Filtering-Correlation-Id: 6801b0a1-d79c-4dfd-bc76-08de05ff9411 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uSV5eJa8WEVFzjJn0pEKyEJgXVCUoznCVuJWNhCUnCrNwACSJVmJp9l9Hvjk?= =?us-ascii?Q?bphUYGbYLQdbp3jT3GTnNtAjqnXSqAlHUgtl2BRE/CmrnwgVUD54xuiA+uK/?= =?us-ascii?Q?niJxXm25ji3QpC8W5DlV4MCscy6ZadwFyKB1noETdw4OlCtKHa4tb+iHGFnm?= =?us-ascii?Q?nzp1ExqNengql7OL5Vag5bsNhs1xCJJ5xC9YCZG4K0ZQ+MqSEU7Y4fRR4/ID?= =?us-ascii?Q?KGIyparI0yW6KS7c/2c0/DqaJUazvzWhhDY2paft3tEloB7LJyGgGiC03x7d?= =?us-ascii?Q?PwbGXTRi2PfiWo1Dve31I5s4Pw5o3pebxJtLcRO2A47GxYUEmBQJZE51eSNK?= =?us-ascii?Q?wQpj5TaCjc286lah1LW9XNEQ012uy+/KPmXGOVYUL13VT+ItwejNGt9YPZoe?= =?us-ascii?Q?bURI6V+zkwn1taeicC1t+g4GaPeM2gBN4rw57rxPZBTLW849nlmNN5dKbxKc?= =?us-ascii?Q?LxbtGxxSWVUHwYWgNTY8VUVqRzD/PQSMW6qzUNLPeEbkn+Fl5V4AhjLHDYKc?= =?us-ascii?Q?8fLnxfZDIt1BccGsPzXR0ldGYLLmwT/OKA9A0aZnHzkS42dzO+F9LjpkF09R?= =?us-ascii?Q?W/VFUd09yPlGsn6KarywGjzavmDvQRBJ2wQDnvw6Kxh+fgqnacsbuFAPc/kt?= =?us-ascii?Q?y3Y+0x9IuHQfRP8LTGnAVAVp+UlRBhDMEatobcOhpfb4A1B4hIs2LnIo3TCz?= =?us-ascii?Q?POyV2tYF8jmSLmH3q2ZLySiwIR1+oBO+pVRO7HepOWuykFo5n9ABvArZtZgy?= =?us-ascii?Q?6JNmzouHeTVcEM0HjiokrbZBlusrvsk/oCZDHpl6rREz2JtmFOTEEOpiuLAQ?= =?us-ascii?Q?fiKe33DxNwRwEXxUcdu7oBzK1CljyXIJPdIUbGQUJzQaH7ZE4+pQ7dc6yw6A?= =?us-ascii?Q?im03kan58nrgKT3VZpXp4yRTnf1uk8Itz5e5D82IgwIToqVlQG/AJAuznzam?= =?us-ascii?Q?8Fcjc3FpldIcMPDsS0BhkSdb7SuV0Ki0XaGwWT01jhXtRJUGAUx2OZXUZkBH?= =?us-ascii?Q?4Q+sqyB497OnDwECXr/oFkzE6aSIXM0bWGSQmNVt88tVPlUtM4rbmIKs9ARM?= =?us-ascii?Q?eMYwt78w2rAO0/qcidkefiz4FTbeOiGYqtwkDpibGXKINrZNtS6Au6wiB+Sa?= =?us-ascii?Q?724jrap5BFAzfovDrUTC8kO/gfCD9ROH8JnICz0/YFM01Wwm3l6h6up4sWf+?= =?us-ascii?Q?F98qW/H1Fy1Tti3oxSqOLhWDK3B+wMuTNinb2urApTTZk9YGve99jeMhsgmE?= =?us-ascii?Q?BCZIu75J0jn01XwjhhwOrVo61oHoWUV56wRG3KRWk8b+aBSVdKu93bbRIUgm?= =?us-ascii?Q?iLPDnZywoAIi/4FXPwjlNCMSKCdiT8Ms1afSFHATNjhOqXCzHXBVUSsknT0C?= =?us-ascii?Q?+8zxXyfuOpEojVKCrwd+Cyjj9yAH925/nRnVax/88UMIk5cDT3scuRqXXbgY?= =?us-ascii?Q?+Js88yU9sTpMAXrX/rmsbhNrjikLATP2?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2aMYUqNnYsb0P5AIQUzua584h3TSr1yQRxz3SVDPkLkRQxWHNey7NAWtnNuZ?= =?us-ascii?Q?clWyXCFcvIlrVVsLYfIK9OxDmKz4N/6zrwXuHv76K5Pcz9bfodPnatEJ+3mp?= =?us-ascii?Q?302r+kPcevC4vFTOcdPuSkOy7XCxCEYSI8yZOmtJZywqsDGowfj48kdGYyMh?= =?us-ascii?Q?Iz3C84QcJyZNbOVL0WDiPCIg20gknmQrjnFx2Iuc0KrtgQREbdGH2eM3nNtF?= =?us-ascii?Q?0DokhcnLmOpO5okbBZa7vL758ELNMJmtNKnFcZm/IB1ZpiPemkoxeyLd5aeP?= =?us-ascii?Q?AdAhzkIXkRhk+0sq8xm9DTQ/tsAdm8n8FAwhkC2QSTJL/KfGJkc1LjGpUyzj?= =?us-ascii?Q?cJ8Wy7e4Qyd0gSk578Pod5czWp/FG8v9Umh9rwSoK5kkyNF50JCliMKrk6xw?= =?us-ascii?Q?38ilB3GqUketyFvKvaKO7XrjgWcpfR69eBKpc9KXaSNBaILHKjaiS21dpADU?= =?us-ascii?Q?JSocufbvTw8px+sGtYWyPy8mCekoIza/XWsmt54BjuLs5VNlfIw/JqI3JHtM?= =?us-ascii?Q?ceIZCIAseZGBRqEQ6mEtZbA2tSL+7hiwGyrxv3gJJXwtJa59ukbsTocyEuwT?= =?us-ascii?Q?3MK4CMiu0kFUbgU4ACZtIJo1BQ4U0kL0krxwi4qBV7Y7yIlZPGx6qRlUu8PE?= =?us-ascii?Q?mLV7dvTUETz3VCePrTsXvmFvDcnHm2ET98jp6Nk8AkYPaXN9pnjZG2xijL0X?= =?us-ascii?Q?BssGeNhBsJEl0qju48HNS7P+LM0omQKdOH9JYDu6qPcOfhdM6VTSpsoJFgyN?= =?us-ascii?Q?7ZftBkP8WLQw2vEFxUzD3cjAtn2+g7Ca5T3FpIFswBysQKO5eT5PqdR88rmX?= =?us-ascii?Q?kVLirkunQdd4JSKK46tna4Rsz4de6Ofq70TA+0iq6WkQuLd2siWWR5LLWhUc?= =?us-ascii?Q?Um2GfSb6ALKD/mIyq9A8ncTP+cKUqHD6jAha2GN6QAhEZQKyTYccvozhWS8h?= =?us-ascii?Q?0WQbrqMOnAdg3SIj3oPdHuQJiAPL6YJ+U4bdK1oahO1ySn6mC1lZpBqMTI90?= =?us-ascii?Q?p2tNaUHtVWis4OdEDnKtp9VA4UYkh2jUUaC92wnpXjfCw1hQQY/Is3EQ7GZz?= =?us-ascii?Q?NGl0PzOtFWcOuJOEz+smOuXQhGn+TMfbXxuC4NLwd26QBVZnWoq9WvOR4+5j?= =?us-ascii?Q?+1fBve1cMT5mUl53rSHvocN46uUyLt6EAyKnd530SN3ia6qUTwW+DZI+w1m7?= =?us-ascii?Q?C3sI8oDc9efJ+JrXgHkSoy/1Y/OT94m4b74B9X8q+3mLKBAeXe/ze+QJIFv0?= =?us-ascii?Q?z6kOSPDCeJZE36Ohp+trtv/lgRnbBhgs+xU36T0CaHNEwFcg52eLZRyGnvL4?= =?us-ascii?Q?C3Y+2NgNjubLszqMArFV7NVb7TU27e9GHZHJ8MRk9R97Oa2Fj0gNbqihgX2Q?= =?us-ascii?Q?7marcfVwI8T7gxdd6QHsWvwE5k85nV8tL0HCNxLHbTw9F2NvINWs1+M38nN1?= =?us-ascii?Q?aMJFy/clOwcAkzsI9T4lx0GHx5/6XLoAd1vCNbumOyTAPV6C3nvXn5fiAdG8?= =?us-ascii?Q?Qi8k4T2VHoZSQrGjZSeTv/zaW2TRk7CeXqODyUbKboy45Dsh9dQLYqEu3aOM?= =?us-ascii?Q?JyYaTcwI9Pfi5DOuMEVXSfugqNNipobMZMVvFnTp?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6801b0a1-d79c-4dfd-bc76-08de05ff9411 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2025 00:13:59.4213 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gArOTNPZAxF+5pvfMiGxaY11mUNy9IY5tK6WU7OZJzucUhQ1jgnQBGZxZnuELRKdTlvqFECCi7nU8siWlELZrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4071 Content-Type: text/plain; charset="utf-8" From: Joel Fernandes Add definition for RISCV_CPUCTL register and use it in a new falcon API to check if the RISC-V core of a Falcon is active. It is required by the sequencer to know if the GSP's RISCV processor is active. Signed-off-by: Joel Fernandes Reviewed-by: Lyude Paul --- Changes for v4: - Return bool instead of Result from is_riscv_active() as it can't fail (thanks Timur). - Update register definitions to correct Falcon - Switch register definition order --- drivers/gpu/nova-core/falcon.rs | 9 +++++++++ drivers/gpu/nova-core/regs.rs | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon= .rs index 734ac0fbfb49..185ed6d1cfb8 100644 --- a/drivers/gpu/nova-core/falcon.rs +++ b/drivers/gpu/nova-core/falcon.rs @@ -506,4 +506,13 @@ pub(crate) fn signature_reg_fuse_version( self.hal .signature_reg_fuse_version(self, bar, engine_id_mask, ucode_i= d) } + + /// Check if the RISC-V core is active. + /// + /// Returns `true` if the RISC-V core is active, `false` otherwise. + #[expect(unused)] + pub(crate) fn is_riscv_active(&self, bar: &Bar0) -> bool { + let cpuctl =3D regs::NV_PRISCV_RISCV_CPUCTL::read(bar, &E::ID); + cpuctl.active_stat() + } } diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 0585699ae951..3bd1bddb16bb 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -324,7 +324,12 @@ pub(crate) fn mem_scrubbing_done(self) -> bool { =20 // PRISCV =20 -register!(NV_PRISCV_RISCV_BCR_CTRL @ PFalconBase[0x00001668] { +register!(NV_PRISCV_RISCV_CPUCTL @ PFalcon2Base[0x00000388] { + 0:0 halted as bool; + 7:7 active_stat as bool; +}); + +register!(NV_PRISCV_RISCV_BCR_CTRL @ PFalcon2Base[0x00000668] { 0:0 valid as bool; 4:4 core_select as bool =3D> PeregrineCoreSelect; 8:8 br_fetch as bool; --=20 2.50.1