O2 RM7000 Issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




So I finally managed to get my hands on one of those super-rare RM7000 CPU's for the SGI O2, and, as expected, there are some problems.

For the most part, the system will boot into userland, but it seems userland isn't at all very happy. It seems bash is the unhappiest customer so far (or rather, the only userland program I've seen fail repeatedly). Running the Gentoo init scripts at startup, several scripts will terminate will a variety of messages, from Trace/breakpoint traps, to bus errors to illegal instructions. However, in the init scripts, they happen at specific points; usually when booting our network startup scripts (neth.eth0, net.lo), and usually on an exit() function in the script. Our emerge process, while python at heart, seems to fail sporadically on the bash sections (parsing the ebuild code) as well.

I've got a feeling this is likely a problem in the kernel more than it is a problem in the userland, but the question is how to go about determining which and where. The RM7K's are pretty rare, so I imagine there's probably a few undiscovered quirks in the code (notably the SC code in arch/mips/mm/sc-rm7k.c). Not to mention, we can't even use the 1MB tertiary cache these things have.

For reference, system info:

> hinv
                   System: IP32
                Processor: 350 Mhz RM7000, with FPU
     Primary I-cache size: 16 Kbytes
     Primary D-cache size: 16 Kbytes
     Secondary cache size: 256 Kbytes
       Ternary cache size: 1024 Kbytes
              Memory size: 512 Mbytes
                 Graphics: CRM, Rev C
                    Audio: A3 version 1
                SCSI Disk: scsi(0)disk(2)
                SCSI Disk: scsi(0)disk(3)
               SCSI CDROM: scsi(0)cdrom(4)


# cat /proc/cpuinfo
system type             : SGI O2
processor               : 0
cpu model               : RM7000 V3.3  FPU V2.0
BogoMIPS                : 350.20
byteorder               : big endian
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 48
extra interrupt vector  : no
hardware watchpoint     : no
ASEs implemented        :
VCED exceptions         : not available
VCEI exceptions         : not available





And errors (from various points in the execution and multiple reboots):

 * Starting eth0
/sbin/runscript.sh: line 428:  2475 Illegal instruction     ( function exit ()

 * Starting lo
/sbin/runscript.sh: line 428:  1464 Illegal instruction     ( function exit ()


 * Starting eth0
/etc/init.d/net.eth0: line 248: 1650 Bus error ( u=0; module_load_minimum "${MODULES[i]}" || u=1; if [[ ${u} == 0 ]]; then

/sbin/runscript.sh: line 428:  2779 Bus error               ( function exit ()
{

 * Stopping syslog-ng ...                                                 [ ok ]
/lib/rcscripts/sh/rc-services.sh: line 444: 4093 Illegal instruction ( "/etc/init.d/${service}" stop )

/lib/rcscripts/sh/rc-services.sh: line 384: 1095 Trace/breakpoint trap "/etc/init.d/${service}" start



So if anyone's got some old rm7k patches sitting around they want tested, or spots where to look/debug options to turn on, let me know. I'll try switching back to an RM5200 and rebuild bash with -g and make sure gdb is installed, them change back to the RM7000 to try and capture some asm call or something that's causing these exit() failures in bash (which seem to be the primary symptom)


Cheers,


--Kumba

--
Gentoo/MIPS Team Lead

"Such is oft the course of deeds that move the wheels of the world: small hands do them because they must, while the eyes of the great are elsewhere." --Elrond


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux