summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 11:22:34 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-01 11:22:34 -0400
commitd494b80e5499f83a318c3ef98d56207c2d35fff1 (patch)
tree47e88ba21532ec13e6b0e9603782e4e68ffee53c /kernel/gsp_phys_booter.c
parent3f3149198b030e81287d7abd473ce4cee5e9e178 (diff)
downloadopen-iov-d494b80e5499f83a318c3ef98d56207c2d35fff1.tar.gz
open-iov-d494b80e5499f83a318c3ef98d56207c2d35fff1.zip
gsp-phys: accept the real GSP-RM sequencer buffer size in stage 3e
The live 0x1002 element carries bufferSizeDWord=0x3FE2 (16354) - the size of GSP-RM's own command buffer, not the message. The executor's 0x1000 sanity cap refused it, so the sequencer was never run and GSP_INIT_DONE was never observed. The reference imposes no upper bound (only nonzero and greater than cmdIndex); raise the cap to a sanity ceiling and document that the real execution bound is cmdIndex against the element payload.
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 6eb83cb..7966bc8 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -212,8 +212,14 @@ bool gsp_phys_boot_requested(void)
* by the command buffer (opcode dword + opcode-specific payload dwords). All
* bounds and delays are hard-capped so a malformed element can never drive an
* unbounded access.
+ *
+ * bufferSizeDWord is the size of GSP-RM's own sequencer buffer, not the
+ * message: the reference only requires it to be nonzero and greater than
+ * cmdIndex, and live GSP-RM reports 0x3FE2 (16354) on this TU104. The cap is
+ * therefore a sanity ceiling, not a protocol limit; the real execution bound
+ * is cmdIndex against the element payload length.
*/
-#define GSP_PHYS_SEQ_MAX_BUFFER_DWORDS 0x1000
+#define GSP_PHYS_SEQ_MAX_BUFFER_DWORDS 0x40000
#define GSP_PHYS_SEQ_REG_SAVE_SIZE 8
#define GSP_PHYS_SEQ_HALT_TIMEOUT_MS 5000
#define GSP_PHYS_SEQ_RESUME_TIMEOUT_MS 10000