Glaurung's SGI O2 page


These are experimental Linux patches for the SGI O2. They're provided with NO WARRANTY in the hope that they can be useful to someone.
All these patches are against the CVS tree at To apply the patches, first retrieve the tree using given DATE and TAG with the following commands
cvs -d login
[type 'cvs', press enter]
cvs -z3 -d co [-D DATE] [-r TAG] linux
Then apply the patches using
cd linux
patch -p1 < PATCH_TO_APPLY.diff
Newer patches sets (>= 2.5.47) may have an '' script; use it instead.

All patches provided under the GPL. See COPYING for details.

You can contact me at the following address <>

I strongly suggest using a recent toolchain: binutils-mips64 gcc-mips64 binutils-mips gcc-mips

Check ilya's page for an HOWTO and other O2 related stuff. A modified version of arcboot (patch here) can be used to load the kernel directly from an ext2/3 partition.

2.5.1 "Thu Jul 4 13:40:31 UTC 2002" linux_2_5_1 config patches-2.5.1.tar.gz Linux 64bit/R5000
2.5.4 "today" linux_2_5_4 config patches-2.5.4.tar.gz Linux 64bit/R5000
Linux 64bit/R10000
2.5.5 "today" linux_2_5_5 config patches-2.5.5.tar.gz Linux 64bit/R5000
2.5.8 "today" linux_2_5_8 patches-2.5.8.tar.gz
2.5.47 "Sat Apr 26 19:06:38 UTC 2003" linux_2_5_47 config 64bit/R5000
config 32bit/R5000
patches-2.5.47.tar.gz Linux 64bit/R5000
Linux 32bit/R5000
Linux 64bit/R10000
2.6.1 "Mon Feb 2 13:57:08 UTC 2004" linux_2_6_1 config 64bit
patches-2.6.1.tar.gz Linux 64bit

R10000 speculative store workaround todo
  • map kernel in XSSEG using a 16MB wired TLB entry
  • allocate DMA buffers above 16MB
  • remove any TLB mapping for a DMA buffer before giving it to device
  • make sure mapping isn't put back in TLB during DMA transfer
32 bit support in progress
Sound driver (ALSA) in progress
  • recording not done
RTC driver in progress
Framebuffer driver in progress
  • need more vmalloc mappings or a fixmap implementation
PS/2 driverdone
Serial driverdone
Ethernet driverdone
VICE driver in progress
  • needs userland testing
Here is a screenshot of my O2 R10000 running afterstep on NFS root.

VICE support

These are tools to support for the Video Image Compression Engine of the SGI O2, currently including patches to binutils to add instructions support for the VICE Media Streaming Processor and Bitstream Streaming Processor, and a library with sample code. Just started and very EXPERIMENTAL.

libvice 0.0.1
MSP instrutions for binutils 2.13
BSP support for binutils CVS