[2265] in Release_7.7_team

home help back first fref pref prev next nref lref last post

R5000 rev 1.x problem

daemon@ATHENA.MIT.EDU (Robert A Basch)
Wed May 17 15:53:30 2000

Message-Id: <200005171953.PAA552604@aupair.mit.edu>
To: release-team@MIT.EDU
Date: Wed, 17 May 2000 15:53:22 -0400
From: Robert A Basch <rbasch@MIT.EDU>

The two machines in the beta-sgi62 cluster which are in the list of 89
machines with the rev 1.x R5000 CPU are capacitor-bank and special-forces.

Here are the directions for disabling the software workaround which
breaks AFS under IRIX 6.5.7 on R5000 rev 1.x Indy's:

Bring the machine down, and enter the PROM command monitor.  At the
">>" prompt, enter:

     setenv -p _R5000_CVT_WAR 0

This sets a persistent special environment variable which will disable
the workaround in the kernel.  For now, this is required in order for
the update to Athena 8.4 to succeed.

The processor revision can be obtained by doing "hinv -t cpu".

(The above setting can be undone by doing "unsetenv _R5000_CVT_WAR"
at PROM command level; this should be done after we have a fix for
the AFS problem under 6.5.7).

The mipscheck(1) man page contains some more information about the
problem, though it should be noted that the processor flaw actually
exists in all rev 1.x R5000's; according to the R5000 errata sheet,
the flaw was corrected in rev 2.1:

     -cvtl[:action...]
          Look for cvt.s.l and cvt.d.l instructions.  These instructions
          convert 64-bit integers to single or double floating point
          format.

     Revision [1.1] of the r5000 can misexecute cvt.s.l and cvt.d.l
     instructions when the 64-bit integer input data is in either of the
     following ranges:

          0x7FF0 0000 0000 0000    to    0x7FFF FFFF FFFF FFFF
          0x8000 0000 0000 0000    to    0x800F FFFF FFFF FFFF

     When input data is in the preceding ranges, these instructions are
     supposed to trap into the kernel where they will be emulated in
     software.  Unfortunately, they do not trap and they generate an
     incorrect result.  These instructions are fairly rare and are found in
     mips3 and mips4 executables only; they are never in mips1 or mips2
     programs.  There is a work-around for this problem, implemented
     entirely within the operating system kernel, which should be invisible
     to all user programs.  See the r5000 errata sheet for more details.

home help back first fref pref prev next nref lref last post