Muazzam wrote:
ARM is popular too, but not it's not open/documented enough.
Neither. From ARM directly and from any number of other sources you can find the complete logic of ARM processors, and almost any one of them to boot (in fact, there are open-source ARM clones for FPGAs, i.e.
the Amber processor. The issue you'll face is that ARM is simply a seller of IP cores for their processors; they don't fab out chips like other companies do.
If you're a large company attempting to make a product with a processor in it that does some function X, you'll probably contract ARM and a bunch of other vendors for SIP cores that comprise ARM cores and the required intercomm/interconn logic. You might design your own core and include it. You then go to a foundry and ask them to make your design for you. The issue with ARM devices isn't their "openness" (although open-source people I've worked with tend to hate ARM), nor their documentation - it's their degree of standardization.
Unlike the PC market, which is driven by the
de facto requirement with previous versions of that "standard" and software, ARM does not have a standard with virtually global scope forcing it to conform. For Android devices of one particular epoch, devices might have X, X, and X features laid out in a particular manner, but going to the iPhone, that has custom Apple-fabbed devices, those phones use internal standards that might differ completely. The issue with developing for ARM is the lack of a single, unifying standard that has leveled the playing field and forced everyone to conform. For the developer, that means that you'd be fighting an uphill battle to differentiate devices at the hardware level from each other, or targeting one specific implementation family of the cores. I suppose where the degree of "openness" comes in is that a large number of the vendor SIP cores (non-ARM, vendor- and chip-specific stuff) are very lock-and-key on docs. That's a battle I've had to fight at the corporate level as well.
Many "desktop" Linux distributions, for example, have begun to target ARM, because they realize they can now include the logic required to enumerate and cover a large number of the different bases in play. If you're interested in ARM development, I'd look at the ARMv7 ports of Ubuntu and Debian to the Raspberry Pi and Raspberry Pi 2.