Message ID | 20250324185801.168664-1-ariel.dalessandro@collabora.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/panfrost: Add support for AARCH64_4K page table format | expand |
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