diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 20:43:12 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 20:43:12 -0400 |
| commit | 745a39c492003d848385bfc6dcad088eba5e62df (patch) | |
| tree | a733c40eb95b5d31647637417655a0872e457448 | |
| parent | 42e9058b5975d5ea88834429f5463bcd68397d59 (diff) | |
| download | open-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.c | 17 |
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); |
