The problem with architectures such as ARM, MIPS and PPC, isn't the lack of documentation, it's in fact the exact opposite, the sheer range of documentation and platforms. Most people get confused over where to start.
If you want to port your operating to another architecture, I personally recommend, for ARM, the Integrator-CP, the Versatile-PB or something like the Beagle Board. All of these have documentation online, have plenty of peripherals and two of them are emulatable by QEMU and the other is very cheap. For MIPS, I'm not sure, but I'd have a look a things such as homebrew on the PS2. For PPC, go with something such as PS3 (which as far as I am aware, can install other operating systems), or the old PPC Macs.
Another architecture, people might be interested in is SPARC, which is still AFAIK in current production by Sun Microsystems. It's mostly used in servers and quite expensive, but is emulated by QEMU. Sun does, or at least used to, sell SPARC workstations, these unfortunately were also expensive, you can probably buy them second hand from ebay.
The platforms listed above aren't the only ones - just my recommendations for those processors. There are hundreds more to choose from. This is one major problem with porting. The other major problem, is simply the porting itself. A lot of the architectures above are big endian, while the x86/x86-64 are both little endian, this can lead to problems with structure and data alignment whilst porting.
Take for example this piece of code:
Code:
#include <stdio.h>
int main (int argc, char ** argv)
{
int c;
scanf ("%c", &c); /* Where does &c point to?? */
printf ("%c\n", c); /* What get's printed?? */
return 0;
}
This code will only work as expected on little endian architectures. This is because on little endian &c points to the LSB of c, this is the part that is used in the cast to char. However on big endian, &c will point to the MSB of c, causing bugs.
Oh and if anybody wants to look into porting to ARM, there's a barebones now on the wiki.
ARM Integrator-CP Bare Bones