Thread (48 messages) 48 messages, 3 authors, 2025-04-10

Re: [PATCH v6 05/10] tee: implement restricted DMA-heap

From: Jens Wiklander <hidden>
Date: 2025-04-08 13:28:58
Also in: dri-devel, linux-media, lkml, op-tee

On Tue, Apr 8, 2025 at 11:14 AM Sumit Garg [off-list ref] wrote:
On Tue, Apr 01, 2025 at 10:33:04AM +0200, Jens Wiklander wrote:
quoted
On Tue, Apr 1, 2025 at 9:58 AM Sumit Garg [off-list ref] wrote:
quoted
On Tue, Mar 25, 2025 at 11:55:46AM +0100, Jens Wiklander wrote:
quoted
Hi Sumit,
<snip>
quoted
quoted
quoted
+
+#include "tee_private.h"
+
+struct tee_dma_heap {
+     struct dma_heap *heap;
+     enum tee_dma_heap_id id;
+     struct tee_rstmem_pool *pool;
+     struct tee_device *teedev;
+     /* Protects pool and teedev above */
+     struct mutex mu;
+};
+
+struct tee_heap_buffer {
+     struct tee_rstmem_pool *pool;
+     struct tee_device *teedev;
+     size_t size;
+     size_t offs;
+     struct sg_table table;
+};
+
+struct tee_heap_attachment {
+     struct sg_table table;
+     struct device *dev;
+};
+
+struct tee_rstmem_static_pool {
+     struct tee_rstmem_pool pool;
+     struct gen_pool *gen_pool;
+     phys_addr_t pa_base;
+};
+
+#if !IS_MODULE(CONFIG_TEE) && IS_ENABLED(CONFIG_DMABUF_HEAPS)
Can this dependency rather be better managed via Kconfig?
This was the easiest yet somewhat flexible solution I could find. If
you have something better, let's use that instead.
--- a/drivers/tee/optee/Kconfig
+++ b/drivers/tee/optee/Kconfig
@@ -5,6 +5,7 @@ config OPTEE
        depends on HAVE_ARM_SMCCC
        depends on MMU
        depends on RPMB || !RPMB
+       select DMABUF_HEAPS
        help
          This implements the OP-TEE Trusted Execution Environment (TEE)
          driver.
I wanted to avoid that since there are plenty of use cases where
DMABUF_HEAPS aren't needed.
Yeah, but how the users will figure out the dependency to enable DMA
heaps with TEE subsystem.
I hope, without too much difficulty. They are after all looking for a
way to allocate memory from a DMA heap.
So it's better we provide a generic kernel
Kconfig which enables all the default features.
I disagree, it should be possible to configure without DMABUF_HEAPS if desired.
quoted
This seems to do the job:
+config TEE_DMABUF_HEAP
+ bool
+ depends on TEE = y && DMABUF_HEAPS

We can only use DMABUF_HEAPS if the TEE subsystem is compiled into the kernel.
Ah, I see. So we aren't exporting the DMA heaps APIs for TEE subsystem
to use. We should do that such that there isn't a hard dependency to
compile them into the kernel.
I was saving that for a later patch set as a later problem. We may
save some time by not doing it now.

Cheers,
Jens
-Sumit
quoted
Cheers,
Jens
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help