<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">

<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/mips-requirements.xml,v 1.5 2005/02/14 09:49:39 swift Exp $ -->

<guide link="/doc/en/mips-requirements.xml">
				
<title>Gentoo/MIPS Linux Hardware Requirements</title>

<author title="Author">
  <mail link="kumba@gentoo.org">Joshua Kinard</mail>
</author>

<abstract>
This document provides an overview of the status of various MIPS-based systems 
for installing Gentoo Linux. If you find errors or ommissions please email the
maintainer or an editor.
</abstract>

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.0 -->
<license />

<version>0.3</version>
<date>2005-02-14</date>

<chapter>
<title>Supported/Unsupported Hardware</title>
<section>
<body>

<note>
Items in <brite>Red</brite> are currently <e>Unsupported</e> in 
Gentoo/MIPS at this time.  This means Linux does not run on this 
system/CPU at the current time, or the specific piece of hardware
is unsupported in the kernel.
</note>

<note>
Items in <c>Blue</c> are considered <e>Highly Experimental</e> at this time. 
This means the system can boot Linux, but either is unstable, or Gentoo/MIPS
has not been tested on it yet.  In regards to hardware, it means the specific
piece of hardware either works to some extent, or is untested.
</note>

<p>Legend:</p>
<ul>
  <li><c>(+)</c> denotes Stable</li>
  <li><c>(~)</c> denotes Unstable/Experimental</li>
  <li><c>(X)</c> denotes Untested/Unsupported</li>
</ul>

<note>
If a particular system is not listed, then it's status is unknown.
</note>

<p>&#160;</p>

</body>
</section>
<section>
<title>SGI Systems</title>
<body>

<table>
<tr>
  <th>Systems</th>
  <th>SGI IP #</th>
  <th>CPUs</th>
  <th>Kernel Arch</th>
  <th>Kernel Ver</th>
  <th>Userland</th>
  <th>Notes</th>
</tr>
<tr>
  <ti><c>(+)</c>Indy</ti>
  <ti>IP22</ti>
  <ti><c>(+)</c>R4000, <c>(+)</c>R4400, <c>(+)</c>R4600, <c>(+)</c>R5000</ti>
  <ti><c>(+)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(+)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti>(1), (4), (8)</ti>
</tr>
<tr>
  <ti><c>(+)</c>Challenge S</ti>
  <ti>IP22</ti>
  <ti><c>(+)</c>R4000, <c>(+)</c>R4400, <c>(+)</c>R4600, <c>(+)</c>R5000</ti>
  <ti><c>(+)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(+)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti>(1), (2), (4), (8)</ti>
</tr>
<tr>
  <ti><c>(+)</c>Indigo2</ti>
  <ti>IP22</ti>
  <ti><c>(+)</c>R4000, <c>(+)</c>R4400, <c>(+)</c>R4600</ti>
  <ti><c>(+)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(+)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti>(1), (3), (4), (8)</ti>
</tr>
<tr>
  <ti><c>(X)</c>Indigo2 Power</ti>
  <ti>IP26</ti>
  <ti><c>(X)</c>R8000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(~)</c>Indigo2 Impact</ti>
  <ti>IP28</ti>
  <ti><c>(~)</c>R10000</ti>
  <ti><c>(X)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(~)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(~)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti>(1), (3), (4), (5)</ti>
</tr>
<tr>
  <ti><c>(+)</c>O2</ti>
  <ti>IP32</ti>
  <ti><c>(+)</c>R5000, <c>(+)</c>RM5200, <c>(~)</c>RM7000, <c>(X)</c>R10000, <c>(X)</c>R12000</ti>
  <ti><c>(X)</c>mips, <c>(+)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(+)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(~)</c>n32, <c>(X)</c>n64</ti>
  <ti>(5), (6), (8)</ti>
</tr>
<tr>
  <ti><c>(~)</c>Origin 200/2000</ti>
  <ti>IP27</ti>
  <ti><c>(~)</c>R10000, <c>(~)</c>R12000</ti>
  <ti><c>(X)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(~)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(~)</c>Octane</ti>
  <ti>IP30</ti>
  <ti><c>(~)</c>R10000, <c>(~)</c>R12000, <c>(X)</c>R14000A</ti>
  <ti><c>(X)</c>mips, <c>(~)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(~)</c>2.6</ti>
  <ti><c>(~)</c>o32, <c>(~)</c>n32, <c>(X)</c>n64</ti>
  <ti>(7)</ti>
</tr>
<tr>
  <ti><c>(X)</c>Iris Indigo R3000</ti>
  <ti>IP12</ti>
  <ti><c>(X)</c>R3000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(X)</c>Iris Indigo R4000</ti>
  <ti>IP20</ti>
  <ti><c>(X)</c>R4000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(X)</c>Fuel</ti>
  <ti>IP34</ti>
  <ti><c>(X)</c>R14000A, <c>(X)</c>R16000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(X)</c>Origin 300</ti>
  <ti>IP45</ti>
  <ti><c>(X)</c>R14000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(X)</c>Origin 3000</ti>
  <ti>IP35</ti>
  <ti><c>(X)</c>R14000, <c>(X)</c>R14000A</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
<tr>
  <ti><c>(X)</c>Origin 350, Tezro</ti>
  <ti>IP53</ti>
  <ti><c>(X)</c>R16000</ti>
  <ti><c>(X)</c>mips, <c>(X)</c>mips64</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
  <ti></ti>
</tr>
</table>

<p>&#160;</p>

</body>
</section>
<section>
<title>SGI Accessories</title>
<body>

<table>
<tr>
  <th>Miscellaneous (Supported)</th>
</tr>
<tr>
  <ti>Indy/Indigo2: XL Graphics Card (Newport)</ti>
</tr>
<tr>
  <ti>Indy/Indigo2: SGI Seeq Ethernet 10Mbps</ti>
</tr>
<tr>
  <ti>Indy/Indigo2: WD33C93 SCSI</ti>
</tr>
<tr>
  <ti>Indy/Indigo2: HAL2 Sound/Audio</ti>
</tr>
<tr>
  <ti>Indy/Indigo2: Parallel Port</ti>
</tr>
<tr>
  <ti>Indy/Indigo2: Serial Port</ti>
</tr>
<tr>
  <ti>O2: SGI MACE Ethernet 10/100Mbps</ti>
</tr>
<tr>
  <ti>O2: Adaptec AIC7880 SCSI</ti>
</tr>
<tr>
  <ti>O2: Serial Port</ti>
</tr>
<tr>
  <ti>Indigo2 ISA: Parallel Port Card (PC-Style)</ti>
</tr>
<tr>
  <ti>Indigo2 ISA: NE2000 Compatible 10Mbps NIC (RTL8019)</ti>
</tr>
<tr>
  <th>Miscellaneous (Experimental)</th>
</tr>
<tr>
  <ti>Indy: I2C/VINO subsystem &amp; IndyCam</ti>
</tr>
<tr>
  <ti>O2: GBE Framebuffer</ti>
</tr>
<tr>
  <ti>O2: PCI Slot</ti>
</tr>
<tr>
  <ti>Octane: Keyboard</ti>
</tr>
<tr>
  <ti>Octane: Mardi Gras (MGRAS) Graphics</ti>
</tr>
<tr>
  <ti>Octane: QLogic ISP1040B SCSI</ti>
</tr>
<tr>
  <ti>Octane: RAD1 Audio</ti>
</tr>
<tr>
  <ti>Origin: IOC3 Ethernet 10/100Mbps</ti>
</tr>
<tr>
  <ti>Origin: QLogic ISP1020 SCSI</ti>
</tr>
<tr>
  <ti>Indigo2 EISA: 3COM 3c597 10/100Mbps</ti>
</tr>
<tr>
  <ti>O2 PCI: ALi 5273 USB 2.0 (Req. Kernel >=2.6.8.1)</ti>
</tr>
<tr>
  <th>Miscellaneous (Unsupported)</th>
</tr>
<tr>
  <ti>Indy/Indigo2: Impact &amp; Extreme/XZ graphics chipsets</ti>
</tr>
<tr>
  <ti>Indy: Phobos G130 10/100Mbps NIC</ti>
</tr>
<tr>
  <ti>Indigo2: GIO64 Slots</ti>
</tr>
<tr>
  <ti>Indigo2: Phobos G160 10/100Mbps NIC</ti>
</tr>
<tr>
  <ti>Challenge S: WD33C95A SCSI Adapter/RJ-45 Daughter Card</ti>
</tr>
<tr>
  <ti>O2: VICE Subsystem</ti>
</tr>
<tr>
  <ti>Octane: SMP Support</ti>
</tr>
<tr>
  <ti>Octane: V6/V8/V10/V12 Graphics (Odyssey)</ti>
</tr>
</table>

<p>&#160;</p>

</body>
</section>


<section>
<title>Notes on SGI Machines</title>
<body>

<impo>
<b><c>(1)</c></b> If you lack an appropriate Framebuffer, you will be required 
to use serial console.  Serial console programs for linux include <c>minicom</c>
and <c>xc</c>, and for Windows, <c>HyperTerminal</c> and <c>Tera Term Pro</c>.
If you are running Windows, and intend to use HyperTerminal, it is advised that 
you seek out an updated client from the program's website instead of the one 
installed by default.  An upgraded client provides much better serial support
than the default one installed by Windows.
</impo>

<impo>
<b><c>(2)</c></b> The Challenge S has its RJ-45 connector on a daughter board 
(Mezz) linked with an unsupported SCSI adapter, a <c>WD33C95A</c>.  In order 
for this network connector to function, this SCSI bus needs to be activated, 
however it is not yet supported by Linux.  As a result of this, the Challenge
S can only get network connectivity via its AUI connector.
</impo>

<impo>
<b><c>(3)</c></b> Indigo2 EISA Support is <e>highly</e> experimental.  It isn't 
very well tested and may not work with all hardware.  Hardware that it is known
to function with is listed, and as more compatible hardware is discovered, it 
will be added.  Please note that hardware requiring DMA support is currently 
not functional.  This includes EISA/ISA-based soundcards.  EISA Video cards 
requiring an x86-compatible BIOS are also not functional.
</impo>

<impo>
<b><c>(4)</c></b> The IP22 Serial Driver is non-functional in the 2.6 kernel, 
so while the 2.6 kernel will boot on IP22 systems, if you lack an appropriate 
framebuffer, then you will be unable to see any output on the main console.
Hopefully this driver will be fixed soon.
</impo>

<impo>
<b><c>(5)</c></b> IP28 Indigo2 Impact support (classified as an Indigo2 system 
w/ an R10000 Processor) is <e><c>very experimental</c></e>.  Most of the work 
is currently being done by Peter Fuerst, and he maintains patches on his 
website at <uri>http://home.alphastar.de/fuerst/download.html</uri>.  This 
kernel is <e><brite>NOT</brite></e> intended for stable, day-to-day use.
The Indigo2 IP28 system suffers from an issue known as <e>Speculative 
Execution</e>, a feature of the R10000 Processor that is problematic on 
machines that are <e>Non Cache Coherent</e>, such as the IP28 Indigo2 
and on R10000/R12000-based IP32 O2 systems.  Details on the nature of 
Speculative Execution, and the issues it poses to the Indigo2 can be found 
at the following URLs:
<br/>
1. MIPS R10000 Microprocessor User's Manual (See <c>PDF Pages 51-55</c>) - 
  <uri>http://techpubs.sgi.com/library/manuals/2000/007-2490-001/pdf/007-2490-001.pdf</uri>
<br/>
2. 
  Post to NetBSD sgimips Mailing List on 29 Jun 2000 - 
  <uri>http://mail-index.netbsd.org/port-sgimips/2000/06/29/0006.html</uri>
</impo>

<impo>
<b><c>(6)</c></b> The O2 RM7000 Processor support is limited in Linux currently,
as it requires a fairly recent kernel version (>2.6.7), and has several notable
issues.  The first issue is a problem with scsi at the moment, making the 
internal disks unusable at the current time.  The Level 3 (Tertiary) Cache is 
also disabled due to there being no support for this cache in the linux kernel.
<br /><br />
Please be aware that this note only applies to the official SGI RM7000 running 
at 350MHz, not the 600MHz RM7000 that can be assembed using an RM5200 board.  
These "modded" CPU modules for O2 systems are not supported/tested, although,
in theory, they should be functional, but may suffer from the same problems 
listed above.
</impo>

<impo>
<b><c>(7)</c></b> Octane support in Linux shoul be regarded as 
<e><c>experimental</c></e>.  Support for this particular machine from SGI has
been progressing quite well, and the Linux kernel functions reasonably well.  
The current status for this system may be found here: 
<uri>http://helios.et.put.poznan.pl/~sskowron/ip30/</uri>.  Wider 
support in Gentoo for this system will be available in the future, so watch
this space closely for more details.
</impo>

<impo>
<b><c>(8)</c></b> The maximum amount of RAM supported in the Indy, Challenge S,
Indigo2 (not Power or Impact), and O2 systems is 256MB, due to no HIGHMEM 
support the Linux kernel.  Only a 64-bit kernel w/ HIGHMEM support can properly
detect RAM amounts greater than 256MB on these systems.  However, do note that
using HIGHMEM does incur a performance hit, so it should only be used when 
necessary.
</impo>

<p>&#160;</p>

</body>
</section>
<section>
<title>Cobalt Microserver Systems</title>
<body>

<table>
<tr>
  <th>Systems</th>
  <th>CPU</th>
  <th>Kernel Arch</th>
  <th>Kernel Ver</th>
  <th>Userland</th>
</tr>
<tr>
  <ti><c>(~)</c>RaQ 1</ti>
  <ti><c>(~)</c>RM5230/150MHz</ti>
  <ti><c>(~)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(~)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(~)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
<tr>
  <ti><c>(+)</c>RaQ 2</ti>
  <ti><c>(+)</c>RM5231/250MHz</ti>
  <ti><c>(+)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(+)</c>2.4, <c>(+)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
<tr>
  <ti><c>(X)</c>Qube 2700 (a.k.a. Qube 1)</ti>
  <ti><c>(X)</c>RM5230/150MHz</ti>
  <ti><c>(X)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(X)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(X)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
<tr>
  <ti><c>(+)</c>Qube 2800 (a.k.a. Qube 2)</ti>
  <ti><c>(+)</c>RM5231/250MHz</ti>
  <ti><c>(+)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(+)</c>2.4, <c>(+)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
<tr>
  <ti><c>(~)</c>Seagate NASRaQ</ti>
  <ti><c>(~)</c>RM5231/???</ti>
  <ti><c>(~)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(~)</c>2.4, <c>(X)</c>2.6</ti>
  <ti><c>(~)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
<tr>
  <ti><c>(+)</c>Gateway Microserver (rebadged Qube 2)</ti>
  <ti><c>(+)</c>RM5231/250MHz</ti>
  <ti><c>(+)</c>mipsel, <c>(X)</c>mips64el</ti>
  <ti><c>(+)</c>2.4, <c>(+)</c>2.6</ti>
  <ti><c>(+)</c>o32, <c>(X)</c>n32, <c>(X)</c>n64</ti>
</tr>
</table>

<impo>
Cobalt support is still in testing phases, and the documentation is incomplete 
and has not yet been fully integrated into this guide, nor into the Gentoo 
Handbook.  Gentoo does run on these systems, and installation stages may be 
found in the <c>experimental/mips</c> folder on your nearest mirror.  Expect 
many neat things for Cobalt machines in the coming months.
</impo>

<note>
2.6 has been tested to boot on the Cobalt RaQ2 and Qube2 systems, however 
booting this kernel requires the use of a new bootloader (called <c>colo</c>)
that can either replace the original Cobalt bootloader in the system's flash 
chip, or the new boot loader can be <e>chain loaded</e>, or booted by the old
bootloader.  Those interested in learning more about this new bootloader may
visit the webpage of its author, who also maintains several 2.4/2.6 patchsets
for these machines.  The webpage can be found here: 
<uri>http://www.colonel-panic.org/cobalt-mips/</uri>.  This new bootloader is
available in the portage tree as <c>sys-boot/colo</c>.
</note>

<p>&#160;</p>

</body>
</section>
<section>
<title>Other Notes</title>
<body>

<note>
The Playstation 2 is a specialized MIPS system, using an R5900 MIPS processor 
(EmotionEngine) manufactured by Toshiba.  The support for this processor is 
extremely limited, and only found in the development toolchains available in
the PS2 Linux Kit and via some patches available on the PS2 Linux Homepage. 
There was a limited amount of work done on porting Gentoo to the PS2 Linux 
Kit, however it is incomplete as of this writing.  Those interested may visit
<uri>http://playstation2-linux.com/projects/gentoo-ps2/</uri> if they are 
interested in assisting or completing the port.  Additional information on 
PS2 Compiler Toolchains can be found at <uri>http://www.ps2dev.org/</uri>.
</note>

<note>
Gentoo/MIPS has also been installed on a SiByte BCM1250 Machine, a Big-endian, 
dual-processor MIPS machine.  Currently, only one person to date has done this,
but more people willing to test Gentoo on such hardware are welcomed to try 
and report results.
</note>

<p>&#160;</p>

</body>
</section>
<section>
<title>Minimum Recommended Requirements</title>
<body>

<ul>
  <li>
    128MB RAM - More ram is better, as Gentoo currently uses the gcc-3.2.x and 
    greater versions of gcc. These versions of gcc tend to consume more memory
    than their older 2.95.x counterparts, and on the merging of large packages,
    anything less than 128MB of ram could make gcc fail to compile the package,
    or mysteriously stop in the middle of compiliation.  A recommended amount 
    of ram is 160MB.
  </li>
  <li>
    9GB Hard Drive Space - 9GB is more or less the recommended minimum.  It is 
    enough space to install Gentoo on and leaves extra space for daily 
    activities on the machine.  Gentoo has been installed on smaller drives, 
    the smallest being a 3.2GB drive, but it does not leave alot of room for
    much else.
  </li>
</ul>

<p>&#160;</p>

</body>
</section>
</chapter>
</guide>
