On Mon, Apr 14, 2025 at 10:24:55AM +0200, Thomas Petazzoni wrote:
What this patch series is about is to add new user-space interface to extend the existing UIO subsystem.
Which as I explained to you is fundamentally broken and unsafe. If you need to do DMA from userspae you need to use vfio/iommufd.
I am not sure how this can work in our use-case. We have a very simple set of IP blocks implemented in a FPGA, some of those IP blocks are able to perform DMA operations. The register of those IP blocks are mapped into a user-space application using the existing, accepted upstream, UIO subsystem. Some of those registers allow to program DMA transfers. So far, we can do all what we need, except program those DMA transfers. Lots of people are having the same issue, and zillions of ugly out-of-tree solutions flourish all over, and we're trying to see if we can constructively find a solution that would be acceptable upstream to resolve this use-case. Our platform is an old PowerPC with no IOMMU.
Then your driver design can't work and you need to replace it with a proper in-kernel driver.