Subject: XFree86
To: None <port-sparc64@netbsd.org>
From: Michael <macallan18@earthlink.net>
List: port-sparc64
Date: 01/02/2005 00:02:15
Hello,

some good (but preliminary) news - I tried to get XFree86 to work with 
the onboard ATI Rage found on lots of PCI Ultras. ( an U10 in my case 
).
What it requires:
- force XFree86 to build from xsrc - by default it's skipped on sparc64
- hack the kernel to use wscons - that's what ofb is for.
- add a hack to ofb to allow mmap()ing PCI memory - bus_space_mmap() is 
your friend.
... and to my utter surprise it just works. All you need is a hacked 
kernel and unchanged XFree. It doesn't even mess up the console on exit 
like it (sometimes) does on macppc.
Of course there are drawbacks:
- the Sun keyboard driver doesn't play well with wscons. It loses 
events and in X the keymap is totally wrong, it required a hack to work 
at all. But my USB keyboard is configured correctly, the Sun mouse 
works fine too.
- the ofb driver is still a mess that needs to be cleaned up
- making ofb portable may be more difficult than I thought, at least it 
will almost certainly remain PCI-only, sharing it with macppc ( where 
it comes from ) will require lots of #ifdef's, Apple's OF and Sun's OBP 
differ in some subtle but annoying details, the same goes for the OF 
APIs on macppc and sparc(64).
- ofb isn't faster than the PROM console with RASTERCONSOLE but it's 
wscons. No virtual consoles (yet) and no runtime loadable fonts though 
( but you can change the console font by compiling into the kernel 
whichever font you want ). It may be faster if we could mark the 
framebuffer cacheable, that's what it does on macppc.
- no hardware OpenGL - we don't have DRI. GLX with software rendering 
works though.
I have no idea how the other drivers behave, Radeons may work, the rest 
is highly questionable as far as I can tell.
( yes, it's fully accelerated. I didn't use any fancy XF86Config 
options )

have fun
Michael