diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-05 16:04:33 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-05 16:04:33 -0400 |
| commit | cc1028dffcbf9e028938555827f02b18ceba1665 (patch) | |
| tree | 106cb12ed468d1df87725cbbcd965fb2f7cf9a1a /kernel/gsp_phys_gpu.c | |
| parent | 9a8a48b71ddc868f2c52e36e8e4e2f622236054d (diff) | |
| download | open-iov-cc1028dffcbf9e028938555827f02b18ceba1665.tar.gz open-iov-cc1028dffcbf9e028938555827f02b18ceba1665.zip | |
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.
Diffstat (limited to 'kernel/gsp_phys_gpu.c')
| -rw-r--r-- | kernel/gsp_phys_gpu.c | 19 |
1 files changed, 19 insertions, 0 deletions
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 @@ -228,6 +228,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 * allocations (kgraphicsCreateGoldenImageChannel: a separate |
