diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-21 23:38:30 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-21 23:38:30 -0400 |
| commit | 9e776d0bd3a77217c700bf2fc538e32ac0d9173e (patch) | |
| tree | ce91938dab13e004056cc47c5226d713cd0deb9b /kernel/gsp_emulation.h | |
| parent | 38425e0891760d86d8a34cc84e8b8f8b39479a8d (diff) | |
| download | open-iov-9e776d0bd3a77217c700bf2fc538e32ac0d9173e.tar.gz open-iov-9e776d0bd3a77217c700bf2fc538e32ac0d9173e.zip | |
kernel: CrashCat wayfinder suppression (prevent kgspHealthCheck loop)
kgspHealthCheck runs on every RPC drain; if the GSP falcon's DEBUGINFO
register (BAR0+0x110094) holds a valid CrashCat wayfinder-L0 signature
(0xdead), crashcatEngineGetNextCrashReport reads 'reports' from garbage
and loops forever in nv_open_q (which then can't poll RPCs -> fn-10
timeouts). Force the wayfinder invalid - our emulated GSP has no
crashcat reports to offer.
Diffstat (limited to 'kernel/gsp_emulation.h')
| -rw-r--r-- | kernel/gsp_emulation.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/gsp_emulation.h b/kernel/gsp_emulation.h index 156499a..929003e 100644 --- a/kernel/gsp_emulation.h +++ b/kernel/gsp_emulation.h @@ -63,6 +63,14 @@ #define GSP_EMU_REG_MMU_INVALIDATE 0x0030b0 #define GSP_EMU_MMU_INVALIDATE_TRIGGER (1U << 31) +/* NV_PFALCON_FALCON_DEBUGINFO (GSP falcon BAR0+0x110094): holds the CrashCat + * wayfinder-L0 descriptor. If its low 16 bits == 0xdead (NV_CRASHCAT_SIGNATURE), + * the driver's kgspHealthCheck reads crashcat reports from garbage and loops + * forever in nv_open_q (which then can't poll RPCs -> fn-10 FREE timeouts). + * Force it to 0 (invalid wayfinder -> crashcatEngineGetNextCrashReport + * returns NULL) so the health check always passes. */ +#define GSP_EMU_REG_FALCON_DEBUGINFO 0x110094 + #define GSP_EMU_CPUCTL_STARTCPU 0x2 #define GSP_EMU_CPUCTL_HALTED 0x10 |
