Help needed to unblock upstreaming of mt8365 / mt8183 APU remoteproc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

For a long time now, I am trying to upstream support of remoteproc driver for the APU (AI accelerator) found in MT8183 and MT8365.

There is a blocker that I am not able to address and I need some help to find a solution. The blocker always related to IOMMU and device address management.

Let's me give some context.
The APU is an xtensa processor with some instructions set that could be used for edge AI/ML.
We want use remoteproc to load a firmware and start the processor.
The main issue is that the firmware is not relocatable so we have to load it at specific address and the APU is behind an IOMMU.
This use case is already managed by remoteproc core.
But, the remoteproc require an unmanaged IOMMU domain to use the IOMMU which is not supported by the MT8183 / MT8365.

To workaround it, I tried a couple of things:
- From the platform driver I passed to the core the device IOMMU domain
- I updated the platform to use the IOMMU API but this duplicates remoteproc core
- I tried adding support of unmanaged domain IOMMU
None of these proposals were acceptable for good reasons but now I don't have much thing to try. The only thing I have not tried yet is adding a new function to DMA API that would allow allocating a buffer that would be mapped at a specific DMA address.

Currently, everything is closed source (the sources, the toolchains, ...) so there is not many thing I could do to make it relocatable. Someday, I hope that we could use an open source toolchain and firmware but this will take a lot of time before coming.

I hope the issue I am facing is clear and we will find a solution together.

Thanks,
Alexandre



[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux