Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Dec 1996 23:30:28 +1100 (EST)
From:      Andrew MacIntyre <andymac@bullseye.apana.org.au>
To:        dwhite@resnet.uoregon.edu
Cc:        freebsd-questions@freebsd.org, freebsd-hardware@freebsd.org
Subject:   UPDATE: Re: Problems with HP T4000s tape drive
Message-ID:  <Pine.BSF.3.91.961229232656.258A@bullseye.apana.org.au>
In-Reply-To: <Pine.BSI.3.94.961226152637.248G-100000@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
I have succeeded in getting this device to work (AFAICT), and now have 
a backup of the system.  Don't yet know whether what I think went on to 
the tape is what will come off it though ... :-|

Two parts to the solution:-

a) patch st.c and scsi_tape.h to treat the reported density code (0x45) 
   as a QIC_3095, and behave the same as a QIC_3080 (based on 2.1.5's 
   st.c/scsi_tape.h).

b) update the drive's FLASH ROM to firmware v1.06.  Fortunately, HP has 
   posted the updated firmware on their web/ftp site and provide a DOS
   utility to install it (requires ASPI drivers).

Item a) on its own made little difference, however item b) really clicked 
things together!

There are two wrinkles left to irritate me.  The first is that the 
drive is being reported as being empty on bootup, when it does contain 
a tape.  It seems to me that this might a timing issue, as the drive 
is fiddle-farting around while the probe is under way.  I guess I 
should try extending the settling time from 15s to 30-45s and see if 
it has any effect.

The other wrinkle is that the driver is reporting an unrecognised
SCSI command.  If someone recognises it as a "quirk" from the following 
transcript (SCSI_DEBUG enabled, date/time removed for brevity), could 
they please let me know so that I can deal with it (from memory, this 
was triggered by an "mt status").

TIA and all the best for the new year.

---8<---<8---8<---
bullseye /kernel: st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes]
bullseye /kernel: code70 valid0 seg0 key6 ili0 eom0 fmark0
bullseye /kernel: info: 0 0 0 0 followed by 16 extra bytes
bullseye /kernel: extra: 0 0 0 0 28 0 0 0 0 0 1 12 0 0 0 0 
bullseye /kernel: st0(ncr0:4:0): calling private err_handler()
bullseye /kernel: st0(ncr0:4:0): private err_handler() returned -1
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes]
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): mounting
bullseye /kernel:  st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 1b,0,0,0,1,0-[0 bytes]
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 0,0,0,0,0,0-[0 bytes]
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 5,0,0,0,0,0-[6 bytes]
bullseye /kernel: ------------------------------
bullseye /kernel: 000: 00 00 02 00 02 00 
bullseye /kernel: ------------------------------
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 1a,0,0,0,c,0-[12 bytes]
bullseye /kernel: ------------------------------
bullseye /kernel: 000: 0b b6 10 08 45 00 00 00 00 00 02 00 
bullseye /kernel: ------------------------------
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): starting block mode decision
bullseye /kernel: st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 15,0,0,0,c,0-[12 bytes]
bullseye /kernel: ------------------------------
bullseye /kernel: 000: 00 00 10 08 45 00 00 00 00 00 02 00 
bullseye /kernel: ------------------------------
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): scsi_cmd
bullseye /kernel: st0(ncr0:4:0): scsi_done
bullseye /kernel: st0(ncr0:4:0): command: 1e,0,0,0,1,0-[0 bytes]
bullseye /kernel: code70 valid0 seg0 key5 ili0 eom0 fmark0
bullseye /kernel: info: 0 0 0 0 followed by 16 extra bytes
bullseye /kernel: extra: 0 0 0 0 20 0 0 0 0 0 1 5 0 0 0 0 
bullseye /kernel: st0(ncr0:4:0): calling private err_handler()
bullseye /kernel: st0(ncr0:4:0): private err_handler() returned -1
bullseye /kernel: st0(ncr0:4:0): ILLEGAL REQUEST asc:20,0 Invalid command operation code
bullseye /kernel: st0(ncr0:4:0): calling private start()
bullseye /kernel: st0(ncr0:4:0): ststart st0(ncr0:4:0): Open complete
bullseye /kernel: st0(ncr0:4:0): stopen: dev=0xe01 (unit 0) result 0
bullseye /kernel: st0(ncr0:4:0): [ioctl: get status]
bullseye /kernel: st0(ncr0:4:0): stclose:  Closing device
---8<---8<---8<---

--
Andrew I MacIntyre                     "These thoughts are mine alone..."
E-mail: andrew.macintyre@aba.gov.au    (work) | Snail: PO Box 370
        andymac@bullseye.apana.org.au  (play) |        Belconnen  ACT  2616
Fido:   Andrew MacIntyre, 3:620/243.18        |        Australia




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