From 27d969d9a1850e096a46d43b268de0e2eb91e8b5 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 20:17:53 -0400 Subject: vgsp: mode 35 - V7 USERD index 4 (free fixed slot; index 3 collided with golden D, NV_ERR_NO_MEMORY 0x51) --- kernel/gsp_phys_booter.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'kernel/gsp_phys_booter.c') diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index ca58c28..208c135 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -1189,8 +1189,16 @@ bool gsp_phys_boot_requested(void) * PM ctxsw buffer: the captured raw size 0xd100 (the allocation is page * 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. + */ #define GSP_PHYS_RMCALL_CHANNEL_FLAG_USER_LANE \ - (u32)(GSP_PHYS_RMCALL_CHANNEL_FLAG_PRIVILEGED | (3u << 8) | \ + (u32)(GSP_PHYS_RMCALL_CHANNEL_FLAG_PRIVILEGED | (4u << 8) | \ (1u << 21)) #define GSP_PHYS_RMCALL_CHANNEL_INTERNALFLAGS_USER_LANE 0x1du #define GSP_PHYS_RMCALL_TSG_FAULT_BUF_SIZE 0x2000u -- cgit v1.2.3