Hi Roger, it seems the arm dma direct mapping code isn't doing the right thing here. On other platforms that have > 4G memory we always use swiotlb for bounce buffering in case a device that can't DMA to all the memory. Arm is the odd one out and uses its own dmabounce framework instead, but it seems like it doesn't get used in this case. We need to make sure dmabounce (or swiotlb for that matter) is set up if > 32-bit addressing is supported. I'm not really an arm platform expert, but some of those on the Cc list are and might chime in on how to do that.