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-1.2.0/hw/pl110.c
===================================================================
--- qemu-1.2.0.orig/hw/pl110.c	2012-09-06 14:07:27.619821133 -0700
+++ qemu-1.2.0/hw/pl110.c	2012-09-06 14:12:07.699829648 -0700
@@ -168,7 +168,11 @@
         fprintf(stderr, "pl110: Bad color depth\n");
         exit(1);
     }
-    if (s->cr & PL110_CR_BGR)
+
+    if (s->version && 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 = 24;
