David S. Miller (davem@jenolan.rutgers.edu) writes:
> The whole mips[1234] ordeal is the one thing which upset me greatly
> about the MIPS processor line, this is the single one thing which
> makes a true "all in one" MIPS/Linux kernel damn near impossible.
It's worse than that; MIPS[1234] only prescribes the user-level
behaviour of the CPU. The bits of the CPU which only the kernel deals
with (what MIPS calls "co-processor 0") are implementation dependent.
The R5000 is rather different from the R10000 at this level, although
they both implement MIPS-4.
It's also better than that, in that:
o All Linux-capable MIPS-1 CPUs are pretty much compatible.
o There are no MIPS-2 CPUs (it was only invented for the ECL R6000,
which didn't have a very big sale)
o All Linux-capable MIPS-3 CPUs are readily driven with the same
software. Some detailed differences (R4400 likes more nops than
R4600 sometimes), but nothing serious.
You will need ifdefs for MIPS-1 vs MIPS-3 in any code which messes
with the interrupt levels or TLB.
And there again it's worse, because you'll search in vain for any
systematic documentation about this.
Dominic Sweetman
dom@algor.co.uk
|