Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Sep 1997 23:06:18 +0200
From:      Ollivier Robert <roberto@keltia.freenix.fr>
To:        "FreeBSD Current Users' list" <freebsd-current@FreeBSD.ORG>
Subject:   Assertion failed in ncr driver
Message-ID:  <19970922230618.13112@keltia.freenix.fr>

next in thread | raw e-mail | index | archive | help
I get the following errors when I use dump to back up my machine. I thought 
it is was the tags and sets the tags for my disks to 0 in the script but it 
doesn't seem to make any difference.

I have a SC-875 for both sd0 and sd2 (DCAS-34330W & DORS-32160).

203 [22:55] root@keltia:/build/xemacs-20.2# ncrcontrol -i
T:L  Vendor   Device           Rev  Speed   Max Wide Tags
0:0  IBM      DCAS-34330W      S65A  20.0  20.0  16    8
2:0  IBM      DORS-32160       WA6A  20.0  20.0   8    8
4:0  TANDBERG  TDC 3600        =08:     ?  20.0   ?    -

ncr0: <ncr 53c875 fast20 wide scsi> rev 0x03 int a irq 12 on pci0.11.0
ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo
ncr0: single-ended, open drain IRQ driver, using on-chip SRAM
ncr0: restart (scsi reset).
ncr0 scanning for targets 0..6 and 8..15 (V2 pl24 96/12/14)
Choosing drivers for scbus configured at 0
scbus0 at ncr0 bus 0
sd is configured at 0
sd0 at scbus0 target 0 lun 0
sd0: <IBM DCAS-34330W S65A> type 0 fixed SCSI 2
sd0: Direct-Access 
sd0: NCR quirks=0x2

sd0: WIDE SCSI (16 bit) enabled
sd0: 40.0 MB/s (50 ns, offset 15)
4134MB (8467200 512 byte sectors)
sd0: with 8205 cyls, 6 heads, and an average 171 sectors/track
sd is configured at 2
sd2 at scbus0 target 2 lun 0
sd2: <IBM DORS-32160 WA6A> type 0 fixed SCSI 2
sd2: Direct-Access 
sd2: NCR quirks=0x2

sd2: 20.0 MB/s (50 ns, offset 15)
2063MB (4226725 512 byte sectors)
sd2: with 6703 cyls, 5 heads, and an average 126 sectors/track

Any idea why I get these ?

assertion "cp" failed: file "../../pci/ncr.c", line 6227
sd0: COMMAND FAILED (4 28) @f0765800.
assertion "cp" failed: file "../../pci/ncr.c", line 6227
sd0: COMMAND FAILED (4 28) @f0765c00.

  DUMP: Date of this level 0 dump: Mon Sep 22 22:54:44 1997
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rsd0a (/) to /dev/nrst0
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 16777 tape blocks on 0.01 tape(s).
  DUMP: dumping (Pass III) [directories]
  DUMP: read error from /dev/rsd0a: Input/output error: [block 716]: count=1024
  DUMP: read error from /dev/rsd0a: Input/output error: [sector 716]: count=512
  DUMP: read error from /dev/rsd0a: Input/output error: [sector 717]: count=512
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 16814 tape blocks on 1 volumes(s)
  DUMP: finished in 56 seconds, throughput 300 KBytes/sec
  DUMP: level 0 dump on Mon Sep 22 22:54:44 1997
  DUMP: Closing /dev/nrst0
  DUMP: DUMP IS DONE
  DUMP: Date of this level 0 dump: Mon Sep 22 22:55:48 1997
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/rsd0s2e (/usr) to /dev/nrst0
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 92597 tape blocks on 0.07 tape(s).
  DUMP: dumping (Pass III) [directories]
  DUMP: read error from /dev/rsd0s2e: Input/output error: [block 1524]: count=1024
  DUMP: dumping (Pass IV) [regular files]

It fails here:

void ncr_int_sir (ncb_p np)
{
        u_char scntl3;
        u_char chg, ofs, per, fak, wide;
        u_char num = INB (nc_dsps);
        ccb_p   cp=0;
        u_long  dsa;
        u_char  target = INB (nc_ctest0) & 0x0f;
        tcb_p   tp     = &np->target[target];
        int     i;
        if (DEBUG_FLAGS & DEBUG_TINY) printf ("I#%d", num);

        switch (num) {
        case SIR_SENSE_RESTART:
        case SIR_STALL_RESTART:
                break;

        default:
                /*
                **      lookup the ccb
                */
                dsa = INL (nc_dsa);
                cp = np->ccb;
                while (cp && (CCB_PHYS (cp, phys) != dsa))
                        cp = cp->link_ccb;

                assert (cp);            <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                if (!cp)
                        goto out;
                assert (cp == np->header.cp);
                if (cp != np->header.cp)
                        goto out;
        }


-- 
Ollivier ROBERT -=- FreeBSD: There are no limits -=- roberto@keltia.freenix.fr
FreeBSD keltia.freenix.fr 3.0-CURRENT #35: Sun Sep 21 19:28:07 CEST 1997



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