summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 15:50:58 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 15:50:58 -0400
commit80247f8792b830a0c1c558e206a38be99db62df7 (patch)
treea73c2e06bb3dc6679d8f1cfc1580dd43a55639b4 /kernel/gsp_phys_booter.c
parent5aa59b04d8fefa4720070bfbb2612d1ea7db7ec8 (diff)
downloadopen-iov-80247f8792b830a0c1c558e206a38be99db62df7.tar.gz
open-iov-80247f8792b830a0c1c558e206a38be99db62df7.zip
vgsp: mode 31 FBMEM ctx + pre-PDB aux prepare (m27: sysmem MAIN hung the golden construct)
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c19
1 files 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",