summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 15:05:08 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 15:05:08 -0400
commit6aeb72dd60aec44325d293963156f6c90f7de9f0 (patch)
tree5b9aaf6aaca4c765a4f23f948f58c4b48844e0ba /kernel/gsp_phys_gpu.h
parente6de8e91340916467c16ddd246868b04083f68a2 (diff)
downloadopen-iov-6aeb72dd60aec44325d293963156f6c90f7de9f0.tar.gz
open-iov-6aeb72dd60aec44325d293963156f6c90f7de9f0.zip
vgsp: m106 - pre-install the data PT window pool in stage 3 (pre-commit)
Post-commit UPDATE_PDE_2 installs are accepted (status 0x0) but ineffective (m94's scratch windows, m101-m105's reloc windows: the SM never resolves them), while the stage-3 ctx-window installs are honoured. Add a fixed 32-window pool at GSP_PHYS_RMCALL_VA_GR_DATA_BASE (0x100000000 + k<<21, inside the server-managed region), each backed by a module PT page installed through UPDATE_PDE_2 during stage 3; the engine data map then only writes leaf PTEs into those fresh PT pages at launch (the P6b-proven 'direct leaf write into a walker-installed fresh table' pattern). The mail injection uses the reserved last window (k=31); service data windows cap at 31 and use the same fixed layout.
Diffstat (limited to 'kernel/gsp_phys_gpu.h')
-rw-r--r--kernel/gsp_phys_gpu.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h
index e83220a..b7c8cd4 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -349,6 +349,9 @@ int gsp_phys_rmcall_gr_pte_kind_value(void);
/* m104: inject the mail_kernel message page when bank-4 is empty. */
int gsp_phys_rmcall_gr_mail_patch_value(void);
+/* m106: pre-install the data PT window pool in stage 3. */
+int gsp_phys_rmcall_gr_data_prewin_value(void);
+
/* m72: append the vendor local-memory context block to the GR prelude so
* SKEDCHECK05 LOCAL_MEMORY_TOTAL_SIZE passes (default 0); base VA and
* per-TPC size are overridable for A/B runs. */