| From: |
| Ariel D'Alessandro <ariel.dalessandro-AT-collabora.com> |
| To: |
| dri-devel-AT-lists.freedesktop.org, linux-kernel-AT-vger.kernel.org |
| Subject: |
| [PATCH v2 0/6] drm/panfrost: Add support for AARCH64_4K page table format |
| Date: |
| Fri, 14 Mar 2025 14:38:52 -0300 |
| Message-ID: |
| <20250314173858.212264-1-ariel.dalessandro@collabora.com> |
| Cc: |
| boris.brezillon-AT-collabora.com, robh-AT-kernel.org, steven.price-AT-arm.com, maarten.lankhorst-AT-linux.intel.com, mripard-AT-kernel.org, tzimmermann-AT-suse.de, airlied-AT-gmail.com, simona-AT-ffwll.ch, kernel-AT-collabora.com, linux-mediatek-AT-lists.infradead.org, linux-arm-kernel-AT-lists.infradead.org, sjoerd-AT-collabora.com, angelogioacchino.delregno-AT-collabora.com, Ariel D'Alessandro <ariel.dalessandro-AT-collabora.com> |
| Archive-link: |
| Article |
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 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 | 146 +++++++++++++++++--
drivers/gpu/drm/panfrost/panfrost_regs.h | 36 +++++
5 files changed, 190 insertions(+), 13 deletions(-)
--
2.47.2