[PATCH v5 0/6] drm/panfrost: Add support for AARCH64_4K page table format
Steven Price
steven.price at arm.com
Mon Mar 31 04:15:59 PDT 2025
On 24/03/2025 18:57, Ariel D'Alessandro wrote:
> 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 v5:
> * Fixed drm_WARN() in panfrost_mmu_cfg_init().
>
> Changes in v4:
> * Fixed panfrost_mmu_cfg_init() return value on warning.
>
> 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 | 150 +++++++++++++++++--
> drivers/gpu/drm/panfrost/panfrost_regs.h | 36 +++++
> 5 files changed, 196 insertions(+), 11 deletions(-)
>
This looks in good shape now, so unless anyone shouts I'll merge this to
drm-misc-next later today.
Thanks,
Steve
More information about the linux-arm-kernel
mailing list