Re: [PATCH 4/8] drm/panthor: Add support for protected memory allocation in panthor

Boris Brezillon
2026-05-06T10:50:24Z

On Wed, 6 May 2026 12:08:24 +0200
Maxime Ripard <mripard@kernel.org> wrote:

> Hi,
>
> On Tue, May 05, 2026 at 04:05:10PM +0200, Ketil Johnsen wrote:
> > From: Florent Tomasin <florent.tomasin@arm.com>
> >
> > This patch allows Panthor to allocate buffer objects from a
> > protected heap. The Panthor driver should be seen as a consumer
> > of the heap and not an exporter.
> >
> > Protected memory buffers needed by the Panthor driver:
> > - On CSF FW load, the Panthor driver must allocate a protected
> > buffer object to hold data to use by the FW when in protected
> > mode. This protected buffer object is owned by the device
> > and does not belong to a process.
> > - On CSG creation, the Panthor driver must allocate a protected
> > suspend buffer object for the FW to store data when suspending
> > the CSG while in protected mode. The kernel owns this allocation
> > and does not allow user space mapping. The format of the data
> > in this buffer is only known by the FW and does not need to be
> > shared with other entities.
> >
> > The driver will retrieve the protected heap using the name of the
> > heap provided to the driver as module parameter.
>
> I know it's what dma_heap_find asks for, but I wonder if it wouldn't be
> better in the device tree and lookup through the device node? heaps are
> going to have a node anyway, right?

I'm not too sure. Take the PROTMEM (name="protected,xxxx") dma_heaps
instantiated by optee for instance, I don't think the originating
tee_device comes from a device node, nor is the underlying heap
described as a device node. The reserved memory pool this protected heap
comes from is most likely defined somewhere as reserved memory in the
DT, but there's nothing to correlate this range of reserved mem to some
sub-range that the TEE implementation is carving out to provide
protected memory.

>
> This would allow you to have a default that works and not mess to much
> with the kernel parameters that aren't always easy to change for
> end-users.

I guess we can have a default list of heaps that we know provide
protected memory for GPU rendering if that helps. Right now this list
would contain only "protected,trusted-ui" :D. The other option would be
to make this list a panthor Kconfig option and not expose it as a module
param.