Return to BSD News archive
Path: sserve!manuel!munnari.oz.au!hp9000.csc.cuhk.hk!uakari.primate.wisc.edu!caen!destroyer!uunet!mcsun!uknet!axion!micromuse!hilly!peter From: peter@micromuse.co.uk (Peter Galbavy) Newsgroups: comp.unix.bsd Subject: Re: 386BSD 0.1 scsi tape problem Message-ID: <peter.712680116@hilly> Date: 1 Aug 92 14:41:56 GMT References: <1992Jul28.033036.18989@raid.dell.com> <712469595.7791@eyrie.img.com.au> Organization: MicroMuse Limited, London, England. Lines: 77 athos@eyrie.img.com.au (David Burren) writes: >In <1992Jul28.033036.18989@raid.dell.com> james@raid.dell.com (James Van Artsdalen) writes: >>I am running 386BSD 0.1 on a Dell 433P with 16 MB of DRAM, using an >>Adaptec 1542B with a 660 MB Micropolis SCSI disk and an HP 2 GB SCSI >>DAT tape drive. I am having trouble writing to the tape drive. >> changing root device to as0a >> as0: attached tgt 0 <MICROP 1588-15MB1036511 AS0C> winchester disk >> as0: attached tgt 4 <HP HP35480A A> tape >> as4a: controller error 0x12 writing fsbn 0-19 >> scsi sense: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> as4a: controller error 0x12 writing fsbn 20-39 >> scsi sense: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >>... more controller errors and scsi sense lines... >>Any guesses as to what's wrong? >I was getting similar sense messages on all SCSI devices until I realised >the 1540's BIOS wasn't enabled. I haven't had a chance to look at the >as driver yet, but I think it's possible it's relying on part of the >board being initialised by the BIOS on boot. >Your disk is apparently behaving, so this might not be your problem, but >what the hell... No... the problem is the as.c driver code does not "know" about variable blocksize tape drives (such as the HP DAT above). A patch was posted a while back, which I applied and all the errors went away... now, just let me dig it up. Oh yes, here it is... --- variable tape blocksize patch --- From: scott@pita.cns.ucla.edu (Scott Burris) Newsgroups: comp.unix.bsd Subject: 386BSD 0.1: variable blocksize tape on SCSI bugfix Message-ID: <1992Jul27.130522.11907@mic.ucla.edu> Date: 27 Jul 92 20:05:21 GMT Reply-To: scott@pita.cns.ucla.edu (Scott Burris) Organization: UCLA Campus Network Services The SCSI driver is broken for variable length tape devices. The problem is that the data transfer length is computed by code which assumes a fixed block tape drive. This causes the computer to transfer less data than the SCSI transaction calls for, which hangs the SCSI bus. Context diff's follow. *** as.c Sun Jul 19 08:15:02 1992 --- as.c.orig Sat Jul 18 20:10:32 1992 *************** *** 899,906 **** n = 0; sp = as->scatter_list; nscatter = 0; - if (as->tape && as->bs == 1) - total = bp->b_bcount; while (n < total && nscatter < NSCATTER) { thistime = page_size - ((vm_offset_t)p - trunc_page (p)); --- 889,894 ---- -- ---------- Scott Burris UCLA Campus Network Services cnetslb@oac.ucla.edu (213) 206-4860 - OR - scott@pita.cns.ucla.edu --- end --- Have fun now, -- Peter Galbavy Tech Support, Micromuse Ltd Phone: +44 71 352 7774 E-Mail: P.Galbavy@micromuse.co.uk