SBus device drivers for Xorg
Michael
macallan at netbsd.org
Thu Nov 20 22:07:57 PST 2008
Hello,
I wrote a few drivers for SBus devices that Xorg currently doesn't
support ( Fujitsu's AG-10e and the Weitek P9100 found in the SPARCbook
3 series ) and also added hw acceleration support to the suncg6 driver.
The drivers were all written for NetBSD's own XFree86 ( see
cvs.netbsd.org:/xsrc/xfree ) and some of them ( AG-10e and P9100 )
rely on kernel functionality to work:
- P9100 uses the /dev/fb interface to support a hardware cursor since
accessing DAC registers from userland proved to be unreliable for some
reason
- AG-10e uses made up mmap offsets likely not compatible to anything,
mostly because I couldn't find which offsets Solaris would use. It
relies on the kernel to make the 24bit framebuffer visible ( firmware
and my console driver use the 8bit framebuffer driven by an Imagine
128 ) Also, the kernel driver exposes only the GLint's framebuffer and
registers, the hardware cursor is supported via /dev/fb ioctl()s.
All drivers lack autoconf goo, P9100 hasn't been ported to Xorg at all
( changes would be trivial though ) because I only made them build
using NetBSD's own build framework.
Hardware acceleration for the cg6 supports solid fills, screen-to-
screen copies, line drawing, mono-to-colour expansion. I didn't bother
to implement pattern fills. Performance is pretty good for such an old
chip.
The P9100 driver is pretty much SPARCbook-specific. It supports 8, 16
and 24bit colour and the same acceleration as cg6 plus pattern fills.
It cannot program video modes, only change the video clock multiplier
for higher colour depths. VGA output works and always runs in whatever
size the display is at 60Hz. Tested only with 800x600 panels though.
The AG-10e driver borrows 300SX-specific acceleration code from the
glint driver and adds SBus and cursor-via-/dev/fb goo. No support for
programming video modes ( no idea how to do that at all on this card.
The DAC uses an external clock and I have no idea what generates it or
how to talk to it )
If you want any of this in Xorg please let me know what would be the
best way to hand over the source. It's all accessible via cvs if you
want a direct look at it.
have fun
Michael
More information about the xorg
mailing list