Subject: Re: tga graphic cards
To: None <simonb@NetBSD.ORG>
From: Ross Harvey <ross@ghs.com>
List: port-alpha
Date: 10/13/1999 20:26:00
> From: Simon Burge <simonb@NetBSD.ORG>
>
> Ross Harvey wrote:
>
> > I've said it before but once again: we really do need a volunteer
> > willing to work on X for NetBSD/alpha. It has always been on my list,
> > but has never made it to top priority, so I've never even started work
> > on it and I'm not sure if that will ever change. (I always think I can
> > start in a month or two, but it's always at .+2.)
>
> I think I've secured a spare AlphaPC164 to look into this a bit more
> seriously.  If I recall (without checking up in the archives), the
> problems with XFree86 have been "we (NetBSD) don't just want to make the
> VGA card look like a PC to XFree like some other Un*x clones do, we want
> a nice MI interface"?  Is this a fair summary?

Yes, to run XFree86 you choose one of:

	(1) Substantially rototill xf86 to have some user-mode equivalent
	    of the ultra-cool netbsd-invented bus_space(9) and bus_dma(9)
	    interfaces. (Hi Jason!) This is the ideal solution, and I
	    believe XF even wants to do something like it. (Oh, and
	    configure the display once in wscons(4) and have XF just
	    base configuration on that.)

	    But, it's a big job.

	(2) Do a horrible, disgusting kludge to fake up inb(), outb(),
	    (gee, what do they mean when you have more than one bus?)
	    and device mapping in order to generally rape our otherwise
	    nice device abstractions and flatten them out.

Option (1) is really too big a job given the resources we have and given
that the much-easier kludge (2) gives us most of the functionality of (1).

Option (2) was avoided previously because of purism (at least in part, I
think) but for the record: I've made the decision that it is now OK for
NetBSD/alpha to go this way. (Hehe.)

FreeBSD chose (2), which doesn't even look very hard given the rather small
size of their diff. It's certainly even easier to do again, given that the
diff is public. I'm thinking that we could have a separate configuration
program (maybe options to wsconsctl(8)) that would identify which bus and
which device would be the target of the inb/outb/devmap compatibility
interface.

At this point, I think we really must go with (2). (BTW, note that a
partial-(2) has become easier recently, as BWX-capable alphas are a larger
fraction of our user base these days.)

Hope this helps. I'll volunteer to help with the kernel work and with any
needed alpha assembly or xf86-assembly-conversion.

	ross.harvey@computer.org