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
