On Thu, 6 Jun 2024 at 22:18, Robin Murphy <robin.mur...@arm.com> wrote: > > On 2024-06-06 6:13 pm, Jonathan Cameron wrote: > > On Thu, 6 Jun 2024 12:56:59 +0100 > > Peter Maydell <peter.mayd...@linaro.org> wrote: > > > >> On Thu, 6 Jun 2024 at 11:48, Zhenyu Zhang <zheny...@redhat.com> wrote: > >>> In Linux, a check is applied to every device which is exposed through > >>> device-tree > >>> node. The warning message is raised when the device isn't DMA coherent > >>> and the > >>> cache line size is larger than ARCH_DMA_MINALIGN (128 bytes). The cache > >>> line is > >>> sorted from CTR_EL0[CWG], which corresponds to 256 bytes on the guest > >>> CPUs. > >>> The DMA coherent capability is claimed through 'dma-coherent' in their > >>> device-tree nodes. > >> > >> For QEMU emulated all our DMA is always coherent, so where we > >> have DMA-capable devices we should definitely tell the kernel > >> that that DMA is coherent. > > The trick for that is to put the "dma-coherent" property right in the > root of the DT so it plausibly communicates "the whole platform is > coherent", and is then inherited by all devices, even those which > shouldn't technically need it.
Ah, cool -- that's a pretty small change and it makes sense, and avoids us having potential bugs in future where we forget to mark a really-does-do-DMA device as dma-coherent. I like that a lot better than adding incorrect dma-coherent tags to lots of device nodes that aren't for DMA-capable devices. thanks -- PMM