After kernel commit: http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.0/commit/?h=meta&id=9728c1b6a724daefc413b44e10253cdbb5e06d08 It appears that the emulated colours in qemu are incorrect and that the red and blue channels are reversed. This patch reverses that logic so the colours are correctly displayed on the versatile platform which doesn't support the BGR bit. RP 16/9/2011 Upstream-status: Pending Index: qemu-0.14.0/hw/pl110.c =================================================================== --- qemu-0.14.0.orig/hw/pl110.c 2011-09-16 14:45:34.228668514 +0100 +++ qemu-0.14.0/hw/pl110.c 2011-09-16 15:17:22.458671206 +0100 @@ -141,7 +141,11 @@ fprintf(stderr, "pl110: Bad color depth\n"); exit(1); } - if (s->cr & PL110_CR_BGR) + + if (s->versatile && s->bpp == BPP_16) + /* Code assumes BPP_16 == 565 and BGR is never set on the versatile in 565 mode */ + bpp_offset = 0; + else if (s->cr & PL110_CR_BGR) bpp_offset = 0; else bpp_offset = 18;