David Christensen wrote:
coreboot:
I am researching parts to build a new open-source desktop system, and came across coreboot tonight.
I have heard of open-source projects to implement x86 BIOS, but have always wondered how they fared given the fact that most motherboard vendors and chip vendors consider their products confidential intellectual property and won't provide technical documentation necessary for software development without an contract (NDA, etc.).
Just to be clear, NDA is short for Non-Disclosure Agreement. There is no standard NDA; even the same company will have a different NDA for a different purpose. An NDA will often list exactly what will be shared and protected, but often companies will want this list to be very general so that almost anything shared that was not previously shared by legal means will be protected by the terms of the NDA.
Some companies will provide enough information about their boards, processors, chipsets, ancillary chips and embedded controllers with or without an NDA. With an NDA in place, they will often want to review code based on an open source project (i.e. coreboot), before allowing it to be publicly released. There may be a few companies that are resistant to any open source BIOS and may not agree to an NDA for that purpose, but I know of no such case yet. Companies will tend to do what is best for their bottom line; we just need to convince them that an Open BIOS/firmware like coreboot will help them improve their bottom line.
When a company is resistant to releasing technical information even with an NDA or the prospect of getting approval to release source created via NDA protected information is doubtful, there is the option of reverse engineering the technical information via JTAG debuggers, logical analyzers and similar tools. Of course this is only an option for those that do not sign any relevant NDA. Also, care must be taken to ensure that the reverse engineering activities do not violate any applicable laws.
Are there any modern x86 motherboards and/or systems currently available for which technical documents are available for the motherboard and everything on it?
I'm not aware of any x86 main boards with complete technical information that are available without signing an NDA. Some that may come close would be on the coreboot main board list, but some of these may have been developed under NDA, which means the only public technical information available may be the approved & released chipset-specific, coreboot source code itself:
http://www.coreboot.org/Supported_Motherboards
Perhaps, someone else is aware of such a board with complete publicly available technical information, including full schematics and BOM?
Are matters better or worse for alternate architectures?
The situation for non-x86 processors is much better. U-Boot seems to support almost any non-x86 based board that exists. If a board is not supported, its architecture often is supported and thus a port U-Boot to it is usually quite easy to do.
In my opinion, U-Boot's non-x86 firmware market share is so high that embedded board designers ignore U-Boot at the own peril. This is especially true of architectures that MS Windows CE does _not_ support. (CE supports only x86, MIPS, ARM and SuperH where ARM is the only one that is really significant; CE's bootloader Eboot is really a joke compared to the power of U-Boot in any case.)
Sincerely,
Ken Fuchs