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