Hello !
Here are a few patches for QEMU and OpenBIOS, about SPARC32, grouped into two diffs:
OpenBIOS : http://temlib.org/pub/openbios_nn.diff QEMU : http://temlib.org/pub/qemu_nn.diff
Changes:
OpenBIOS * SparcStation10/20 mode fix (drivers/iommu.c, drivers/sbus.c)
- TCX properties (drivers/tcx.fs) - next-property (forth/device/property.fs) - Keyboard property (drivers/escc.c)
+ Memory allocation/deallocation (arch/sparc32/lib.c, arch/sparc32/ofmem_sparc32.c, libopenbios/ofmem_common.c, arch/sparc32/romvec.h) + a.out file loading (libopenbios/aout_load.c) + Dummy TICK counter (arch/sparc32/romvec.c) + Interrupt/Timer properties (include/drivers/drivers.h, forth/device/property.fs, drivers/obio.c)
QEMU - TCX Hardware acceleration : Blitter, Stippler, HW cursor (hw/display/tcx.c, hw/sparc/sun4m.c) - "!TC on DATA XFER" warning under NetBSD (hw/scsi/esp.c) + Timer Run/Stop bit correction (hw/timer/slavio_timer.c)
TCX emulation with acceleration seems good enough, although it is incomplete and it is probably impossible to implement the 24bits mode accurately and efficiently in QEMU.
I will post each patch separately on the two mailing lists. TCX patches should be synchronised : OpenBIOS cannot advertise an hardware cursor until it is actually implemented.
One more thing.
After NetBSD and TCX acceleration, I tried NextSTEP, which needs the patches marked + above. Alas, this is not enough to make it run. Maybe it is because QEMU SCSI disk and ESP emulation are too fast.
Olivier