summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_booter.h')
-rw-r--r--kernel/gsp_phys_booter.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h
index cc3b935..ada3280 100644
--- a/kernel/gsp_phys_booter.h
+++ b/kernel/gsp_phys_booter.h
@@ -317,13 +317,16 @@ int gsp_phys_boot_rm_unload(void __iomem *bar0);
* gsp_phys_guest_mem=1 and a GPA pinned through gsp-phys-guest-gpa,
* writing 7 (G2H, guest read) and then 6 (W2G, guest write) additionally
* run one 4 KB CE copy each against that guest RAM page: the GPA is
- * translated through the active mdev's VFIO type-1 domain, the physical
- * device's domain must be identity, the corresponding channel PDB slot
- * (0x106 read / 0x105 write) is programmed with the translated HPA, and
- * the result is verified with a direct-map memcmp. Both directions are
- * gated on a live READY claim, ladder stage >= 3 and the pinned GPA;
- * every refusal is a logged no-op and no guest byte is touched unless
- * G2H already proved the translation.
+ * re-translated through the active mdev's VFIO type-1 domain at trigger
+ * time, the physical device's domain must be identity, and the copy runs
+ * through the P6b fresh 128 B scratch-line path (one never-reused line
+ * per pair; the internal trigger variant of the guest-copy backend, so
+ * gsp_phys_work_forward is not required), so a host PA that changed since
+ * the pin cannot be shadowed by an engine-cached PTE fetch. The result is
+ * verified with a direct-map memcmp. Both directions are gated on a live
+ * READY claim, ladder stage >= 3 and the pinned GPA; every refusal is a
+ * logged no-op and no guest byte is touched unless G2H already proved
+ * the translation.
* - "gsp-phys-guest-gpa" (write-only, mode 0200): pin the one guest RAM
* GPA ("0x<hex>", 4 KB page-aligned) that the rm-call guest directions
* may touch. One GPA per boot (a second different GPA is refused: