* Stefano Stabellini <sstabell...@kernel.org> [2020-04-28 16:04:34]: > > > Is swiotlb commonly used for multiple devices that may be on different > > > trust > > > boundaries (and not behind a hardware iommu)? > > The trust boundary is not a good way of describing the scenario and I > think it leads to miscommunication. > > A better way to describe the scenario would be that the device can only > DMA to/from a small reserved-memory region advertised on device tree. > > Do we have other instances of devices that can only DMA to/from very > specific and non-configurable address ranges? If so, this series could > follow their example.
AFAICT there is no such notion in current DMA API. static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size, bool is_ram) { return end <= min_not_zero(*dev->dma_mask, dev->bus_dma_limit); } Only the max address a device can access is defined and not a range that we seem to need here. I think we need to set the bus_dma_limit to 0 for virtio devices which will force the use of swiotlb_map API. We should also have a per-device swiotlb pool defined, so that swiotlb can use the pool meant for the given device. -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu