summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_gpu.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 14:59:19 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-07 14:59:19 -0400
commitcf65fc4ba9011e2214dc00e198599e581fc391ee (patch)
tree6b76831ff0892383080deae6204088ba53370832 /kernel/gsp_phys_gpu.h
parent6e6647c779708ab1a206c69ea31bdce97df22b8e (diff)
downloadopen-iov-cf65fc4ba9011e2214dc00e198599e581fc391ee.tar.gz
open-iov-cf65fc4ba9011e2214dc00e198599e581fc391ee.zip
vgsp: m104 - inject the mail_kernel module-data base when bank-4 is empty
The forwarded mail_kernel reads __device__ kMail through c[0x4][0x0] (the driver-provided module-data base), but the guest's bank-4 page content is zero in the launch (the driver's value never lands in the resolved page). With gr_mail_patch set, when bank 4's first 8 bytes are zero, allocate a module page holding the demo message, map it at server-managed VA 0x11ff00000 (UPDATE_PDE_2, inside [0x100000000,0x11fffffff)) and point c[0x4][0x0] there. The kernel then reads the message from device memory and writes out[i] through the already-relocated bank-0 pointer; vadd (params only) becomes the real relocated-data acceptance test.
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 7df30cb..e83220a 100644
--- a/kernel/gsp_phys_gpu.h
+++ b/kernel/gsp_phys_gpu.h
@@ -346,6 +346,9 @@ int gsp_phys_rmcall_gr_gpc_mmu_init_value(void);
/* m96: KIND (63:56) for window-0 shadow PTEs (0 = historical kind 0). */
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);
+
/* 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. */