This patch series improves the emulation of the PL11x CLCD controllers used by the various ARM dev boards.
vexpress-a9, realview-eb, realview-eb-mpcore, realview-pb-a8 and realview-pbx-a9 should all have a PL111, not a PL110; the PL111 implements two extra pixel formats. (I haven't implemented the hardware cursor support in the PL111; we didn't implement it in the "pl110_versatile" either; Linux doesn't use it, anyway.) versatilepb has a PL110 but it also has an external mux controlled by a system register which allows the OS to select whether the 16 bit graphics format should be 5551, RGB565 or BGR565. In particular, Linux kernels 2.6.39 and above default to programming the versatilepb for BGR565, so we need to support the mux control rather than always assuming RGB565. This is a bit of a cross between a new feature and a bug fix; my guess is "not for 0.15" but if enough people complain about the graphics being busted in versatilepb then it will end up in 0.15.1... Peter Maydell (3): hw/pl110: Model the PL111 CLCD controller versatilepb: Implement SYS_CLCD mux control register bits vexpress, realview: Use pl111, not pl110 hw/arm_sysctl.c | 49 ++++++++++++++++++++- hw/pl110.c | 115 ++++++++++++++++++++++++++++++++++++++++++-------- hw/pl110_template.h | 102 ++++++++++++++++++++++++++++++++++++++++++--- hw/realview.c | 2 +- hw/syborg_fb.c | 15 +++++- hw/versatilepb.c | 13 ++++- hw/vexpress.c | 2 +- 7 files changed, 261 insertions(+), 37 deletions(-)