From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2040.outbound.protection.outlook.com [40.107.244.40]) (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 2D4D43128AF; Fri, 29 Aug 2025 17:33:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.40 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756488804; cv=fail; b=sUZHooxIFObBqceB31GnVPdD/Ejk+tLD6i9mZeinqkQG0oURoQkoHzXI7wNKr7N9uWJYN/W6rtMkP3J2ihJcNWrFKyHmoMjHQYpChnpv1k6jgo+oKtOM3lOE0HWeh0Q+I7RuoUD9mmQg2ajpStbZzBC8DbQjrdHeSC7yOfK7WzE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756488804; c=relaxed/simple; bh=qJ25OlDN/zSiCIm7NOeJrYntKy2MXGkCWQV61ipQRiA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gv52Ms3tkvVIxfh16nT2Oh2tS1i44TklTqEGRePHvsOcFsQRETL0VUTALlyJffomznbsrh1x/naoWWFDbTD1ENygZm45qQezRvHm1NgnW6SdMu3sikK9KKaFoUFg/s1u+mathKnA7+bau29Pd5DfwdVCOpcxdU835eRK7/KNKnk= 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=gUZEVv95; arc=fail smtp.client-ip=40.107.244.40 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="gUZEVv95" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GpVQ76h4ZHPCD+CyO3agcr3sIFzooWmjBRmFN0DfhHTNgp5eiqkAxEZAMo83j+JMNPoqhak4E1N7nh5pyJ6zUOVLIseyPSWOZrN6919InpmJ84RF0PwXHkd3WiRLKNRjFf2drkir0LA+dGTM/3G+ryOi9nv85Q3zcdKOiVr3nnFC3uLeGWMmiU99dHWHuMNntvb/te0AeoF0/RnDgsdfIzqAtfOfzf6N2iyFdaq2wCW4NFixT3ZFihWOzlZjSEc1KJ0XuS2upRxcxleT60Zo3uxPj4VQqvatfhy4EDXptoQUV/FUYQhy9v4clowo0v2FxE5s4DkfGpl5wOht3QmrSA== 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=+HVNbMYLNSSqRKUdPlvgzJSR2cNfIM4vDl1m8t+UMsU=; b=Bq9olxpS0/CRHARwcMNwE+eyBn1/pVqsr67NNHiQLAjS2pNl0sUvWX1FAyP1xpgXKwxCKKzTpCMucSzZ3R/Run09d1OiDde/j1AhxRLPXpb1/dcEK+WeSN1zpOtlqtDWkvXMbFdh50QLrnvQ0yvRTxSNhRj4pnhjj+7dCDOzF83TyoWbjxhMq1/a4fZptNlfXeVhVpI3VdFr8tPTfV1cP+dx7rCA6Wl+GNPmEaODIzOXqn5CPchk9u5l0jHPscqD+c4UzAC6IoDDhzBlMUNSKrhlC8jOX6YPWLVxuvOCR9NAU2JiuFFiryyCQjjyfzwNrkN6ypiCmBPDtlYosUi+hQ== 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=+HVNbMYLNSSqRKUdPlvgzJSR2cNfIM4vDl1m8t+UMsU=; b=gUZEVv953vvWEZiQ0jtkUQbjXIys/vt3U9GOFM3j10E4C1hCP9zSl9iFkidesAHihNZL1q5w6KtFvRGop9z7/Oz1+REyRBRvzjVvT+dSKNdQSvKC3uvgv8xQ8eI0h9EaSUi4SVsX1LNpxb4LeRoaR7lS6SafcpqMjLVKCN1ZxoaZqRtvHEOmWfVnytBMCiMXCDCxnHkS3f++206L9GX37ZoNCbwpDB1+PgWAZr0MyK/2OQt5zLPlMq5F4jJZRDXShuLFB84s/e1ultkbfbVejYzClrsiLCnLgXJM0/cQg205yATD32KnZUEz2adRabfJPO23noiJwq5ziPoP1fIZng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by IA1PR12MB6017.namprd12.prod.outlook.com (2603:10b6:208:3d7::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.22; Fri, 29 Aug 2025 17:33:11 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%3]) with mapi id 15.20.9052.017; Fri, 29 Aug 2025 17:33:11 +0000 From: Joel Fernandes To: linux-kernel@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 , bjorn3_gh@protonmail.com, Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , David Airlie , Simona Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , John Hubbard , Joel Fernandes , Timur Tabi , joel@joelfernandes.org, nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org Subject: [PATCH 02/17] nova-core: falcon: Move start functionality into separate helper Date: Fri, 29 Aug 2025 13:32:39 -0400 Message-Id: <20250829173254.2068763-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250829173254.2068763-1-joelagnelf@nvidia.com> References: <20250829173254.2068763-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BLAPR03CA0025.namprd03.prod.outlook.com (2603:10b6:208:32b::30) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) 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: SN7PR12MB8059:EE_|IA1PR12MB6017:EE_ X-MS-Office365-Filtering-Correlation-Id: 91b3712a-f7c6-4af8-af1e-08dde7222053 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?v6Z1x+Hm12vnkW6FmgBjP5xRlZp/FKmi2ZwmyAr5Lx5zGaD0/BiAIsdik6fJ?= =?us-ascii?Q?RUOuuiDcVm7vckEg4IB2vOuhVMM+DW6oMLZy9W41dXbyc0Pv7seXrSrnAclC?= =?us-ascii?Q?Dgmo1Q3oJP92gEwEdQhN2B/OtFppEKUZf/Q2sqfAJM6jB2y7bHE9C3O0547E?= =?us-ascii?Q?vgGA+PMoQHlnmBSpgV4JT++GeSCq3AEwrEJBcZLgrj0+kgENxbVXXpqGIly9?= =?us-ascii?Q?MMmaH9YVhzK7qudapFyyc6vhRFkhNaytw+9fW3xeq8QL33uegBVuFw3paG3p?= =?us-ascii?Q?YPcBZiTRrimOgQXwip+2RLvHGcS5Pw9ziuAGhs7zjbVKhc9OFdagDvfeuV4C?= =?us-ascii?Q?8hY44eZLkxtqPSft64oHl/aN7ATgzUqmt/jVdOG1A0R6QuBGIbU2wF3RvDzA?= =?us-ascii?Q?gUFPc4q5qB0j1bSOaL84xs+VFw8D5IQNsHEYibvPqAu6NOLf3YaVswAuweVW?= =?us-ascii?Q?d0J3I7RvYivDhZM8kQDqhPcQCLWeoAdVRxSJioDjBizlJJAx8zDOgJrMUpDd?= =?us-ascii?Q?TOt5ES0EfKZIRrDNlIUbaX8NZ8ozliXCn/pSdDfNWwtHfzHy3VjFu8d9tSRL?= =?us-ascii?Q?XsoFXA3Sr7CfCLa6BexT/l6E3GpkWLJws9slOfFpP1E+rbZMTa5kfyL9dFex?= =?us-ascii?Q?mS+WaVdha+VMwNCqwGsLhsTP9c9VqfHYnwhXSI9wmvp7PWWZb4+WnpJbWP9G?= =?us-ascii?Q?O23ORbVFuK3v9fZX+vV7LZE3H1/AMo35CSNzB1JfsgmVON2pd1nTQ6y8lGa0?= =?us-ascii?Q?8NBIA+JHbPDrqtmOZULEqY8JRASdcS6T1/LQ48Q0VJJ7CW+phvgwif0GN/Yh?= =?us-ascii?Q?6nmudqvHWs/ONDE+9NAEMh/Tmz+zE8RL1+cPHBbPvpvjKd27Z+tydhrJGbt3?= =?us-ascii?Q?kX6mXaaW2RUp5Nb5aKO9KrT6qH4yXpKuEAty92/FX/edV3uIw1CJG6RhmJqU?= =?us-ascii?Q?+b8XKAUrN1n9UA1XDzHQW5yN4SeeyPoPriVNjtwlrwyM2Kk8UzQn0gYZwQjg?= =?us-ascii?Q?Pn4/aXB5k4NB00kYPA7cT3WAJihebbuzVcCi9OBo65iLwByv+knrvNGmo/8Z?= =?us-ascii?Q?4+9t81eOCI/x5VgQNUS4EuaPo/agVDJ45HKbK7m2HY7WQPaz2pzBktN2tED9?= =?us-ascii?Q?IPHfKPTNyDB3x5uQtIpXcKyQp5jrJ7c2GAc0nc3pIIAR4gBDgi9XI1Jz7r/t?= =?us-ascii?Q?FhoUI7QPNH+zrjUjan7FChMkLJ77418wZ4U2SQK2K6bXW/5rFqH4bFnvt04c?= =?us-ascii?Q?M7PWuq+yhsOsx0ZE6MUZOEU13S2Zalz63lC7bwPmnAskzNWWZfp4ZPB1adP1?= =?us-ascii?Q?SrDkTStjBWzlz9wlHUMgTeehbSB3Hdgkme2o/aPviIp/Z4KTXgtDTuZUzx/K?= =?us-ascii?Q?OztTmTn6YUyLBG5+NEqKsEYDr4gxZPM5fdmgEUk/KJseZNWcXlixb6wYZJvt?= =?us-ascii?Q?lZxET9feXxs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.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?Ob2Mw7OM7pDDv5Yq5cBGBksLBubZ0V+SFmmRXJHOsGOvwQYLk3u2Iy7z/0HC?= =?us-ascii?Q?d1cS2l9S9XTAq0lyDg9NbUPJBkadZM432+wuNWBfRkYQC5W/c6ZNDwx27CCY?= =?us-ascii?Q?0KhGQzMQmxU7u9rCn1CFlR/oPh314jav5T7brFM/Dv7Q611ga39evWi4lu5X?= =?us-ascii?Q?f5u/uSgNuevkTiCe3IOKjQvNDyU2xFYnT9AmkduROl8NxD3zL2uiZVa2tDwE?= =?us-ascii?Q?VYtZDrLH5rLc/eLlfd+zJsNDbxAoJObg8kWg55WgQ6Q9qPyJ1QBQEGvnbmWH?= =?us-ascii?Q?4p3lmQPGBjA8s8G4urC9wxKGfxEhG400q7HVJPf/RYnhrf2rkNnohHvkRNGK?= =?us-ascii?Q?nBZTbTX7oGQTSnApp2QjGYPzG+0gWZrI0b81usSc5814T8ThRyAkaowAEtTj?= =?us-ascii?Q?t9VP7xV5/gQIDSN0XLCE5lRPld47Z1lYIgnIXCB+8xXhTVS2cFwKDNTfWd4g?= =?us-ascii?Q?c3Jat8GQ/GkV0EDL4szyt+hAkZ/yX4zq6LWZOmTIduuW2jWW4r7cbkiLGNSa?= =?us-ascii?Q?k+oZeZltUu5YyhuKFudstdgdfRx25gfrrw2c0eDOKpzghQmINZIaoB2YkeqX?= =?us-ascii?Q?/vfGe4Q1PVGkH04tWi1LnQ5bMOA35W8otkeeHqu0aSn7S/2x0qDFnoVcPXUv?= =?us-ascii?Q?tbYBtLPvdIHt7uz06G5ZX+wT4T7SrXX30sd/5BDDd5x5wzahgDVA1PrK/DmQ?= =?us-ascii?Q?Hn78q5QIsowU96Ld889WskbpxYGcsySzrnj+RWG8NpCBYty4rO6D0UmClRz0?= =?us-ascii?Q?OupKZaHyYFNkUPpcNRx+dyaiUvViEG5X9w0RTqK9Jb15sOM1IzNSLz8riRXV?= =?us-ascii?Q?iqZXl7pon+HDpV0vCDqN7pN5VLaDWc28MfWw+GFXkyziEfAZ+yNi2DVqTk0Y?= =?us-ascii?Q?x+aNICHvYjGqSsfvAmOhOcdDob0W2tsMsxaAd8ctsGVD0IC+Kvc+4NkOfR43?= =?us-ascii?Q?tqoTnjxqk1dr7o5Mpb9bckVfxryVHKJqucd0UhcvBjE6WgsVe0Wuz+15jbQz?= =?us-ascii?Q?iHwBnW1K6ZyId9QoVedgvxCEEBT1BC1zsI3914tBEOdlW0oRT1wWt4eADljQ?= =?us-ascii?Q?ZaY7UfhZeC4nRxjG5cbT5HrqbG5nQlKj2cccK8kkR1tB+fpTFBjykQ48+WsK?= =?us-ascii?Q?MCHTcxT63qM0XQpE4S+CrS/puqxj036PBM5FSK2OKe3HrgNoQfMuX9YRz2oT?= =?us-ascii?Q?MqUZzXJx68q8BhlLX5tp2TAcQBaSX/P9pitgC3gZh/E6+ywrdds+Arh3WfBA?= =?us-ascii?Q?pDGhcgXh0SFP1KHotCWe0+SQvAS2rNYIsKBKJja8cpAMeTbYSnBWIWW4nSrb?= =?us-ascii?Q?HhykEk0hxf4tWljcC3Yn4EphjrAHo1xfaVzQyo8v1ksj8FZxfbPEXDmzHmOw?= =?us-ascii?Q?dJp3BqIY00O9V+ktbEthiPX249OwCGW8ZCvGjE8tZ77SJL8++FN63Lb6IsVP?= =?us-ascii?Q?5hPyzQL8o2MhV8IRsx0DZIhxLuQpKY9qRe0VsaN8JjfDe/giBY7alDVKgONE?= =?us-ascii?Q?nd4Ci8hpAfk0U1Z7X/rTk5faFVhUSfqgL5Bmu/4RXOw684sRVFoW/EhY62TT?= =?us-ascii?Q?KOOoz5BXiqsG+PsfbAe4io8yASaRrKQBUGXm+oPJ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91b3712a-f7c6-4af8-af1e-08dde7222053 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2025 17:33:11.4789 (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: V3p2/cre522gydSKhBoLvNQJ7logxrlL61Uk6Si2Kt7jeF6IKBPL/7f3PkMoeMWOwWgWNhRAJGSYMwJnDV/38w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6017 Move start functionality into a separate helper so we can use it from the sequencer. Signed-off-by: Joel Fernandes --- drivers/gpu/nova-core/falcon.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/nova-core/falcon.rs b/drivers/gpu/nova-core/falcon.rs index 83e40a7abde0..e51f4d7469c0 100644 --- a/drivers/gpu/nova-core/falcon.rs +++ b/drivers/gpu/nova-core/falcon.rs @@ -562,7 +562,21 @@ pub(crate) fn wait_till_halted(&self, bar: &Bar0) -> Result<()> { Ok(()) } - /// Runs the loaded firmware and waits for its completion. + /// Start the falcon CPU. + pub(crate) fn start(&self, bar: &Bar0) -> Result<()> { + match regs::NV_PFALCON_FALCON_CPUCTL::read(bar, &E::ID).alias_en() { + true => regs::NV_PFALCON_FALCON_CPUCTL_ALIAS::default() + .set_startcpu(true) + .write(bar, &E::ID), + false => regs::NV_PFALCON_FALCON_CPUCTL::default() + .set_startcpu(true) + .write(bar, &E::ID), + } + + Ok(()) + } + + /// Start running the loaded firmware. /// /// `mbox0` and `mbox1` are optional parameters to write into the `MBOX0` and `MBOX1` registers /// prior to running. @@ -587,15 +601,7 @@ pub(crate) fn boot( .write(bar, &E::ID); } - match regs::NV_PFALCON_FALCON_CPUCTL::read(bar, &E::ID).alias_en() { - true => regs::NV_PFALCON_FALCON_CPUCTL_ALIAS::default() - .set_startcpu(true) - .write(bar, &E::ID), - false => regs::NV_PFALCON_FALCON_CPUCTL::default() - .set_startcpu(true) - .write(bar, &E::ID), - } - + self.start(bar)?; self.wait_till_halted(bar)?; let (mbox0, mbox1) = ( -- 2.34.1