]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/nouveau: GA100 has an FRTS region size of zero
authorTimur Tabi <ttabi@nvidia.com>
Thu, 30 Apr 2026 22:38:34 +0000 (17:38 -0500)
committerDanilo Krummrich <dakr@kernel.org>
Thu, 28 May 2026 17:30:15 +0000 (19:30 +0200)
When booting with GSP-RM, the FRTS data region normally needs to be
allocated.  However, on GA100, this region is not used and so its
size needs to be set to zero.

The truth is that GA100 is just special, and the simplest way to
determine the proper FRTS data region size is to check for this
GPU specifically.

Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Link: https://patch.msgid.link/20260430223838.2530778-7-ttabi@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
drivers/gpu/drm/nouveau/nvkm/subdev/gsp/tu102.c

index fc8db6bcaf238870d010c8b54e4d18c243244e73..11a37963bd4e7ecc3f3a65d8ce19290822ab4646 100644 (file)
@@ -367,8 +367,13 @@ tu102_gsp_oneinit(struct nvkm_gsp *gsp)
        if (ret)
                return ret;
 
-       /* Calculate FB layout. */
-       gsp->fb.wpr2.frts.size = 0x100000;
+       /*
+        * Calculate FB layout. FRTS is a memory region created by running the FWSEC-FRTS
+        * command, which writes power management data into WPR2. On GA100, the booter
+        * firmware handles WPR2 setup directly and FRTS data is not needed, so no FRTS
+        * region is reserved.
+        */
+       gsp->fb.wpr2.frts.size = device->chipset == 0x170 ? 0 : 0x100000;
        gsp->fb.wpr2.frts.addr = ALIGN_DOWN(gsp->fb.bios.addr, 0x20000) - gsp->fb.wpr2.frts.size;
 
        gsp->fb.wpr2.boot.size = gsp->boot.fw.size;