summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 14:42:38 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 14:42:38 -0400
commit69f0c2dbc4cd5f61302ae8d70002e1a1eb96da52 (patch)
treee2254cc06286b793ac3295608602828088f5ab12 /kernel/gsp_phys_booter.c
parentaf60d8dd8ec8f37d92826e45f283ee95f30aeaee (diff)
downloadopen-iov-69f0c2dbc4cd5f61302ae8d70002e1a1eb96da52.tar.gz
open-iov-69f0c2dbc4cd5f61302ae8d70002e1a1eb96da52.zip
gsp-phys: drop RmDisableDisplay from the registry profile (display-enabled experiment)
The working distribution driver runs with display enabled; the RmDisableDisplay=1 deviation changes board/display state and may be implicated in the devid/board validation failure blocking GSP-RM init. Regenerate the profile without it: the 35 host default parameters plus RMDevidCheckIgnore=1, 36 entries total, display brought up as a stock boot would. Same canonical packing: size 1344, numEntries 36, rpc.length 1376, record 1392 (8-byte aligned), one 4 KB element. The module is unchanged apart from comments and the prepared log line, which now reports 'host default profile + RMDevidCheckIgnore=1, display enabled'.
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 9ec2f45..fb72cdc 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -519,9 +519,9 @@ struct gsp_phys_gsp_system_info {
* (g_os_nvoc.h:217-230; ABI checks gsp_abi_check.c:2126-2136). The header is
* 8 bytes: `size` is the total table size (header + entry array + name/value
* blob, entries[] = 16 bytes each) and `numEntries` the number of entries.
- * The submitted payload is gsp_phys_registry_image[] (generated): 37 dword
- * entries (the host driver's default profile plus RmDisableDisplay=1 and
- * RMDevidCheckIgnore=1) with the NUL-terminated names and inline dword
+ * The submitted payload is gsp_phys_registry_image[] (generated): 36 dword
+ * entries (the host driver's default profile plus RMDevidCheckIgnore=1,
+ * display left enabled) with the NUL-terminated names and inline dword
* values after the entry array.
*/
struct gsp_phys_packed_registry_entry {
@@ -3053,7 +3053,7 @@ static u64 gsp_phys_timer_set_current_time(void __iomem *bar0)
* kgspQueueAsyncInitRpcs (kernel_gsp.c:3358-3381): GSP_SET_SYSTEM_INFO (72,
* rpcGspSetSystemInfo_v17_00, 928-byte payload) then SET_REGISTRY (73,
* rpcSetRegistry_v17_00, the host driver's default registry profile plus
- * RmDisableDisplay=1). Both are fire-and-forget (no rpc_result wait): the
+ * RMDevidCheckIgnore=1). Both are fire-and-forget (no rpc_result wait): the
* GSP-RM server's function table entries return "nothing" and no reply is
* expected. The existing TX producer already has submit-only semantics, so
* both records go through gsp_phys_queue_tx_submit with increasing seqNum.
@@ -3101,17 +3101,17 @@ static int gsp_phys_preinit_rpcs(void __iomem *bar0, struct pci_dev *pdev)
}
/*
- * Host default registry profile (37 dword entries, 1377 bytes): the
- * host driver's default parameter table plus RmDisableDisplay=1 (the
- * GSP-RM display-presence check treats display as absent so the display
- * engine is removed during pre-init) and RMDevidCheckIgnore=1 (escape
- * for the static-config devid/board check); the rest reproduces the
- * stock host environment. The payload is the generated
- * PACKED_REGISTRY_TABLE blob (header + entries + names), not aligned
- * to 8 bytes; the TX producer zero-pads the staging copy and folds the
- * checksum over the padded length, matching the reference checksum.
+ * Host default registry profile (36 dword entries, 1344 bytes): the
+ * host driver's default parameter table plus RMDevidCheckIgnore=1, the
+ * escape for the static-config devid/board check. No RmDisableDisplay
+ * entry, so display is brought up exactly as a stock display-enabled
+ * boot; the rest reproduces the stock host environment. The payload is
+ * the generated PACKED_REGISTRY_TABLE blob (header + entries + names);
+ * the record is 8-byte aligned (1392) and the TX producer zero-pads
+ * any tail and folds the checksum over the padded length, matching the
+ * reference checksum.
*/
- pr_info("gsp-phys-boot: pre-boot SET_REGISTRY (fn%u) prepared: size=%u numEntries=%u (host default profile + RmDisableDisplay=1)\n",
+ pr_info("gsp-phys-boot: pre-boot SET_REGISTRY (fn%u) prepared: size=%u numEntries=%u (host default profile + RMDevidCheckIgnore=1, display enabled)\n",
GSP_PHYS_RPC_FUNC_SET_REGISTRY,
(unsigned int)GSP_PHYS_REGISTRY_IMAGE_SIZE,
get_unaligned_le32(gsp_phys_registry_image + 4));