From nobody Sat Jun 20 23:07:35 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013056.outbound.protection.outlook.com [40.93.201.56]) (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 9617E3D9DD5; Thu, 9 Apr 2026 14:20:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744407; cv=fail; b=IAHfMX5NBiScXYdzObidG1aGGgGq0yWX0Ars/nZLUfpEOAIbjf/pF2z4lDMZV+FnPqwZDQZ++WbTGqYEOo2AMMgBZAOGxuun6TgI8JvrMWuhgBFffpHTNVEe2hFyRuJIt+T/VZydH8B2QfMiUVG/kp1IOTfrVTvKrwo5WHPLzE0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744407; c=relaxed/simple; bh=AO5FaFPWaN39MyWud46f4dIEofl0aeoyo0ZWtxKjo9w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Ef6paqMqbkG0wGdQgNNFUVR+NjKIrQmwVsI2Y9joRj9uwT86KTvSVjCFMieIS50gL3phzCBSisUxNHFfHhPmigWJWT/i3Aj4ZbJdbZyVT0SCZE3dYXzhGeb9JDYJoezOc6HDao990xVKaHxfz7MEBw1PRFGqEYetqOVfJ32IuGU= 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=eXni+thx; arc=fail smtp.client-ip=40.93.201.56 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="eXni+thx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k4K4KdBeLw1St2Yto7N8uIZPmvkUEkOsju/UjgfenTwiDPrggu69DoYzBxy8wJ7qQbC6R9n1QQ37D3V0DxXlGep48SqMXVFOr4+ZXozF3YVgJU8G+juVtF74gV3FAZFpkBHhL78js651RARe9yWMwc0hAcuyFQTsfYtvhMGIsLHeilNQZ6RtpbfXwjhXc5e7Mbjwe5OOys+F7HVoPq8J48Uney6/4IyFNlX00BuJDV4RvXarBUPcPkM14U5POHoYFtIV64wW5B7LGNuO9l5zNo8c0kVVBQFQ73kWWjidwNNGqhBLI7w1VnuW45XUby8VhEi2V27BthSwNt031nJKHA== 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=VTBKEZMvz12b1ftS1ZuX8EGWQ4lsbRBrkkC8HJQLQZs=; b=eMGReogO4luiHOF1O7RUgPRuE2ccalyyAIevRynqlLFJ/qO8AMbAKxsaNk+FSvRRdQ4DLDtz48tFqoaiULK+JWhmC//xjgXTJVRWWByi0MegCnwRAfZJTVHBRTQyzay5WJ1OQQCGrOOu/4SntQcmN1NEhAegkO/ofMuBWNoNHP1Od3pJElOmZKwgbtWwqTzgXWOT+gFQvDUSk9zcNmM9pqdj0Xom/sfblFpQaqvWysTqg6fThUmL1hvDK00P86h5nohuxmq5qWOL5spFN6IcfSd30dggJmDsQnvmyesYHItlkAbjLsEHInEYF4WJMr7Hme+trH+Ft7sC2MufO+JdHQ== 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=VTBKEZMvz12b1ftS1ZuX8EGWQ4lsbRBrkkC8HJQLQZs=; b=eXni+thxKkUQEBn5GLNalX9SPcyYSzTXboUz30G9MxlspzMWfaTd7WKfL76gvkAz6KRXeFGoxeg40AnjG2Nmi+JO+utdkDvPxPveRaNDuhMLRoc7hOUeoI90mZtQPZVRV0ghlikyoSUglNkEKclkPGILOLKiHsOlBugR8L4WKCQOWxi0VrYfV1XqIFJLFfK4p7A3NYri1UwTbPSnh12ifamBz1IFsxGki/VDEgYKw67kUunsC53WC+4R2Zhs+nsTWo95jgkL7UH1Sc0aRcfnSg6m+kjyZECWKBzVlnLpFJLOF6QpOwCOOtuR8Vr1h3THAgN/Sjwfm01f8SeXT2LRRQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by SA1PR12MB7104.namprd12.prod.outlook.com (2603:10b6:806:29e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Thu, 9 Apr 2026 14:20:00 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9769.017; Thu, 9 Apr 2026 14:20:00 +0000 From: Eliot Courtney Date: Thu, 09 Apr 2026 23:19:39 +0900 Subject: [PATCH 1/3] gpu: nova-core: fsp: wait to consume message before sending another Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260409-b4-blackwell-unload-v1-1-0f5a2ff838dd@nvidia.com> References: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> In-Reply-To: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , John Hubbard , Gary Guo Cc: Alistair Popple , Joel Fernandes , Timur Tabi , rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.15.1 X-ClientProxiedBy: TYCP286CA0124.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b6::6) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|SA1PR12MB7104:EE_ X-MS-Office365-Filtering-Correlation-Id: ce0a73c2-1791-4984-7e7f-08de964315c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|10070799003|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: e1015yBEHt0hZBXfVwasdxx8sC5Tcq2V2I2uvEpj8DIms7baUVyMQEOdTgN1wlUpAr3AhezAIYSHDnvs9v55Q2Ys/MTrIB2xaYzJBlNYwGKK+nSaKK3jveyVxqSckvhtCtyndE4E3hlRXgHay2v/TdqkZZiw4SbGtkZq9S1Q5Kfjf3YMWyvebuoRf5EsG5TjChiBBZp4xa7w4P7b3DjKsQAkwKaSQW0hB28WPb+15p4b0uSaAv2ZVO3vIGZIBeVg1P9Vh3qbesxjL6WWEet6LGy5sccWpskphUvOKqtE3bmbHDDcVznWMxFoANbGZ9EcGkM6Xyn+EDId1KQk9iH4yTpftuIcoI+Jtcpot4EVmtGt01FytsezfN+AXy0+9j9zQpu5StQQCjL75meQJayEpEpB7Fvcn9oNA/Bn0RMdoFtUkXzQcmFA7ZN7u/4KCO3RB3HTz+2NQpk2SlmO1lyxRSPZWbEGdqzTWF1uqtGpsfFu1aDaOsGeJruS+3MFtU0xthTypKK0ByMC0lV6z7aBlX7HnqHvLe27mYao5SJBdgbDm8wpDT87E0OXrGtus/A9UVohGx7ITguWG2PQ2fvHfoQTIZyXBjJ/IUizDCOT0escAWl93Gm4m7o+tokRKXOPgQasd1wqt+vTVfv+MH2LvnZQ9iuRbR65s6lvzy0xkY1n7Xr6TIj0Lv8ebIr0TzXuDwe7M3GemcvaoOhs1q9Eh8PFZkK54fJjyySa2CZDCHM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(10070799003)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N2tVdXhWelJDL3NkYzdvNnovRy9pRnR2SmRMYWJ1QUUrM0NPcm1mMjhkSVlZ?= =?utf-8?B?V2ZDRjg5NWNxL2Nqb3QvN09QcmsxTldOOUtuU1JaaDJkYk9tVGlOYzFEWmhC?= =?utf-8?B?TzhuM1VQaXovWDNvVDBCeDlEU3hObHdwMENaVGxLUW1WdzBnWEFXZFZiTUlo?= =?utf-8?B?UXNqd1EzeFlXd2QyTzh3bFJzMk5TWEgvWW1iY3dscGRxUjlyb2RhTTZxTExj?= =?utf-8?B?TUVybXRaZFcweUp4SlMxb2RNM3FnVE5uRkdrRUZLZ1pjc0FvdkpVUUo0czZR?= =?utf-8?B?WHdBZFMybkJvaFZBS2hlR3oxZm1ndTFWUFJQbnFqRUMydDlvWTRiVy84VVVY?= =?utf-8?B?WmJFa0ZLMGFVcmw1VWttL1lsK3o0NjMvdDdyZ1ptSUxnaXhOMSttNUtsaE9p?= =?utf-8?B?cGFBWGYzWDRSUEdSaFNjUnlqVHkvMTZLL3pJaW9BdFNPbCsvZHZ6OEN4aHMx?= =?utf-8?B?RUZuOG5mcHV5akpkT1MzWE95RkJxVE9rS1dPSlMwVlJ0eVZGQ3o1RDBxdGo3?= =?utf-8?B?Qy9BVERWcjhseGFWYU1FMlNNL1VxQkNvZ1RyMXYvNGFqMDB1M1hTWUJOYlln?= =?utf-8?B?MjBzTk5nTk9hTG54ZFJSM0JhSFZCdzJyZ1pQWDFCVUNHeDBJWTJtT2VMUU44?= =?utf-8?B?dlpYd0JkUGcyS0t0SEJvbzIzRktWQ2VyNWJJQVlYbE9FUGlMcGZMUEpOZXAz?= =?utf-8?B?c1lMa0dzb3pXVXliL1FiM2xhN0lBdThacGh1MkNlSUw0Wmk2am80K25YeUNH?= =?utf-8?B?OFEvdUYxdW5kSjUzcVlwa0x1dWJMR3NwMlVqRGRvV3Q0Ri81MHFDaFYrSHlG?= =?utf-8?B?Wkx5UmRndzVlK0p6eXl3RjM5d1BzVTBHenJIVllHcUtJc0ZMaDlUTU5pK2RP?= =?utf-8?B?dkg1SDNndDZCMlFjMk5kRENmL1RyN1J0eWFpOVlESDY4SGl4K0NPUURaZzYv?= =?utf-8?B?Q3VRVERNTUJScFo3M3BwQU0xRTMyS3VFUEZCbitXOXY5WFhXbHZoTjNWZE5s?= =?utf-8?B?RHhUb1picW9RVEJqcG81TzNDWXE0Zk8wSGgvajZmUU5OZmljNVNQQk9mblpD?= =?utf-8?B?SmRDOTJJMzRhSUpZalVoQ3E3MWVFbmVtSkVyNzNNdDVhdjZsVVJzbHdMdCtt?= =?utf-8?B?MFAzR3ZvbW9ZN0lVVXFTUDZFYUhmdXNQRXdnSTU0dEFFYk53WUdLT0JLc2Jz?= =?utf-8?B?My9DS2c2VmlXMlVOUzg4cGh4RWNZR1VoS3NNSWF3Rm9EYVdaZ2tnNU45VzFJ?= =?utf-8?B?REdmZGMrWFNlYVVSVFVXVk92V1JiNG9aT2laalpiZ2ozVDM4d0Q4L2dQS08r?= =?utf-8?B?bTF0UWhxMGhhbDJuV045R1U2L3RiQ0dPYVRxZ1UzN0xWWm5hcllZY1BZNk9Z?= =?utf-8?B?Yi9SNGoxbXlUWlpDWENJanB6cTV5NEFpeUtEZ3ZYL1NUcmlhZEtsUFlKdW9N?= =?utf-8?B?NGoxczVoZmkrWmdhQXVlMnE2Nkh0T3JpU0llanNoVlh3Y1RtQ2paKzhPZVdu?= =?utf-8?B?eXVpSU9PeDBjRHNob3NWakJueWhWWkdnOWtYMnd4RC8xL2c2dzJQZWZ3eVQz?= =?utf-8?B?UEF0cGc3UEtiL01WcU1UVXpyNmtmbmtHRW9xeHI5QzhIcmRiaWY3cGplTDVl?= =?utf-8?B?NEJzV1lxWGFLRHgwTkVNZ2JXV2M3QnZDcVRTN0hCUERqWHNJdjBvV1J6aitp?= =?utf-8?B?S3VlV2hxQlVhd0ErbE1SaHp6YjBzaDhpeTdPVi9ydTVEN0hxOW9hVllwdkVD?= =?utf-8?B?cHhLQi8xREFzZGpjVm1NOWVKYjRFVFhlWjRmVFh1dUpCOHRCeUFJYXJqNHF5?= =?utf-8?B?dmR2K0tvV1dLL3lrN1JSM2NBZS93N2ZSVDBYZnBpb1R2WFBxQnFnMVhmbm0x?= =?utf-8?B?bmZROU5pcnQrMlVDYXhwbWw0S2hpL0lDNXA3dWJPa0RIMWZUMlY2WTBlR3FZ?= =?utf-8?B?MFR6bDBsd2RoMnNhak1DS1VHU3A5VWpaSml6djdXcjc0YVBzYkx2Zy81TEFk?= =?utf-8?B?M3NMSVhaQXllZEhOT1dKWHRmR0c5ZVZYSm5Fd0ZkWksrSS9FSlpMeXkrVlJW?= =?utf-8?B?ZzM3YUthbEpRZjF2Q0Ftd2tZT0IzMW96Y0RjYWhyYlNDOHoweDV5Rmx0SVdw?= =?utf-8?B?S0VJd0VsUHliTzMwV3hZS3c4NlhRU2VrYkdHVjJDNmJLQU5vL0p1Q0VlNE1m?= =?utf-8?B?Z3RPbnA0RXRtOVFqc212dkV4enYva1M3bUhDSE1ubk9haElnSWZ3Vm1xNllN?= =?utf-8?B?bzNObWRWWDdrMm1UeUVqUjlpTlA4OHRld05UV2VvQjI5SzRTeUh2ZWdNU0I3?= =?utf-8?B?UjY3cHE0R2doekRQVkFtaElzSjdVcDFBNktjTFRHeDM5Z1B1UG1ndzlBSy9Z?= =?utf-8?Q?ZtVIjQ4hJJFRSkUC8NkgZdAuRyavjZzrjjHBporCEKXTg?= X-MS-Exchange-AntiSpam-MessageData-1: 8MkmMTeAgS9Uzw== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce0a73c2-1791-4984-7e7f-08de964315c2 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2026 14:20:00.6338 (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: 30mAjxV4VjNWHOSbgZVFXbwOqjP5EyQ0OAYdv+XOoC6xZYpp2++QHaVatGxVz2sOnT8HotUhqFVTdUhULEfgwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7104 FSP can only get one message at a time, so make sure it has consumed the previous one before trying to give it another. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/falcon/fsp.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nova-core/falcon/fsp.rs b/drivers/gpu/nova-core/fa= lcon/fsp.rs index f618a681ff28..1497f163806e 100644 --- a/drivers/gpu/nova-core/falcon/fsp.rs +++ b/drivers/gpu/nova-core/falcon/fsp.rs @@ -7,12 +7,14 @@ =20 use kernel::{ io::{ + poll::read_poll_timeout, register::WithBase, Io, IoCapable, // }, num::Bounded, - prelude::*, // + prelude::*, + time::Delta, // }; =20 use kernel::io::register::RegisterBase; @@ -186,6 +188,18 @@ pub(crate) fn send_msg(&self, bar: &Bar0, packet: &[u8= ]) -> Result { return Err(EINVAL); } =20 + // Wait for FSP to consume any previous message before sending. + read_poll_timeout( + || { + let head =3D bar.read(regs::NV_PFSP_QUEUE_HEAD).address().= get(); + let tail =3D bar.read(regs::NV_PFSP_QUEUE_TAIL).address().= get(); + Ok(head =3D=3D tail) + }, + |&ready| ready, + Delta::from_millis(1), + Delta::from_secs(2), + )?; + // Write message to EMEM at offset 0 (validates 4-byte alignment) self.write_emem(bar, 0, packet)?; =20 --=20 2.53.0 From nobody Sat Jun 20 23:07:35 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011055.outbound.protection.outlook.com [52.101.62.55]) (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 41A963C2791; Thu, 9 Apr 2026 14:20:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744411; cv=fail; b=eeq8Hq2UbftMD9xfzQ1rHXvc1lxebVSO1PGYUkNnIB589doQblk/W+dvVmxTwPu8hgJr1aJ/0FQnglR8cCIFiFgSqKeoKhv8fjYC0fyOStskm2fzN3B+EwJfcIYtAnuzB+RYZrqVhPT6epqP+4ppl/rojrlgKCjLTOWl8mjJ6Qo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744411; c=relaxed/simple; bh=Epph27zRHx60G/ecTwH3bKUCGV1FhI/vZFr7QWeGEmw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dCbV3KgpnK3pEX0OfZ9BgRTo5OF6i5N0IoeAZBANYHdtc4QVTV+PyWWnpmxtO6OFeFWpuaJiT0P1HwEcgC654w0hVIwqL+OJ4KJkmIrJNCjJjGXfASJItTacAA4WUVQuJens/J4C/9MQgV92vUHQtjxs73HxB8Wv+kRyXvl9yqs= 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=h/3wWWoa; arc=fail smtp.client-ip=52.101.62.55 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="h/3wWWoa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=acMJkJCz22gJut95X0iVEaz1NLofN0ms67T2v+z1UQcWHlH/e/ZUSQk0WS9I3apbGdbsh0vlsZFa0m0i8qc2snu1+wI8SL0aI08HXoNUZgWvSZsgHdfT8WRehTKlfyXnSJjb7mHcDWYETzS/MDhLJSUTpoM1ttc2aOE5rYuyTNfgTg1gA4/u+FoQ1afLRyUL0W65WE6hO1r3kwknt2aRDnIytGlI3bx2zT0tCHNkGDadQnx6KUcTIWDUnEakjkNq2UxmkInRlZ1Mu4gpO1DGvJaSya174QbFddudd91vQnINniW4aaIYKxBhmHoICdOj7SI+++ggdgk2XQFVdSEY5A== 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=LHMj9mQte9gKqvV2Q5n4Q/8LqPMPIUf6V8aIta/nHKo=; b=tcBTISzgHlDA/kqpglLBDpfytwv5FoOLfuVA/d+PZ56nM2CxqOzP8MkvYMErRBXemh7jBf6HUrSVBj+VHwoiF5Om38b9qNHAgkBgMUEDl0NygTyAjyeXC/db/kUfStIIUW+3imF4Va57MjZZ/Ccvmtdkkgbxnk0tjVDy8O/cI8F5qsbmSZr+sSBKENn7I5JZ/M2XDha//d4XJD0L2yxuNRWXuolBNCji727OfXqfyci2Ccnnd8SqeIZTDEJmWmLzkl5IOvNK2fsP++irRDceVdOvPx128zS/dkV6vgzn6hPQwtHagHmCZnoV9n9sJH4e+1jhgibLazkgahU6GnGJyA== 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=LHMj9mQte9gKqvV2Q5n4Q/8LqPMPIUf6V8aIta/nHKo=; b=h/3wWWoa0l3ZM8fGd99iH4HGNelU/l0bqfRYgMEujFKM8qWq44m7tc/5sjspri5/tCn3BaDrEsiO7bu83tzJ0jDVVGV8hAnMYgh+j7Ih2z+ahPZztUBrAqUP66gIymdCazK76TCVYRPDg9H35UtUiuXhRGu1hlmV+NBmmiiOA/7gpSw6Tjk2nAfSw1y7EXk88b3zWsrT1SGeUfllLlOWzORh9LvZHc97hU70/8ulMd1/fhT6Pxt7goS73TYvOwe8m17nU5LWik7T9WefPCyXF1i/RAcUVJoH0A36CYk1jBVw2IR4fGWRo7vh7HaaD0bU9tvQAkdJEhF7Y/p2QartmA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by SJ2PR12MB7961.namprd12.prod.outlook.com (2603:10b6:a03:4c0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Thu, 9 Apr 2026 14:20:05 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9769.017; Thu, 9 Apr 2026 14:20:05 +0000 From: Eliot Courtney Date: Thu, 09 Apr 2026 23:19:40 +0900 Subject: [PATCH 2/3] gpu: nova-core: add Architecture::uses_sec2() helper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260409-b4-blackwell-unload-v1-2-0f5a2ff838dd@nvidia.com> References: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> In-Reply-To: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , John Hubbard , Gary Guo Cc: Alistair Popple , Joel Fernandes , Timur Tabi , rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.15.1 X-ClientProxiedBy: TY4PR01CA0122.jpnprd01.prod.outlook.com (2603:1096:405:379::13) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|SJ2PR12MB7961:EE_ X-MS-Office365-Filtering-Correlation-Id: 69b0f61f-7bbb-4641-bd4b-08de9643188f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: b93+zHrJwpDySIC6ECMEsNzfFVszAFgycivor9O1aSleP6tclp6FmYdn8Fi0IeBdoUzdYZiRge5ISmOdsKvUXKrcDVDNPnZteCaKfaursQ+oiTs5mr3YP+2XGji9YOWP1R1LtwygR7onIlezfWKY6EyCsIz4lWM4SoUU0+6jgpCY/7jmC4SMDAEZe7yRpVLL0jOn6XaPb2t5FAOib//ZbpbQ88JVzcBj++wTsd92nQIWlqT+l+qquRXtKquh4PoBGtSMjnQcd5HpPXuHnYgczzigG7nXacdWqhd7Dv9CS+fGjWG8OH0C7v0nCyjhyMYHJHAD8DTnnUVtuWlbobs16HzabFxA9zEdVnmCaUyRRrveU0mJbjxcMlBA61loejbkpXwpLPlqwqxcGLjD7n+Oe6Vy2MIhbodl1Nyav+QhnHn2KhNACRh80t5fBFMxLc4VR1g8DV4xMFZIsvhYvNgNiMUla0rMnwyfHzZ5BqDz06lR1YiokVq30Gw6NUCNf//BdPom7qfELsI+FGaTGwLuXfgSqXJ7jnV5OJ9uGDQYeG69830JIa4xEa9AlIzgAmJn3QfS8HcRj5OdvqOOrTKIS4u945bNorU7C9KPzc+FLiYIwQM/JpbiNKOXXB0Z3ZYpCrS8ZFAbVaTjHRkH91SMwlYXGZQ0JEfsMaBFtO+zURPc+QOAn3D6Lt2s2BeqSJVeq5g6PDKDSueiNXjbmMASH2rE4OzMvEB+YL3dxtsLLEE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(10070799003)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Wk16b3g1NEVlekp0YjllZU1yd2NPblhFUGtqcFJoRXhGTTBKU2pDUG9nQkVH?= =?utf-8?B?VnR2eEVJbjlod25PTFdnRUlWY29IZGJYaDNOY1YxQllCSlpkVWJQL2lVTDd0?= =?utf-8?B?SkZKMnY1QUV2UGl4d3lvMnV4ZGkyczhNeGtiMFA1aFJDcFdsUkp1eDk3MWxt?= =?utf-8?B?bzMwWkhMS0Y5OU9JUVpzc0MzY3pqM3dMWDZ4OW55dm1TemxYNy9kMDdFSnZV?= =?utf-8?B?Q0lPRFJxelNuNFBraFozNWZNRUk5bzR5OHlZRm5XdGdibm03cFltVVhSTlZP?= =?utf-8?B?NjR4enlyRUR5bDRwU2ZjK3RtTlZSZzQybFBNMGhvMlcrQitiQ0VOR0xNdWpN?= =?utf-8?B?QXpLeUpBZW9RRG1lZlNwOTdDUUphZnVTR0NQcEZ1ZFhSYnU2K0htTi85Vjds?= =?utf-8?B?U0JTK3hCT3YyYmFuNXh2RHVuWWVUQjVRL0dwZU1uQmk0Y20zMFBlanIzWjJ6?= =?utf-8?B?Nm43TFdpMEUza0FNd3ppamhCS0dkZmNwZ1YxKzlMcjAwOHdUNFZ5UFJLeDVG?= =?utf-8?B?MmJTcWpHTEpld0RNR1lrckNBRkhsOEJ1c29LbjFUZE5ScmtLQWhuNXArRXkv?= =?utf-8?B?VWRoeXpTQzV4YzZJZUYwNDF4Vk1Zei9EUGN0K3Nna3FrRnN1cjdiTnVadjIr?= =?utf-8?B?em5NTDBJZTV0Rnh2WFY0SHMxUEwzT0lDaDRzWEtudkZEU2VOdnEvU1FPQy80?= =?utf-8?B?d1Mxa3dVTVFyN3hQMUJNc3hKa0dRZjQzOFRlU3NzYlEzU1NNdUsxSUFkcmpi?= =?utf-8?B?dnNMU1EzOTM1WGZyb1BxeXJPM0h3bmlHSktZVmRXYU95SWRycG5TbkhXM1Z3?= =?utf-8?B?aTNFbGRXU3VGWnJKMDMrczk3eS9pYkpZZWdiNkxqY3VCOGFzaU5PYmNWS1Mw?= =?utf-8?B?NC9xaStNdXZWWTdsZXo2ZlRURUE0L3RjSzM4OE53V3dIb2ZHV2hHUTlLSWc5?= =?utf-8?B?emhNbDJNQmJsOVpyK3pHNzl5WHF0Zzk0WnJ6RHI2cjk0c1hEUGQrT3pOTW03?= =?utf-8?B?RStUd3BhRUkxc0RGY0FWVWlvWXRIUUJLTGpOclVjZ2xIZzBRUDhYMGxyNVZV?= =?utf-8?B?b0Foc1dYVjZ1eHRyLytCeW8vb1FKNmpmOHE2emcyUEt3SlNDbFVuZjM2bmFK?= =?utf-8?B?NVVvWDhIelk4OHFheFNya0tpd05Mc3lsVUZlSG41OUFFT1dsc3g3aGtLWnNp?= =?utf-8?B?ODFsbDNSZTJ0K3VPVGsydTRVNEpvWjRpS0RFOGtiUzNsaHp1RENzSHM0Y042?= =?utf-8?B?K3I4QmdwSmpGSGpIWWhHUVA2ZkJYcE5tYkM1TTUvYU1UNDdOR1EzL3hZMDNU?= =?utf-8?B?Z1ZnM1dyS0s0WjhIZGVZL2I3aVdmVzVRRG5DMVVxWkRIUDVuQURFS01JSGpt?= =?utf-8?B?V3lTTEM3Zk9FSHFhY2pVa1plK1RBdGxrYlllSU1iOTBhTytDb3YwRHFRQnll?= =?utf-8?B?MjdFUHFQeUpRL216bGthRkQ0QTV5ZXorb1RWL2NidENleHNiYitkK3Z2RldD?= =?utf-8?B?M01yQnRObnhsVVlkU1FNZWN2N3JGTEJzMWJOckxubDZBVWV0bGdiOGdxUEpl?= =?utf-8?B?UEpNdzVjOFZydUplNGtOcUdLRE5kellVM2RobUs3ZlFvQUFlRmFhUnh1eCt2?= =?utf-8?B?NFB4NlIrN2VZcnR3Q2loV0U5MldGNXJTUXNodWNONTM4bkZGQjVydzNZYVFB?= =?utf-8?B?OGxIS0licWVHWmdvLzE1SFJKZzVkdGIrbkplRnNWZFRiUmZMR0Y4NXBYSmYy?= =?utf-8?B?OVZ1K2RaRmludUpqaVlxdFowckd2alZFWWM3aEZFNTdKNTBJSEpaYldzeXJK?= =?utf-8?B?bDkycjJnemtodGRUcm9ZZnZKb3phSnBDanRneDBnZ0cwa3J4YUE2b3R4SUZt?= =?utf-8?B?NHVLTU1MVE1ONDNnV29oQ04wK01xWUpXbEVpS0lrQkdKVG1JTW9XSU41L08z?= =?utf-8?B?eUIrN3RjelJVQzM2YkRuWi9PSTQyNk9IRWE5cjd1UHlubk9pTDczRExRR1VL?= =?utf-8?B?ZVdQYTRaNGo2UXorZXRLclY0U1lpcmNXY3RqV2RoclNpRWZPNXpxc2RaUWFo?= =?utf-8?B?anI4WWtoNmI5dkRhaVpjOWJtQkVHZEVWRDRNVm0xa3BGOE9MNFk2d0NHbHBR?= =?utf-8?B?TTZ2TXc3T1BSS3pBcXRkdUQveXQ2R1ZEVFlLYnRTSitSUUMyUEh5aFhUWnlY?= =?utf-8?B?cDRoS3pOUzF4V292d1A2bzdUeDM3U2xUY0NhajNST2NoZXlJandzK0VJM01U?= =?utf-8?B?SzNrUGdZcFlQUWNyczAyV2ZJL1BsSVJTeVlKWDY2aHdSOVNHSlBHRGpsT2hJ?= =?utf-8?B?T0ZqcUVabk0rUkgvb2h4NGdXcWljY2R1QnorNnEwS05qSHQ4RGc5VDJVQWdG?= =?utf-8?Q?5Gji3wKOOyMLHTISszEk+BT2o2z3qJubT0UVU+7GPYEcC?= X-MS-Exchange-AntiSpam-MessageData-1: ZlE7qHUut1z/IQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69b0f61f-7bbb-4641-bd4b-08de9643188f X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2026 14:20:05.3800 (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: UvpvmivhMVJS8eY3vzslomj7UJx4GES9kpRPgNPLBN24AR+nLwS1yWhMcXjyIr5wRadP1fMiG8uldOEyeyIRvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7961 This will be used in the following patch as common logic. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gpu.rs | 7 +++++++ drivers/gpu/nova-core/gsp/boot.rs | 5 +---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 2bcaa7bc5125..674dc286162a 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -180,6 +180,13 @@ pub(crate) enum Architecture with TryFrom> { } =20 impl Architecture { + /// Returns `true` if this architecture uses SEC2 to boot GSP. + /// + /// Turing/Ampere/Ada use FWSEC + SEC2 booter firmware. Hopper and lat= er use FSP instead. + pub(crate) const fn uses_sec2(&self) -> bool { + matches!(self, Self::Turing | Self::Ampere | Self::Ada) + } + /// Returns the DMA mask supported by this architecture. pub(crate) const fn dma_mask(&self) -> DmaMask { match self { diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/= boot.rs index e6d8b848ec46..1aac634c3b67 100644 --- a/drivers/gpu/nova-core/gsp/boot.rs +++ b/drivers/gpu/nova-core/gsp/boot.rs @@ -332,10 +332,7 @@ pub(crate) fn boot( sec2_falcon: &Falcon, ) -> Result { let dev =3D pdev.as_ref(); - let uses_sec2 =3D matches!( - chipset.arch(), - Architecture::Turing | Architecture::Ampere | Architecture::Ada - ); + let uses_sec2 =3D chipset.arch().uses_sec2(); =20 let gsp_fw =3D KBox::pin_init(GspFirmware::new(dev, chipset, FIRMW= ARE_VERSION), GFP_KERNEL)?; =20 --=20 2.53.0 From nobody Sat Jun 20 23:07:35 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011012.outbound.protection.outlook.com [52.101.62.12]) (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 8E69132692C; Thu, 9 Apr 2026 14:20:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744417; cv=fail; b=kFAcQbWUyimdocy8D91zhaPLEgGrbPoYLAF689yiVTzn9DboVxjgx6d5f56br9BoB4TcaQVhlUMir+xBIXb/G2J5CzCRgHYOSv5R4mxNCerdoPoqD+QyyitqQheyz2esNW5taPFk2NgKFGbjPGv7IL7hf10D2tw2PM1kqf8RN2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775744417; c=relaxed/simple; bh=QbU33w1lJI3g/baP65EBjjrTKIczA5rQUADrTaitiow=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UOvKTmNMhSiLImiHH/vQ2y5VJs76Cnfb50/mz0Jx0wApspYqU3hozaB0cy0tf/CgHjM8Wj01FLcGahEgSufYvo4QjtAibJAEWhUWz5hXSKVKojlumR6YXqJZgo9ydxl4Sx0OtUiXL3TrE4wbVxIcNl8/GCnsVxKXceqDoz2RUks= 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=DXR9sStt; arc=fail smtp.client-ip=52.101.62.12 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="DXR9sStt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TH+rOGEa+IrsM5fxv0IRmINHU3SQdOlg/YvGZ3orxxD7Wmrza/zSJ/k0A7Q/AWM8ECa6No/+TBfmXyMXWmW6xzCPzWSqv+0UC44FrqSR/D5fgpudg1bAtA1DGlU/roApRkp2ijRpGCDYySZhpFoJ8gKRqpFRGriqGve6aFaa7wg+StoHMPURW5/miaw67gD6Vugqj07yPhDnjJZVPEaY3vm43t+mJ43yY/4Bq9IcNcAx252f6tqnQWzdCrMR6UvxwtGfHdS3RcW+3YsdfVp2K5NEmZjH5IIUKUmT4mHxTT2BzUGbOQLVVWatUhQHx1QU1c33Rg6vT43D/QFnCy1ZVQ== 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=nYwlIR7BAxAF+/npW0KI1yrkEa+aBp5gFsKNFINgdTQ=; b=qhFFjEXaG9NUhXkAwogdstlx2JzeAqb7xGRqc38mp4RGF1xe1hMtd5RKO9Vyb9JgOpjB8QaCS8koq0b9hJIOms4rOMtMftpJY2rUBji/nELjm+KujqozrqGqlVaXQGYuxf6GCFMsaleHPsUFK7VPp5CaYPpZbKfpECs0/FiQwi+zNO80xmIaLyEjUSfe0cNHXcpO68w9BaK/yg95rt0UG2dXZQOKujLDNWdAftXelcWU7rw/r8mN2pouWSBjZ9IYhdxKErftSCx0mwODIWSX0tXPu/pvVMIJC2kl1N14U9Tzmu0Cvzw3p2krjXyKmV0dJZjxa2wA1qsKQc7VARiKeg== 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=nYwlIR7BAxAF+/npW0KI1yrkEa+aBp5gFsKNFINgdTQ=; b=DXR9sSttSWsX3GmOenO90f1ucXQuuDGqqsMnQokDWeb2R4uDW/U3SvOBQ/AHj6zgYXRGCuQH4U1CYWKNb2GtiWv+4KKwN1ARlJwL6Ggx0PLx7ZHhEmWN88qmimWPYJ/gqFnAJORvVz6RlE/ZpiH/MHPAGVfJ/0kA280+tLnG6xy7pWsE8zON231YZkujWOolZ3oAmFJLXQ/kzM2+BJNhcjI3QXfZksXTtN+JDHzj+/XjSVDhQ/Bi4H7F9ApuLq0/3i6pz376AVYrbsEJF5SDxe6TWLllycvX5YS2RRXe2kxb6QgPj4/73ywPMFqNphuOCPHiQnqYIUIPjfRqR2qDAg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) by SJ2PR12MB7961.namprd12.prod.outlook.com (2603:10b6:a03:4c0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Thu, 9 Apr 2026 14:20:10 +0000 Received: from BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0]) by BL0PR12MB2353.namprd12.prod.outlook.com ([fe80::99b:dcff:8d6d:78e0%4]) with mapi id 15.20.9769.017; Thu, 9 Apr 2026 14:20:10 +0000 From: Eliot Courtney Date: Thu, 09 Apr 2026 23:19:41 +0900 Subject: [PATCH 3/3] gpu: nova-core: add non-sec2 unload path Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260409-b4-blackwell-unload-v1-3-0f5a2ff838dd@nvidia.com> References: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> In-Reply-To: <20260409-b4-blackwell-unload-v1-0-0f5a2ff838dd@nvidia.com> To: Danilo Krummrich , Alexandre Courbot , Alice Ryhl , David Airlie , Simona Vetter , John Hubbard , Gary Guo Cc: Alistair Popple , Joel Fernandes , Timur Tabi , rust-for-linux@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Eliot Courtney X-Mailer: b4 0.15.1 X-ClientProxiedBy: TYCP286CA0308.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:38b::20) To BL0PR12MB2353.namprd12.prod.outlook.com (2603:10b6:207:4c::31) 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: BL0PR12MB2353:EE_|SJ2PR12MB7961:EE_ X-MS-Office365-Filtering-Correlation-Id: ffb3e063-83ac-49ec-e591-08de96431b04 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: AMD+s9RP0wxxkYIHCen5iznhrnPmMkehIrzcChrMzIDDapV9STdpsKfAl8xk6uGsn5UBsVhYLH3ue4tD0gxuVQdqE7tmge0fh9mPbj1kjW+5PBKtShiAD2xQwkppDpnqc21cEp4Py2w0lOLMZ6rNnbBayHTNy1RrV7idUNjOY3cdONAz3qCzlA2LDhkDPHp0Bm+0YUp1y+5p9Bgy2P42n0sjp0yEGhDDcL0HfhhvfDWSPqkb4AVKW3D16TOEaakDm+K/64Aw9vbWu8MJE7Mk0BJOZrU/QNnIoPys7hJWM6XCe1lp5HmtkfR0Ui2fZAn6KmmLIGh6wPQD3a6Xb7oPS0UfATYZmyHktQlEwOBOJCBfmDChGxDikeJRyryJUs5cGqpDPE9s11sj8AGIOsoTDXafJpKSo9ExlDVvwZYzYQtVPhjqTWMLi5x+/tKUsMv6WCx/OzGAp52LRiXUWMXYB8+NC5MHxJp7KfuE9J0jKzsZbKnAX764HkmlzvsGf9Z9msDXiYRTFpoQwIag+TOwlRlPJqWT4AKUEgQ8amJORmMR3g/8DuFSLCadGifyRvp8Petb+G1rbHjlGOLliLRhCPUFI3jxBmAb6xHq2vordQTCCYswKC+3RGlW7EDmqM3R4Pe5q+ba0WXP1WqJUowEGMwqTevkE9Pz9gemhnNtdh/Q+NcyyA32w9Wzo3wLUsAl5EUg4va1m9fG3hrKTf3PTE0e7XNi8gCkoGRUEvO6uug= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL0PR12MB2353.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(10070799003)(1800799024)(376014)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cm8wSWxZL2JadlN4UEZrSnV0RWJTRmVmZ2xKRElkUEZURnh3YWVzRVZwQkp0?= =?utf-8?B?MGVmb0RuMDFMSC9WZGpJN0Z5ZS9wVEJzU2xyaFQxSHlxU1BhcXlNalZmK3hj?= =?utf-8?B?dUVOUDBBSk1QandLNU5GRGsrMG53c2dsYWZlQVA0MFlIdUd6c3ZaSUJBN2N5?= =?utf-8?B?ZHR0UWU1VjFJQmh4elhrS0Z2WW5QUk92Z3Y3ajRZaFp0cklncm5MNVVYRzYr?= =?utf-8?B?bFNQZGpnMHMzY3dRNUo0S0E3QzNXRUFKd3dadDNDKzNCNlZrK01PeFpyTmZG?= =?utf-8?B?cE8rbUR3RzNIWlcrNGVJMVRCYnVMNnRETlI5ZVF5MzFkd0grb1RGR0grOWZ6?= =?utf-8?B?N09rVFVEaFUwTS80U216RXk5OStWQWhQQkJhRnpsNWdWU1hQTFhiN2JSUmdn?= =?utf-8?B?b3NpY2NZeWNYM0NIM0lZMHFpU3NSczVsUEh2ejJYR0s2YVZlZTZPbmVJTGJy?= =?utf-8?B?U3paR0YvR1pUUkg1VCswODVaK2s0Mlk3SlNua1F5QUFpQUpsbUsxZGxDbXpn?= =?utf-8?B?N215ODk5VDkvM0NtYjg4WGR6K3FZaWdtUjlNVXJERUJCaDZHWjg3aFFQOUVW?= =?utf-8?B?MnpaU1k5N3paR00yVU9wVkZ2V0JISTJ4NjNWUlNDUlY0dk5WVG82Y2U1V29r?= =?utf-8?B?NjAyYi9wcnJkODJaSVQzR3c2akV5Znh3U01XR1FxZ2lnU25Cck1YUk5XRUxP?= =?utf-8?B?UHdKTUtia0NRU2pzbVdzMUsyS3R3MXBBZ3VNdzU2S1VpUm9MUGQ4SUxEcWhv?= =?utf-8?B?OUJyNWVuTUNSSDRHUWhJSHNibC9DbldrcUZ1YXpqckdweGJSam5rQVZUY2VZ?= =?utf-8?B?cG5RWFZXU1hMTWkvRWRQaGo5c3FYUUowMHRaWHEzbnNOOTNQWGoyaE5Dd21w?= =?utf-8?B?MTVpaExsR0RYbUtScWJneWw4Nk1WQWt3MnRSa05ic0NaVTRwMlQ4cmpBZENz?= =?utf-8?B?aWptUTllMDgxdys2TUptZFVjWUNsZlpRZzZ2V1prdWMzdnMxaHBJeXVUVzZs?= =?utf-8?B?TWcrWEY2Vis4Tm01bENNdklwa0w4OElGRDJ0aytnYXpNZHBMTTJpUVBocllZ?= =?utf-8?B?SVVVL3FtTlN6UnROTXc3SnRlNFRUblAwNWNwdEVHMUZQUVRNQ1E4bTZjMzNG?= =?utf-8?B?QWdmSHJCaEUrcnFDNzlFWFlXd3c3QWw0emMrSXNJS1JiSmdxc040cGRGRWFl?= =?utf-8?B?bGprN29FNGxybnd6SVlmcGVtWUFvS2Q3K3pHN3Z3SzV0clJOY2V5TzJWN3kz?= =?utf-8?B?TVJ5OFd6Vmw4aU9mRElGNDhRTXBuUndxQmEwSlI0VFhWNG9GQmtXYmJQT0ZM?= =?utf-8?B?aDQ0UzFUc0hyb2dVT05uVjBLOGcyejZkNnJSbmIvdStiUXhCQzFPcGJmVHBj?= =?utf-8?B?c2xEVGZVVWJzZFNSMVg4SFRLZy8zYnY4bnl1M3ppbXlYaVg2c0E1bDd3d05i?= =?utf-8?B?ZjYyOFhaZnJzeW1XSjRuM2dtVDN1MXAramNRRzc5NEhNUytkcGlwcjB3RmY3?= =?utf-8?B?cWxlWHlVczVzSm1mTWtFQ1IycW1uYkVFc1REMUVuNjJHNitFRzBtaG1pNExo?= =?utf-8?B?WUJWYTROaXZEU05NN2ZkTGFZSTJwdW1SelROZHpWei9oWGNRRDEzNDZLNG1s?= =?utf-8?B?emw2TDhRTU9MdW1UVGxsS1lxbDY4NG0ySDNiMyt5VDJkakUwc0xDSXlhOHVB?= =?utf-8?B?MFVsOUtSWmJpQ3JGLzRxbDhteDJpZWY1NUlKb1VTQmdBaFRCVlRCQUNNVEJm?= =?utf-8?B?b3FneGZtbktHeTltdjNFNkhpZkNGdyt6UGpSZ01ZM3ExbUQzL0QxbUxkclpS?= =?utf-8?B?d2t0MDZXT0VLc3RaeGJLRmJYaHZiMll4ZWNBRklYY01pQUFobmlZUmRGY1Rs?= =?utf-8?B?T05CZGFjSzZkeElOYWlvSDY3VHpNSHRCcW9RN2ZCT0U0eEVNU0tjUGJzQ2t4?= =?utf-8?B?SCtwYUk5aHhnelFHcWZIN1JsNEU5ckFvRDdHNHl3bmtldXRwcTg2RE14RmZj?= =?utf-8?B?SFk4enRMR3Rva0pjSlp1cWovSjBRUWtRWUI4dkdGSVA0eVFkTEh0T2VBOGJE?= =?utf-8?B?Y05Fc1dGSG9INDBnM00xOU5reE94YXhzbW9oWTJuMVNaWXVJODlZWHF2MmNR?= =?utf-8?B?Ynhqbjd3dlRjb0oxN28rNGN3WGhDRnAxTy8rZ2lYdUhaMFp3L0RIcU1Fckhp?= =?utf-8?B?U3IyVEdSZW41ejBldFI3VWdHODNUa2xnNXV4NUVhMVd0WXVqVXhuNGpRdmti?= =?utf-8?B?TTNkUHlSYW4ybkhteE41VjFEdXppYVJ1dEVOOExJamwwcTZ1VWdGcVJKVXQw?= =?utf-8?B?QWFFYjJKU0hETk1NdGV5R09pSTlJcUtzREFpejJWd2JvYXVvNmQzem9janVh?= =?utf-8?Q?hQpo2DDR7y4dRNJhueuQEb9AVDqN42t4N0OgmBnwakgSe?= X-MS-Exchange-AntiSpam-MessageData-1: 58a76qh7tpN9HQ== X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ffb3e063-83ac-49ec-e591-08de96431b04 X-MS-Exchange-CrossTenant-AuthSource: BL0PR12MB2353.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2026 14:20:09.4566 (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: voFzwbph7M4OmCJbaspTTX74hR20ghmWSYOQD63q8lCx5PYTR/2ZZVX+4fWx0Rf8ABQgWz9EDIPbixYW6Ralwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7961 For non-sec2 it is only required to wait for GSP falcon to halt. This is because GSP does the main work of unloading on GPUs not using sec2. Signed-off-by: Eliot Courtney --- drivers/gpu/nova-core/gsp/boot.rs | 63 +++++++++++++++++++++++------------= ---- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/= boot.rs index 1aac634c3b67..e536ad7222b2 100644 --- a/drivers/gpu/nova-core/gsp/boot.rs +++ b/drivers/gpu/nova-core/gsp/boot.rs @@ -453,37 +453,48 @@ pub(crate) fn unload( .inspect_err(|e| dev_err!(dev, "unload guest driver failed: {:= ?}", e))?; dev_dbg!(dev, "GSP shut down\n"); =20 - /* Run FWSEC-SB to reset the GSP falcon to its pre-libos state. */ + if chipset.arch().uses_sec2() { + /* Run FWSEC-SB to reset the GSP falcon to its pre-libos state= . */ =20 - let bios =3D Vbios::new(dev, bar)?; - let fwsec_sb =3D FwsecFirmware::new(dev, gsp_falcon, bar, &bios, F= wsecCommand::Sb)?; - fwsec_sb.run(dev, gsp_falcon, bar)?; - dev_dbg!(dev, "FWSEC SB completed\n"); + let bios =3D Vbios::new(dev, bar)?; + let fwsec_sb =3D FwsecFirmware::new(dev, gsp_falcon, bar, &bio= s, FwsecCommand::Sb)?; + fwsec_sb.run(dev, gsp_falcon, bar)?; + dev_dbg!(dev, "FWSEC SB completed\n"); =20 - /* Remove WPR2 region if set. */ + /* Remove WPR2 region if set. */ =20 - let wpr2_hi =3D bar.read(regs::NV_PFB_PRI_MMU_WPR2_ADDR_HI); - dev_dbg!(dev, "WPR2 HI: {:?}\n", wpr2_hi); - if wpr2_hi.is_wpr2_set() { - let booter_unloader =3D BooterFirmware::new( - dev, - BooterKind::Unloader, - chipset, - FIRMWARE_VERSION, - sec2_falcon, - bar, - )?; + let wpr2_hi =3D bar.read(regs::NV_PFB_PRI_MMU_WPR2_ADDR_HI); + dev_dbg!(dev, "WPR2 HI: {:?}\n", wpr2_hi); + if wpr2_hi.is_wpr2_set() { + let booter_unloader =3D BooterFirmware::new( + dev, + BooterKind::Unloader, + chipset, + FIRMWARE_VERSION, + sec2_falcon, + bar, + )?; =20 - dev_dbg!(dev, "Booter unloader created\n"); + dev_dbg!(dev, "Booter unloader created\n"); =20 - sec2_falcon.reset(bar)?; - sec2_falcon.load(dev, bar, &booter_unloader)?; - let _ =3D sec2_falcon.boot(bar, Some(0xff), Some(0xff))?; - dev_dbg!( - dev, - "WPR2 HI: {:?}\n", - bar.read(regs::NV_PFB_PRI_MMU_WPR2_ADDR_HI) - ); + sec2_falcon.reset(bar)?; + sec2_falcon.load(dev, bar, &booter_unloader)?; + let _ =3D sec2_falcon.boot(bar, Some(0xff), Some(0xff))?; + dev_dbg!( + dev, + "WPR2 HI: {:?}\n", + bar.read(regs::NV_PFB_PRI_MMU_WPR2_ADDR_HI) + ); + } + } else { + // GSP falcon does most of the work of resetting, so just wait= for it to finish. + read_poll_timeout( + || Ok(gsp_falcon.is_riscv_active(bar)), + |&active| !active, + Delta::from_millis(10), + Delta::from_secs(5), + ) + .inspect_err(|_| dev_err!(dev, "GSP falcon failed to halt\n"))= ?; } =20 Ok(()) --=20 2.53.0