I've been involved in the Rockbox project since before it was named Rockbox and in fact long before the first code as written. I've contributed to it pretty much over the years and I have a fair insight in how most of the ports have been made and what efforts that are behind them. Today, Rockbox runs on around 25 different digital music players.
The first ports of Rockbox was (in retrospect) rather easy since we took it to architectures what were made with circuits and chips for which we could find documentation online.
Recently, music players as well as other consumer electronics are being made using products and circuits from companies that blatantly refuse to hand out documentation. Companies such as PortalPlayer (now Nvidia), Austrian Micro Systems, Samsung, ALI, NEC, Broadcom, Telechip, Texas Instruments, Sigmatel (to name a few) all make interesting and fun hardware but...
Let's say I am looking into alternatives when creating new hardware. I want to build something new and cool. Something not done before, that would be portable and feature sound and an LCD and whatnot. I see what cool manufacturers there are out there and I can read their propaganda on their fancy web sites. So, I want to compare company A's fancy chip with company B's. I contact them in order to get to know as much as possible to be able to compare these beauties.
No, you cannot get any docs. We will not tell you how our products are used until you sign up for a huge contract. These companies don't only require NDAs to be signed and similar, they simply won't let you get the docs no matter what if you're a small player and are just interested in comparing and evaluating products.
I've contacted several companies with this purpose in mind. I work with embedded products for companies doing products using such chips, so I would assume I should be the kind of person these companies would respond to with an open mind and a will to sell me their stuff. But they clearly hate customers.
This problem is of course also tightly related with the eternal discussion of manufacturers not wanting to hand out docs to hardware they sell for PCs, such as graphic cards (AMD/ATI, Nvidia, etc) and network cards (Broadcom, etc). These companies usually hide behind a blurry statement about protecting their intellectual property and being afraid of ending up in the hands of the competition but that always and unconditionally end up with the arguments:
- The competitors can get this info anyway by simply acting like a big customer, or possibly by buying the info from an existing customer. This protection only hides the info from the little people, not from the big guys with resources.
- Getting information from the hardware based on a detailed description on how to use it is quite frankly a very ineffective way of cloning someone else's design and not a likely scenario.
- Development in these areas is at such a high speed these days, so getting the docs for the current hardware give hardly any competitive edge since the mere operation of copying it to make an own version of it takes a long time and by the time it would be done it would already be outdated.
I sometimes wonder if the chip manufacturers do this on demand from their bigger customers, the consumer electronics companies, to help them keep things hidden so that we - the general public - will have a harder time to modify and/or reverse engineer their products, which may lead to additional support issues for them.
We see this development of secret-docs going in the wrong direction. Samsung used to publish a lot of docs for their ARM-core based microcontrollers, but they no longer do so. Marvell bought the Xscale family from Intel and recently they took away all the public docs for them...
We see "open source" projects (like Neuros uses TI chips) go with these companies so that they can't reveal all source code.
Luckily, not everything is darkness. There are occasional bright spots, as the other day when AMD announced their intention of bringing their open source ATI drivers up to speed with what could be expected of them..
So what is there to do about this? What can we "little people" do to change these big evil corporations? There's really only one way: put the money where the docs is! Buy stuff from the good companies. Recommend your clients to release docs openly. Recommend your clients to buy hardware (parts) from companies that host their documentation publicly.