* R10000/R12000 Support on IP32 is HIGHLY EXPERIMENTAL!
* This is intended ONLY for people interested in fixing it up. And
* by that, I mean people willing to SEND IN PATCHES! If you're not
* interested in debugging this issue seriously or just want to run it
* as a user, then DO NOT USE THIS. Really, we mean it.
* All that said, initial testing seems to indicate that this system will
* stay online for a reasonable amount of time and will compile packages.
* However, the primary console (which is serial, gbefb seems dead for now)
* will fill with CRIME CPU errors every so often. A majority of these
* seem harmless, however a few non-fatal oopses have also been triggered.
* We're interesting in finding anyone with knowledge of the R10000
* workaround for speculative execution listed in the R10000 Processor
* manual, or those who are familiar with the IP32 chipset and the feature
* called "Juice".
* !!! BIG FAT WARNING
* !!! To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)
* !!! systems, you _need_ to be using a >=gcc-4.1.1 compiler, have CONFIG_BUILD_ELF64
* !!! disabled in your kernel config, and building with the vmlinux.32 make target.
* !!! In prior times, an ugly hack was used to build an ELF64 binary that resembled
* !!! an ELF32 binary in order to make the ARCS PROMs on these systems boot the
* !!! kernel. This hack is no longer in use nor supported in 2.6.17 and beyond. In
* !!! order to achieve the same effect, a new flag available in >=gcc-4.x is used,
* !!! and as such, makes >=gcc-4.1.1 the preferred compiler for 2.6.17 and beyond.
*
* !!! Remember, build your IP22 and IP32 kernels with the following command:
* !!! following make command: make vmlinux.32
* !!! Once done, copy the vmlinux.32 file and boot that. Do not use the
* !!! vmlinux file -- this will either not boot on IP22 or result in
* !!! undocumented weirdness on IP32 systems.
* Failed Patch: misc-2.6.20-ip32-r10k-support.patch !
* ( /var/tmp/portage/sys-kernel/mips-sources-2.6.22.6/work/mips-patches/misc-2.6.20-ip32-r10k-support.patch )
*
* Include in your bugreport the contents of:
*
* /var/tmp/portage/sys-kernel/mips-sources-2.6.22.6/temp/misc-2.6.20-ip32-r10k-support.patch-5331.out
*
* ERROR: sys-kernel/mips-sources-2.6.22.6 failed.
* Call stack:
* ebuild.sh, line 49: Called src_unpack
* environment, line 2745: Called do_sekrit_patches
* environment, line 728: Called epatch 'src_unpack'
* environment, line 1300: Called die
* The specific snippet of code:
* die "Failed Patch: ${patchname}!";
* The die message:
* Failed Patch: misc-2.6.20-ip32-r10k-support.patch!
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/tmp/portage/sys-kernel/mips-sources-2.6.22.6/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/sys-kernel/mips-sources-2.6.22.6/temp/environment'.
*

2) why there is no IP32/IP32r10k o32 in the default-linux/mips* profile tree ?

3) how is O2+/R12K really supported ?

i read this from http://www.nekochan.net/wiki/index.php/SGI_O2 : it seems the r10000/r12000 is not well supported.
Also messages posted to linux-mips.org indicated that the r10k problems are being worked on, what is it the truth ?

I mean: what about "R10000/R12000 CPUs issue with the way they handle speculative loads and stores" ?? solved ?? if so, in which kernel ?

Quote:

Linux
There is official Linux support for the O2 in Debian 4.0 "Etch" as well as in Gentoo but only for R5000/R7000 O2s. Linux is not stable on R10000/R12000 CPUs due to a known issue with the way they handle speculative loads and stores, detailed here. This is not a problem for Linux on the Octane as there is different hardware to support these processor features.
O2 hardware currently not fully supported by Linux: (as of kernel 2.6.24)
R10K or R12K processors.
CRM Accelerated Graphics (framebuffer only)
Sound (experimental ALSA driver exists, output is distorted)
Video capture via SAA 7111 (Linux driver exists for the chip)
ICE (experimental patches exist)
AIC-7880 SCSI only works in 20MB/s synchronous mode or slower.

Last edited by ddc on Mon Jun 02, 2008 12:06 am; edited 5 times in total

Processor Options:
Stable: R5000, RM5200
Experimental: RM7000
Unsupported: R10000
Kernel Support:
Linux 2.4: Unsupported in Kernel
Linux 2.6: Stable
Kernel Architecture Support:
32-bit: Unsupported in Kernel
64-bit: Stable
Userland Support:
o32: Stable
n32: Experimental (Only on Linux 2.6)
n64: Not Available In Gentoo
Notes:
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.
Please be aware that this note only applies to the official SGI RM7000 running at 350MHz, not the 600MHz RM7000 that can be assembled 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.

The system will barely run 5 minutes before dying if it runs at all. And any heavy DMA work, will kill it._________________Stuart Longland (a.k.a Redhatter, VK4MSL)
I haven't lost my mind - it's backed up on a tape somewhere...

The system will barely run 5 minutes before dying if it runs at all. And any heavy DMA work, will kill it.

I am trying to understand the real status of IP32r10k ... it seems there are a ton of disinformation around ... just to make out the point, and arrange a working table: here i've got an O2 R12K, so it's my interest to fix the jam

The only "disinformation" out there... is that they run Linux to any degree that's useful._________________Stuart Longland (a.k.a Redhatter, VK4MSL)
I haven't lost my mind - it's backed up on a tape somewhere...

The only "disinformation" out there... is that they run Linux to any degree that's useful.

umm information is used not be updated on wikipedia (they are still talking about old kernel, for example) , there is no good tracking status around: this causes disinformation
i think i will update the stuff or publishing something by myself: it should be useful

I am interested in porting linux to O2-R10K
i don't want use irix on O2, it has no sense today: irix is a solid rock unix system to be used on something powerful like SGI FUEL where i am running IRIX 2.6.27 MIPS pro & maya
I am unofficially supporting gentoo mips R10k BigEndian stages3 (the full 2008 fixup) and masked ebuild testing (having an SMP 2xR12k IP30 in mind and real usage)

It looks to me like you should try to become a MIPS arch tester or developer.

it is a good idea, unfortunately i have no idea about how to join the team =P

the gentoo/mips team looks to me like it has less the man power it had years ago (2007.1-dev let me think that).. so it could be useful for me as it could be useful for the team
dunno, but it may be, and it should be great =P

now, with "i unofficially support" i mean i have to find out a way to produce a good stage3-2008 from the packages fixed and emerged on my IP30 ... If i am not wrong the gentoo/mips team is using an automatic tool called "catalyst" that automatically produces new stages from old ones.

In my case there was no old one, umm a too old one ... the 2006.1 which i have progressively fond out the way to fix and updated to 2008: so now after days and days of compiling and testing, i get a solid working machine, so i have to find out a nice way to produce a nice stage3 to help people involved into a bit of jam with the last BigEndian stage. After that i should find a way to report what i modified from the profile into a pretty right report paper .... to help people to unmask what had success during my test.

helping about kernel debugging requires to be much more skilled about "kernel programming" ... which I am not cause I am an hardware guy for attitude =P

I gave up on trying to use Gentoo on my O2. The R10K processor is far from usable in Linux on these things. I get all kinds of obscure errors, and can't even emerge portage before the system crashes. I went back to running IRIX on it.

I do run Linux on an Octane, but, my battle with that is a whole nother story.

I am trying to understand the real status of IP32r10k ... it seems there are a ton of disinformation around ... just to make out the point, and arrange a working table: here i've got an O2 R12K, so it's my interest to fix the jam

For all intents and purposes, IP32R10K support is dead, and the code in the mips-sources ebuilds is bitrot. No idea if or when it'll get resurrected.

Largely, the IP32R10K stuff is the IP28 patched hacked apart and the IP28-specific bits removed. However, as of 2.6.25, IP28 is now merged into the mainline kernel, and the gcc patch for cache barriers, has been re-written by one of the head upstream gcc developers and being reviewed....It might make it into gcc-4.4 (but I'll be testing it with 4.3 when the final revision comes out).

Also, the O2+ is NOT an R10000 system. The real difference between an SGI O2 and an SGI O2+ is some really savvy marketing on SGI's part, and a purple skin. Oh, and O2+ systems have an RM7000 @ 350MHz CPU in them. But that's where the differences end. The RM7000 will boot 2.6.24 (the last kernel I tried), and should run fine -- it's the main processor for my O2.

R10000 O2's are an entirely separate class of systems, and by name alone, are indistinguishable from your standard O2. Thank SGI for the ambiguity. I don't know whether those systems will ever get fixed up...there's two different ideas on how to approach the R10K speculative execution problem on those systems, and either idea involves a lot of hacking and will take a good while.

PS: I should add, I don't recommend trying to boot Linux on IP32 R10000 unless you have a deep knowledge of the R10000 processor and IP32's various subsystems (CRIME, MACE, especially). Even with one of the mips-sources ebuilds that the ip32r10k patch works on, Linux doesn't last five minutes, and that's just the machine sitting idle. Try to use network or the disk, and things go downhill real fast._________________"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic

PS: I should add, I don't recommend trying to boot Linux on IP32 R10000 unless you have a deep knowledge of the R10000 processor and IP32's various subsystems (CRIME, MACE, especially). Even with one of the mips-sources ebuilds that the ip32r10k patch works on, Linux doesn't last five minutes, and that's just the machine sitting idle. Try to use network or the disk, and things go downhill real fast.

Sounds like a fun system to work with... what's the best place to get one?

Sounds like a fun system to work with... what's the best place to get one?

They're all over eBay.

The thing is, we can't offer much support, if any, because these systems are just hard to keep linux running because of the spec exec feature of the R10K Processor. This isn't something that'll run gentoo as a userland - just getting the kernel to stay online for any decent length of time is a task unto itself. Which is why I don't advise attempting to toy with it unless you are willing to dive deep into kernel and gcc compiler code and probably learn things that go even beyond my knowledge._________________"The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between."
--Emperor Turhan, Centauri Republic

I switched my O2 back with a R5K cpu module, for the moment
primary 'cause I am working with a mips32 atheros embedded
secondary 'cause atheros will make my BOSS to give me the money to to buy a mips-notebook like this
http://www.lemote.com/english/yeeloong.html

anyway ... O2 is my hobby, any news about kernel ?

also
where can i see a patched source tree (or patches) for O2 and octane2 ?

and the last question is: how good is the PCI support of the O2 ?
(i'd like to add the pci with a sATA controller ... cause sATA HD are cheaper ... how many chances should i have to see it working ... or to adapt it to be working ?)

I switched my O2 back with a R5K cpu module, for the moment
primary 'cause I am working with a mips32 atheros embedded
secondary 'cause atheros will make my BOSS to give me the money to to buy a mips-notebook like this
http://www.lemote.com/english/yeeloong.html

anyway ... O2 is my hobby, any news about kernel ?

The kernel still works out-of-the-box for O2. You can either use mips-sources, or fetch a kernel from git.linux-mips.org.

Quote:

also
where can i see a patched source tree (or patches) for O2 and octane2 ?

For O2... there is no "patched" source tree, other than the Linux/MIPS tree. No additional patches are necessary.

For Octane{,2}... I don't think there is one that's publically viewable.

Quote:

and the last question is: how good is the PCI support of the O2 ?
(i'd like to add the pci with a sATA controller ... cause sATA HD are cheaper ... how many chances should i have to see it working ... or to adapt it to be working ?)

To be honest, I haven't tried... but it may work. Thankfully SATA controllers are cheap these days.

Another alternative would be USB or Firewire storage. Not sure how these will go on the O2, but both work flawlessly on my Qube2. (I'm running Firewire-attached storage now in fact on my Qube2.)_________________Stuart Longland (a.k.a Redhatter, VK4MSL)
I haven't lost my mind - it's backed up on a tape somewhere...

@indy
it seems the RTC is not working as the alsa mips sound: do you confirm ?
@o2
it is simply not booting

what about having 2.6.28 on octanes ? any patch around ?

umm about mips-sources-2.6.27 are interesting:
@indy the volume button is missing in the OSS/HAL2, the kernel boots but it freeze 20 sec after the /sbin/init
@O2 the kernel is not booting on O2: arcload is configured to read the kernel from an ext2 partition
well, it prompts it is reading 4Mb, then the red-led begins flashing and the system seems stalled into an infinity loop

2.6.24 vanilla is booting on O2

all has been compiled with gcc-4.1.2, vmlinux.32, config_build_elf64 disabled in the .config

now I am trying 2.6.28 from mips-sources
it will be tested on IP32(O2) and IP22(Indy)

Last edited by ddc on Sat Feb 14, 2009 8:32 pm; edited 2 times in total