Anyway, on first investigation I'm not sure what QEMU's pl11x model is doing wrong. The 8-bit mode is a palette-based setup, where the guest must program in the RGB values it wants to use into the palatte registers as RGB555 data: https://developer.arm.com/documentation/ddi0293/c/programmer-s-model/register-descriptions/256x16-bit-color-palette-registers?lang=en and if you add some debug printing to QEMU you can see the guest writing in a variety of definitely-not-shades-of-grey values to the palette, so it's not surprising that it comes back as not-grey.
I think https://elixir.bootlin.com/linux/latest/source/drivers/video/fbdev/amba-clcd.c#L343 is where the driver is writing to the palette and it definitely thinks the display is pseudocolor, not greyscale. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1914535 Title: PL110 8-bit mode is not emulated correctly Status in QEMU: New Bug description: When the emulated pl110/pl111 is switched programmatically to 8-bit color depth mode, the display is drawn green and blue, but the real PL110 displays grayscale in 8-bit mode. The bug appears in qemu-system-arm version 3.1.0 (Debian 1:3.1+dfsg-8+deb10u8) and qemu-system-arm version 5.2.50 (v5.2.0-1579-g99ae0cd90d). To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1914535/+subscriptions