summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 20:43:12 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-06 20:43:12 -0400
commit745a39c492003d848385bfc6dcad088eba5e62df (patch)
treea733c40eb95b5d31647637417655a0872e457448
parent42e9058b5975d5ea88834429f5463bcd68397d59 (diff)
downloadopen-iov-745a39c492003d848385bfc6dcad088eba5e62df.tar.gz
open-iov-745a39c492003d848385bfc6dcad088eba5e62df.zip
vgsp: mode 35 - V7 gpFifoEntries 1024 (captured #825; one-variable fidelity pass)
-rw-r--r--kernel/gsp_phys_booter.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index f6a021a..7d4893a 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -1190,16 +1190,18 @@ bool gsp_phys_boot_requested(void)
* rounded; the promote entry keeps the captured raw size).
*/
/*
- * USERD_INDEX_VALUE: the captured user-lane word is index 3 on page 1, but
- * the golden channel D already owns the fixed ChID derived from index 3, so
- * V7 takes the m29-proven free slot index 4 (page bits are ignored for a
- * sysmem USERD, m14). Requesting index 3 makes kfifoChidMgrAllocChid_IMPL
- * fail NV_ERR_NO_MEMORY (0x51) exactly like GOLDEN9_SIBLING_A did before
- * 9877623b.
+ * USERD_INDEX_VALUE: the captured user-lane word is index 3 on page 1; the
+ * golden channel D owns the fixed ChID derived from index 3 on page 0, so V7
+ * takes the m29-proven free slot index 4 (page 0, the proven sysmem-USERD
+ * consumption path; m14). Requesting D's exact tuple fails
+ * kfifoChidMgrAllocChid_IMPL with NV_ERR_NO_MEMORY (0x51), as m29 proved for
+ * GOLDEN9_SIBLING_A.
*/
#define GSP_PHYS_RMCALL_CHANNEL_FLAG_USER_LANE \
(u32)(GSP_PHYS_RMCALL_CHANNEL_FLAG_PRIVILEGED | (4u << 8) | \
(1u << 21))
+/* Captured user-lane GPFIFO depth (#825: 1024 entries). */
+#define GSP_PHYS_RMCALL_USER_LANE_GPFIFO_ENTRIES 1024u
#define GSP_PHYS_RMCALL_CHANNEL_INTERNALFLAGS_USER_LANE 0x1du
#define GSP_PHYS_RMCALL_TSG_FAULT_BUF_SIZE 0x2000u
#define GSP_PHYS_RMCALL_USER_LANE_PM_RAW_SIZE 0xd100u
@@ -12664,7 +12666,8 @@ static int gsp_phys_rmcall_alloc_user_lane_channel(void __iomem *bar0)
ch.h_object_error =
cpu_to_le32(GSP_PHYS_RMCALL_HANDLE_USER_LANE_NOTIFIER);
ch.gp_fifo_offset = cpu_to_le64(GSP_PHYS_RMCALL_VA_GPFIFO);
- ch.gp_fifo_entries = cpu_to_le32(GSP_PHYS_RMCALL_GPFIFO_ENTRIES);
+ ch.gp_fifo_entries = cpu_to_le32(
+ GSP_PHYS_RMCALL_USER_LANE_GPFIFO_ENTRIES);
ch.flags = cpu_to_le32(GSP_PHYS_RMCALL_CHANNEL_FLAG_USER_LANE);
ch.h_context_share = cpu_to_le32(boot_stage.rmcall_ctxshare);
ch.h_va_space = cpu_to_le32(0);