Finally we have a working CG3 framebuffer with QEMU on SPARC32!
This patchset, minus integration of Bob's cpeek patches, should be fairly close to the final implementation. It includes FCode source for a CG3 ROM which can be probed using a patched version of QEMU, and should be applied on top of my previous v2 display patchset.
As a teaser, I've created the following images from my testing:
http://www.ilande.co.uk/tmp/sol8-1.png http://www.ilande.co.uk/tmp/sol8-2.png http://www.ilande.co.uk/tmp/sol8-3.png http://www.ilande.co.uk/tmp/debian-woody.png
Some discussion points: what should be the fallback behaviour if we fail an FCode ROM probe for the display? At the moment I attempt to execute an internal copy of the FCode payload directly, so if people are running OpenBIOS on systems which don't emulate SBus then there should be no difference in behaviour.
The only minor issue at the moment is that OpenBIOS will crash if you try to drive the display at 1152x900 rather than 1024x768. This is simply because there isn't enough room in the 2M address space for the extra 200K or so required for the extra screen area. We could probably fix this by trimming out some of the extras such as grubfs (and possibly pre-aligning parts of the memory image) but any ideas gratefully received. If you have access to proprietary ROM images then those should work with the patched QEMU too - please test and let me know.
Finally I've pushed my modifed QEMU source with updated OpenBIOS images to github for testing. Simply pass -vga cg3 on the command line and you will be switched onto the new CG3 framebuffer.
https://github.com/mcayland/qemu/tree/cg3-preview
As always thanks to everyone else for helping to make this possible - enjoy!
Mark Cave-Ayland (2): cg3: add new FCode ROM for QEMU's Sun CG3 framebuffer sbus: add probe for display device
openbios-devel/arch/sparc32/build.xml | 1 + openbios-devel/drivers/build.xml | 1 + openbios-devel/drivers/cgthree.fs | 154 +++++++++++++++++++++++++++++++++ openbios-devel/drivers/sbus.c | 30 ++++++- openbios-devel/drivers/sbus.fs | 27 ++++-- 5 files changed, 202 insertions(+), 11 deletions(-) create mode 100644 openbios-devel/drivers/cgthree.fs