Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 May 1997 03:05:24 -0400 (EDT)
From:      tom@tomqnx.com (Tom Torrance at home)
To:        hackers@freebsd.org
Subject:   HP 6020 Problems
Message-ID:  <m0wWzH2-000A4IC@TomQNX.tomqnx.com>

next in thread | raw e-mail | index | archive | help
Jordon's original announcement for Release 2.2.1 stated that the HP 6020
was supported, so I went and bought one.  It doesn't work properly as a WORM
device for me, so I hacked the driver to allow myself to burn CDs with it.

THis is a REALLY crude hack, but it works well enough to allow me to
fulfill my objective.  I offer it here only so that someone who really
knows what they are doing can use the information I have gathered to
implement the necessary support properly. Driver code is far beyond me.

My machine is an old 486DX2-66 with an AHA2740A controller with the Fast SCSI II
system disk and the HP6020 on it - surely overkill for the job with the 
HP 6020, which has a 1 MB I/O buffer in it.

Among other kernel options, I have BOUNCE_BUFFERS for my QIC-02/QIC-150,
plus AHC_TAGENABLE, AHC_ALLOW_MEMIO and AHC_SCBPAGING_ENABLE.  I don't know 
how many I/Os the software allows, but the controller firmware allows up
to 32 outstanding tagged or 2 non-tagged I/O commands per device to a 
maximum of 255 for the controller.  Four (4) SCB's are allocated to the 
controller at boot probe time.

In any case, the 1 MB buffer soaks up a lot of I/O very quickly at the 
beginning of the job, that takes quite a while to complete. Because the
SCSI_NOSLEEP flag was being set, I was getting 'oops, not queued' messages
and the job would fail.  I was also getting the same messages
when reading a CD with the 'find' command.  The simple solution was to remove
the setting of SCSI_NOSLEEP, which as far as I can tell serves no useful
purpose. 

Note that when running the 'burncd' script, the dd command fails at the
end of the copy, presumeably because of the extremely long time required
for outstanding output to complete, allowing the 'close' to proceed to 
completion. This does not affect the quality of the CD produced, which seems
quite perfect.

Although I got 'burncd' to function for me, more or less, attempting to
execute 'cd-write 1.2' to master a CD locks up the entire systemi, 
after the initializing disk info message.  I have no
idea what is causing that, which also happens with the un-modified 
driver. Having to power off a system to get it going again is not nice.

I hope that this info helps!

Regards,
Tom
------------------------CUT HERE------------------------------------------
*** worm.c.orig	Mon May 26 19:04:51 1997
--- worm.c	Thu May 29 01:24:36 1997
***************
*** 196,202 ****
  		rf4100_finalize_track, rf4100_finalize_disk
  	},
  	{
! 		"HP", "4020i",
  		hp4020i_prepare_disk, hp4020i_prepare_track,
  		hp4020i_finalize_track, hp4020i_finalize_disk
  	},
--- 196,202 ----
  		rf4100_finalize_track, rf4100_finalize_disk
  	},
  	{
! 		"HP", "6020",
  		hp4020i_prepare_disk, hp4020i_prepare_track,
  		hp4020i_finalize_track, hp4020i_finalize_disk
  	},
***************
*** 369,375 ****
  			0,
  			100000,
  			bp,
! 			flags | SCSI_NOSLEEP) == SUCCESSFULLY_QUEUED) {
  			if (worm->dkunit >= 0) {	/* Cloned from od.c, possibly with same mistakes. :) */
  				dk_xfer[worm->dkunit]++;
  				dk_seek[worm->dkunit] = 1; /* single track */
--- 369,375 ----
  			0,
  			100000,
  			bp,
! 			flags) == SUCCESSFULLY_QUEUED) {
  			if (worm->dkunit >= 0) {	/* Cloned from od.c, possibly with same mistakes. :) */
  				dk_xfer[worm->dkunit]++;
  				dk_seek[worm->dkunit] = 1; /* single track */
---------------------------------CUT HERE-------------------------------------



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