Page 1 of 2

Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 3:48 am
by HugeCode
Hi all.

I want to write some driver for graphic card just to see how does that kind of coding look like. On the wiki I found articles about several devices but I want to get some specification and write driver on my own. Well, and that is where my problem begins. I don't know where to get documents for it. My best success was when I got to page that required something about Intellectual Property.

My question is very simple: where do you get information about devices you want to write drivers for? And is there and difference between terms data sheet, documentation and specifications? Which is the most common?

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 4:27 am
by Combuster
HugeCode wrote:graphic card
Chances are you will most likely not going to get anything official on that because it is a graphics card, and chances are you'll be blasted away by the complexity because it is a graphics card. The wiki has a fairly complete set of pointers on what you might be able to use as half-baked substitutes for documentation.

Note that especially if you want to use your current desktop as the target, you'll be opening your own little portal into the shadow realm, and you'll have to get the fair warning from me that only a handful are capable of handling such excursions.



For most other devices, you will get quite far by being patient, good google-fu, and trying all the keywords.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 6:56 am
by HugeCode
Combuster wrote:
HugeCode wrote:graphic card
Chances are you will most likely not going to get anything official on that because it is a graphics card, and chances are you'll be blasted away by the complexity because it is a graphics card. The wiki has a fairly complete set of pointers on what you might be able to use as half-baked substitutes for documentation.

Note that especially if you want to use your current desktop as the target, you'll be opening your own little portal into the shadow realm, and you'll have to get the fair warning from me that only a handful are capable of handling such excursions.



For most other devices, you will get quite far by being patient, good google-fu, and trying all the keywords.
Sorry, graphics card.

So there isn't anything what can help me when looking for documentation?

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 7:04 am
by Combuster
HugeCode wrote:So there isn't anything what can help me when looking for documentation?
you will get quite far by being patient, good google-fu, and trying all the keywords.
Ask a better question? :wink:

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 7:18 am
by HugeCode
OK :D
So I searched nvidia (the first company name that came on my mind) web and I found something like partnerforce program that includes access to data sheets but needs registration as company, while I'm only a student. Does it mean that these datasheets are inaccessible to me until I'm employed in company that works with their products?
Is this usual for companies?

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 7:33 am
by Owen
You picked one of the world's worst companies ;). NVIDIA give their documentation to nobody.

AMD and Intel have both released the full documentation for their graphics controllers. Be aware... they're massive documents. To use them to their full you're going to need to implement the most complex drivers any OS possesses, including embedded compilers.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 7:39 am
by Combuster
The wiki has a fairly complete set of pointers on what you might be able to use as half-baked substitutes for documentation.
HugeCode wrote:(14 minutes later) Does it mean that these datasheets are inaccessible
Now I'm sure you didn't read my answer properly. :wink:

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 9:15 am
by HugeCode
@Owen:thanks.
@Combuster: I think that 'it' in my post referred to nvidia data sheets. I searched wiki and I didn't found any datasheet there. I assume that I read your post properly, and I'm very sorry if I didn't get some hidden message. My English isn't very good, as you showed in your first post.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 9:48 am
by Brendan
Hi,
HugeCode wrote:@Owen:thanks.
@Combuster: I think that 'it' in my post referred to nvidia data sheets. I searched wiki and I didn't found any datasheet there. I assume that I read your post properly, and I'm very sorry if I didn't get some hidden message. My English isn't very good, as you showed in your first post.
For Nvidia information you need to sign a non-disclosure agreement (NDA), and before you can do that your OS has to become about as popular and well known as Linux (otherwise Nvidia will just ignore your requests).

For video cards in general; there is some information for some of Intel's video cards (provided by Intel) and some information for ATI's video cards (provided by AMD/ATI), plus some information for very old video cards (Cirrus Logic, S3 virge, etc).

Of course Combuster is right - modern video cards are very complex. For this reason you'd want to start with simpler/older video cards. My advice would be to start "raw framebuffer" (e.g. using VBE); then try to get "native VGA" done. Once that works try to purchase an old video card that you've collected documentation for.

In addition to this; I'd recommend supporting either remote debugging, "remote desktop", multiple monitors, or something else that lets you see what your OS is doing (and control it) before you start developing any native video driver. Otherwise the first time something goes wrong you won't have any video and won't be able figure out what's wrong... ;)


Cheers,

Brendan

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 9:53 am
by Combuster
HugeCode wrote:I searched wiki and I didn't found any datasheet there.
You also did not find the explicit message that there was none, and where to look instead.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 9:58 am
by HugeCode
HugeCode wrote: I assume that I read your post properly, and I'm very sorry if I didn't get some hidden message. My English isn't very good, as you showed in your first post.
Thought I didn't get something. But why are you referring to explicit message, when you quoted that part about nvidia data sheets? ;-)

@Brendan: thanks, I'll have a look at that two.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 11:23 am
by Combuster
But why are you referring to explicit message
Because obviously, you have the rather poor habit of first spending time replying than actually doing your research even when given pointers in return. This question was answered long before you posted it:
Wiki wrote:NVidia

NVidia doesn't provide official specifications, but a lot of community effort is spent in the noveau project, which can be sourced for examples and documentation even though such reverse engineered specifications aren't complete nor guaranteed to be accurate (...)

Brendan wrote:your OS has to become about as popular and well known as Linux
In which case, they will just write a new wrapper for their existing binary blob. :wink:

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 11:28 am
by HugeCode
Combuster wrote:
But why are you referring to explicit message
Because obviously, you have the rather poor habit of first spending time replying than actually doing your research even when given pointers in return. This question was answered long before you posted it:
Of course, selecting the part you like.

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 1:59 pm
by IanSeyler
Further to this request... I would be interested in writing a bare-bones nVidia driver that just let you set up a linear frame buffer and also change video resolutions. Would the nouveau driver be a good place to start looking?

Re: Where to get serious hw datasheets?

Posted: Wed Aug 14, 2013 2:33 pm
by sortie
Yes, the existing drivers are a good resource. Unfortunately, it may be very difficult to understand they if you are not skilled in the subject. I suppose you could try and ask the community for pointers. It'd probably help if you define exactly what your goal is if you ask them: "Hi #initech-linux-driver people, I have created a x86_64 hobby operating system and I'd like to develop a simple modesetting driver for the Initech S6050HD card of the Northern Eggspam series (possibly using the IniBIOS firmware). What steps would I go through to do this and is there any existing documentation/work I can base this on?"