[PATCH 0/5] drm/msm: More complete devcoredump support for a7xx

Connor Abbott cwabbott0 at gmail.com
Thu Jan 25 13:10:53 UTC 2024


The current devcoredump support on a7xx is quite limited. Downstream,
there are now autogenerated register headers for each generation (a730,
a740, and a750), which means that we must try to re-use them as much as
possible instead of reinventing our own register list descriptions as
was done on a6xx. In addition, due to changes like:

- The addition of the BV and LPAC pipes.
- The addition of a VPC_PS cluster.
- Some clusters having 4 contexts instead of 2.
- HLSQ and SP registers getting merged, so the same register can now
  be stored separately in HLSQ, SP "top", and each uSPTP (this also made
  the HLSQ registers get shuffled around into SP).

how we capture cluster registers needs to be significantly different.

The downstream code seems to depend on a "regmap" that takes various
disparate register spaces (like cx_misc aka cx_mem, cx_dbgc, gmu, etc.)
defined in devicetree and pretends they are enlargements of the "base"
register space at 3d00000. For now we don't dump the problematic
register lists, but we'll need to come up with a solution for proplerly
dumping GMU registers and what downstream calls "external core"
registers.

It seems that the debugbus hasn't changed much, however I cannot test it
because it seems either the debugbus is fused off on HDK8550 or I'm
doing something wrong - it returns all 0.

Initial crashdec support will come in a mesa MR.

This series depends on [1] to avoid conflicts. The updated registers
in the second commit come from [2] in mesa. The kgsl headers in the
first commit come from [3] (I have no idea how their release scheme
works, but it seems most branches have the same contents for these
files).

[1] https://patchwork.freedesktop.org/series/128902/
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27264
[3] https://git.codelinaro.org/clo/la/platform/vendor/qcom/opensource/graphics-kernel/-/tree/gfx-auto-kernel.lnx.1.0.r8-rel?ref_type=heads

Connor Abbott (5):
  drm/msm: Import a7xx crashdump register lists from kgsl
  drm/msm/adreno: Update a6xx headers for a7xx devcoredump
  drm/msm: Fix snapshotting a7xx indexed regs
  drm/msm: More fully implement devcoredump for a7xx
  drm/msm: Fix page fault client detection on a660 family and a7xx

 drivers/gpu/drm/msm/adreno/a6xx.xml.h         | 785 ++++++++++-----
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c         |  95 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c   | 727 ++++++++++++--
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h   | 311 +++++-
 .../drm/msm/adreno/adreno_gen7_0_0_snapshot.h | 928 ++++++++++++++++++
 .../drm/msm/adreno/adreno_gen7_2_0_snapshot.h | 753 ++++++++++++++
 6 files changed, 3235 insertions(+), 364 deletions(-)
 create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h
 create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h

-- 
2.31.1



More information about the Freedreno mailing list