On Wed, 27 Dec 2023, Baruch Siach wrote:
of_dma_get_max_cpu_address() returns the highest CPU address that devices can use for DMA. The implicit assumption is that all CPU addresses below that limit are suitable for DMA. However the 'dma-ranges' property this code uses also encodes a lower limit for DMA that is potentially non zero.
All of memory can be used for DMA by default (==ZONE_NORMAL). ZONE_DMA defines a special range for devices that are unable to perform DMA to all of memory. Usually due to the lack of address bit support.
So I guess that the platform in question here has as a general limit as to what address spaces I/O devices can do DMA to?