There is the 16MB section of the memory map that is unavailable to the ARM due to the peripherals all being mapped into that area. On a Pi0/1 that isn't an issue, but on a 2 or 3 that equates to 16MB of unaccesible RAM.
That block is accessible to the VPU, and is therefore used for various structures only relevant to the VPU. vcdbg wants to be able to view some of those so needs a mechanism to use dma to copy into an accessible buffer.
The frame buffer driver already had the
FBIODMACOPY ioctl to do random dma copies, so it was quicker and easier to use that then invent a new kernel driver just to do it.
If that fails then it appears to fall back to using part of vc-mem and mmap'ing it. The associated comment is:
Code: Select all
// DMA allows memory to be accessed above 1008M and is more coherent so try this first
Yes it would be sensible to shut up the /dev/fb0 error as it isn't critical.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.