Date: Wed, 5 Feb 1997 18:36:23 -0800 From: amor@geop.ubc.ca (John Amor) To: freebsd-scsi@freebsd.org Subject: HP6020i CDR fails on fixation Message-ID: <199702060236.SAA01750@moho.ubc.ca>
next in thread | raw e-mail | index | archive | help
I am having problems sending the fixate command to a HP6020i CDR.
The worm.c code burns the file system but dies when the final
fixate command is given. Resulting in a useless CD. Doing a dry run
with the dummy option is fine. The only changes I have made was;
1) add the following to the scsiconf.c code to identify the device at
boot time.
{
T_READONLY, T_WORM, T_REMOV, "HP", "CD-Writer 6020", "*",
"worm", SC_ONE_LU
},
2) commented out the two calls "scsi_stop_unit" and "scsi_prevent"
in the worm_close function in worm.c.
These lines seemed to casued the drive to report "Not Ready" for
any command after the "wormcontrol select HP 4020i" was run.
Opening and closing the CDR clears the message.
Here is the run that failed
# wormcontrol select HP 4020i
# wormcontrol prepdisk double
# wormcontrol track data
# rtprio 5 team -v 1m 5 < cnsn8.cd | rtprio 5 dd of=/dev/rworm0 obs=20k
631938 kilobytes, 2099 seconds
1263876+0 records in
31596+1 records out
647104512 bytes transferred in 2109.314342 secs (306784 bytes/sec)
# wormcontrol fixate 1
wormcontrol: ioctl(WORMIOFIXATION): Input/output error
#
Note: 3-5 second delay from fixate command and error message (as I recall).
>From the worm.c code
hp4020i_finalize_disk(struct scsi_link *sc_link, int toc_type, int onp)
{
struct scsi_fixation cmd;
SC_DEBUG(sc_link, SDEV_DB2, ("hp4020i_finalize_disk"));
if (toc_type < 0 || toc_type > WORM_TOC_TYPE_CDI)
return EINVAL;
/*
* Fixate this session. Mark the next one as opened if onp
* is true. Otherwise, the disk will be finalized once and
* for all. ONP stands for "open next program area".
*/
bzero(&cmd, sizeof(cmd));
cmd.op_code = FIXATION;
cmd.action = (onp? WORM_FIXATION_ONP: 0) + toc_type;
return scsi_scsi_cmd(sc_link,
(struct scsi_generic *) &cmd,
sizeof(cmd),
0, /* no data transfer */
0,
1,
20*60*1000, /* takes a huge amount of time */
NULL,
0);
}
It would appear that scsi_scsi_cmd is returning EIO ???
If I am way off base perhaps someone could suggest a more likely
location for the problem.
I hate to create more coasters for my coffee cup.
Thanks,
John
----------------------------------------------------------------------------
John Amor -- Systems Manager -- Geophysical Research Processing Facility
amor@eos.ubc.ca (604) 822-6933 Department of Earth and Ocean Sciences
http://www.geop.ubc.ca/~amor/amor.html University of British Columbia, Canada
------------------------------------------------------------------------------
F.Y.I. More background...
The HP-4020i scsi command info is in the http://www.hp.com/isgsupport/cdr
under product info.
-----------------------------------------------------------------------
According to various people, the philips cdd2600 is the same unit as the
HP6020. From the philips site they have a manual for the 2600 which gives
the scsi command set used.
.... from philips online manual for the CDD2600 ...
The following lists the supported SCSI commands. An extensive description
of the total command set is avaliable on request.
Messages
in = Target to Initiator
out = Initiator to Target
00h command complete in
02h save data pointer in
04h disconnect in
06h abort out
07h message reject in out
08h no operation out
0ch bus device reset out
80h+ identify in out
Recorder group 0 commands
00 Test unit ready
01 Rezero Unit
03 Request Sense
08 Read
0a write
0b Seek
12 Inquiry
15 Mode Select
16 Reserve
17 Release
18 Copy
1a Mode Sense
1b Start/Stop Unit
1c Recieve Diagnostic Results
1d send Diagnostics
1e prevent/Allow medium removal
Group 1& 2 - ten byte commands
25 Read Capacity
28 Read
2a write
2b Seek
2f Verify
35 Flush Cashe
3b Write Buffer
3c Read Buffer
42 Read Sub Channel
43 Read Disk info
45 Play Audio
47 Play Audio MSF
48 Play Audio Track / Index
4b Pause Resume
55 mode select
5a mode sense
Vendor Unique commands
d1 Read Disc ID
d2 READ OPC
d3 write OPC
e2 First writable address
e3 format track
e4 reserve track
e5 read track info
e6 write track
e7 medium load/unload
e8 finish track
e9 fixation (write leadin and leadout)
eb send absorption control errors
ec recover
ed write
ee read session info
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702060236.SAA01750>
