Subject: R5K L2 Cache problem again
To: None <port-sgimips@netbsd.org>
From: sgimips NetBSD list <sgimips@mrynet.com>
List: port-sgimips
Date: 12/17/2001 16:53:27
Well, I have a complete distribution with new CD image for the INDYs
ready to go, but...
I can't build a working kernel again for the INDY R5000.
The kernel works fine on the R4400. Appears to be L2 Cache problem again.
I'm already disabling the L2 Cache forcefully with code previously
suggested by Chris Sekiya:
--- /usr/src/sys/arch/sgimips/sgimips/ip22.c Fri Nov 16 05:11:55 2001
+++ ip22.c Sun Nov 25 22:11:04 2001
@@ -452,11 +452,15 @@
* If we don't have an R4000-style cache, then initialize the
* IP22 SysAD L2 cache.
*/
+#if defined(L2_CACHE_ACTUALLY_WORKS)
if (mips_sdcache_line_size == 0) {
+#endif
/* XXX */
printf("%s: disabling IP22 SysAD L2 cache\n", self->dv_xname);
ip22_sdcache_disable();
+#if defined(L2_CACHE_ACTUALLY_WORKS)
}
+#endif
}
Has anyone build a kernel recently using the latest cvs sources?
Any suggestions or other info I can provide? This is the only
thing holding up a new test release distribution :)
-scott
Here's the output when booting on the R5K:
NetBSD 1.5Z (MRYINDY2) #4: Mon Dec 17 08:29:19 CST 2001
root@mod80:/usr/src/sys/arch/sgimips/compile/MRYINDY2
128 MB memory, 115 MB free, 768 KB for ARCS, 6656 KB in 1664 buffers
mainbus0 (root): SGI-IP22 [SGI, 690b5eb1], 1 processor
cpu0 at mainbus0: MIPS R5000 CPU (0x2310) Rev. 1.0 with built-in FPU Rev. 1.0
cpu0: 32KB/32B 2-way set-associative L1 Instruction cache, 48 TLB entries
cpu0: 32KB/32B 2-way set-associative write-back L1 Data cache
cpu0: 512KB/32B direct-mapped write-back L2 Data cache
cpu0: disabling IP22 SysAD L2 cache
imc0 at mainbus0 addr 0x1fa00000
imc0: Revision 3
gio0 at imc0
hpc0 at gio0 addr 0x1fb80000: SGI HPC3
zsc0 at hpc0 offset 0x59830
zstty0 at zsc0 channel 1 (console i/o)
zstty1 at zsc0 channel 0
sq0 at hpc0 offset 0x54000: SGI Seeq 80c03
sq0: Ethernet address 08:00:69:0b:5e:b1
wdsc0 at hpc0 offset 0x44000: 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...
sd0 at scsibus0 target 1 lun 0: <SEAGATE, ST34573N, 6244> SCSI2 0/direct fixed
sd0: 4340 MB, 7501 cyl, 5 head, 237 sec, 512 bytes/sect x 8888924 sectors
sd0: sync (200.0ns offset 12), 8-bit (5.000MB/s) transfers, tagged queueing
sd1 at scsibus0 target 2 lun 0: <SEAGATE, ST34573N, 6244> SCSI2 0/direct fixed
sd1: 4340 MB, 7501 cyl, 5 head, 237 sec, 512 bytes/sect x 8888924 sectors
sd1: sync (200.0ns offset 12), 8-bit (5.000MB/s) transfers, tagged queueing
sd2 at scsibus0 target 3 lun 0: <SEAGATE, ST34573N, 6244> SCSI2 0/direct fixed
sd2: 4340 MB, 7501 cyl, 5 head, 237 sec, 512 bytes/sect x 8888924 sectors
sd2: sync (200.0ns offset 12), 8-bit (5.000MB/s) transfers, tagged queueing
cd0 at scsibus0 target 4 lun 0: <TOSHIBA, CD-ROM XM-5401TA, 3605> SCSI2 5/cdrom removable
cd0: sync (300.0ns offset 12), 8-bit (3.333MB/s) transfers
boot device: sd1
root on sd1a dumps on sd1b
mountroot: trying cd9660...
mountroot: trying nfs...
mountroot: trying ffs...
readclock: 2001/12/17/14/30/21
root file system type: ffs
trap: TLB miss (load or instr. fetch) in kernel mode
status=0xff03, cause=0x8, epc=0x0, vaddr=0x0
pid=1 cmd=init usp=0x0 ksp=0xc9d4de58
Stopped in pid 1 (init) at 0: invalid address.
db>
And here's the config file:
mod80# cat MRYINDY2
# $NetBSD: TEAL,v 1.9 2001/11/22 01:11:51 soren Exp $
include "arch/sgimips/conf/std.sgimips"
#makeoptions TEXTADDR=0x80002000 # O2/INDY
makeoptions TEXTADDR=0x88069000 # O2/INDY Symmon
#makeoptions TEXTADDR=0x8001c000 # IP27
#makeoptions TEXTADDR=0x80300000 # IP27 Symmon
maxusers 32
options SCSI_DELAY=5
options MIPS3
options MIPS3_L2CACHE_ABSENT
#options MIPS3_L2CACHE_PRESENT
options KTRACE
options SYSVMSG # System V message queues
options SYSVSEM # System V semaphores
options SYSVSHM # System V shared memory
options PARANOIADIAG
options DDB
options DDB_HISTORY_SIZE=100
options DEBUG
options DIAGNOSTIC
#options KGDB
#options KGDB_DEV=0x2301 # KGDB port - this is Serial(1)
#options KGDB_DEVRATE=19200 # KGDB Baud Rate
#makeoptions DEBUG="-g"
file-system FFS
file-system NFS
file-system KERNFS
file-system PROCFS
file-system CD9660 # ISO 9660 + Rock Ridge file system
options NFSSERVER
options FFS_EI
options SOFTDEP
options INET
options SCSIVERBOSE
options NFS_BOOT_DHCP
#options NFS_BOOT_BOOTPARAM
options IP22
config netbsd root on ? type ?
mainbus0 at root
cpu0 at mainbus0
imc0 at mainbus0 addr 0x1fa00000
gio0 at imc0
eisa0 at imc0
hpc0 at gio? addr 0x1fb80000
hpc1 at gio? addr 0x1fb00000
#hpc2 at gio? addr 0x1f980000
sq* at hpc0 offset ?
wdsc* at hpc0 offset ?
dsclock* at hpc0 offset ?
#
# As always, the zs chip is wired funny, so channel 1 is actually the
# first serial port and channel 0 is the second.
#
zsc* at hpc0 offset ? # pbus0 device ?
zstty* at zsc? channel ?
#pbus0 at hpc0
#pckbc0 at pbus0 device ?
scsibus* at wdsc?
sd* at scsibus? target ? lun ? # SCSI disks
st* at scsibus? target ? lun ? # SCSI tapes
cd* at scsibus? target ? lun ? # SCSI CD-ROMs
ch* at scsibus? target ? lun ? # SCSI changer devices
pseudo-device loop
pseudo-device pty
pseudo-device bpfilter 8
pseudo-device md 1
pseudo-device rnd # /dev/random and in-kernel generator
pseudo-device vnd 4
mod80#