Re: [RFC PATCH 3/4] drm/panfrost: Support ARM_64_LPAE_S1 page table

From: Ariel D'Alessandro
Date: Mon Mar 10 2025 - 11:35:09 EST


Hi Boris,

On 2/27/25 11:55 AM, Boris Brezillon wrote:
On Wed, 26 Feb 2025 15:30:42 -0300
Ariel D'Alessandro <ariel.dalessandro@xxxxxxxxxxxxx> wrote:

@@ -642,8 +713,15 @@ struct panfrost_mmu *panfrost_mmu_ctx_create(struct panfrost_device *pfdev)
.iommu_dev = pfdev->dev,
};
- mmu->pgtbl_ops = alloc_io_pgtable_ops(ARM_MALI_LPAE, &mmu->pgtbl_cfg,
- mmu);
+ if (panfrost_has_hw_feature(pfdev, HW_FEATURE_AARCH64_MMU)) {
+ fmt = ARM_64_LPAE_S1;
+ mmu->enable = mmu_lpae_s1_enable;
+ } else {
+ fmt = ARM_MALI_LPAE;
+ mmu->enable = mmu_mali_lpae_enable;
+ }

How about we stick to the legacy pgtable format for all currently
supported GPUs, and make this an opt-in property attached to the
compatible. This way, we can progressively move away from the legacy
format once enough testing has been done, while allowing support for
GPUs that can't use the old format because the cachability/shareability
configuration is too limited.

Indeed, that's a better way to go.

Specifically, what you mean is: keep the same compatible string and add a new property to the `panfrost_compatible` private data for that specific variant? E.g.

In drivers/gpu/drm/panfrost/panfrost_drv.c:
```
struct panfrost_compatible mediatek_mt8188_data
[...]
{ .compatible = "mediatek,mt8188-mali", .data = &mediatek_mt8188_data },
```

Thanks,

--
Ariel D'Alessandro
Software Engineer

Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK Registered in England & Wales, no. 5513718