Subject: esp driver is unhappy on my embedded sparc
To: None <port-sparc@NetBSD.ORG>
From: Ken Hornstein <kenh@cmf.nrl.navy.mil>
List: port-sparc
Date: 01/20/1998 00:48:55
So, I've got this _REALLY_ weird embedded sparc board:

FORCE CPU-2CE, No Keyboard, ROM Rev. 2.3.6 P/N 910-12437-102
16 MB memory installed, Serial #81410.
Ethernet address 0:80:42:42:5:82, Host ID: 55813e02
Copyright (c) 1990, Sun Microsystems, Inc.
Copyright (c) 1992, Force Computers Inc.

(Don't ask where I got it from :-) ).

And, naturally, I'd like to get NetBSD to run on it.  I'm booting it
diskless for right now, and unfortunately, things don't seem to be
very happy with the ESP driver.  I get these messages at boot:

NetBSD 1.3 (GENERIC) #0: Thu Jan  1 18:26:28 MET 1998
    pk@flambard:/usr/src1/sys/arch/sparc/compile/GENERIC
real mem = 16691200
avail mem = 14192640
using 128 buffers containing 524288 bytes of memory
bootpath: /sbus0/le@0,c00000
mainbus0 (root): SUNW,Sun 4/75
cpu0 at mainbus0: cache chip bug; trap page uncached: W8601/8701 or MB86903 @ 40 MHz, on-chip FPU
cpu0: 64K byte write-through, 32 bytes/line, hw flush: cache enabled
memreg0 at mainbus0 ioaddr 0xf4000000
clock0 at mainbus0 ioaddr 0xf2000000: mk48t02 (eeprom)
timer0 at mainbus0 ioaddr 0xf3000000 delay constant 18
auxreg0 at mainbus0 ioaddr 0xf7400003
zs0 at mainbus0 ioaddr 0xf1000000 pri 12, softpri 6
zstty0 at zs0 channel 0 (console)
zstty1 at zs0 channel 1
zs1 at mainbus0 ioaddr 0xf0000000 pri 12, softpri 6
kbd0 at zs1 channel 0
ms0 at zs1 channel 1
audioamd0 at mainbus0 ioaddr 0xf7201000 pri 13, softpri 4
audio0 at audioamd0
sbus0 at mainbus0 ioaddr 0xf8000000: clock = 20 MHz
dma0 at sbus0 slot 0 offset 0x400000: rev 1+
esp0 at sbus0 slot 0 offset 0x800000 pri 3: ESP100A, 20MHz, SCSI ID 7
scsibus0 at esp0: 8 targets
esp0: !TC [intr 10, stat 87, step 1] prevphase 6, resid 0
esp0: illegal command: 0x90 (state 4, phase 6, prevphase 6)
esp0: !TC [intr 10, stat 87, step 1] prevphase 6, resid 0
esp0: illegal command: 0x90 (state 4, phase 6, prevphase 6)
probe(esp0:3:0): esp0: timed out [ecb 0xf06138a4 (flags 0x1, dleft 0, stat 0)], <state 2, nexus 0xf06138a4, phase(c 0, p 101), resid 0, msg(q 0,o 0) >

I get a bunch of these "probe(esp0:3:0) messages, until it finally finds
the Ethernet chip:

le0 at sbus0 slot 0 offset 0xc00000 pri 5: address 00:80:42:42:05:82
le0: 8 receive buffers, 2 transmit buffers
vme at mainbus0 ioaddr 0xefe00000 not configured
iscsi at mainbus0 ioaddr 0xefe00000 not configured
network "reg" property length = -1 (need multiple of 12)
	
(btw ... is this something to worry about?)

And of course, it doesn't see the disk at ID 3 :-(

Even worse, when I try booting off of the disk after this (it has
SunOS installed on it), I get:

The SCSI bus is hung.  Perhaps an external device is turned off.

Ouch!  The only way to fix this is to power-cycle.

I seem to remember some talk of bugs with the NCR SCSI chip and DMA not
completing (from my quick look at the sources, that's what !TC means),
but I had _thought_ they were dealt with.

Any ideas?

Thanks in advance!

--Ken