These patches make the Mali-T628 MP6 GPU of the Exynos 5422 (Samsung
ARTIK 10, also Odroid-XU3/XU4) usable for OpenCL compute with panfrost
and Mesa Rusticl. They touch three subsystems and can be taken
independently:
1/4 iommu: the GPU is not cache coherent on this SoC; its LPAE page
tables must use inner shareable, or the first large GPU buffer
after boot hangs the SoC.
2/4 clk: VPLL rates for GPU operating points above 600 MHz. The
ARTIK 10 device tree is not in mainline, and the mainline 5422
boards stop at 600 MHz; they can use these rates once higher
OPPs are added.
3/4 drm/panfrost: the job affinity names only the shader cores that
are powered.
4/4 drm/panfrost (RFC): power both core groups and let a job opt in
to all of them; the L2 caches of the two groups are not coherent,
so the default stays on the first group.
1-3 were tested on the board (Linux 6.12.55 based) and cross-compiled
on 7.4-rc1. 4 is compile-tested on 7.4-rc1; the same logic, ported to the
board's 6.12-based panfrost module, was tested with the matching Mesa
change: jobs without the flag stay on the first group, jobs that opt in
use all six cores, and global atomics stay correct.
Background, test programs and results:
https://github.com/nirvanahyj-com/mali-t628-opencl/tree/v1
The analysis, the code and the changelogs were produced with Claude Code
(Anthropic), a coding assistant.
Young-Jun Hong (4):
iommu/io-pgtable-arm: use inner shareable for Mali LPAE on a
non-coherent GPU
clk: samsung: exynos5420: add VPLL rates for 650, 700 and 750 MHz
drm/panfrost: only put powered shader cores in the job affinity
drm/panfrost: let jobs opt in to all core groups
drivers/clk/samsung/clk-exynos5420.c | 3 +++
drivers/gpu/drm/panfrost/panfrost_drv.c | 7 ++++++-
drivers/gpu/drm/panfrost/panfrost_gpu.c | 25 +++++++++++++++----------
drivers/gpu/drm/panfrost/panfrost_gpu.h | 2 ++
drivers/gpu/drm/panfrost/panfrost_job.c | 10 ++++++----
drivers/iommu/io-pgtable-arm.c | 7 +++++++
include/uapi/drm/panfrost_drm.h | 10 ++++++++++
7 files changed, 49 insertions(+), 15 deletions(-)
--
2.47.3