Index: arm/broadcom/bcm2835/bcm2835_fbd.c =================================================================== --- arm/broadcom/bcm2835/bcm2835_fbd.c (revision 306382) +++ arm/broadcom/bcm2835/bcm2835_fbd.c (working copy) @@ -113,6 +113,8 @@ sc->info.fb_stride = fb.pitch; sc->info.fb_width = fb.xres; sc->info.fb_height = fb.yres; + sc->info.fb_flags = FB_FLAG_MEMATTR; + sc->info.fb_memattr = VM_MEMATTR_WRITE_COMBINING; if (sc->fbswap) { switch (sc->info.fb_bpp) { Index: dev/fb/fbd.c =================================================================== --- dev/fb/fbd.c (revision 306382) +++ dev/fb/fbd.c (working copy) @@ -178,6 +178,8 @@ *paddr = vtophys((uint8_t *)info->fb_vbase + offset); else *paddr = info->fb_pbase + offset; + if (info->fb_flags & FB_FLAG_MEMATTR) + *memattr = info->fb_memattr; return (0); } return (EINVAL); Index: sys/fbio.h =================================================================== --- sys/fbio.h (revision 306382) +++ sys/fbio.h (working copy) @@ -142,6 +142,8 @@ uint32_t fb_flags; #define FB_FLAG_NOMMAP 1 /* mmap unsupported. */ #define FB_FLAG_NOWRITE 2 /* disable writes for the time being */ +#define FB_FLAG_MEMATTR 4 /* override memattr for mmap */ + vm_memattr_t fb_memattr; int fb_stride; int fb_bpp; /* bits per pixel */ uint32_t fb_cmap[16];