diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 17:55:05 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-06 17:55:05 -0400 |
| commit | 556739301fe8c5387171b1513ddff8d5da551a9c (patch) | |
| tree | 560fad0cda6a21fa74a751a09883478f90bc8064 /kernel | |
| parent | 789b145638daf452f550762ad3143fb8a73f1082 (diff) | |
| download | open-iov-556739301fe8c5387171b1513ddff8d5da551a9c.tar.gz open-iov-556739301fe8c5387171b1513ddff8d5da551a9c.zip | |
vgsp: mode 33 construct A object pre-promote (m43 post-promote 0x57)
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/gsp_phys_booter.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c index 3069fbe..b1f4b68 100644 --- a/kernel/gsp_phys_booter.c +++ b/kernel/gsp_phys_booter.c @@ -10185,25 +10185,17 @@ static int gsp_phys_rmcall_golden_sibling_alloc(void __iomem *bar0) le32_to_cpu(ch.h_va_space), GSP_PHYS_RMCALL_CHANNEL_FLAG_GOLDEN9_SIBLING_A); gsp_phys_rmcall_ctx_diag_decode("post-V6-constructs pre-A-commit"); - ret = gsp_phys_rmcall_golden9_promote_on(bar0, - GSP_PHYS_RMCALL_HANDLE_GOLDEN_SIBLING, true); - if (ret) - return ret; /* - * Mode 33: with the promote accepted, construct the TURING_COMPUTE_A - * (0xc5c0) class object on A. The forwarded launch's SET_OBJECT binds - * class 0xc5c0 in the execution channel's context, so the object must - * be a child of A (V6's object 0xcaf0002c belongs to V6's context and - * stays there for the mode-31 commit-carrier relationship). The - * construct runs after the accepted promote by design: every construct - * before/after the promote on the D golden channel deadlocked RM - * (m3a-m3g, m15 -110); this is the first construct on the post-promote - * wired sibling. A failure aborts stage 3 with no retry, exactly like - * a failed promote. + * Mode 33: construct the TURING_COMPUTE_A (0xc5c0) class object on A + * BEFORE A's 9-entry promote. The post-promote order was refused with + * rpc_result=0x57 (NV_ERR_OBJECT_NOT_FOUND) in m43; V6's own 0xc5c0 + * construct likewise runs before any promote on V6. The golden image + * already exists (D's replay ran), so this is a later construct and + * does not need the forced first-init save. */ if (boot_stage.rmcall_gr_promote == GSP_PHYS_RMCALL_GR_PROMOTE_GOLDEN_SIBLING_EXEC) { - pr_info("vgsp-boot: rm-call: mode 33: TURING_COMPUTE_A on sibling A\n"); + pr_info("vgsp-boot: rm-call: mode 33: TURING_COMPUTE_A on sibling A (pre-promote)\n"); ret = gsp_phys_rmcall_alloc_gr_object_class(bar0, GSP_PHYS_RMCALL_CLASS_COMPUTE, GSP_PHYS_RMCALL_HANDLE_GOLDEN_SIBLING_GR_OBJ, @@ -10219,6 +10211,10 @@ static int gsp_phys_rmcall_golden_sibling_alloc(void __iomem *bar0) boot_stage.rmcall_gr_object = GSP_PHYS_RMCALL_HANDLE_GOLDEN_SIBLING_GR_OBJ; } + ret = gsp_phys_rmcall_golden9_promote_on(bar0, + GSP_PHYS_RMCALL_HANDLE_GOLDEN_SIBLING, true); + if (ret) + return ret; gsp_phys_rmcall_ctx_diag_dump("INSTANCE (post-A-commit pre-BIND)", &boot_stage.rmcall_chunks[GSP_PHYS_RMCALL_BUF_INSTANCE]); gsp_phys_rmcall_ctx_diag_dump("RAMFC (post-A-commit pre-BIND)", |
