From 1100ffbf674caab4efdf319462fea9b6e197290d Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 07:48:07 -0400 Subject: vgsp: verbatim replay of the captured GR launch prelude+window --- kernel/gsp_phys_booter.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'kernel/gsp_phys_booter.h') diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h index 42bf1ff..9a0331f 100644 --- a/kernel/gsp_phys_booter.h +++ b/kernel/gsp_phys_booter.h @@ -336,6 +336,7 @@ void gsp_phys_backend_relay_counters(u64 *requested, u64 *ok, u64 *verify_fail, #define GSP_PHYS_GR_INLINE_BYTES 64u #define GSP_PHYS_GR_QMD_WORDS 64u #define GSP_PHYS_GR_QMD_WORD_NONE 0xffffffffu +#define GSP_PHYS_GR_RAW_WORDS 256u struct gsp_phys_gr_page { u64 guest_va; /* guest VA (page aligned) */ @@ -353,6 +354,17 @@ struct gsp_phys_gr_inline { struct gsp_phys_gr_submit { const u32 *qmd; /* 64 rewritten-QMD source words */ u32 qmd_words; /* must be GSP_PHYS_GR_QMD_WORDS */ + /* + * Verbatim replay: the captured tail of the guest push (up to + * GSP_PHYS_GR_RAW_WORDS dwords) and the dword offsets of its + * inline-QMD run inside that tail. A contiguous 0x318 run + * (header + A/B + 64 words) is replayed with the same data-field + * relocations; anything else leaves the rebuilt window in use. + */ + const u32 *raw; + u32 raw_words; + u32 raw_qmd_hdr; + u32 raw_qmd_end; u64 qmd_va; /* guest VA of the QMD buffer */ u64 qmd_hpa; /* guest QMD buffer page HPA, or 0 */ const struct gsp_phys_gr_page *pages; -- cgit v1.2.3