> I'm interested in working on drivers (is drivers the correct term?)
Term is correct. You are probably confused by the term "target" - right ?
We did that on purpose, to differentiate the _driver_ (that _drives_ the
hardware) from the _target_ that represents an underlying driver
architecture like fbcon or X.
> for the cards I have: a RIVA 128 and a GeForce (both nVidia chips). I know
> there is an existing driver included in GGI, but I've never been able
> to make it work, and it seems that most other people can't, either. I
> also recall hearing that the newer XFree drivers are from a different
> code base.
Yeah - the newer X drivers might be a good place to start for starting over.
I haven't looked at them, though, and I might be wrong. the old Xfree 3
style drivers heavily suffered from their layered design that followed the
SVGA paradigm "well it's a VGA with an extra bit here and ..."
> In my experience, when someone asks me how to learn about something
> like this (college students often ask me to "teach them to program"), I
> tell them the only way to learn is by *doing* it.
Yeah. I agree. So you want to do some HW driver programming ?
> I'm a fairly competent programmer (or at least I like to think so :P),
> but I have no experience with hardware. I don't even know where to
> start. Is there a place where I could begin?
> - A book I should buy, or a document I could read?
Hmm - there are a few good books on the subject, but I'm not sure they will
help you much. Most are from a pretty VGA-centry point of view.
The basic things to understand is how a graphics card produces a CRT-signal
and how this signal looks like. That is the only area that looks a little
"mystique" at the beginning. If you know what a modeline really means,
that's about all you need to know.
Everything else boils down to viewing the graphics card as a set of
registers that manipulate its behaviour. Either by setting a permanent
value that holds something like the screen width, or by sending command
sequences to the chip like "draw rectangle, color blue, width 100, height
200 at 42,21".
If you have the docs, you are almost there. Good HW docs usually even
contain example programming sequences.
> - A smaller (but related) project, that might be easier?
Hmm - getting the River driver to work maybe ? :-)
Or, if there is some hardware you do know well (say a printer or an LCD
panel), write a LibGGI target for it. A KgiCon driver is basically a
translation layer between the LibGGI fbcon interface and the hardware.
If you know how to write a target, writing a driver isn't far away.
> I've heard that documentation of nVidia products basically doesn't
> exist. Is this true?
I don't have information on that one. However I found, that it _is_ pretty
easy to analyze Windows drivers if you knwo enough about x86 assembly
and have some decent disassembling tools.
I will gladly try to assist anyone trying to write a driver.
CU, ANdy
--
= Andreas Beck | Email : <[EMAIL PROTECTED]> =