From cc1028dffcbf9e028938555827f02b18ceba1665 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Mon, 5 Oct 2026 16:04:33 -0400 Subject: vgsp: FWCLIENT entry-selection mask and golden-replay hardening - gsp_phys_rmcall_fwclient_mask (default 0x3f): per-entry selection for the mode-24 FWCLIENT promote set; bit6 selects the MAIN UVM VA-only shape. - golden replay: tolerate the client-local system-memory PB step and continue with hObjectBuffer=0; on-ladder TURING_A 3D object retained best-effort. Live bisection on the KMD channel: MAIN alone reaches the per-buffer commit and stops at the engine-context memdesc state; PM-only and PATCH-only are accepted; any multi-entry control containing MAIN is refused 0x1f. All cycles release clean. --- kernel/gsp_phys_gpu.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'kernel/gsp_phys_gpu.c') diff --git a/kernel/gsp_phys_gpu.c b/kernel/gsp_phys_gpu.c index cd04007..5e6b264 100644 --- a/kernel/gsp_phys_gpu.c +++ b/kernel/gsp_phys_gpu.c @@ -227,6 +227,25 @@ int gsp_phys_rmcall_channel_value(void) } EXPORT_SYMBOL_GPL(gsp_phys_rmcall_channel_value); +/* + * FWCLIENT promote entry-selection mask (mode 24 bisection; default 0x3f = + * all six reference non-3D buffers). Bit i selects emitted entry i: + * 0 MAIN, 1 PM, 2 PATCH, 3 FECS_EVENT, 4 PRIV_ACCESS_MAP, + * 5 UNRESTRICTED_PRIV_ACCESS_MAP. Lets a bisection isolate which entry the + * server refuses without a rebuild. + */ +static u32 gsp_phys_rmcall_fwclient_mask_param = 0x3fu; +module_param_named(gsp_phys_rmcall_fwclient_mask, + gsp_phys_rmcall_fwclient_mask_param, uint, 0644); +MODULE_PARM_DESC(gsp_phys_rmcall_fwclient_mask, + "Bitmask (default 0x3f) selecting the mode-24 FWCLIENT promote entries to emit: bit0 MAIN, bit1 PM, bit2 PATCH, bit3 FECS_EVENT, bit4 PRIV_ACCESS_MAP, bit5 UNRESTRICTED_PRIV_ACCESS_MAP"); + +u32 gsp_phys_rmcall_fwclient_mask_value(void) +{ + return gsp_phys_rmcall_fwclient_mask_param; +} +EXPORT_SYMBOL_GPL(gsp_phys_rmcall_fwclient_mask_value); + /* * Golden-image replay (default 0). When set (and gsp_phys_gpu=1), the rm-call * ladder's stage 3 replays the stock client's post-load golden-image channel -- cgit v1.2.3