Subject: Re: NOTICE: thorpej-mips-cache branch will be merged today
To: None <>
From: Havard Eidnes <>
List: port-mips
Date: 11/16/2001 17:29:18
> 		* R4000/R4400 (cache_r4k) --
> 		  tracked down a bug, which has been fixed.
> 		  Confirmed working on R4000-with-L2.
> 		  Confirmed working on R4400-no-L2 and
> 		  R4400-with-L2.

I hate to rain on your parade, but my Indigo2 with R4400 and 2MB SC,
where I have tweaked the code to use the 2M cache via

viola: {4} cvs diff cpu.c
Index: cpu.c
RCS file: /cvsroot/syssrc/sys/arch/sgimips/sgimips/cpu.c,v
retrieving revision 1.6
diff -u -r1.6 cpu.c
--- cpu.c       2001/11/14 18:15:35     1.6
+++ cpu.c       2001/11/16 16:24:57
@@ -71,7 +71,10 @@
        switch (mach_type) {
        case MACH_SGI_IP22:
-               mips_sdcache_size = 1024 * 1024;        /* XXX Indy */
+#ifndef SGI_L2_CACHE_SIZE
+#define SGI_L2_CACHE_SIZE 1024
+               mips_sdcache_size = SGI_L2_CACHE_SIZE * 1024;/* XXX Indy */
        case MACH_SGI_IP32:
viola: {5} 

and a config file which sats SGI_L2_CACHE_SIZE to 2048 apparently has
problems with the SCSI controller when I try to reboot with a kernel
compiled from today's sources, as shown below (I can decode the
addresses if need be, but DDB apparently can't (yet)).

(I had to do "init" in the monitor before the old kernel would
cooperate without spazzing out on the SCSI controller as well...)


- Havard


                           Starting up the system...

NetBSD/sgimips 1.5Y  Bootstrap, Revision 1.0
(, Mon Jul 12 12:31:09 CEST 1993)

Mem block: type 0 base 0x0 size 0x1000
Mem block: type 1 base 0x1000 size 0x1000
Mem block: type 3 base 0x8002000 size 0x73e000
Mem block: type 6 base 0x8740000 size 0xc0000
Mem block: type 3 base 0x8800000 size 0x800000
Mem block: type 5 base 0x9000000 size 0xc000
Mem block: type 3 base 0x900c000 size 0xeff4000
Local storage 887fe558
argv[0]: scsi(0)disk(2)rdisk(0)partition(8)/boot
argv[1]: OSLoadOptions=auto
argv[2]: ConsoleIn=serial(0)
argv[3]: ConsoleOut=serial(0)
argv[4]: SystemPartition=scsi(0)disk(2)rdisk(0)partition(8)
argv[5]: OSLoader=boot
argv[6]: OSLoadPartition=scsi(0)disk(2)rdisk(0)partition(0)
argv[7]: OSLoadFilename=/netbsd
Boot: scsi(0)disk(2)rdisk(0)partition(0)/netbsd
devopen: scsi(0)disk(2)rdisk(0)partition(0) type scsi file /netbsd
diskopen: 0,2,0 scsi(0)disk(2)rdisk(0)partition(0)
1359088+136648 [61520+50481]=0x188a50
Starting at 0x88002000

nsym 0x1 ssym 0x8816f2b8 esym 0x8818aa50
zs channel 0 had address 0xbfbd9830
IOC rev 0, machine Indigo2 (Fullhouse), board rev 8
Timer calibration, got 1250000 cycles (1250000, 1250000, 1250000)
CPU clock speed = 125.00Mhz
Mem block 1: type 0, base 0, size 1
Mem block 2: type 1, base 1, size 1
Mem block 3: type 3, base 32770, size 1854
Mem block 4: type 6, base 34624, size 192
Mem block 5: type 3, base 34816, size 2048
Mem block 6: type 5, base 36864, size 12
Mem block 7: type 3, base 36876, size 61428
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 1.5Y (VIOLA) #12: Fri Nov 16 12:05:54 CET 2001
256 MB memory, 234 MB free, 768 KB for ARCS, 13208 KB in 3302 buffers
mainbus0 (root): SGI-IP22 [SGI, 690a6af3], 1 processor
cpu0 at mainbus0: MIPS R4400 CPU (0x460) Rev. 6.0 with MIPS R4010 FPC Rev. 0.0
cpu0: 16KB/16B direct-mapped L1 Instruction cache, 48 TLB entries
cpu0: 16KB/16B direct-mapped write-back L1 Data cache
cpu0: 2048KB/128B direct-mapped write-back L2 Unified cache
imc0 at mainbus0 addr 0x1fa00000
imc0: Revision 3
gio0 at imc0
hpc0 at gio0 addr 0x1fb80000
zsc0 at hpc0
zstty0 at zsc0 channel 1 (console i/o)
zstty1 at zsc0 channel 0
sq0 at hpc0: SGI Seeq 80c03
sq0: Ethernet address 08:00:69:0a:6a:f3
wdsc0 at hpc0: WD33C93B SCSI, rev=0, target 7
scsibus0 at wdsc0: 8 targets, 8 luns per target
dsclock0 at hpc0 offset 0x60000
biomask 07 netmask 07 ttymask 0f clockmask bf
scsibus0: waiting 5 seconds for devices to settle...
probe(wdsc0:0:1:0): wdsc0: timed out; asr=0x20 [acb 0x8963f000 (flags 0x1, dleft 4a)], <state 5, nexus 0x8963f000, resid 4a, msg(q 0,o 0)>probe(wdsc0:0:1:0): ABORT in timeout: csr=0xff, asr=0x20
probe(wdsc0:0:1:0): sending ABORT command
probe(wdsc0:0:1:0): Resetting bus
: WD33C93B SCSI, rev=0, target 7
probe(wdsc0:0:1:0): wdsc0: timed out; asr=0x00 [acb 0x8963f000 (flags 0x41, dleft 4a)], <state 8, nexus 0x8963f000, resid 4a, msg(q 0,o 0)>probe(wdsc0:0:1:0): ABORT in timeout: csr=0x01, asr=0x00
probe(wdsc0:0:1:0): sending ABORT command
probe(wdsc0:0:1:0): sending DISCONNECT to target
sbic_wait: TIMEO @877 with asr=x0 csr=x1
Stopped at      0x880f8c54:     jr      ra
                bdslot: nop
db> trace
880f8c50+4 (f800,0,0,8) ra 8810ec0c sz 0
8810eb60+ac (f800,0,0,8) ra 8810efa4 sz 48
8810ec64+340 (f800,0,0,8) ra 8811201c sz 48
88111f14+108 (f800,0,0,8) ra 88018770 sz 72
8801853c+234 (f800,0,0,8) ra 8801846c sz 56
88017cd8+794 (f800,0,0,8) ra 8810623c sz 40
881061d0+6c (f800,0,0,8) ra 88109e0c sz 64
88109dc4+48 (f800,0,0,8) ra 88003208 sz 32
mips3_KernIntr+84 (882bd000,8816d568,0,0) ra 88002278 sz 128
cpu_switch+64 (882bd000,8816d568,0,0) ra 88029c08 sz 24
88029998+270 (882bd000,8816d568,0,0) ra 880291d0 sz 48
88028f98+238 (882bd000,8816d568,0,0) ra 881160f4 sz 48
88115d9c+358 (882bd000,8816d568,0,0) ra 88118268 sz 56
8811812c+13c (882bd000,8816d568,0,0) ra 88113610 sz 48
88113550+c0 (882bd000,8816d568,0,0) ra 88114ce4 sz 64
88114c64+80 (882bd000,8816d568,0,0) ra 88118afc sz 72
88118a34+c8 (882bd000,8816d568,0,0) ra 88118804 sz 176
881186d0+134 (882bd000,8816d568,0,0) ra 881184f4 sz 56
88118478+7c (882bd000,8816d568,0,0) ra 8802f9a4 sz 32
8802f914+90 (882bd000,8816d568,0,0) ra 8802ec0c sz 40
8802ebb0+5c (882bd000,8816d568,0,0) ra 880163dc sz 24
main+47c (882bd000,8816d568,0,0) ra 88002098 sz 88
User-level: curproc NULL
db> reboot 8
syncing disks... done

sc0,1,0: cmd=0x12 timeout after 2 sec.  Resetting SCSI bus
Cannot connect to keyboard -- check the cable.
Cannot open keyboard() for input
Cannot connect to keyboard -- check the cable.
Cannot open keyboard() for inut