From 320c679a470b9eb31dd111b7189b07316298c23a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 7 Oct 2026 13:55:54 -0400 Subject: vgsp: m96 - gr_pte_kind: set the Turing v2 PTE KIND on the window-0 shadow pool UVM's Turing PTE maker sets KIND=GENERIC_MEMORY (0x06) in PTE bits 63:56 because PITCH no longer exists on Turing (uvm_turing_mmu.c:32-34,106; NV_MMU_PTE_KIND_GENERIC_MEMORY=0x06, NV_MMU_VER2_PTE_KIND=63:56). Our shadow PTEs encode kind=0. The SM I-fetch refuses the kind-0 PTE with MMU_NACK while the FE tolerates it, so gr_pte_kind (default 0) selects the KIND for the window-0 pool. Also log the VASPDB root DMA at SET_PAGE_DIRECTORY time (settles whether the SC PDB the server programs is our chunk). --- kernel/gsp_phys_gpu.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'kernel/gsp_phys_gpu.h') diff --git a/kernel/gsp_phys_gpu.h b/kernel/gsp_phys_gpu.h index 9bd5df3..7df30cb 100644 --- a/kernel/gsp_phys_gpu.h +++ b/kernel/gsp_phys_gpu.h @@ -343,6 +343,9 @@ int gsp_phys_rmcall_gr_ptr_guest_value(void); /* m95: program GPC MMU_CTRL from PFB MMU_CTRL before a forwarded launch. */ 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); + /* 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. */ -- cgit v1.2.3