You can download this document in various formats:
This FAQ is also available as SGML source code via anonymous CVS from ftp.linux-mips.org. The archive also has a Makefile which will translate it into various formats. An ASCII version is regularly being posted via comp.os.linux.answers and the other Linux HOWTO channels.
Updates for this document should be sent as unified diffs against the SGML version to Ralf Bächle (ralf@gnu.org). Please don't updates in any other form as that will make maintenance significantly more difficult.
Author Dominic Sweetman, Publisher Morgan Kaufmann, ISBN 1-55860-410-3.
This is intended as a pretty comprehensive guide to programming MIPS, wherever it's different from programming any other 32-bit CPU. It's the first time anyone has tried to write a readable, and comprehensive, explanation and account of the wide range of MIPS CPUs available. It should be very helpful for anyone programming MIPS who isn't insulated by someone else's operating system. Also, the author is a free-unix enthusiast who subscribes to the Linux/MIPS mailing list!
John Hennessey, father of the MIPS architecture, was kind enough to write in the foreword: ``... this book is the best combination of completeness and readability of any book on the MIPS architecture ...'';
It includes some context about RISC CPUs, a description of the architecture and instruction set, including the "co-processor 0" instructions used for CPU control; sections on caches, exceptions, memory management, and floating point. There's a detailed assembly language guide, some stuff about porting, and some fairly heavy-duty software examples.
Available from:
and from good bookshops anywhere. It's 512 pages and costs around $50 in the US, £34 in the UK.
I'd be inclined to list two other books too, both from Morgan Kaufmann and available from www.mkp.com or any good bookshop:
Authors Farquhar and Bunce, Publisher Morgan Kaufmann, ISBN 1-55860-297-6.
A readable introduction to the practice of programming MIPS at the low level, by the author of PMON. Strengths: lots of examples; weakness: leaves out some big pieces of the architecture (such as memory management, floating point and advanced caches) because they didn't feature in the LSI ``embedded'' products this book was meant to partner.
Authors Hennessy & Patterson, Publisher Morgan Kaufmann, ISBN 1-55860-329-8.
The bible of modern computer architecture and a must-read if you want to understand what makes programs run slow or fast. Is it about MIPS? Well, it's mostly about something very like MIPS... Its sole defect is its size and weight - but unlike most big books it's worth every page.
The documentation to be found at ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/ defines many of the MIPS specific technical standards like calling conventions, ELF properties, and much more that is being used by Linux/MIPS, including the N32 standard.
Under http://www.mips.com/publications there are various PDF documents and data sheets about individual processors and cores.
NEC Electronics ( http://www.necel.com includes complete manuals about their VR41xx processors.
While being very SGI centric http://techpubs.sgi.com has a number of ABI related documents online that also apply to Linux/MIPS.