diff options
Diffstat (limited to 'kernel/gsp_phys_booter.c')
| -rw-r--r-- | kernel/gsp_phys_booter.c | 10 |
1 files changed, 9 insertions, 1 deletions
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 |
