From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 9405B2144CF; Thu, 6 Nov 2025 03:54:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401288; cv=fail; b=Zh/mFzgyoMBpP7pwlguWLC+KK5ZcquRc++N4oINzsfs3tgZ16rAtwmvIeAfeZVVldrvVh7zqAe6m8dnL4EY/l7RTciwMqxur+aspN9Bsdk1WV3B4RgkZF0RQDhT+/wKxN9UjC4qFQZf7522T/fV+0nzDm1dLdqpOAIIJROmI6as= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401288; c=relaxed/simple; bh=5NBOJbJOH8s1e+Qyef1lROixpy2NOpA6UCZhP3o/jmA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=u0/H7aock/O+DBv4Mk2HlcVUboxitUX3jdlw82nHALDUO2twy3ckd7mDjwFYv6L22LlJ5Xw+dsL+vMhrosV6DUetPEsitJbfNNSoBaNKuXJdxhmI57J4ACIV/Kqyqs/dUMxyNo5Bh2/Uy5ySzSgNo3VAPqi2WvTKnRzlh+RuTb8= 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=aYLMDg2f; arc=fail smtp.client-ip=52.101.201.44 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="aYLMDg2f" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kwsFdpm6pR34hwGlYZJffwYL19F0hqJDRCgFnCrlz0iy5ngcNZ9gJiuz+AGSHkIBKvFbCUPoouo7408cuXvsabpdzKpoJLyYA2VPd09m8yYdqIi13bIPgU5e9OetMjVMNmV1pg72bKkCCQeXnO2AO83o4+BwBVoqRk2xLncRhNuK35oPQb/XstOEfp/7VgwChx7pKsvltk5W/uLLyY7bTs5ZzsG843NcI3cr0QKOHMOnAAKaF/Zr4dZVUDdsLiid4QK+ose6VUo1Hq44EVEBNwxmOoULXPIomMSkjHtas1d3JXEzLXLqy52CxHgNyO0F1/8ZssAsSPT99cVP1llqEg== 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=bHEiB8ymmlnCfSaRrXoIsLio9Vt/E48+yOCOlfykoj0=; b=aIfh8VYRIIDKaotuiAXbOOGmcp9dv9w80x9W9fwk7D3cvVsjsK2XGUGPooMNH3EX/XbIOFCc2+8Kj4yRicAOYvVpS8HzdgYz8ZAljBTIvRHgfmyHIgcWg3htWhUZXIjPBlXsIQtfqCbdEmhSbHeLNi6cU4Mq6FY0E523mVvn8t8Mgv3/6FeaGzrwCjHwGIDZVXfzWO+LS1yoIZ3sgSHtiPu+JVTUOw+zMytV6oS56o4m0O2+Dn7P21jh+e3IYL1vpllPPleecikeSnRqYVHgMy3f3QDQqlwrWQYvY4gwnZ1DfHrbuN5mgXY5MtjGLzQVIn90Qso1nxDd42RqHyeHow== 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=bHEiB8ymmlnCfSaRrXoIsLio9Vt/E48+yOCOlfykoj0=; b=aYLMDg2ft7FiBVeUDHByZvd8bojE/9H7zg7lC9xIOFylJytTK3ZItHsNRulKC0f8Ix+sd/nctawf2OAWArDijaqpOSsUAEHJAnGTCWTjwRzXV+9x5g/dQ6y/zKTZIYsKze1A7FRmr121HLK4Dg9GnUp2cMQwuMo5c0o4Qwgntba1fT60Pxu/c5qVhHIC3JyqjyIzawCcCp6aCbJnAa+UkBMsx2R+BIJ5QNQmTqYX1XwYgMgfOUHt6W9bNjHqoTNu/irZPD5XlFlbfgk/s0/xu/C5xhw5K5qbylihS3qjENzHIYXBaNo6BCs3p3nYj03gBg1kfzRiRQQV1BP9EU/tqw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:38 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:38 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 1/6] gpu: nova-core: print FB sizes, along with ranges Date: Wed, 5 Nov 2025 19:54:30 -0800 Message-ID: <20251106035435.619949-2-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0015.namprd05.prod.outlook.com (2603:10b6:a03:254::20) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: bd198c0e-8b57-4644-ad17-08de1ce8355c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YCex8XLGvz/GhQEXQixjuEEmaeE/SohmUSwKwUvV4OSvNYNO7CjqCvNLKk2V?= =?us-ascii?Q?vtutAvuE9XS2drWdGpdKeaDvwGPQM+nVxyL/0jqUXWA3JuZeg4lnWfGRAgGS?= =?us-ascii?Q?mCuEEF7UGKh2pfZQ4R5/XBeJUvs9B/au3BajiJtOG3/FSKtGx65+bRhsFV+U?= =?us-ascii?Q?rMIvLaGvh6gDmoIrTsxAVxrBA+uq1rbYMYBsaOo8jqcr/3IIRv6Ew+Gn/TKD?= =?us-ascii?Q?gLT0slOdeNmPbUHz3+ywBHxOtvdXm4P6Q2iY+wNWEpKCtPpe4v3Lj4dQ7PGS?= =?us-ascii?Q?Y+581J7qtznAeTFRUEMbMIkul9/u8o6Oj3Lmw6iRiTe4vzP6hLS/7u1R3SR1?= =?us-ascii?Q?HNf5BxoYxakz9HYZLNMkM+tE6z/SFULtRx/OIUUFXrXmTaTqOhnrNglV+hWc?= =?us-ascii?Q?7nY+QpqaN/D8EllspkXbAnwK5beqhUOHbu4ZJryztHQxBP39gw/B6JJ2g/8r?= =?us-ascii?Q?wFjCrnRwq3U3TD7NLzoOs9TusUeNa14j45Yxu7uJkG4bx1dxYlAyxgz6QuHb?= =?us-ascii?Q?w98hxBo8RGPCBL7V/nGtTA0hI746aV8Wit6JowaUspnUBRYMHfdYthrD/FyC?= =?us-ascii?Q?VMlQd0GXdTPKsu8ZH/fBVE6wcTWOFboPmhnyiRhnRrdW4fbas5rsEMWw2UCg?= =?us-ascii?Q?Ir6IAdoeHGQDJN/Kd26viGd2wD92Pi5Hfvrd56xtQxGE0X9pKoxONSFx+60j?= =?us-ascii?Q?6JkTL+ulI4kys0VdhzfcgbAotlceTquUarFqArFtM4mx6cg7Bm8SovO/Vsw5?= =?us-ascii?Q?xVJNT87yeK1Uyn/3ewOs7K4EHaE1QV1mFfc9x6e321gwB2FjxyBufDkjrkiF?= =?us-ascii?Q?fVUkLSIfEji5sb128k34o5i7EfPHG/RkHKF+fhY0l6lAzMNUOx+buW+L50n6?= =?us-ascii?Q?fXfofNwRzUuMtbB363qEASh8b/9I8NJqNN0TVLVT6qSNFVoKFHOu5PBC/Li4?= =?us-ascii?Q?xP6I9ui83f5X+vPG3x6JSXIyJ5WRfweXH3WNdaWt9k3aAYiZASkng1zVLbRv?= =?us-ascii?Q?OvGYeWQ/V/CZHDhRDUVZxlJTYvYzQsqyUAaIrqrjx4+N5N5DMKMZEmOzbsKB?= =?us-ascii?Q?wN2gStIHWjkv0nRWgSDbOmZf7FrA/XsVvedmNIZEXYx9jJU/Odt8hQo0pCNb?= =?us-ascii?Q?krEBpiCAu/y+PukFNP0JCT6WqoHHp3ErVzjLVduo+YVfY5Ij373w37PGBx0x?= =?us-ascii?Q?U22vK92P1x5T4cslBggB7X39gL+oLbYH5uklsd2oi0iIj1imyJBOxx7fL2TF?= =?us-ascii?Q?9nq3FlGpZ5Oi/ov2IPWHLzsPcYbtzhoZarmYT8bfdHB8CFgeUyn1Qk6c6/zP?= =?us-ascii?Q?wfs61wmAdyPdS/+PHm/ILVnIvJACem/zEILkOaOUOb6t2rtUnIxTTdS96n3I?= =?us-ascii?Q?/FzMMwiJAMB0t5H1grfz6VM+j6m+WmlpNZ+e4WAddqlbTJa754W7f4XMONZg?= =?us-ascii?Q?dFxIGEbcgZySFRLl2EDI7vc1kOp+oieu?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QxGTy1A7aZ5uTqOAeU9CGl8hSxaXPbCPcSq51GEG2v8NWweI5FgjQ0LRPYkz?= =?us-ascii?Q?6cFHzx6CJzv0/5FJORTsGOjKWYVeGqDXJa4MC9adA+keRcoH6MqbGWPHnG4s?= =?us-ascii?Q?TjvAgCuG+1574PWFmtpPZJ70rnF9eee5VAIGSFbHefJLGQ09IiWa1jUvSk6m?= =?us-ascii?Q?nyz/v711RTWz1kFPKnfayQ5RJXzl6nceMoYB7jk5BU1ujC569/Ne78nFNgT7?= =?us-ascii?Q?rxQKPGcGqnUJncoLLImQI9trsLO24wccBICF0Q9iN6y8Met5ImBfcQ11CmE3?= =?us-ascii?Q?KWsEmW24M7Q1NIUicer5fbWs0kkY3uNZb/Lb0RDKPYR/lLYoOx3SGbqikpcp?= =?us-ascii?Q?wbypmoA00GNfnfIUcehAttxxqreQkZ83VLHv+dAxTI3e59ucibrVIZBq69Od?= =?us-ascii?Q?FKLn7+0TBwT4ZVWCMPw+kMG2C7AYFVbYk/F+kk5zANv6ly5/n2ugksc165s0?= =?us-ascii?Q?v5gMcSNGaRX+wu3xw5agXy7r5/l8P5UEKzAHQwC+pTbNu/sCwhDI/vcFR4OF?= =?us-ascii?Q?0x0dkOcNvjLAdUjODwKlq+n/Dt6jxb/jDeN/kc5hwFmeDYA0H3ReXVjGKE5+?= =?us-ascii?Q?wMIQ8ULvdSZiptJMfOfSMg6OPuTgQVv+QC4ZZmqohDkApioZiSzNzZWQXRCM?= =?us-ascii?Q?0TOsXuUN+Ly3M+VmcDJ0Y3hx+YMCCrawaBHkgszjH31J3c/5jG3EDvQRJNjR?= =?us-ascii?Q?XDM6FZtxMeAls5uJrnvOsSW0x8qt61jfvxrI5wrC6oidtPE1USiDtN3eN+MM?= =?us-ascii?Q?St1/O0NS8joEXAJBkZ5hyNeTk1T2wI0yebhW0YfRFPS1MXedDAmu8hrftchp?= =?us-ascii?Q?8IV6OSfXWwgMSL4KReC9ZEIcZCotFiC8rxfo1ALhu9+wWi8ec3hrGefslytx?= =?us-ascii?Q?CIZ+E5NsnEjqiOpF+A0QApcmTuuHtK+GZHCJZj6cKK34T7U+jRDxaZ0cU12t?= =?us-ascii?Q?eGiYuk/648g8EFUYEjpCdb2I6/JOFrwvJdNZReFKWTJbW9QWg8A710CHMFZq?= =?us-ascii?Q?zgGvngWTIGaGkjYfEcD3eigKOpZ6oi0ZKZ/vVJc31OwuaQoboecPfTuF+01W?= =?us-ascii?Q?FY9PSbBkJ3wDkc1Ueq0RLeFocFNTXC/AMBiywbSOVoSPnuyH4tT3f55y9ibV?= =?us-ascii?Q?TMwFX+s2rckrD7ErSajzu+aKEVqrIS/F4ZOhKYUSVJ8wKeX4ZdBMXg6glDsW?= =?us-ascii?Q?13qWT0asMjftwgeUmn2gCBSA18Jw08ySQ0/u2WZr5ex8gawzuzfGm4Yci9IZ?= =?us-ascii?Q?aZXX8STFHW9o7SzkfwmjwsXTcYcKndydA5Yg+weI61tBsufCEWrMzTpX8fvo?= =?us-ascii?Q?wBRSTlYP6gv832v5KF2hYryoSWi5W3dajan0cZcPYplRBLMZbktGn8wqqFPB?= =?us-ascii?Q?kCqzqa6dkxYBs+AYyG/avIG2lEpe/RdgyK2yA8uHvauGrkW+9JlDH0fjv4+J?= =?us-ascii?Q?vR6WQPF1fvrb0OL2hAfwDAXa3yz7BNQYAQdn5cFVE8CN/OFDorf1xFYyXzoS?= =?us-ascii?Q?nNwH8tyHXav0qzorfIwI8+qefG1ET5f8y+cId1zefpz5C20dRy0ouWtJdxVp?= =?us-ascii?Q?RQDafvfsM7Oo4X1hyrtkkwS0X18E1wiaMoZjL/k9?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd198c0e-8b57-4644-ad17-08de1ce8355c X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:38.8331 (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: rUFdiC2mqCIvTQNpoaKE2opyG9wLVL4ibl6q3U8rB1KCUN6mjooSGbF+HEVI3zyuJSR6DEkUy3UTWiI2B6FHBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" For convenience of the reader: now you can directly see the sizes of each range. It is suprising just how much this helps. Sample output: NovaCore 0000:e1:00.0: FbLayout { fb: 0x0..0x3ff800000 (16376 MB), vga_workspace: 0x3ff700000..0x3ff800000 (1 MB), frts: 0x3ff600000..0x3ff700000 (1 MB), boot: 0x3ff5fa000..0x3ff600000 (0 MB), elf: 0x3fb960000..0x3ff5f9000 (60 MB), wpr2_heap: 0x3f3900000..0x3fb900000 (128 MB), wpr2: 0x3f3800000..0x3ff700000 (191 MB), heap: 0x3f3700000..0x3f3800000 (1 MB), vf_partition_count: 0x0, rsvd_size: 0x1a00000, } Signed-off-by: John Hubbard --- drivers/gpu/nova-core/fb.rs | 33 ++++++++++++++++++++++++++++++- drivers/gpu/nova-core/gsp/boot.rs | 2 +- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs index 10406b6f2e16..004238689f26 100644 --- a/drivers/gpu/nova-core/fb.rs +++ b/drivers/gpu/nova-core/fb.rs @@ -87,7 +87,6 @@ pub(crate) fn unregister(&self, bar: &Bar0) { /// Layout of the GPU framebuffer memory. /// /// Contains ranges of GPU memory reserved for a given purpose during the = GSP boot process. -#[derive(Debug)] pub(crate) struct FbLayout { /// Range of the framebuffer. Starts at `0`. pub(crate) fb: Range, @@ -107,6 +106,38 @@ pub(crate) struct FbLayout { pub(crate) vf_partition_count: u8, } =20 +struct RangeWithSize<'a>(&'a Range); + +impl core::fmt::Debug for RangeWithSize<'_> { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + if self.0.start =3D=3D 0 && self.0.end =3D=3D 0 { + write!(f, "0x0..0x0") + } else { + let size_mb =3D (self.0.end - self.0.start) >> 20; + write!(f, "{:#x}..{:#x} ({} MB)", self.0.start, self.0.end, si= ze_mb) + } + } +} + +impl core::fmt::Debug for FbLayout { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + f.debug_struct("FbLayout") + .field("fb", &RangeWithSize(&self.fb)) + .field("vga_workspace", &RangeWithSize(&self.vga_workspace)) + .field("frts", &RangeWithSize(&self.frts)) + .field("boot", &RangeWithSize(&self.boot)) + .field("elf", &RangeWithSize(&self.elf)) + .field("wpr2_heap", &RangeWithSize(&self.wpr2_heap)) + .field("wpr2", &RangeWithSize(&self.wpr2)) + .field("heap", &RangeWithSize(&self.heap)) + .field( + "vf_partition_count", + &fmt!("{:#x}", self.vf_partition_count), + ) + .finish() + } +} + impl FbLayout { /// Computes the FB layout for `chipset`, for running the `bl` GSP boo= tloader and `gsp` GSP /// firmware. diff --git a/drivers/gpu/nova-core/gsp/boot.rs b/drivers/gpu/nova-core/gsp/= boot.rs index bd3be366526e..c27a90aa782c 100644 --- a/drivers/gpu/nova-core/gsp/boot.rs +++ b/drivers/gpu/nova-core/gsp/boot.rs @@ -141,7 +141,7 @@ pub(crate) fn boot( )?; =20 let fb_layout =3D FbLayout::new(chipset, bar, &gsp_fw)?; - dev_dbg!(dev, "{:#x?}\n", fb_layout); + dev_dbg!(dev, "{:#?}\n", fb_layout); =20 Self::run_fwsec_frts(dev, gsp_falcon, bar, &bios, &fb_layout)?; =20 --=20 2.51.2 From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 54F1F27F016; Thu, 6 Nov 2025 03:54:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401293; cv=fail; b=igJEQys6yo32P2FaUhcba1HutGWgTnVBpX+9FAIclO50xSYpBN2RJLLNBDDun2lKvbSgzdoHy9X1NPDRZgzrtcaC2HYgtKilesm5OK36PSoiC9CGkg5mN/kG/uJZ81BhSjNDw4JOikrwzt9FxsrzTpkQU/0BL8amePuziR/3fzg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401293; c=relaxed/simple; bh=lGHO+eojvIXrX9jdTc0RojV3fOSOWbySF7OivCY26es=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WawGw2cLYinElZEYF2oBCk2+geN2CxkZmH16vIJTF3hCKo1nu/0Jo2KdtiDbeW/Xj3Ce82Dg2r7nWcbbDtjtMudzQ/wX4ctXOKMePaatcW6qybApJgMiu9bc+2QxmlFVlqwdbNLIT8rl6FMZbh1v4F/zzc//P5SIubihGHixncs= 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=gvYPZjVC; arc=fail smtp.client-ip=52.101.201.44 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="gvYPZjVC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UqbMBuXBqoAv2Lg7mYbX+LCzHGeCVTWZ20jtNp7tctwsbKO2vuTyxJYKHdpgfhjq5EuY52yIkGKAe0SsQ4K0/tPf32Asr+SqfV40LhY/LNGRopS8F7f4h2WLbejFDUk7VfbXLPAWLy7dHODskSwED/M9JynoZUiHM1Oq0f+Wc3dIRANFi8kN+gs1GB2IKQD3ti9NxxlAoGQsKCpmiYEbhq3EGQ0R5aAc9viEIXRNeqCkh8zvV6+791OojYVZ8AOLsNcqWNOxY18CUITocu+zkE8AGXAkhxzsuHJ5/6iIAUbA97R9oWkO2IlOIciTimAvGbIxJISFY77rIxNpzT0zzg== 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=GWlauDYnO6N3vCQpDUFHIZ4W6oW6nBs9NIe5m4Cuyq8=; b=hyDuzXyNykAFPbB0H8caEbtAriX70u1K+vkiXH72mevHHtkjtRmO2nik9k98EAs6qYZ7mBShMHdtNsr5b2UWNKKtJFJNVFtHviOHZIiMHOc6DEzzRDKBinbmUgj64jkRI8HTihpeDGXgWXQ4+2tjkdxBbe3ie8yj7Uyl78i9hzH4yoQ5GPQWqpBQF+fJx563jPgHwIK5Duc8rzWYOc6x47wjfjECH+6+No424Fm7qG7KgOoJzcikM2OaFxSWtGfwg3+QmrGoxZ/bO9cqPZH82wjgc3CM0OWMErQhnZdOQ2o6irl4YkBi2ic/w7JCJ40PTTktTRoJR9FVN3crcIaj8A== 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=GWlauDYnO6N3vCQpDUFHIZ4W6oW6nBs9NIe5m4Cuyq8=; b=gvYPZjVCvqT8KNJqauo+fFt9xvh/J3ZgynW7c7Bphw6Uoy9dHcnqMxk0l3iV094W9ygbgOSPc5czP0M5yvH+y5n1l4nPO5AyP+5+GWBwJltsMGXQKE9QvQVW0n+tSLN/5QNQFB0TrUCF4/6OhUmrswaqQkWcNp+iQB3tWKMSZmKhsDLMkWso/5DxnVp0k5BUp826PV8x9IV92R8lnyPPQDSjTzZFvRIGDoxyV3IP+DZYY+1ngYxKA3BCsicwo92UUfbu1yDavlO+a7junA0Pb2Yt3TyPVWJnpgoDG9iv9fblFn2Sfm8gvdbGA5GpGRLR6qEGttEBozlpaYRrOht/bw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:39 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:39 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 2/6] gpu: nova-core: Hopper: basic GPU identification Date: Wed, 5 Nov 2025 19:54:31 -0800 Message-ID: <20251106035435.619949-3-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0020.namprd13.prod.outlook.com (2603:10b6:a03:2c0::25) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: e1568903-2bd3-484a-1e6c-08de1ce835d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iCw79bPPdl3AJiZsVFqqAGEGuPcPd4ISVnCmbCu2w71aQwbqMqazR2v0WZxg?= =?us-ascii?Q?IaPISQErCoCJQN+C8QEYBeqevlAemRaqX2BTdpiYjgnP7g0YQ21aXmgR2YLs?= =?us-ascii?Q?AHIyoweqlmbkxl+F4zCtfm3einbjE1+9FghfCjNiKZcjs2Ty9bPSUhNj4JpV?= =?us-ascii?Q?s45uJVc/8274fnLu6M1m3KnIcy71cjqZecmmc+HaRLRVyhRErB6vdgulrWsi?= =?us-ascii?Q?x3ewIh0XmTt1Txw7tZFnV5I5uhGscHVEUYwQ+Fo18oMoGKM48Faiep4qkoz1?= =?us-ascii?Q?3Ddt0T7t5MAUdlIFhYczyORM6wVSGbFvKB5aeHFGHYzGXoVJjH6w+aqBPiwt?= =?us-ascii?Q?2He/1lslDxss0J683iPi/Om7rD4u6nw13QIpCaCafmtlD8oKE2Po/JlBxgjT?= =?us-ascii?Q?3qNYUJnA7KkpuYPonqHAatFfM3CRSlAEscbnmrlUNuhkmCCGeJwSrIwbshv7?= =?us-ascii?Q?lAVUi5Lh0SAWdMnJ/aWrA3885cbv3EvW1L/vukO8EJ3u3ARWv+/iqeUECNTA?= =?us-ascii?Q?gnI8pVeitCPzbpDwkaarSrx4dfneoBFmp4tu7WItUcKODrNtKZwer1Wn5Ttu?= =?us-ascii?Q?toalvdbp1wD38c9R9MIRfsqJBz+SuieeM7K+3hfKJzsCRVCzGMn3yGBGvSDz?= =?us-ascii?Q?BVP/0PTJp7b9zQ1ZjHPeByd+t0JemWXxDwyew14nGE5OMzb/ri0G5BBGsG8P?= =?us-ascii?Q?pYkDhKx5UeerFJPNZGNXs+sgRSjuBYYXeA09m1ARd/U5PepxTwBfrb7cNssn?= =?us-ascii?Q?AWqWCusQaABIlD1J+QDK6JI2qD1eG4yeiw4Yr5cruMbjDZtYQLUtBhKO4jbB?= =?us-ascii?Q?mxkXHOf80S7fMP8wk97eBFV86sHcnfkhY8k/NyyJQTkw5BOCVXeQL1bg+FN/?= =?us-ascii?Q?2N6F9q22d/0O6bl7oAZYoPG8TGb3WJXRAlNzxyJdUx1e46zl/6hAVwR9mNg+?= =?us-ascii?Q?lzzxVEvsuKmHw++VOkt6T9nwiBtLyJN9epjErDmf5n23m7py1YhT+7WnLV/1?= =?us-ascii?Q?zGyToh5Lb//TM+q0q/9pbD+BXQb8iAJqL5zWogyhSU8MZKrt2bTM7nb1Xz/e?= =?us-ascii?Q?AMhk6oKQ8nZkD13agd/bninzqbeLDBAfEd+qn/vaAjN+K80de/iuPiKWSaJi?= =?us-ascii?Q?IjWzwIcDmerhzZM7NOE85/9O9/e/Okv3xK9bu4H1LDD4NvSydJzjxMwxktBu?= =?us-ascii?Q?5YvpgOS6bQVOZF2tqwBTysuEbZyxz2g/ZYxes302/ZP1WfDCCSnURAroGiLb?= =?us-ascii?Q?h8lcnA3ZyRTgMahfRvHwGtNSXIUheod+dhaUolTuuULyMYFfyr5+2tycDF8S?= =?us-ascii?Q?riciFRRWqHidXBKiXmkhv8q8oUwo8IrdHqOPXguEb6sDaEShpl43WiBYNdrZ?= =?us-ascii?Q?gkC5pgY0xVv5QqgVysqLIST5SuMWQ+Oh36Y8J9IbYdE9pNU0Yhhe4lO3vs4+?= =?us-ascii?Q?eCuanh7PIUes2k4Cfki+Wd+Md9H/LdHZ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ScQtgT+6VHtIUS5L65UcVc+wFAIgYUzQk9qv3vlRb6RVqWUKC1AJik7S15JL?= =?us-ascii?Q?cTm1bx8HOUhoBK2hfM5EIRQZ045tL0XaBe3cfZnUKwvSoI1ioBvjaV+o/GfG?= =?us-ascii?Q?M3vHMAxGeAPzUYw8gbtSRFAOIgZSOnBANAPsEdKeIFEX5WF+DpS3qlYgMIZT?= =?us-ascii?Q?KW6KE2BOI4dJTFtN+AWttLyMnIa4bhueGAb+ecc7MhMr/0pq2vJANarmJiML?= =?us-ascii?Q?ZTc8+HzsXSAquiyBEmJpCLQznn2HxI8nztXIdROrgM0jqDdlIV+62pfdmvQk?= =?us-ascii?Q?7a0VtUMj2004fu/3Fo9AeYKh95qEh7wuMAH+faNMu/KZIziRUSJt/xZsMoI3?= =?us-ascii?Q?4pW2f2meh7fayn4D54gQuBal+yRzxUlz2eJK/LacoDXsugZuhmt67q3pvLIn?= =?us-ascii?Q?0WmMur1ihyWtKglH4LR4YiWklFeKkzpOTloOgxJzS+JEQqHmq67Ehi9CURjE?= =?us-ascii?Q?3VZZV87VRgqrCFEDPtQ/v3xLzol/iJ6OT81IlmVy4M6pmm7fvaoo6yXD/BLY?= =?us-ascii?Q?kC5wiE4ymZR11PoM/UuRfD35iomQGF1xlvBadcmgiGRpqQJ9c0AxPcTUZGKw?= =?us-ascii?Q?OiUb9sONlEFIlnUA3oZxDQzGWAOiCcqVqnBgFqovxSLfr9CM6P3Ge6juqgZu?= =?us-ascii?Q?bY1JYHHvurhr4DoKKYXo8bkzqJgQ11AKyRbltpLpwFAIgrRajmg5LzE+VEbE?= =?us-ascii?Q?zjWXmQXCJ8O/TjkCPNgfTDd3DvA0hcitT9X0oKbVHks5iLWYUWFJa2sHdpHC?= =?us-ascii?Q?8/Yu8z/Z+ZCiaknHY1Ps+dJ/dvIYa6jcRc/QhEm8D4zGkLtPso02HdW++fwr?= =?us-ascii?Q?wqhdkSewp+DqXf61mUxnKsszd8B7ytc7Ssctvia7iMHpmj0tUQT+yNAzRirc?= =?us-ascii?Q?Q8nFRMBbCV2avz/ZjM+SlclGE3VttdKWgmP4t9CNTD+aFWGo7sZD13TpX7I7?= =?us-ascii?Q?c1YRYNWdCUmWSFfSxFqj6cKDMEowziZHRLf+2GLtrOz36fYa1cndYMwZmfPe?= =?us-ascii?Q?ycprfmKYllTLVykgG9Vw5tt9CPNEQMrtSpcn2Mf33k44KdH281Tg+YlL9llL?= =?us-ascii?Q?fqPJw9CQozRgaugmrPcan4Ul74CMV8JL9eXE5rdC5Ga8apui3H1JloA/qt+M?= =?us-ascii?Q?t9mgWOO5w3xz0FvKAa9aSRFjasi81/j/2tWH3PXB30GAtcUuBwbyp/Wfp3eZ?= =?us-ascii?Q?3f78g30lwcpgKBAEZuc+t5Nm7750+swM6c47VXHSmBCO2Y+kStn6cOo5Fs8V?= =?us-ascii?Q?fafYdpIyx3SZmdUYRJKIBjkqB0jrVReaYEC8uT/2Kpfs00Zim2oj7DLLk58o?= =?us-ascii?Q?1QmTZlchxeHHu/NebeCn4aRGCMU8fjGuGXrclatm1ifcA7/DFgIqKMJNEBAS?= =?us-ascii?Q?Zu2bKyMXSBNaD3/fsV25xVjZFIurG5jGYaVKy74F0MXWxju5RCpVPNMdQ0j8?= =?us-ascii?Q?McAeeIniXm1kg1Is1MmURy2Hxx+L4aQX6Zveqrb1pG/qDf01i2qV90Ya3xET?= =?us-ascii?Q?6L3T2Bb2c9ReCC71pL0/x8Mwmtt933oDRAPWEHj2/RCQd8jTh/L6+ZgJjxew?= =?us-ascii?Q?hf4Uw1kVfpjhsqR9f4XxjICZqu4Mvwq7+3EVAKEW?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1568903-2bd3-484a-1e6c-08de1ce835d5 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:39.5528 (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: aAMR2+yhHFIY5btVuLyzo755omKSpDWrOkdayIVbfTUMbfcWkgxCfHtbRIZ+5u1/9Bg4R+xS4itq6oNuizlANg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" GH100 identification, including the ELF .fwsignature_gh10x. Signed-off-by: John Hubbard --- drivers/gpu/nova-core/falcon/hal.rs | 2 +- drivers/gpu/nova-core/fb/hal.rs | 2 +- drivers/gpu/nova-core/firmware/gsp.rs | 1 + drivers/gpu/nova-core/gpu.rs | 5 +++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nova-core/falcon/hal.rs b/drivers/gpu/nova-core/fa= lcon/hal.rs index c6c71db1bb70..2e1fcd7ac813 100644 --- a/drivers/gpu/nova-core/falcon/hal.rs +++ b/drivers/gpu/nova-core/falcon/hal.rs @@ -44,7 +44,7 @@ pub(super) fn falcon_hal( use Chipset::*; =20 let hal =3D match chipset { - GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD= 106 | AD107 =3D> { + GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 =3D> { KBox::new(ga102::Ga102::::new(), GFP_KERNEL)? as KBox> } _ =3D> return Err(ENOTSUPP), diff --git a/drivers/gpu/nova-core/fb/hal.rs b/drivers/gpu/nova-core/fb/hal= .rs index 2f914948bb9a..c8e86193317d 100644 --- a/drivers/gpu/nova-core/fb/hal.rs +++ b/drivers/gpu/nova-core/fb/hal.rs @@ -32,7 +32,7 @@ pub(super) fn fb_hal(chipset: Chipset) -> &'static dyn Fb= Hal { match chipset { TU102 | TU104 | TU106 | TU117 | TU116 =3D> tu102::TU102_HAL, GA100 =3D> ga100::GA100_HAL, - GA102 | GA103 | GA104 | GA106 | GA107 | AD102 | AD103 | AD104 | AD= 106 | AD107 =3D> { + GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 =3D> { ga102::GA102_HAL } } diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/= firmware/gsp.rs index e3d76a300851..f824863ad551 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -151,6 +151,7 @@ pub(crate) fn new<'a, 'b>( =20 let sigs_section =3D match chipset.arch() { Architecture::Ampere =3D> ".fwsignature_ga10x", + Architecture::Hopper =3D> ".fwsignature_gh10x", Architecture::Ada =3D> ".fwsignature_ad10x", _ =3D> return Err(ENOTSUPP), }; diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 9025bab1726b..678577cd8c9c 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -70,6 +70,8 @@ fn try_from(value: u32) -> Result { GA104 =3D 0x174, GA106 =3D 0x176, GA107 =3D 0x177, + // Hopper + GH100 =3D 0x180, // Ada AD102 =3D 0x192, AD103 =3D 0x193, @@ -87,6 +89,7 @@ pub(crate) fn arch(&self) -> Architecture { Self::GA100 | Self::GA102 | Self::GA103 | Self::GA104 | Self::= GA106 | Self::GA107 =3D> { Architecture::Ampere } + Self::GH100 =3D> Architecture::Hopper, Self::AD102 | Self::AD103 | Self::AD104 | Self::AD106 | Self::= AD107 =3D> { Architecture::Ada } @@ -115,6 +118,7 @@ pub(crate) enum Architecture { #[default] Turing =3D 0x16, Ampere =3D 0x17, + Hopper =3D 0x18, Ada =3D 0x19, } =20 @@ -125,6 +129,7 @@ fn try_from(value: u8) -> Result { match value { 0x16 =3D> Ok(Self::Turing), 0x17 =3D> Ok(Self::Ampere), + 0x18 =3D> Ok(Self::Hopper), 0x19 =3D> Ok(Self::Ada), _ =3D> Err(ENODEV), } --=20 2.51.2 From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 7CE8F2C15B4; Thu, 6 Nov 2025 03:54:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401298; cv=fail; b=bt2DUArgiQYli4PkVzodxA7l3lVFJjbXwxuNTQrHouQYzRB++707mXbmpwjppbrNdoBDPoxefRLgNat8rlVAWwh6GKNbMKmcbqk2HSvW2KCQgYGk7Xak2t2pj9h48GUzWqxUK+qpi+F4cMCqyOdsWayOaaNP/Vts3p/lilTT8ew= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401298; c=relaxed/simple; bh=DtEI2QKKCN9ZXYqvVyvinDc8HTnDHTlNEhoSRCBePXg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rCDMTiRZRs7dRhFHKU57FALaoQQ6EjemXfNN7qIDpO2CHUZiO/b193GKmk+uHyiKa1t5cr6MgmCAD8r+RKDCLe+5lKVYAAhUPYRfPJSQWCC+62sTukWqgcs0yNjWrodhmTOUKSYdqlqthpSNR+lBQpuvj/xXLyLejNeik0+ZeNg= 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=qPvJphnh; arc=fail smtp.client-ip=52.101.201.44 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="qPvJphnh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w1EtfKFtwLRGNXWOK572Xf/vEneChwrTcXaPckouH7cgytEnawTtWJPaHjjI1VKI0lZnCQNcWDYi0QuIaM4bOCfQqXl1gkv36xHWvG9Ao/7eAiSU2vkE0UaKwFX/ZOPmRI21J/RpX87XbdcnzdHBbmpC9jg/dFgKoBCqM1KzoOoy7u5S9PayGRYXCgiD1LqZtORLqzFU7qvdXGIuV/oV7nXpcJkoOvUezRPaVV34lTuvfPPr8wwIAeCbXWUZfBx8JKjrBz7WO0ufdGkTZQlAZ4SYpWde9phqyZ5XIfsruZInZo0pq6HMB+IxAdkV59/6Frf0g2zqDgmFbgy7jdUAaQ== 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=P5f5m0zUYzX3hdtKZCWOujpyoUTeh9JIE9gODNEPFYc=; b=RKq7khdjsup1YdDEXdmZDRjEAWy4njU2kGY1SaesWJWc6Pd163YWNk1ooTW2yF75vo++zVSmjoU7ZwuIDWC1cbWL5GkXSIImfa/XdQXuf0XezOVhMgRurFBI3mtdwFHdg1bUDO9WJdspu/gPgdv7dT4zXNhysRKU/17Z0PvEjpZrdN1iuUrsoq7nOfI5kjEuueoEgKS5m3l+lnAPVj0ut6y7Eh6mexx8JAJiOWkUhGPE7HdDZCphsnr4vjdJwEjmsW8ByXOGEd4hzdegnPjwx2UF4f3bZCPoQBPramLxbW5dJqgm7no/dSrofrpb+GEZde6FN3iDuiDkQ7xTHji2EQ== 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=P5f5m0zUYzX3hdtKZCWOujpyoUTeh9JIE9gODNEPFYc=; b=qPvJphnhnKAgBxwxothaxU/JS2Dn/MZNm/14xhpN1eq8BPx33b5DcfuqE8uxqYgKZQxTjARnVTdQ1ae0qDnsHh3jq9LsgqhwjYaAA0qPwJRe0TDTWgXghr/DEhF3eDEFCJyyE4YOflox0b8qo2403eejJcYCnZNx++0hymZ6hNsV/dqmh2A6CIEbxxyh2FJHBd+EkCQIYDadtrfU/TeX/51YUqBXgMQc+r1Rm1a0//it73GhZOo66/Y0eM9ArWmDUZppJNGB89dkTuE2LH8GiBGM3w3NOOw35RaKY3IxmwQnYBM258qRKZ+vzwJVU3IQTgoKQ18afeNhc9aCytN/QQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:40 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:40 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 3/6] gpu: nova-core: Blackwell: basic GPU identification Date: Wed, 5 Nov 2025 19:54:32 -0800 Message-ID: <20251106035435.619949-4-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0028.namprd05.prod.outlook.com (2603:10b6:a03:254::33) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: 8580b952-ecf2-4962-6897-08de1ce83656 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tJ0fas0Jskz2+NeSH+DZQM8hdHGgw/nkiyxK4LF6yTxDZ7rMtY86H3kPyEPX?= =?us-ascii?Q?ZPWVRY+du9LowWUcjkFs7LIepbPTXPk/vZ717/3QQOb50+JH1YIBhKISR/lX?= =?us-ascii?Q?7lFjPrgCHzJWUlwzUCAKYY6U1sKFzr65mQu7rNXxNyGj0XqKCMR59seN8wdK?= =?us-ascii?Q?F/OZjiEaC9gOIPMiQUKfZW5iupgZgNbwwkkoVeIYL26a8wpLtCpHrhR/BYaM?= =?us-ascii?Q?OgB1vetndpWcTitCxh8sKiDIEM8viQ75+wjGzzr1aiIacFkW3yBYnoKAEQtD?= =?us-ascii?Q?25iVDJyPwUbNr3DgpUO0TTU8bRVCjmxjojcJPZgdxp/N644IwFKeRpP8AaZI?= =?us-ascii?Q?m+Jz793k2B/Lwo4SfPljGnHxz+Gy/kfZkJEDR56JRlNkomircaLEN8Ms1Fkb?= =?us-ascii?Q?YLynZsdrK7fOHM3WWkgC9cPksf+exIKhxugGnjgBQgjLvsnCgEDNYpyopZGC?= =?us-ascii?Q?zrxpPe9Phr0s5Y4UeLaegC4GKQes5AK0aLb0XieYQ5Qfi/1V017LTBZR+XDJ?= =?us-ascii?Q?v4/LEk46+qJmb1ux3DbTmsmcw09czQC+XNySIXd63mE74y6bVxOXQofqbZCN?= =?us-ascii?Q?M8J6i++5QD8UpIkoX6iSNBMFbE4U5MKK7d+4mKmkeTv9SubXeweBc/GMzhpZ?= =?us-ascii?Q?0YKKc9QRW73iHBNbdsawzBuwykG2VVnL2kO03NEZ2Wjd6pyj66v+O19tDghN?= =?us-ascii?Q?2ew7sT9oEVwrKj5kMbiyHPYfZhuyPzExQ5ijayNlUhWVnOdsJpnjIY36OS62?= =?us-ascii?Q?VUeupsM4xM0Sz+I9T0ZBv3R3i5ME7mXPeD47LH6kBIJIpzaFX0aj3aoQppUf?= =?us-ascii?Q?TfqubZBLWdM2wEG6V/hLaYi/8FSM+WpsoWi3z+1aE43e4eY+mNFW9Y8k07GY?= =?us-ascii?Q?WEbWy8aQ3szGJYJ1Av9v01+9zk0lF0X7fSdShsa0gtl4MKtWAM6+ErMiCjO+?= =?us-ascii?Q?+YoXSYwKccFcOWGhHSZmiS/QJLTBZ6NP0/RbQPuRx9inVvHLonkQ+ra0GeOE?= =?us-ascii?Q?fI3X+zwomGzk6G1PJtRDVoZgaB8V3iFIGtkZWHvo9xja4fh/3G1q+DQXZMm/?= =?us-ascii?Q?xgIWbYtzD+wGu946J9j+mRdbGOTVD7sbxpHCogzwRrLMyQ9Q2xU5Hfd7N9ed?= =?us-ascii?Q?jOR4Kv5ML6dZbE0ZkrQZv9Atnc5IvUO5ELfZFd8q/845JMVRUGUDxPwQSquQ?= =?us-ascii?Q?FaF0mEqtjTiZXrMTdbDJYSm6JKpU5SPEtTcjR+fOSMA9z06Nxcaqa/HRKzCq?= =?us-ascii?Q?reulRcjHKxQaKrliQRchs0/eVQb1a/M5/Ny3JlvfgTspzunijgdRKPjJypXC?= =?us-ascii?Q?pxc4fWwYgQ/l1QlW/yjo4LXwLyQx6xyMIy2Icy1MSiFeMtHA6vwQ4+Yxlt3f?= =?us-ascii?Q?6XGKEsEOSBHhcTEMmGzdjHsndlPKnmoinjn5Vms95L4F0aHjhRiHm7XMaKQD?= =?us-ascii?Q?/y5O4DJpTuDoGDwvnESE6Y/b8ej+HIB1?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+RY/K1wdOfMY9LqcEjgO1yXIlCE6kYcrPenKjL4TkNl2VcwaCt6xgfyPS3ce?= =?us-ascii?Q?eWyFCqtMm1o3xyS6VvsEks0r3nJl3CapJwd0o18iAdL6kEWhMINaqtUH0ra8?= =?us-ascii?Q?A/JgY2vvpdyI6ITE8i2lEgeh745uBy1veV9YXAJy58L6VZtewzKsoCz/IbN6?= =?us-ascii?Q?Hi2x+nw/leRihhvZjIjzrnplFg2g8zBFmLf76W4rVMoohT/FwtybPx7wMJv8?= =?us-ascii?Q?u8rh/F7Hdv/Q3VZdNlDW/rFfT4joHQ6kHGobDOu/1wZ8CVBNRCMzes+K9+wY?= =?us-ascii?Q?XNOAwJ31UPxiDaemqylrheJ3fJa6fpn1AlZ0CUo5FD8tWRub23s2jxq0Q4Ke?= =?us-ascii?Q?zsTeRPDYKi3SjbqxoM205FIMn03lRNGydyJSn4aRn7/9NSkDVpG9badtjf91?= =?us-ascii?Q?rIE+awa0kh6TfIBtoCpmMSQR/8NWbhXAzjmCvPsIIYfbELgQ8fdWngab0oFL?= =?us-ascii?Q?S5zhPNnlDnhZHzefWHJlesvxAwXEAFi8qeGvyBfONJjsiByZpGd5tG/UVdBq?= =?us-ascii?Q?mbaamtaKDB8QdPQsfsSoiIxRFMvQZTrGW/yqsanGpzr/2IXlUQcPn9n29Xn3?= =?us-ascii?Q?FSMVYb1hY431s4KNErjIiqeLkLJ8tzdiZ3ycrgOdJMh+7e1q8DNZruWcWeVg?= =?us-ascii?Q?Tmbcog5+g/BEAin+Qd/oKMWbRY3+Vop66NjeZmTr6lO5dQ2sCge05KKDFBZj?= =?us-ascii?Q?NJ5chdETW1vLukKb24EYdYuVFEP8U4cnzfvz7tc8c8hZbgNePMzF9gvU7Vza?= =?us-ascii?Q?HHIkxf8A1fie6SaI9MyuJ+OpVoY268mvn/FXrWed3IfE/sN80qznYvMJ3667?= =?us-ascii?Q?Kq3NIjaJ8UDTZF4feMzReZXwxeeyziCAWIpqeaYOwKhvSPUAp3cxE/VC3LGO?= =?us-ascii?Q?k9rPNevAnb7JFUw6OW1amvtjviabKjoez4BjA+Gntt3Sl8zsyAcOCicvn69X?= =?us-ascii?Q?XEhej6wp8EhmGj7D4FjJN/j4JBcRqSH5OOkuMv5DvRdWzwTnhQ0+VzQCON3I?= =?us-ascii?Q?2XseYWGkUWylCEle82waZ5VrZwKuD8nbdfnW8N4qGwWu5wU/faf0sUEX3D83?= =?us-ascii?Q?4zft4yKl7efRefrwfWzciao7kKu7ABSqvgpJeYWWtQV7QMtJrfdZiQzMa9nR?= =?us-ascii?Q?N2F1Bl796LPOMzrPpwWlt4NaCCBGtULZaeBRE3Jksxksi6u7P96Tdfm/oOPR?= =?us-ascii?Q?zDjoXSlMqXyAtAcB+YPjqJ/UAnTQ6XUVof0WezgvuH1p2C8l5+9R6LqCHLUC?= =?us-ascii?Q?ZumYtD4OQyOGfIM1auEN8bTuK0Wa3b0r3hg8IhRWC8qw78FPu3odJwgYBwej?= =?us-ascii?Q?49WX3/StG8ew/R8eYiIlcnE0wDeMWs3RxTXertd/vzep1n0CrAHaWfMBZZJv?= =?us-ascii?Q?xo4/bZmfw53xg5DUIT5wUGj1TcWnt5GYLmXVPcmZlgIYpAmwAUwfFUn1mpK8?= =?us-ascii?Q?raAViJFD8pZeTLazA4FxowboohmZyvoMrnV2h+RT25fuOuXkOVA7UfaBq23u?= =?us-ascii?Q?sJgOtVtE2JAJNUdI4dFvY9/PWsCHxQ5Ql1iZkkvErb6fw9eAgio04srW8kWs?= =?us-ascii?Q?XIC22xtjSvHs1eEyoY1mCLMfjZ9jdrHX/X6R+6RC?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8580b952-ecf2-4962-6897-08de1ce83656 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:40.3905 (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: 3xmUpve40MjZ3YkR4Q3aca7yYXeTyR3AWw8EPecl1GOLyduh8eFh01JjfoqNABzVB7BQnAg+56tZyawz2WG/DA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" Blackwell GPU identification, including ELF .fwsignature_* items. Signed-off-by: John Hubbard --- drivers/gpu/nova-core/falcon/hal.rs | 3 ++- drivers/gpu/nova-core/fb/hal.rs | 5 ++--- drivers/gpu/nova-core/firmware/gsp.rs | 16 ++++++++++++++++ drivers/gpu/nova-core/gpu.rs | 17 +++++++++++++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/nova-core/falcon/hal.rs b/drivers/gpu/nova-core/fa= lcon/hal.rs index 2e1fcd7ac813..7ba8ba856c72 100644 --- a/drivers/gpu/nova-core/falcon/hal.rs +++ b/drivers/gpu/nova-core/falcon/hal.rs @@ -44,7 +44,8 @@ pub(super) fn falcon_hal( use Chipset::*; =20 let hal =3D match chipset { - GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 =3D> { + GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 + | GB100 | GB102 | GB202 | GB203 | GB205 | GB206 | GB207 =3D> { KBox::new(ga102::Ga102::::new(), GFP_KERNEL)? as KBox> } _ =3D> return Err(ENOTSUPP), diff --git a/drivers/gpu/nova-core/fb/hal.rs b/drivers/gpu/nova-core/fb/hal= .rs index c8e86193317d..30fde2487d8b 100644 --- a/drivers/gpu/nova-core/fb/hal.rs +++ b/drivers/gpu/nova-core/fb/hal.rs @@ -32,8 +32,7 @@ pub(super) fn fb_hal(chipset: Chipset) -> &'static dyn Fb= Hal { match chipset { TU102 | TU104 | TU106 | TU117 | TU116 =3D> tu102::TU102_HAL, GA100 =3D> ga100::GA100_HAL, - GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 =3D> { - ga102::GA102_HAL - } + GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 + | GB100 | GB102 | GB202 | GB203 | GB205 | GB206 | GB207 =3D> ga102= ::GA102_HAL, } } diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/= firmware/gsp.rs index f824863ad551..ed2dea2cd144 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -153,6 +153,22 @@ pub(crate) fn new<'a, 'b>( Architecture::Ampere =3D> ".fwsignature_ga10x", Architecture::Hopper =3D> ".fwsignature_gh10x", Architecture::Ada =3D> ".fwsignature_ad10x", + Architecture::Blackwell =3D> { + // Distinguish between GB10x and GB20x series + match chipset { + // GB10x series: GB100, GB102 + Chipset::GB100 | Chipset::GB102 =3D> ".fwsignature_gb1= 0x", + // GB20x series: GB202, GB203, GB205, GB206, GB207 + Chipset::GB202 + | Chipset::GB203 + | Chipset::GB205 + | Chipset::GB206 + | Chipset::GB207 =3D> ".fwsignature_gb20x", + // Unsupported Blackwell chips + _ =3D> return Err(ENOTSUPP), + } + } + _ =3D> return Err(ENOTSUPP), }; let signatures =3D elf::elf64_section(fw.data(), sigs_section) diff --git a/drivers/gpu/nova-core/gpu.rs b/drivers/gpu/nova-core/gpu.rs index 678577cd8c9c..024bd4d6e092 100644 --- a/drivers/gpu/nova-core/gpu.rs +++ b/drivers/gpu/nova-core/gpu.rs @@ -78,6 +78,14 @@ fn try_from(value: u32) -> Result { AD104 =3D 0x194, AD106 =3D 0x196, AD107 =3D 0x197, + // Blackwell + GB100 =3D 0x1a0, + GB102 =3D 0x1a2, + GB202 =3D 0x1b2, + GB203 =3D 0x1b3, + GB205 =3D 0x1b5, + GB206 =3D 0x1b6, + GB207 =3D 0x1b7, }); =20 impl Chipset { @@ -93,6 +101,13 @@ pub(crate) fn arch(&self) -> Architecture { Self::AD102 | Self::AD103 | Self::AD104 | Self::AD106 | Self::= AD107 =3D> { Architecture::Ada } + Self::GB100 + | Self::GB102 + | Self::GB202 + | Self::GB203 + | Self::GB205 + | Self::GB206 + | Self::GB207 =3D> Architecture::Blackwell, } } } @@ -120,6 +135,7 @@ pub(crate) enum Architecture { Ampere =3D 0x17, Hopper =3D 0x18, Ada =3D 0x19, + Blackwell =3D 0x1b, } =20 impl TryFrom for Architecture { @@ -131,6 +147,7 @@ fn try_from(value: u8) -> Result { 0x17 =3D> Ok(Self::Ampere), 0x18 =3D> Ok(Self::Hopper), 0x19 =3D> Ok(Self::Ada), + 0x1b =3D> Ok(Self::Blackwell), _ =3D> Err(ENODEV), } } --=20 2.51.2 From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 A84BC2C375A; Thu, 6 Nov 2025 03:54:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401300; cv=fail; b=kj09E8MTlvDaMexbrP9uYz2ePEkl4nwk1t9CJ1f3LjumelxPJqbCDtEUxwnVbvuK6qhW7InX4fIsIy7/QF/aYkNZFfZU7Lvwpni7Jjt4dV8ZneI7/oXhn6Cp792NTmWeXv+Hz0qHfRDRwvBv20WLHrDOwnWUrdIFgkRgK0ttjv0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401300; c=relaxed/simple; bh=wO/TCq8ZxR9Gab4mEA/PWBRcD61T7NwW5l31rSTdzLk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BvuhvvZyPr6+rH0OXMx3GGiiEx2WQo2h9aabJD+mjww/ZplOU+ZCRNelt1nPM5aX2ICvQg76ZusGOH8QQ3FgOjItMx/IYlL7KAUlTwBi5DCuwU6r/SzBafjdpbKVgJRK+k1g9gj6nMTcf3/SUJuP7k9WLGU+St4RbVPyDuFo8TU= 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=XB+ZY3uu; arc=fail smtp.client-ip=52.101.201.44 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="XB+ZY3uu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q11u332gj0/CouJHynhSqLeKSt6p50Kgv9PPE6eJEmfzFdudZQM/JkZgfIQkotXcKEflhd5+sN7vVqCbp/iCsK8Qg53+KDvyHxGNXJcpJO/NwkBsDyP8zoERKpbqVmBzcqp5+rpOhGV+YzwYL03dkPRErOsVHX65lzWqQ3xuxeQ/xunWX2R5RuCQGdNUSxZ66cEGe2ylKsNAKwpjZISrOELa9KQrRbAvTcKhd87EU8JwDMoDfs+d9ZSQM3iUENGlbN03LNVpKWft3bin3/MjFcEQjyE21Uyw7mkPk2spHcUAsYlqFzW8d5lEO0qwCOpAyWXXz4aTTxzge5uWSPRzBQ== 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=vJrroQgpEWv4+0Nq0RLYZ7dPxcX/hAutwVZJaqx3E7U=; b=RwBNQlsCzH7yMVbo53miUFN5pnq3c9tTHYirHa6J+HGHbhbS84mMc61jUnZwoF4H1mhgelt/vvtc/ZO3JaAV8QYUzbRN99KKZrO0pOIM1P9Jlsj/ytfzFNtkMKycWMY+vezRC7VutsOiDssimIWAe9EC43ad09CZ27CvY7A7FHkmJQRkmFme2ItMsIp3Fu3gvgx0OUspFArB70qwZP+HUfuAr2XlS5IpGOkTY4BdkogDkzr5GD1ox0p6I45oc2Ek7rEkiDUIVLxSNq9hOJE0m4qlpMGC1NOPb0W2MXYLR00+yko/3bXGEqYcOYg4al8z3YG/JzQCIlnPrBjEcEb93g== 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=vJrroQgpEWv4+0Nq0RLYZ7dPxcX/hAutwVZJaqx3E7U=; b=XB+ZY3uueM2OtqRDveBe8a+r6xBdl4DCJDQdRZSYI2DOlsFwMxnx8l9Bxz7vwAaEd6xiSV67a62gUzYBYmLifdd42D4bNNG5XjGoCR9o7wUVdS2+v7Nx2NVQpIL5LZoatDKiTLICYLxJY40xHrX43vc3Etyec5SKA4gWI7Kf0RMZzy0BkXSn16j96/gVFMsjO+vo5BfpTZM5u8r9941tF34wL6lDgfoNm7p7e8lw8vy/eMXkRFeglbRPS73EKLMWIkhbVn9CASLs8Q4EKuWtyxD3qmA6aFuame8YwWZdUIzMGe3W+KorBlz75k7oSLovCVfmml5qNxPvCscKEY5vPQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:41 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:41 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 4/6] gpu: nova-core: factor .fwsignature* selection into a new get_gsp_sigs_section() Date: Wed, 5 Nov 2025 19:54:33 -0800 Message-ID: <20251106035435.619949-5-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR03CA0022.namprd03.prod.outlook.com (2603:10b6:a02:a8::35) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: 4963eb13-1ad1-4f7e-e3f0-08de1ce836b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?OZVCuxl8e5rjfUF68LBU56MAFHp8fEtgowPFM1rkxo02LzhNn7UyRcnLfZfn?= =?us-ascii?Q?wWP5mDa/8uYB/a0rpAVnzZfmTXiicW0isAC8G3W8PJkUVyhqS3g3RLfDQCkH?= =?us-ascii?Q?3mdFaDY4OnM5R/WOMvGP2OSwJ4N0N708Cr6ALaGD7yBqH75YG5Qsdo9feAqR?= =?us-ascii?Q?dL81m5F+fKCZ5HnqsfRn4TmKQUfbbGftmf/LgRYnYzRd5ZltPWRslgfsDJYq?= =?us-ascii?Q?ZfS6H7Sq5v6A/eLWli/me45gSl968c8TBdl39WHSU03kskvk6pjETzcAPc5a?= =?us-ascii?Q?oJkWgQ7AD/zrrfjvyXFvWvoHVMZ/mbhXkk70trs0/VByLr6zq4qRRVHV8DK+?= =?us-ascii?Q?rCnwzcKlMbTCnFT7Ncy2Mdzo314yzi+6+0LscQBp/KUSRn3mCM1ude899cGM?= =?us-ascii?Q?xN7TKUEEOrV6LG5bNhy3OjXN8j88NToPvhombvdAfBQ1sfuFyR1+QGhJoa0c?= =?us-ascii?Q?3LdZAGwoG4TkzaK5RmipyEJHEHx/uOvAaKsOnu9BtbBPZtOUXzYA8indnXQQ?= =?us-ascii?Q?T5cstXdEp14zclu/zNZhVZ4jVGVmf8bkvFLYr013drsJZca7L1sH/S2yAm1d?= =?us-ascii?Q?sSWQVlEHgXsRYIEhnC5puXORfte8IH0u61fQvfjf5WfT3S/5IE0A3sy9bTPX?= =?us-ascii?Q?vsGvSmR2zluoVEQ+VyOTf7t1KdkV9HneDP6FgIm93jA7PgW37NqJnqA1eS/t?= =?us-ascii?Q?z4PouPteHhwFjELrGH8ptbqccZy4i/L2sb2bsC5S8FIfU3yPeYN1hVs3rdAs?= =?us-ascii?Q?h2E4arIq+uhJKzZi6LiszW8b1Pk7+8RqxhEjUfipBwUGm1MALcog+IzBx73C?= =?us-ascii?Q?AP3WXcrgBAkHIWJzn5sISvcGvDlqwNZciKGqrlRd3HhcfkyH+ToDlbJRmCx+?= =?us-ascii?Q?EBu69DLATqJL30vVUC/II7jKGHZadZJsIdE4fNPNRr5epIrgp/US0ZrjPnPk?= =?us-ascii?Q?7DA8dFN4COWfRs/YH19PyUhx2/DgEaByiS5yeaayncZ5uMYa6dfxTMxIoP8X?= =?us-ascii?Q?puPcBxKsqpT7CA9biLjEOiDgwIBBK/q0Kgb139qbsXmsWRkCgKQEvY+muoPB?= =?us-ascii?Q?7KczxFPCZjnfzcY7wNszD4ZPGA5EAgjjn+3jnOancC2gU7RCieA0WTwgJSV2?= =?us-ascii?Q?P7M5HrFwXOjRQXcQTSvnXAytCHQhj/1iWDtnYqLlMy3obcRK+f2jh54n1ql1?= =?us-ascii?Q?ZbrcZEPtlFWPvJW1R0yOJN0XL09MVouX6/mqwyskpKK9vbjsIB4IaM7NYRwd?= =?us-ascii?Q?MlxldX0fG0/QS9XLAuZDWLXR9mdZr5srARdKKJFUFjw/d55YI/lvTJkHrFan?= =?us-ascii?Q?tTnNMqAIGmQ66eET9NZsPONNWZJrLYML32UbHxap5LQiKoMiNm+md8+Uo/vX?= =?us-ascii?Q?gWvnCPUnkzOiycQDuEr2Ji4vrn6AY88/kzbv8HEBLcEJDU1PmAFCggaM3rs6?= =?us-ascii?Q?ms3iE6QN6BXpxuft6gmoA7gW+bzZTH5/?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NktQiN9Zipoytm/MM1yAOAqvYF+t3mO+Q9lVQslT8J06HFLRstHXA6vqdqwN?= =?us-ascii?Q?1HgrE/tuEOAEMNQ6wuG8dV0o0O6COZLsmU7shrlkaVUUkpD424jtd4AbwEe+?= =?us-ascii?Q?Od2V1OtAcnQGr9zxxIDnnXRN8lVIHvfA6tc7zAfQDuBUvNMknLLLIWRWw1sV?= =?us-ascii?Q?Cpdl74FshGXjmsPuvm9T4gB/J3s72h0kCfDik4tbnugGyHlCki6Yb7BB5fvr?= =?us-ascii?Q?7+RpnW5p4pLGkWRey1Q4UKqpFJD/f1WBM5M0++d+QvUGpwIxsNNJIwz91KLY?= =?us-ascii?Q?LsrqUe+hzWKnVtyY//gM7OMpoXBkyaz6ZVF24Cnf1F9PJeBzJexiQPD++qeP?= =?us-ascii?Q?E7uwjrbQy7xdVDKeTv5vlF/qphQUL0Ad5IZ4u8i9tsP849IbHGHBhMCx8CcH?= =?us-ascii?Q?1FY+JKhCNaEu3DIB+IZz8RkJI1+iWXq9rehKdCIY5+jwDD843chJZqV6LnN/?= =?us-ascii?Q?Nn6SOXeK42hHVawRAaoVssJTnqVN+Br6f4Kn8POnVEC0nSjaHCOhVwCY8T82?= =?us-ascii?Q?XUtq4uxn8EzvOWgm1tSBH55fLeLONgxkfLsSf1BgBNhxn+znojSyeX52ras2?= =?us-ascii?Q?FIZVivmGI/+jHP2Mi55267VpgUxsEpPe4aufIWLL5H+VQxdhOGKuq+2Lp4lg?= =?us-ascii?Q?J5Px3nrpRmjbpP1fG5AUT8mTrVFK6NlwCv5pRthY0MfGM1dprWGAAm5tYnVU?= =?us-ascii?Q?cgIIB0/s8wgKjZpejNgiq2sBnn/v5QKrn5Ch4hl7TiaHwkcxBlozhb8OEMEF?= =?us-ascii?Q?85DlX+xO1i2L3Qrl8Vd8pqefdyWeq48eYBbHBowVB4QRo+svUZjmahS2UaKZ?= =?us-ascii?Q?u6vfZgPCkn+4VxsFeaeRLvIzYxRrpHDSmOUrTdmf/T9Plu84XHrfhWzLTCxR?= =?us-ascii?Q?afc+UttCnZkd3/pqW9UuYsH4bumDJ6mukna7VPJAa8gIj919YLWudjGfGiOz?= =?us-ascii?Q?TZWBv1RdgzPehQT7oJ16gVR5FFMUD9iCWD/BrGZNgvO8iXX1oHCbar2dLBY3?= =?us-ascii?Q?1W8XNynnSJaULkLRyMiMPvwseFrZf5biHNbanWlpFTCIsJW2D1CAde5XHyZg?= =?us-ascii?Q?UmKqIP4tZOH65gq/Ac8FUZsUh43uaGNifWiMnt7OigRn5JKt75kfQYUa7bKv?= =?us-ascii?Q?py02vaka4TOyzsMh2NzhRr/2vbfi7JQKbrsb+0JnVZGyB/MpckqfzJ3shUaV?= =?us-ascii?Q?6QNL5AcG6l1eYE9PWB2CSePpZYJytnmu+gJcLW3t3Q3RxyoAqeFLc7yphiCr?= =?us-ascii?Q?sh0lN1hW6KNe04ovFMUqJ+EDJPCLZbRJEZU9lt++r5xUUVFxrg1+h56EuaE4?= =?us-ascii?Q?ojbODa9+gSUcMgRHLbEe2rJvsdz5Cn4gxgQGr2AY2gMXKZqn4q4DMt2RHfBR?= =?us-ascii?Q?QDDQaFzz5NLxdvNsYmVEkNNnUIHfIhfWcV7ZUDTWKwTDzMvykcyfn0MYS2nb?= =?us-ascii?Q?+e3asabJYIzDexp3zGsYYcel9iaHqGRmESVv6T0y4LBul2iJEZkq0SiCvYED?= =?us-ascii?Q?jGU+HD+AGYbZ+SvMMbvwSYdad9NgORiJ+Sgn7daJSAzQHtteAbFwvOoP8JmB?= =?us-ascii?Q?5y+bdSTXY89INWRjb9icxpNsU0Hb7SOHBBvu8NgY?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4963eb13-1ad1-4f7e-e3f0-08de1ce836b0 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:41.0135 (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: GjDJRytNtHtlddWeWmHm40drjsNOT2Mi5PfKTlY9NuyRHmY3rSMd5wHdM4E5YFcg1k/WHqG6KeR1A4VI6PlVVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" This cleans up GspFirmware::new(), which is helpful on its own. In addition, future work in this area will build upon this. Signed-off-by: John Hubbard --- drivers/gpu/nova-core/firmware/gsp.rs | 41 ++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/nova-core/firmware/gsp.rs b/drivers/gpu/nova-core/= firmware/gsp.rs index ed2dea2cd144..3a85f34bdbea 100644 --- a/drivers/gpu/nova-core/firmware/gsp.rs +++ b/drivers/gpu/nova-core/firmware/gsp.rs @@ -138,39 +138,42 @@ pub(crate) struct GspFirmware { } =20 impl GspFirmware { - /// Loads the GSP firmware binaries, map them into `dev`'s address-spa= ce, and creates the page - /// tables expected by the GSP bootloader to load it. - pub(crate) fn new<'a, 'b>( - dev: &'a device::Device, - chipset: Chipset, - ver: &'b str, - ) -> Result + 'a> { - let fw =3D super::request_firmware(dev, chipset, "gsp", ver)?; - - let fw_section =3D elf::elf64_section(fw.data(), ".fwimage").ok_or= (EINVAL)?; - - let sigs_section =3D match chipset.arch() { - Architecture::Ampere =3D> ".fwsignature_ga10x", - Architecture::Hopper =3D> ".fwsignature_gh10x", - Architecture::Ada =3D> ".fwsignature_ad10x", + fn get_gsp_sigs_section(chipset: Chipset) -> Result<&'static str> { + match chipset.arch() { + Architecture::Ampere =3D> Ok(".fwsignature_ga10x"), + Architecture::Hopper =3D> Ok(".fwsignature_gh10x"), + Architecture::Ada =3D> Ok(".fwsignature_ad10x"), Architecture::Blackwell =3D> { // Distinguish between GB10x and GB20x series match chipset { // GB10x series: GB100, GB102 - Chipset::GB100 | Chipset::GB102 =3D> ".fwsignature_gb1= 0x", + Chipset::GB100 | Chipset::GB102 =3D> Ok(".fwsignature_= gb10x"), // GB20x series: GB202, GB203, GB205, GB206, GB207 Chipset::GB202 | Chipset::GB203 | Chipset::GB205 | Chipset::GB206 - | Chipset::GB207 =3D> ".fwsignature_gb20x", + | Chipset::GB207 =3D> Ok(".fwsignature_gb20x"), // Unsupported Blackwell chips _ =3D> return Err(ENOTSUPP), } } - _ =3D> return Err(ENOTSUPP), - }; + } + } + + /// Loads the GSP firmware binaries, map them into `dev`'s address-spa= ce, and creates the page + /// tables expected by the GSP bootloader to load it. + pub(crate) fn new<'a, 'b>( + dev: &'a device::Device, + chipset: Chipset, + ver: &'b str, + ) -> Result + 'a> { + let fw =3D super::request_firmware(dev, chipset, "gsp", ver)?; + + let fw_section =3D elf::elf64_section(fw.data(), ".fwimage").ok_or= (EINVAL)?; + + let sigs_section =3D Self::get_gsp_sigs_section(chipset)?; let signatures =3D elf::elf64_section(fw.data(), sigs_section) .ok_or(EINVAL) .and_then(|data| DmaObject::from_data(dev, data))?; --=20 2.51.2 From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 CEFBD2D12EA; Thu, 6 Nov 2025 03:55:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401302; cv=fail; b=F2KNG50V1IAgRl4pd/1y8Rp2D4eWO6D8MZRrl7/G+ykk6vl4AuxzGYMgUOCYj6l7d5GZD982315WfmM5YkoXfCNxnW9wb9i4nc+a/2QBqv9ZGOyJPuyuo9/swEZ2cn8SllrxVbYG7Po+9XiBUVHIrzZ8kitmukWxwUYgk/JS3h8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401302; c=relaxed/simple; bh=Mc02vG2Hhqx/1K8RYNaC63gDit7aKvPnyaICPPVtT0Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qNcmfU0RVsbhPUjJk7FqBaZSjDpfo9dDX8FjjbepRl33SumgKhfKMEUzMLQ8FW3LU/J8XYXSVI2+Jp2ydxvwhxWPTk1Ntecs116jaXYPmPl6jqc5MnVNVaF2H1nIOBg7scK8McvwAScpeFv58u3Uk2Kj5CsSB/xLPqpy0ooQq9U= 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=MWYOPq3i; arc=fail smtp.client-ip=52.101.201.44 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="MWYOPq3i" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UhRDJ5cnQEEOB/iHTIVQWiEnuD8W4mM3Jg2wXTOca1pclTbCVtKd0U7crN1jZ0MGY3+9qMjhviIl56HzTAU7w6fc40A0IcaaY3dUO2jWDwknXGp46LI41tdZqNOW83tnQgAeoTkOqCrLeKYHO7mW7EG7WowU46PLBpg49P4QzD+mNAK9dPiG2P/nx6JG/BN2Vgk2BUvMi1nL278qLm3UxgZbX+KPYP907HTVP5bq8EQX+wEJa+DkzTgprTzZJpKt00yGpv6YBCXP2DCQTg/+Hyg7Reh2F5U0U0TqkPeuQpy9jrqFLW+qhiLP3pWf/Ri2EuTGosmNYkbwJwr8SAKcEw== 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=ToIGOjAuspYMxAz6r/+ehHg8Vxm3qquqDupqgRuyP/4=; b=KLEz3vfEDp7qr24n+ZDzFLZiXkH9kaaJzybcDomp4OUfAq1/WO1xKjnfHoR0biCf5U/Lx/XKygtUemgpp24SvXn7w1HnC6E65llBCRGrjLCJGdzFtlFbZik7o75/szYPCPKRCHjNLFrfzmiNGeCYY5XUZ9CSz1spD214pDFcYCTLhlvZk8UcAg/GhXRHewA9oHq8+kduwbnR8g246CcU9mUZOnyiJ+sX4+Qt4KSk7fTsxBLL1ihT8ZwoRYE64ppTzZFKXC0eN4AsC0KpFiK+2yQBSldyxIyNnJYNf7NEdlpaylNOwxByBkK1AEgxa+9PLyEGfWQ48ATZ8G5pc6GhVQ== 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=ToIGOjAuspYMxAz6r/+ehHg8Vxm3qquqDupqgRuyP/4=; b=MWYOPq3iL+hGaRxr2Y10HVRp4jwkW20ose4+lZkR6lo/avxVoqHRxiQWZ5YIrQganOzigcdP/8B2uK8MVxl6eRhshme2yD2qY0qOEcqyhcwjcsrByTVREkU1JGzjx/8Jr8kyrsA8Dfszutjh2RqyiabGYG+0CDE40e9PV+oC8Cp2raivrVctjGu481pGvx+WWtxjOoZA0qwntwHatgjL/Vhof1PAgi+i8QyUb30XFyKUFjNlBnvtaC1QSOwb7938XVRVkvcc3dnEFp/II1JuWOkCxQO7/OvZjE4mqel6XL/5kLSXp/fdRqi9lfSVguSzubJfV0KX1qpI8V9WEEi8Mw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:42 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:42 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 5/6] gpu: nova-core: regs.rs: clean up chipset(), architecture() Date: Wed, 5 Nov 2025 19:54:34 -0800 Message-ID: <20251106035435.619949-6-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BYAPR07CA0073.namprd07.prod.outlook.com (2603:10b6:a03:12b::14) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a79e5ad-801b-4d5e-e47b-08de1ce8372a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZV48mmU6wS715PA4s1w1zeDPWblYjDCbGf6sVp/i20SuJhCO/cru1hp1xdDF?= =?us-ascii?Q?/O3QWgmE2CBuPVIga5Cm4X9BoNGvx09qu5EXHwAA8GuPzX1bmM1eHo+0/6QW?= =?us-ascii?Q?i8QJvcEw1N30bfMjG9Wxx6CgRtBvuaXsQiLTpEmKm9fDao4yJ7mBVxv3BwaG?= =?us-ascii?Q?k6Zz7eOP+w6EHz9AkTQor63elCPv3ZFzPXYyds50lgC3FKhA5FuB1JzN9J5o?= =?us-ascii?Q?YDpOZDfAI181TdmHomprL6ec8gj+9SSSgYK7fEeF43ikfgh1AHpGNsZdridp?= =?us-ascii?Q?JVOcwMB19BUsxieArjSW6FXmTiCPfsVmh5eMRiDC8Wa4SCtRoYFrGOgjsxYw?= =?us-ascii?Q?vIp51vy2Wyf5lHwJdB+m5FkfapeDn3ebfSpNymkFBxKm7jhGVQ9ecg4wDmql?= =?us-ascii?Q?5crwwN5RxCcKg0ZzluMFx1r/NDSQlqHjcR5bjhvajI6Xv6C/Y/zdkixC0HhU?= =?us-ascii?Q?di1HTtYVUc5zjIQr4EOh89P9dQNrDOJ71lHXLFn0i+4VYKq2AD3o1r6k+vsw?= =?us-ascii?Q?wfkBWKgt+n11WsBQIrGr/YxbbRPc4Desyjr2OkNoLNX9jaEBtkD0oZmtx7dq?= =?us-ascii?Q?5rn4FW++opJTFpkoqOsgP1+z2BetcGT+JjY557lOZ38BtdTppcYDylh9Glk/?= =?us-ascii?Q?rhNRk/PDDWWY3TJK/IX5KY60HCjdVnHOf3vuH8MSSrlABRZOBbPU435PwuyJ?= =?us-ascii?Q?C+ssfazdl8qa6+AVDClIvwn7ypuD66ghnCLguJ27AalLArZXhPxOmIAGmPe7?= =?us-ascii?Q?xtnYp2B5av/MNAPc+hedNz8/EnWnq2IaHURn3M/3/1Qq7bGFryzUAzVTWkIG?= =?us-ascii?Q?nWCSNG6ANwoEgUszaNog4aVQP+NtWfnzfnRlBc6LXBBdfP+SMTHsHB/6mjdT?= =?us-ascii?Q?xt3j69ZzIsQTgESpehKtEA2Hqs/OCv+XB+yITwVa5s0q/EkhcQYseH40ByCo?= =?us-ascii?Q?43ROWw8gjyLKw2nJ9SN9UGDE1SpYQMS8b0ARpY/rUaJBw6gzmUkyPHaLo7Kt?= =?us-ascii?Q?3btVz2Ce8pj70+k83rHTqHy53UbsIHWf/cQ2AKjrEMA1/sRBsJNWHDUxTl+k?= =?us-ascii?Q?cAoOw8HdqlxZFbbIK9RHISM2WwwaNFK3l7Ap5lhwzu/u5LTXpTBQTTXc7asR?= =?us-ascii?Q?d1VVPCE8b18JaKiIAAohAmLDDuEAxtCLBlSmxhXU5u/gXisvvaOzFu/Ye9yB?= =?us-ascii?Q?L8vWQ9ZdXtt26qYWPYZU5bLXK4Jh9CAE5CU6Poq3ekiOAd9RmHnBxUwhQIsd?= =?us-ascii?Q?lxK2BBvfY8P+DM6OUSzORmo/sjlEx8LdYDWkUR1yULTz1qkP38JAgNGt2V+v?= =?us-ascii?Q?Gabp0ZmGtJtuh3FFx2G/POmDrVLxSLXB/dPoaLedjfoDOliSsA/BJz0fgKe2?= =?us-ascii?Q?6z9B3mmJzEc6ToEo0PaISMnju6O2SI1mgUB1o+tRk8Byo7JJCrVFQuysE6Zk?= =?us-ascii?Q?oVgKyqQbWc0MmaaUgmqc3ZcYaL/RtO0Z?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JsRTpxGAXGAbPsLQt1M2K5rzTyZQHyEHV/HXDkHH5OBQOdU8vPpqoywv/y2s?= =?us-ascii?Q?Ge5DSJsrCJiMpI8+JWZR11XNcwiTwnuuAFhJjxhWwLMjwaghZscX3in7Jdoi?= =?us-ascii?Q?vIYGo556KYKNRRJHZPl5HGKzQM/YPdsmqGskNcmvZOMZEea4A5OeOMcWIsVf?= =?us-ascii?Q?deBuHhg/gWz5niBqYg0CX5pSPovE8e5OcAlkuAKH2Xdadwa86Qoss4f7/1SR?= =?us-ascii?Q?KT9Lg4dDYmYqqdwtzCft8xxBUwyxCqnXYQZWzhxrMm7+03pG0NWKLx/t5JQ6?= =?us-ascii?Q?zKZD0BS30SJEYrA+InBKrVvqi2BQzJvE1ZOGayKz019JHkWO3DlSqQpNLAnu?= =?us-ascii?Q?r35ooV9JhzYZDcppx6OremkJZB7Doy6FNVVdaq8doql/bIHeQysFeamgPwa2?= =?us-ascii?Q?OQUPuIHb8Ksr6SA5Cl/JO0odT8yeR68X/GXnmQnY4/+8YDTXYeyaALm12l8g?= =?us-ascii?Q?EfaXr6jjMJ+Y4MfTh2P14TwkU1xtXvP9NqIao9S9B6GW91HsvGFukKLtPVC+?= =?us-ascii?Q?ftmqh2qRvEWydrnkh92k7YV/R1fjC+9J0gpt6uCLTwpC4bzIG0mWL0uX5vhv?= =?us-ascii?Q?F3Q3RHGqmPoQVa3t4bBbeuhszsnWG83F70T0SZLFkhvg5iMayO9fD35eHQKO?= =?us-ascii?Q?BiWxVLHcVdyuhBpewJkDibdRlttNoK7ECgsLeXvRhJdzhn0lbwVbmY7qE0j6?= =?us-ascii?Q?vSpYhqI8tLET8ieQfXl/K9rZEdeZVIFLpUSP1BMyPF5ckrjQcciM53R58czu?= =?us-ascii?Q?xsG+6Pb6mCQHOnuE73XurnujhROlDCjrJFHx2PgZ9yjQTm3s6Ul8E+BjNuxo?= =?us-ascii?Q?JpTsgpAUDOUDglVLiBgmc3tLXYlMJ2pnfnkVQpcYwLwHYtabru3eLvrAcY1E?= =?us-ascii?Q?qFcGP66rQRt3ppcmumuFen9xZoeLJWtPDsZ5LX8pBdJUgWhkWnS61PsKEVO8?= =?us-ascii?Q?evFR694GAplvwsVlE8LVKwECqFmBVtBU/Wz4e5D3VHNoLkqzTBFSXAAfSnnZ?= =?us-ascii?Q?AsLsKBucc2UiPxdwKtuXPKa8IQMQJfET6Hoh/I/bxspjExOKs2Cbi8bowcXV?= =?us-ascii?Q?9RFbR5m+EW65Zx0jpNOOJiSQax99RRJHfojvETMceNNBRO5g4WV8VWwN9ZlJ?= =?us-ascii?Q?31ELunR4580EV4JoObiMAeSskUnN7tjQuZI9PN5WveE44eIHeLtACttrmH0B?= =?us-ascii?Q?6JImgvrIHxvn6GgxE9+Sf4/SqUqPjLuyQQt9Pp7u6CyN3RG0BgoC6tOviG7t?= =?us-ascii?Q?maHMGaGiZoEzbjsXMrHfl8Bu1/+LOavMKtLR7jIrpGMoME5ny3xj8Zve5Ifz?= =?us-ascii?Q?cPyWro7bGpkI4t6ygbFompIjHnioPP3Q2W2dz6KH7GsAhLiLZkx6M16/xY0V?= =?us-ascii?Q?jHGZhxOrnzTnLgmrIrskpXmwF403UChHSETjjgVUzS6XWb54ult/guWq5hI0?= =?us-ascii?Q?k8zfWotDAp4GygGqjmppCh/zUL/gl8XWxXDY6Jeyz3yF4M9CRvgH+UB2rKci?= =?us-ascii?Q?GNR2UYe04AG7je03SyGTnx4RHO9SW3B3aLWBi5tkLeeSFHQ53zoucinJbT60?= =?us-ascii?Q?DDahdQ+T/9HvCZugNltwb7hMXduc1foTspSnWirW?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a79e5ad-801b-4d5e-e47b-08de1ce8372a X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:42.0349 (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: wp4zjoeHn/XEAtnAeGQwy9+L9plvBwG/0kPDQac3Zfw7ejQ85imQnpD6EDmE0Etl7zRJ9zl9ZPALDt+sMN+83g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" In preparation for an upcoming commit that uses the GPU's reported architecture, rather than deducing it from chipset(). This means that the architecture() method is no longer used, so delete it. Signed-off-by: John Hubbard --- drivers/gpu/nova-core/regs.rs | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index 15145426f8a1..fcb319806391 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -33,21 +33,16 @@ pub(crate) fn use_boot42_instead(self) -> bool { self.architecture_0() =3D=3D 0 && self.architecture_1() =3D=3D 1 } =20 - /// Combines `architecture_0` and `architecture_1` to obtain the archi= tecture of the chip. - pub(crate) fn architecture(self) -> Result { - Architecture::try_from( - self.architecture_0() | (self.architecture_1() << Self::ARCHIT= ECTURE_0_RANGE.len()), - ) - } - - /// Combines `architecture` and `implementation` to obtain a code uniq= ue to the chipset. + /// "chipset" is a unique identifier for the GPU. Examples: GA100, GA1= 02, GA103, GA104, GB202. pub(crate) fn chipset(self) -> Result { - self.architecture() - .map(|arch| { - ((arch as u32) << Self::IMPLEMENTATION_RANGE.len()) - | u32::from(self.implementation()) - }) - .and_then(Chipset::try_from) + let arch_bits =3D + self.architecture_0() | (self.architecture_1() << Self::ARCHIT= ECTURE_0_RANGE.len()); + + // Combine with implementation to form chipset value + let chipset_value =3D + (arch_bits as u32) << Self::IMPLEMENTATION_RANGE.len() | self.= implementation() as u32; + + Chipset::try_from(chipset_value) } =20 /// Returns the revision information of the chip. @@ -58,7 +53,6 @@ pub(crate) fn revision(self) -> crate::gpu::Revision { } } } - register!(NV_PMC_BOOT_42 @ 0x00000108, "Extended architecture information"= { 7:0 implementation as u8, "Implementation version of the architect= ure"; 15:8 architecture as u8 ?=3D> Architecture, "Architecture value"; --=20 2.51.2 From nobody Fri Dec 19 14:24:18 2025 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010044.outbound.protection.outlook.com [52.101.201.44]) (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 7DA8C2D46D0; Thu, 6 Nov 2025 03:55:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401307; cv=fail; b=Wg8Bd99cNaGkX9nJTt0q6Dy6WBgQc1P+jAVO+d7pkctKJIIqOu3EPSqAtDeJoVcIZ68S+QeixaVRPFr+7J7DuZ8jqbHWzZkyvjDl8nndyxzJY9glJk8pu7CmS0m3fZOrdSwsPQi285Sd4scOKyHylKOXn6yeHFLkw4ZkzZcSQAc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762401307; c=relaxed/simple; bh=hUEW+Y1d/X9LP1CfOZxEPxCSY8pjnToG9evUT+Me2xY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VPWgTSR2SZp7dmORRxOTD6raKHnbF0+xGtiF43cnJL0xQrNAuy/6AnEvxwNQnSeUhWAqkbGZZwRcRnXXE1FsY8d8NBqsob79re/gBJ6kjB4g51udDIY8WP/lqdyRzVc2SQpZStxuqJawsxKHJQ4xZk1qyJ6SPGNFkhS/JZiZlj4= 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=G/GOHRUQ; arc=fail smtp.client-ip=52.101.201.44 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="G/GOHRUQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uSovYzppfF3u4VOuean/zKFUCmYkVwEujwXLFwgHzzvUKC5HyBwK/0jv4fDQv4898oDie76jHwnUbmV/KFRf4uI3d+IC4XvqiE6x/TVpTPrWO4i/1DRLqjttZ2SGzhjR5Zh21r1aFuYyTKLKFFv9nD0yx0PkVnRTiNJCHbVm1oB0OX6O7qidgHWuOTZ+bv6jVll+CAtMpsF+0hq2MesX/eUXWibCbIc/pcmED8vVSNFvjiRB5SVZ5VJlgQNmp4br2b8u4BJ5ONad7VvZG1w0hB2Jl+tjLL4Sy6Bnibu1MVqfLNYjv8D0S3sW8wnA2iwZFSd30Km/evZtK3RS9wJ2IQ== 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=fMB6k69rifFSOH2Fy7JdiRrzvThq2aLwm12QU5ZcaIY=; b=EF99U7FGpL1d272CEbewokjPNPL+Oe5sIwH4Oedg2HXF0OD+OF7JeA2S5NAIUHEMcvdrqctlEbD9feBIUuj124p+z/i36inM3oxbVmbuXqrewxSsgRaiLvEZBouHd64gR+YLn8/Zk7euDQbXQvrTqPz63IWe5eLFg8smUiDpR6dX8HcedRjMqRXT02eWX6K/2NeISBmnG6twYmgFxuNO1ZS/QIPaCyT93LC93DFQVoQKei25BwPtAAofX46JU8iliqUX3zfA4FMADuox2MT8owoBM7B/NMQUlncm+M3miZmeQlPRog9zXMM7sVBeDBhaPw0wLPQmMHrntAJU/Fl8MA== 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=fMB6k69rifFSOH2Fy7JdiRrzvThq2aLwm12QU5ZcaIY=; b=G/GOHRUQSx1I9VtnjvvtUTKgYaq+IhfOiMazl613kAY2QgPUB2OTIPO0wuiDBn9W8ilUmyJ+szZEGRCzlJOkZYP6otjYrUvPYhTLGYwz0mYxF4ImxCgfRAu/5Pj87KonLn46GYtGiEsnm6/L7s9Mv2+WPUWDRGUEdKqJvIfOJkNzSsJrvsQDeBYhSvJuSS8OujrW1W+Mz93dn5TEATq3FsSO4SG3vxktK3OojvRzc4xBcuaSCJQfNE6BDA4CrKw3FiLApFJIkQio+Rvxk7oEL8Nd72DRYWRPkOi/1J35bQpCk/j7/BQgoLbUI2Pzu5Aq+opDkJANLYrHYl3GpNOq+g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) by CY5PR12MB6622.namprd12.prod.outlook.com (2603:10b6:930:42::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.7; Thu, 6 Nov 2025 03:54:43 +0000 Received: from BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4]) by BY5PR12MB4116.namprd12.prod.outlook.com ([fe80::81b6:1af8:921b:3fb4%4]) with mapi id 15.20.9298.006; Thu, 6 Nov 2025 03:54:43 +0000 From: John Hubbard To: Danilo Krummrich Cc: Alexandre Courbot , Joel Fernandes , Timur Tabi , Alistair Popple , Edwin Peer , Zhi Wang , David Airlie , Simona Vetter , Bjorn Helgaas , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , nouveau@lists.freedesktop.org, rust-for-linux@vger.kernel.org, LKML , John Hubbard Subject: [PATCH 6/6] gpu: nova-core: use gpu::Architecture instead of long lists of GPUs Date: Wed, 5 Nov 2025 19:54:35 -0800 Message-ID: <20251106035435.619949-7-jhubbard@nvidia.com> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251106035435.619949-1-jhubbard@nvidia.com> References: <20251106035435.619949-1-jhubbard@nvidia.com> X-NVConfidentiality: public Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0022.namprd05.prod.outlook.com (2603:10b6:a03:254::27) To BY5PR12MB4116.namprd12.prod.outlook.com (2603:10b6:a03:210::13) 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: BY5PR12MB4116:EE_|CY5PR12MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d0ab569-fad2-4fe0-82b1-08de1ce837d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rGA7qodWVik9sQP28dAELiuSys66lK185iC2NP30A1hvzGtR9u/HBNCf55NW?= =?us-ascii?Q?H5P86WcDjPEPUgap6RyYb7MrEAxgMuVa/y8xNLC3S0ORZ5s7W+YLOObToUWf?= =?us-ascii?Q?pv0/gkinez4rxHHY40Ud6F7BnUHc2yvoJgYk7nfiCpMAizuuZ3ML/r/ndklP?= =?us-ascii?Q?kGff3Hd3fg5lLlOgmIZ9A1VD9LUheTbykOb3hDg/9aiufbDp7okDGxhIFdPT?= =?us-ascii?Q?HaNtHn5dvFo0ENOjs6e7A90mrBSbRcv764Mb16w6mTg1TNddbmuoQF678M6V?= =?us-ascii?Q?q3YvWStEbGB9u88vRwyrCJDWuYDNL7nVmKYR2370EZKJRAKN2chANFgppfLN?= =?us-ascii?Q?JHxRHNy9AbWLbDHNDd8xJYwPEZLwM9S5Sm/JhkXnpAQTk9krvRyxHOUKsF0P?= =?us-ascii?Q?fLnNqgtkMD2dNA53G2ae3vdEzWQL3nwxsTFn3CqjNkkvywNnMM6Wqf77kNTe?= =?us-ascii?Q?3oPcaNVYGzBEm4cTSeJFuOHgWCMtCZRKbGGuHMA7YcluZc4xIeOmVq4L0X9F?= =?us-ascii?Q?7mFfZLYbeTuKJQjiWvLwl3MH37vFYeXW8k0doOZSrQxnV2zVIde5uU/FjI1w?= =?us-ascii?Q?ifN2DCSB587PMXdsfPOqaPZb8J5F1k4/plj6zvPe2hN4YBERGU5ONFpoUI7z?= =?us-ascii?Q?3T63MKmeiZhBwn/335NOpmZAEeBkrpjiTH2Vq3BZtPUdnZ4wTj6aHOxzQci8?= =?us-ascii?Q?JodXofk0YfrKUt4CyjCN9uNH7Yuh+dxagCwdB0bs+18GAQHuOAx2NXWoVyoN?= =?us-ascii?Q?fXRuChapHcDhXVtAh9peI6laE/nt+jqlxkjd5q1lm36DMchae7503qy2Z75H?= =?us-ascii?Q?assAVA+VSSAoyZQmaSR34xWcqo1wEsDaCmtkyV9SfT+joRseplRqFHKLPwyd?= =?us-ascii?Q?DRSUc3bJH55/RdrWjqh9C4C0iLQ98AT1Ka3/yZCQU8df8c78xaDBHGUDEdgd?= =?us-ascii?Q?Dk+VaK16uQ8PNWuBLMM0940hdWui2odqeHmZbLigDDnMRfmho2DkkYisHHJ1?= =?us-ascii?Q?bnQxDyRXa7e+B4jW9QOFgCadhzwtL3wLMJmz6fh3LdZGgwhDG2u6YIzqwD/K?= =?us-ascii?Q?hipn3zWQL9/zRp+jSX+mYpHqojLGimQdTZatWZ+tBUUWcgrRQYzUQVlI2558?= =?us-ascii?Q?SRRu2xOk3HdNEoVdEPG7iS20+hHQX9NokDMELoJ7gC2QZxW1CRzM9yTUXMUc?= =?us-ascii?Q?BVubl9s5Mji53d8mACfu2JPmICL/eAntqzezL5CwxBIsSmG/EqFsXUnbWGC4?= =?us-ascii?Q?WZLelqa1edoGSr6haaKrqVXJPcigSzqtNcG0F1xIOYYENYPaVnwi7feKCH0Y?= =?us-ascii?Q?QFb3fYu4Kkh8K9kBnGEnUr0PHs3zYuH2EY8NQD26ixEkk5kcrrSexmMu5508?= =?us-ascii?Q?VncbQcOU1oNhMzfgOAEkP95XcMCyRwB+QbqlhI0/ghH7xiwQ9gjWs0ybN4nn?= =?us-ascii?Q?jig5a/ZTHd/HzzUJfGMrclnFPLivUBMQ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR12MB4116.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WkfMncrGyQ26Rl7tkLMHG+zwQW6V6itEyIc1xMJaRGsk8zEDxJbEmh1y4IKD?= =?us-ascii?Q?vvajD6iiSodlhdG6KC8rv5D/3wJB9TAma/RM6QW/QSB32yhlroATJ+2rOTM0?= =?us-ascii?Q?mrlIevJL9MYN9HzhZYVZb8Gsimoyh+YGd1ywaH2JuHJGcSY7HUruxklK3IrE?= =?us-ascii?Q?n8vnPHxwQ8FCHOC3iZkfah7IwkttoGoKXmxkYqeBAGhq7UJNQ8LGvsfVH3Tw?= =?us-ascii?Q?UZYjMBaOybOAcH5Y0b5hyngDUqt1wX4519vp7IPyBBdNaaWtnmzS2dJUFHgO?= =?us-ascii?Q?V2EaCelEksvkTuJTDHaIYbcd8p4ORaG9GXu3XyLwq1SLpSPo5HPZjo9bcZjX?= =?us-ascii?Q?H0PWhimZPTxJpLJftrYEb97YLu14vnpdVOsow9qX7xY/H8d6l2ZY+kkHl/7/?= =?us-ascii?Q?QcK/ZiKCrw1f8OmruSLurmjSp90o4MrFia6uv5YbLNm7yhnVPPSFW/TQdoC4?= =?us-ascii?Q?zVIuY8scDw+sHoxGzcfjjd3pWQ6NDWh75YiLvTwqdI3zZNR9OKv+nDi8wgmY?= =?us-ascii?Q?IDcrITmswwtI2eARGzsOLr+u+K7Hn3LrkeMp2s1qCHTrIxBKS/Z77dJPBCdd?= =?us-ascii?Q?rcw0aWUOM0pOaedXaye/YecvZUf1iYE4Ek+MFzsAga3TM74kA1vzQI5jjtc/?= =?us-ascii?Q?vUPlC/W2dCk27TlG+0/bEf41MYzNxzCGCWJ1VNdngY4HlD1jQCZsX2+OgkM7?= =?us-ascii?Q?igs1UOaOxicbnk/q1g3tcP3f3Tg9vDu3JN4zPo4euI6HFkueGjfZCIrFOB+D?= =?us-ascii?Q?8JTY1oE5Ero8QGyKz/tBLnVPkDwyNoRhU6RnzwJFAClToTFM40GyMYmUauOm?= =?us-ascii?Q?peC5ZWs708jfwtdrL6itTWqLh5U7O35vF064lQ2J/TCfXB+MFAXBhJ/hzBr6?= =?us-ascii?Q?6DcHBET641sZ85rCOGnpMbCFIBDDn76y44Dgu8UmxSDpZtyC4sc1dyMfK+W0?= =?us-ascii?Q?hECb7AogcjRXOOz87dUB6kU4wo/ne9uar7NDFfrrIL7RYGnavxeL4eG6LEVa?= =?us-ascii?Q?w3iXcWEX8FRKm09uSkPM7M0sh8HZUOWZTOxlG8y6eGx8pq31NaMUOhYLQ5rF?= =?us-ascii?Q?3ox4wP3qP/6d6ErrKI6WzSWRDUbE6IVj/XuTSLEm/veVYDzEpKMzNpKdfCYM?= =?us-ascii?Q?nLGWBsR2MNH8uaYhBSpICqzWLvwWH/Qsb2PZiKIvPHK03cTaHrGLBDZI8eqv?= =?us-ascii?Q?YyNFDosdF74pIxTPH2npnxT6PAaSgRmhfRqxi4MTsnlXR+yeGf4OMTF/zzss?= =?us-ascii?Q?I6jMYidd+9KvujqKtq1bR8JZjkBUCspneUOiV4a3lheNZGfqtE7/katuXcBa?= =?us-ascii?Q?Vcb26V+uEuzEPtuHt6InQR2+NoFTMYik8j3XKGw75XdyEOObEotjHTUpX8DA?= =?us-ascii?Q?KCfS7w/vdtzjFYfsA1Jv2Aarw4KNy0Nv0vBuQHch2T+mYXjw3rXrNgIGe2Lp?= =?us-ascii?Q?zb1GGLUhbgfUA+5wiR4ypy9hkQGGph8+s0gGwFMCeUmLQb8xmpJyIoyozVK7?= =?us-ascii?Q?XeFC0uywQJlnoLowrCcB1KV5Iiyo6bchi33CFr/b6xdtOtjjWh1x7jUN9fPl?= =?us-ascii?Q?r714bVpHgdx1jk6zz6NaF9tGsBPQNfdJhvOLWolj?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d0ab569-fad2-4fe0-82b1-08de1ce837d7 X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4116.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2025 03:54:42.9165 (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: 8Tm0w+oO9gLQrgODovSkrdDRliHcwt12f8LpNuZYrUIcw9FN7zH5/1pA6NPV9yv0b5cAung2ymDgUJ8qZR8LVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6622 Content-Type: text/plain; charset="utf-8" Use Architecture::Ampere, for example, instead of checking for membership inside an exhaustive list of GPUs of that architecture. Also, apply the new "use" multi-line format. Signed-off-by: John Hubbard --- drivers/gpu/nova-core/falcon/hal.rs | 15 ++++++++++----- drivers/gpu/nova-core/fb/hal.rs | 20 +++++++++++++------- drivers/gpu/nova-core/regs.rs | 5 ++++- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/nova-core/falcon/hal.rs b/drivers/gpu/nova-core/fa= lcon/hal.rs index 7ba8ba856c72..08b97f593a8f 100644 --- a/drivers/gpu/nova-core/falcon/hal.rs +++ b/drivers/gpu/nova-core/falcon/hal.rs @@ -41,14 +41,19 @@ fn signature_reg_fuse_version( pub(super) fn falcon_hal( chipset: Chipset, ) -> Result>> { - use Chipset::*; + use crate::gpu::Architecture; =20 - let hal =3D match chipset { - GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 - | GB100 | GB102 | GB202 | GB203 | GB205 | GB206 | GB207 =3D> { + let hal =3D match chipset.arch() { + Architecture::Ampere + | Architecture::Hopper + | Architecture::Ada + | Architecture::Blackwell =3D> { KBox::new(ga102::Ga102::::new(), GFP_KERNEL)? as KBox> } - _ =3D> return Err(ENOTSUPP), + Architecture::Turing =3D> { + // TODO: Add Turing falcon HAL support + return Err(ENOTSUPP); + } }; =20 Ok(hal) diff --git a/drivers/gpu/nova-core/fb/hal.rs b/drivers/gpu/nova-core/fb/hal= .rs index 30fde2487d8b..dfa896dc8acf 100644 --- a/drivers/gpu/nova-core/fb/hal.rs +++ b/drivers/gpu/nova-core/fb/hal.rs @@ -27,12 +27,18 @@ pub(crate) trait FbHal { =20 /// Returns the HAL corresponding to `chipset`. pub(super) fn fb_hal(chipset: Chipset) -> &'static dyn FbHal { - use Chipset::*; - - match chipset { - TU102 | TU104 | TU106 | TU117 | TU116 =3D> tu102::TU102_HAL, - GA100 =3D> ga100::GA100_HAL, - GA102 | GA103 | GA104 | GA106 | GA107 | GH100 | AD102 | AD103 | AD= 104 | AD106 | AD107 - | GB100 | GB102 | GB202 | GB203 | GB205 | GB206 | GB207 =3D> ga102= ::GA102_HAL, + use crate::gpu::Architecture; + + match chipset.arch() { + Architecture::Turing =3D> tu102::TU102_HAL, + Architecture::Ampere =3D> { + // GA100 has its own HAL, all other Ampere chips use GA102 HAL + if chipset =3D=3D Chipset::GA100 { + ga100::GA100_HAL + } else { + ga102::GA102_HAL + } + } + Architecture::Hopper | Architecture::Ada | Architecture::Blackwell= =3D> ga102::GA102_HAL, } } diff --git a/drivers/gpu/nova-core/regs.rs b/drivers/gpu/nova-core/regs.rs index fcb319806391..deb9219ea126 100644 --- a/drivers/gpu/nova-core/regs.rs +++ b/drivers/gpu/nova-core/regs.rs @@ -11,7 +11,10 @@ DmaTrfCmdSize, FalconCoreRev, FalconCoreRevSubversion, FalconFbifMemTy= pe, FalconFbifTarget, FalconModSelAlgo, FalconSecurityModel, PFalcon2Base, PFalconBase, Pere= grineCoreSelect, }; -use crate::gpu::{Architecture, Chipset}; +use crate::gpu::{ + Architecture, + Chipset, // +}; use crate::num::FromSafeCast; use kernel::prelude::*; =20 --=20 2.51.2