Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Dec 1995 11:36:42 -0800
From:      "Justin T. Gibbs" <gibbs@freefall.freebsd.org>
To:        Scott Mace <smace@metal.neosoft.com>
Cc:        hackers@freebsd.org, scsi@freebsd.org
Subject:   Re: AHA2940W problem. 
Message-ID:  <199512201936.LAA11829@freefall.freebsd.org>
In-Reply-To: Your message of "Wed, 20 Dec 1995 10:44:13 CST." <199512201644.KAA04924@metal.ops.neosoft.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>I'm having a problem with an AHA2940W with a AIC7870P chip on it.
>
>It only probes 16 SCBs (is this normal?).  And periodically I get:

As far as I know, the 7870 chips only have 16SCBs.
>
>/kernel: ahc_scsi_cmd0: more than 256 DMA segs
>/kernel: sd0: oops not queued
>/kernel: biodone: buffer already done

DMA segs != SCBs.  Each SCB has 256 possiblle DMA segs == ~1MB of
data (give or take an initial page offset or only a partially used
last page).  Since a buffer maxes out at 64k, the driver should
never encounter an I/O that consumes this many segs.  Perhaps
you are attempting to read/write to a tape drive with a really large
block size?

>I forced the driver (sys/i386/scsi/aic7xxx.c) to walk the SCBs 
>and when I did this I get 255 SCBs.  

I think that the aic7870 will only look at the first 4 bits of the
SCBPTR register if EXTSCB is not turned on.  Forcing the walk just
confuses the driver since it usally only performs the walk if EXTSCB
is turned on.  It looks like the Ultra cards may come with external
SCB SRAM, but I haven't fully confirmed this.  I'll look through my
data books later tonight to make sure that the probe is doing the
right thing there.

>
>	Scott

--
Justin T. Gibbs
===========================================
  FreeBSD: Turning PCs into workstations
===========================================



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512201936.LAA11829>