So - why does it corrupt data then? I've created this program thatMost accelerated graphics drivers rely heavily on the ability to mapYeah, I'd expect framebuffers to be mapped as normal NC. That should be
the VRAM normal-non-cacheable (ioremap_wc, basically), and treat it as
ordinary memory.
fine for prefetchable BARs, no?
Will
reproduces the data corruption quicky. If I run it on /dev/fb0, I get an
instant failure. Sometimes a few bytes are not written, sometimes a few
bytes are written with a value that should be 16 bytes apart.
I tried to run it on system RAM mapped with the NC attribute and I didn't
get any corruption - that suggests the the bug may be in the PCIE
subsystem.