From 80247f8792b830a0c1c558e206a38be99db62df7 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 15:50:58 -0400 Subject: vgsp: mode 31 FBMEM ctx + pre-PDB aux prepare (m27: sysmem MAIN hung the golden construct) --- kernel/gsp_phys_booter.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index e7a16b9..cf4beaf 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -9477,8 +9477,10 @@ static int gsp_phys_rmcall_gr_ctx_prepare(void __iomem *bar0) * Modes 11/15 back the context buffer with a server-owned FBMEM * allocation (VIDMEM aperture, the shape the KMD promote path * expects); mode 23 uses the same FBMEM object as the hVirtMemory - * promote target; every other mode keeps the host sysmem chunk. The PT - * pages are always host sysmem pages behind the sysmem-aperture PD0. + * promote target; mode 25 and mode 31 use the FBMEM MAIN that made + * the golden first-init construct succeed (m25c); every other mode + * keeps the host sysmem chunk. The PT pages are always host sysmem + * pages behind the sysmem-aperture PD0. */ if (boot_stage.rmcall_gr_promote == GSP_PHYS_RMCALL_GR_PROMOTE_OLDIFACE_FB || @@ -9487,7 +9489,9 @@ static int gsp_phys_rmcall_gr_ctx_prepare(void __iomem *bar0) boot_stage.rmcall_gr_promote == GSP_PHYS_RMCALL_GR_PROMOTE_HVIRT_FB || boot_stage.rmcall_gr_promote == - GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN9) { + GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN9 || + boot_stage.rmcall_gr_promote == + GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_SIBLING_COMMIT) { u64 fb_base = 0; ret = gsp_phys_rmcall_alloc_fb_mem(bar0, @@ -9540,11 +9544,14 @@ static int gsp_phys_rmcall_gr_ctx_prepare(void __iomem *bar0) "server FBMEM, VIDMEM aperture PTEs" : "host sysmem, contiguous, zeroed"); /* - * Mode-25 golden9e: prepare the FBMEM PATCH/FECS/PRIV/UNR buffers now, - * before the PDB build maps their promoted VAs. + * Mode-25 golden9e and mode-31 (whose D first-init replay uses the + * same golden9 promote): prepare the FBMEM PATCH/FECS/PRIV/UNR + * buffers now, before the PDB build maps their promoted VAs. */ if (boot_stage.rmcall_gr_promote == - GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN9) { + GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN9 || + boot_stage.rmcall_gr_promote == + GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_SIBLING_COMMIT) { ret = gsp_phys_rmcall_golden9_fb_aux_prepare(bar0); if (ret) { pr_err("vgsp-boot: rm-call: GOLDEN9E FBMEM aux prepare failed (%d); aborting the ladder with no retry\n", -- cgit v1.2.3