From owner-freebsd-scsi Wed Feb 5 18:36:47 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id SAA06078 for freebsd-scsi-outgoing; Wed, 5 Feb 1997 18:36:47 -0800 (PST) Received: from mail-relay.ubc.ca (mail-relay.ubc.ca [137.82.1.2]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id SAA06073 for ; Wed, 5 Feb 1997 18:36:42 -0800 (PST) Received: from ubc.ca (gafs.geop.ubc.ca [137.82.49.1]) by mail-relay.ubc.ca (8.7.6/1.14) with SMTP id SAA11212 for ; Wed, 5 Feb 1997 18:36:28 -0800 (PST) Received: from moho.ubc.ca (moho.ARPA) by ubc.ca (4.1/1.14) id AA18597; Wed, 5 Feb 97 18:36:26 PST Received: by moho.ubc.ca (SMI-8.6/SMI-SVR4) id SAA01750; Wed, 5 Feb 1997 18:36:23 -0800 Date: Wed, 5 Feb 1997 18:36:23 -0800 From: amor@geop.ubc.ca (John Amor) Message-Id: <199702060236.SAA01750@moho.ubc.ca> To: freebsd-scsi@freebsd.org Subject: HP6020i CDR fails on fixation X-Sun-Charset: US-ASCII Sender: owner-freebsd-scsi@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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