summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/gsp_phys_booter.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/kernel/gsp_phys_booter.c b/kernel/gsp_phys_booter.c
index e2c2989..2267702 100644
--- a/kernel/gsp_phys_booter.c
+++ b/kernel/gsp_phys_booter.c
@@ -17827,6 +17827,7 @@ gr_page_unmapped:
*/
if (req->n_data && boot_stage.rmcall_gr_bounce.pages) {
u32 wbi, wrote = 0, changed = 0;
+ u32 chg[8] = { };
for (wbi = 0; wbi < req->n_data; wbi++) {
u32 bi = (u32)((req->data[wbi].reloc_va -
@@ -17842,14 +17843,23 @@ gr_page_unmapped:
&boot_stage.rmcall_gr_bounce, bi);
for (ci = 0; ci < GSP_PHYS_PAGE_SIZE; ci += 4)
csum += get_unaligned_le32(src + ci);
- if (csum != bounce_csum_in[bi])
+ if (csum != bounce_csum_in[bi]) {
+ /*
+ * m142: which pages the engine touched. The
+ * indexes name the relocated VA (bi page of
+ * 0x110000); a c-range write is bi >= 0x40.
+ */
+ if (changed < 8)
+ chg[changed] = bi;
changed++;
+ }
memcpy((u8 *)__va(req->data[wbi].hpa), src,
GSP_PHYS_PAGE_SIZE);
wrote++;
}
- pr_info("vgsp-gr: bounce copy-out: %u pages written back, %u changed by engine\n",
- wrote, changed);
+ pr_info("vgsp-gr: bounce copy-out: %u pages written back, %u changed by engine (first bi: %u %u %u %u %u %u %u %u)\n",
+ wrote, changed, chg[0], chg[1], chg[2], chg[3], chg[4],
+ chg[5], chg[6], chg[7]);
}
poll = w1;
if (bar0)