summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/gsp_phys_booter.c')
-rw-r--r--kernel/gsp_phys_booter.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index 7b99fc4..fac390c 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -28537,6 +28537,7 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
inl->data, len);
{
static u32 inl_alias_log;
+ static u32 inl_alias_writer_log;
if (inl_alias_log < 12u) {
inl_alias_log++;
@@ -28547,6 +28548,26 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
get_unaligned_le32(inl->data) :
0u);
}
+ if (inl_alias_writer_log < 16u &&
+ len >= 128u) {
+ inl_alias_writer_log++;
+ pr_info("vgsp-gr: INLINE-WRITER-ALIAS h=0x%x push=0x%llx dst=0x%llx len=%u pg_va=0x%llx pa=0x%llx ap=%u fb=0x%llx hpa=0x%llx first8=%08x %08x %08x %08x\n",
+ req->h_object, req->push_va,
+ inl->dst_va, len, pg_va,
+ pg->reserved &
+ 0x3fffffffuLL,
+ (pg->reserved >> 31) ?
+ 2u : 1u,
+ (pg->reserved >> 31) ?
+ (u64)(pg->reserved &
+ 0x3fffffffu) :
+ 0ULL,
+ pg->hpa,
+ len >= 4 ? get_unaligned_le32(inl->data) : 0u,
+ len >= 8 ? get_unaligned_le32(inl->data + 4) : 0u,
+ len >= 12 ? get_unaligned_le32(inl->data + 8) : 0u,
+ len >= 16 ? get_unaligned_le32(inl->data + 12) : 0u);
+ }
}
}
}
@@ -28776,6 +28797,7 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
*/
{
static u32 inl_apply_log;
+ static u32 inl_writer_log;
if (inl_apply_log < 24) {
inl_apply_log++;
@@ -28786,6 +28808,35 @@ int gsp_phys_backend_guest_gr_submit(const struct gsp_phys_gr_submit *req,
len >= 4 ? get_unaligned_le32(inl->data) : 0u,
len >= 8 ? get_unaligned_le32(inl->data + 4) : 0u);
}
+ /*
+ * r1503 (mission task 1): decisive
+ * writer receipt for every image-sized
+ * inline delivery - names the emitting
+ * launch, the VA, the resolved PA /
+ * aperture and the first payload words,
+ * so a delivery that lands in a
+ * scanout/window-buffer page is
+ * provable from the log alone.
+ */
+ if (inl_writer_log < 32u && len >= 128u) {
+ inl_writer_log++;
+ pr_info("vgsp-gr: INLINE-WRITER h=0x%x push=0x%llx dst=0x%llx len=%u pg_va=0x%llx pa=0x%llx ap=%u fb=0x%llx hpa=0x%llx first8=%08x %08x %08x %08x\n",
+ req->h_object, req->push_va,
+ inl->dst_va, len, pg_va,
+ pg->reserved &
+ 0x3fffffffuLL,
+ (pg->reserved >> 31) ?
+ 2u : 1u,
+ (pg->reserved >> 31) ?
+ (u64)(pg->reserved &
+ 0x3fffffffu) :
+ 0ULL,
+ pg->hpa,
+ len >= 4 ? get_unaligned_le32(inl->data) : 0u,
+ len >= 8 ? get_unaligned_le32(inl->data + 4) : 0u,
+ len >= 12 ? get_unaligned_le32(inl->data + 8) : 0u,
+ len >= 16 ? get_unaligned_le32(inl->data + 12) : 0u);
+ }
}
/*
* SESSION 153-CONTINUED-87: readback witness.