[coreboot] Intel datasheets require NDAs

Peter Stuge peter at stuge.se
Sat Oct 2 20:57:50 CEST 2010

ali hagigat wrote:
> >> At least you could update Wiki pages to state this fact clearly
> >> to stop people waste money.
> >
> > I doubt we can keep the world from making bad decisions and
> > seeking the fault in others by just putting a few words in a
> > wiki.
> Many may make this mistake because nobody can study Intel documents
> in details to know that there is unexplained parts in the manual
> before even getting a board. Now I have made it clear, before i do
> not think even one person mentioned the issue.

I have personally talked about this on many occasions, in several
presentations which were recorded and are now linked to from the
wiki, on the mailing list and in the IRC channel in previous
discussions, and finally whenever I discuss documentation aspects
with anyone in person at what is by now numerous occasions where I've
shown coreboot at open source exhibitions.

I believe "the issue" that you refer to is that working with code on
the firmware level requires specific information about the hardware.

As was pointed out, this is not a fact which coreboot decides over,
it's up to the vendors of CPUs and chipsets, ie. electronic components.

Anyone with a background in the electronics industry will know that
20-30 years ago (or even more recent) vendors were very proud to
publish documentation about their products, as a way to demonstrate
their capabilities and benefits over their competition.

Some companies still do. Looking at the market for individual simpler
ICs you will find that most vendors publish great datasheets for
their components. I spent some time evaluating different AD and DA
converters from one such company yesterday.

The world of PC components was similar, but the trend is that more
and more of the inner workings of PCs are becoming too complex for
many to dare to publish information, without the NDAs.

I understand that this fact is completely unknown to someone who is
new to the electronics field in general or the PC electronics field
in particular.

However, coreboot does have a lot of documentation (maybe too much)
and the participants are extraordinarily helpful to those who are
interested and willing to learn about this wonderful world.

The wiki does have a page with links to datasheets. The page is
called Datasheets. It's here: http://www.coreboot.org/Datasheets

In your reading of the wiki I am sure that you've come across this
page. As you may have noticed, there are almost no links to Intel
components at all on that page. The majority of documentation is
about AMD components, with VIA coming in as number two. There are
also links to datasheets for various smaller superio components.

I think this should have been a clue to you that all vendors do not
have exactly the same policy, and further I think it should have
made you realize that Intel hardware may not be the best candidate
if your desire is to study and learn about every register write that
is performed in the coreboot code.

Now, the i945 code in coreboot is still there and still readable,
even if it does not come with a book about how it was written and how
it is structured. I don't think these things are really needed
either. The code is really nicely written, function names are
descriptive, and I believe that by cross-referencing the i945 code
with datasheets for components from other vendors at a similar level
of performance there is still a lot that you will be able to learn!

I assume that you have some plan for how to use your 4 KISS systems,
and this is still very much possible of course. Since you have
hardware that you can not study in detail maybe you can at least make
good use of it by focusing more on what happens after coreboot,
instead of what happens within coreboot if that is not something you
can do without documentation in hand.

> My plan was to gather a thorough knowledge of one example of Coreboot.
> I dislike much to deal with a subject which in incomplete.

Believe me when I say that no one board will be a good way to learn
about all of coreboot. Over two hundred mainboards are supported by
coreboot, and as you may learn there are immense differences between
e.g. an Intel i945 platform, and an AMD GeodeLX platform. Just like
with programming languages; any time you spend on one thing will help
you become more proficient with programming in general.

> I do not want to port Coreboot first. My immediate purpose was to
> study and become proficient in the subject. How I can port Coreboot
> without even knowing it and researching on it first.

The norm has been that people learn about coreboot while working on
it. In my experience it is more difficult but more importantly
extremely inefficient to learn about something without actually doing
it. I'm a firm believer in learning by doing. Otherwise something may
have been learned, but it will not neccessarily be understood.

If you have more of an academic inclination, then like others have
mentioned, I think it would have been wise to ask questions, and ask
the important questions. It seems to me that when you started with
this project you needed to become more familiar among other things
with GNU make, and that is just one of many tools which the coreboot
project builds upon.

The fact that something as "simple" as the build system was already
requiring learning more about some tool would have indicated to me
that I would be forced to do a lot of research to really understand
the project more completely.

> At least you could add some lines about NDA story and incomplete
> data sheets in Wiki

I think this is a really good idea. On which page do you think it it
would fit best? Datasheets? Documentation?

> or you could made the following fact clear :
> "Anybody who wants to study and learn Coreboot must know that the
> documentation of hardware is incomplete and there are some hidden
> cases which will never become clear!!"

This is not a fact at all. This is your assumption, and I'm afraid it
isn't correct. If you look at the code for components from other
vendors then I think you will discover that some do actually provide
good and complete documentation. AMD really deserves a mention here.
We all certainly wish that all documentation would be made available
even sooner, so that coreboot no longer has to play catch-up with the
market, but I think the trend is going the right way at AMD.

> Linux Kernel
> Coreboot is about BIOS

coreboot is about firmware, not BIOS. I don't know how many times
I've expressed the significate difference between these two concepts.

> They are in two different categories in my opinion.

You will find that many people disagree with that. A large part of
Linux is it's device drivers. Try removing all device drivers from
Linux and see what you have left. It's really not useful at all.

Maybe you have been keeping up-to-date with the situation of drivers
for wireless networkinge devices in open source operating systems.
This is an issue which is really close to people's everyday lives,
and it has been a rather big challenge for all open source OSes. It's
only very recently that Linux has actually managed to attract the
vendors to *help* the project with code and maybe even documentation,
but in general the situation has been exactly the same for a long
time. I have a distinct memory of a presentation 7 years ago about
difficulties faced by FreeBSD developers to learn about how to
program these devices.

You never mentioned what your background is, and if you are used to a
system like Microsoft Windows then I'm not surprised that you find
the open source world very foreign, it is all about "owning the
problem" and really making sure to do enough research in order to
take inforfmed decisions. This of course requires information. If no
information is available, then sure, it can feel like a hopeless
situation, but for coreboot I can absolutely not agree with you that
this would be the case.

Finally, there's of course always the possibility to do reverse
engineering. But that is something that really requires skill, and
extraordinary patience.

I do hope that you can still make use of your computers, even though
you may not be able to find someone who can train you about the
meaning of every register in them.

Kind regards


More information about the coreboot mailing list