diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-07 12:37:42 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-07 12:37:42 -0400 |
| commit | 00d26377ab5b3e2903f848edd3243d020e6089b4 (patch) | |
| tree | f7c3b62173d4999919b10a1cada9306cc37e00ff /kernel | |
| parent | 8b1198126605dc29a49b1dfe728409d2fa25a5ab (diff) | |
| download | open-iov-00d26377ab5b3e2903f848edd3243d020e6089b4.tar.gz open-iov-00d26377ab5b3e2903f848edd3243d020e6089b4.zip | |
vgsp/gr-regs: per-GPC exception + activity + GPCMMU ESR readback
PGRAPH_EXCEPTION bit24 (GPC) with EXCEPTION1 GPC1:0=0b11 fires at every
forwarded QMD activation and the engine then saves/unloads. The per-GPC PRI
window (BAR0 0x500000 + gpc*0x8000) carries NV_PGPC_PRI_GPCCS_GPC_EXCEPTION
(0x2c90: PROP/ZCULL/GCC/SETUP/PES/TPC/GPCMMU0/GPCCS bits),
GPC_ACTIVITY1.GPCMMU0 (0x2c84: FAULTED=6) and the GPCMMU GLOBAL_ESR (0x324):
the post-mortem and the external sampler now record them to name the failing
GPC sub-unit (or the GPC MMU).
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/gsp_phys_booter.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index ee433e1..c70a79f 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -17021,6 +17021,20 @@ gr_page_unmapped: ioread32(bar0 + 0x00405b00u), ioread32(bar0 + 0x00400100u), ioread32(bar0 + 0x0040013cu)); + if (bar0) { + u32 g; + + for (g = 0; g < 6; g++) { + u32 b = 0x00500000u + + g * 0x8000u; + + pr_info("vgsp-gr: post-mortem GPC%u exc=0x%08x act1=0x%08x mmuesr=0x%08x\n", + g, + ioread32(bar0 + b + 0x2c90u), + ioread32(bar0 + b + 0x2c84u), + ioread32(bar0 + b + 0x324u)); + } + } if (bar0) pr_info("vgsp-gr: SKED watermark[0..15]=0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", ioread32(bar0 + 0x004070a0u), |
