From dc5b6507889d07003cf01ed1d784c0faf48bec03 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Tue, 6 Oct 2026 15:19:54 -0400 Subject: vgsp: m26 GR launch discriminator - rebuilt window (prelude off), QMD-virt 0x29c, w63 sentinel --- kernel/gsp_phys_booter.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'kernel/gsp_phys_booter.h') diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h index 67d5d5c..e46fb86 100644 --- a/kernel/gsp_phys_booter.h +++ b/kernel/gsp_phys_booter.h @@ -336,14 +336,16 @@ 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 /* - * IQ2M sentinel: written to the inline-QMD destination's word 0 after the - * prewrite. If the engine processes the inline window, the copy overwrites - * the page (word 0 -> the inline value, 0) and the post-mortem sees the page + * IQ2M sentinel: written to the inline-QMD destination's word 63 after the + * prewrite (a word SKED does not consume; word 0 stays the guest's authentic + * OUTER_PUT). If the engine processes the inline window, the copy overwrites + * the page (word 63 -> the inline value) and the post-mortem sees the page * changed; if the sentinel survives, the engine stalled before the inline * window and the page was never touched. Distinguishes "IQ2M never ran" from * "QMD deposited but not executed" without a server-side capture. */ #define GSP_PHYS_GR_QMD_SENTINEL 0xdeadbeefu +#define GSP_PHYS_GR_QMD_SENTINEL_WORD 63u #define GSP_PHYS_GR_QMD_WORD_NONE 0xffffffffu #define GSP_PHYS_GR_RAW_WORDS 256u -- cgit v1.2.3