Last year Ben posted an initial set of patches for OpenBIOS which provided a MacOS PPC VGA driver enabling MacOS guests to control the colour depth and resolution of the QEMU stdvga device. The QemuMacDrivers repository was set up on qemu-project.org [1] but due to personal circumstances in the second half of last year, I was unable to spend much time on it.
Over the last few months I've reworked the OpenBIOS patches and applied all the required dependencies upstream which makes it possible to enable the driver with a fairly simple patch [2] to OpenBIOS's vga.fs (binary provided for testing, but not to be included in the final merge). The main change I've made is that instead of serving the driver binary directly through the VGA PCI BAR (with the relevant binary inlined within OpenBIOS), the driver is now hosted by QEMU and is installed via the fw_cfg interface by the OpenBIOS vga.fs driver during startup. Not only does this make it possible to further develop the driver without also having to rebuild OpenBIOS every time but it also leaves us with the ability to serve a proper IEEE-1275 FCode ROM via the VGA PCI BAR later if needed. In addition to this I've added a new OpenBIOS NVRAM variable "vga-ndrv?" which defaults to "true" but can be overidden via -prom-env to force disable the driver if any incompatibilities are found. I've tested it locally against my OS X 10.2 and MacOS 9.2.1 images and it seems to work there, but as I don't have an exhaustive set of MacOS images available I'd be grateful for some more testing. [1] https://lists.gnu.org/archive/html/qemu-devel/2016-07/msg06159.html [2] https://mail.coreboot.org/pipermail/openbios/2017-May/009909.html This patchset can also be found on my github repository at https://github.com/mcayland/qemu/tree/ppc-vga-upstream. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> Mark Cave-Ayland (5): Add QemuMacDrivers as submodule Add QemuMacDrivers qemu_vga.ndrv revision d4e7d7a built as submodule ppc: add qemu_vga.ndrv ROM to fw_cfg interface for OldWorld Macs ppc: add qemu_vga.ndrv ROM to fw_cfg interface for NewWorld Macs [Testing] Provide NDRV-capable openbios-ppc binary for testing .gitmodules | 3 +++ Makefile | 3 ++- hw/ppc/mac_newworld.c | 18 +++++++++++++++++- hw/ppc/mac_oldworld.c | 18 +++++++++++++++++- pc-bios/README | 3 +++ pc-bios/openbios-ppc | Bin 750840 -> 754936 bytes pc-bios/qemu_vga.ndrv | Bin 0 -> 14752 bytes roms/QemuMacDrivers | 1 + 8 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 pc-bios/qemu_vga.ndrv create mode 160000 roms/QemuMacDrivers -- 1.7.10.4