All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/6] drm/panfrost: Add support for AARCH64_4K page table format
@ 2025-03-17 12:40 Ariel D'Alessandro
  2025-03-17 12:40 ` [PATCH v3 1/6] drm/panfrost: Set IOMMU_CACHE flag Ariel D'Alessandro
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Ariel D'Alessandro @ 2025-03-17 12:40 UTC (permalink / raw)
  To: dri-devel, linux-kernel
  Cc: boris.brezillon, robh, steven.price, maarten.lankhorst, mripard,
	tzimmermann, airlied, simona, kernel, linux-mediatek,
	linux-arm-kernel, sjoerd, angelogioacchino.delregno,
	Ariel D'Alessandro

Hi all,

This is a new iteration on Panfrost support for AARCH64_4K page table
format. The main reason behind this patchset is that MediaTek MT8188 SoC
(ARM Mali-G57 MC3 GPU) constantly faults due to the actual Panfrost cache
configuration.

Currently, Panfrost only supports MMU configuration in "LEGACY" (as Bifrost
calls it) mode, a (modified) version of LPAE "Large Physical Address
Extension", which in Linux we've called "mali_lpae".

This patchset adds support for conditionally enabling AARCH64_4K page table
format. To achieve that, a "GPU optional quirks" field was added to
`struct panfrost_features` with the related flag.

Note that, in order to enable AARCH64_4K mode, the GPU variant must have
the HW_FEATURE_AARCH64_MMU feature flag present.

The patchset only enables the new format on Mediatek MT8188 and MT8192,
which have been tested on a Mediatek Genio 700 EVK (MT8390) and Mediatek
Genio 1200 EVK (MT8395) boards respectively.

Thanks!

Changes in v3:
* Fixed error handling in panfrost_mmu_ctx_create().

Changes in v2:
* Dropped panfrost_mmu_enable/disable unification.
* Rename gpu_configs as gpu_quirks.
* Added error handling on page table not properly aligned.
* Enabled AARCH64_4K format on MediaTek MT8192 as well.
* Minor fixes.

Changes in v1:
* Added "Set IOMMU_CACHE flag" patch.
* Replaced `panfrost_mmu->enable()` function pointer by `cfg` struct
prepared during init time.
* Made mali_lpae/aarch64_4k name more clear.
* Added GPU_CONFIG_AARCH64_4K flag to enable AARCH64_4K page table
  format.
* Enabled AARCH64_4K mode only on mediatek-mt8188.

Ariel D'Alessandro (6):
  drm/panfrost: Set IOMMU_CACHE flag
  drm/panfrost: Use GPU_MMU_FEATURES_VA_BITS/PA_BITS macros
  drm/panfrost: Set HW_FEATURE_AARCH64_MMU feature flag on Bifrost
    models
  drm/panfrost: Add support for AARCH64_4K page table format
  drm/panfrost: Force AARCH64_4K page table format on MediaTek MT8188
  drm/panfrost: Force AARCH64_4K page table format on MediaTek MT8192

 drivers/gpu/drm/panfrost/panfrost_device.h   |  16 ++
 drivers/gpu/drm/panfrost/panfrost_drv.c      |   2 +
 drivers/gpu/drm/panfrost/panfrost_features.h |   3 +
 drivers/gpu/drm/panfrost/panfrost_mmu.c      | 149 +++++++++++++++++--
 drivers/gpu/drm/panfrost/panfrost_regs.h     |  36 +++++
 5 files changed, 195 insertions(+), 11 deletions(-)

-- 
2.47.2



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-03-17 14:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17 12:40 [PATCH v3 0/6] drm/panfrost: Add support for AARCH64_4K page table format Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 1/6] drm/panfrost: Set IOMMU_CACHE flag Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 2/6] drm/panfrost: Use GPU_MMU_FEATURES_VA_BITS/PA_BITS macros Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 3/6] drm/panfrost: Set HW_FEATURE_AARCH64_MMU feature flag on Bifrost models Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 4/6] drm/panfrost: Add support for AARCH64_4K page table format Ariel D'Alessandro
2025-03-17 13:44   ` Boris Brezillon
2025-03-17 14:30     ` Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 5/6] drm/panfrost: Force AARCH64_4K page table format on MediaTek MT8188 Ariel D'Alessandro
2025-03-17 12:40 ` [PATCH v3 6/6] drm/panfrost: Force AARCH64_4K page table format on MediaTek MT8192 Ariel D'Alessandro

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.