AminetAminet
Search:
84782 packages online
About
Recent
Browse
Search
Upload
Setup
Services

disk/misc/SCSIFormat.lha

Mirror:Random
Showing: ppc-morphos icongeneric icon
No screenshot available
Short:Lowlevel format SCSI drives
Author: thor at math.tu-berlin.de (Thomas Richter)
Uploader:thor math tu-berlin de (Thomas Richter)
Type:disk/misc
Version:1.04
Architecture:m68k-amigaos
Date:1999-04-08
Requires:Os 2.04, A SCSI drive (guess what...)
Download:disk/misc/SCSIFormat.lha - View contents
Readme:disk/misc/SCSIFormat.readme
Downloads:829

This program can be used to format SCSI media of any type, making all options
of the SCSI Format command available to the user. As such, it should be only
used by experts, knowing what the parameters mean. It does not write any
file management data to the drive, does *NOT* dos format drives, does not
write an RDB. This is up to the standard system tools.

This program should be used with great care since it will - on purpose -
erase all data of the selected drive.

Beware! Most likely, you DO NOT want to use it! Most SCSI drives come 
pre-formatted, there's little reason to perform a low-level format on 
them again.

It *might* proof useful for reassigning bad blocks of old and worn JAZ
or magneto-optic cartridges, provided you know the parameters.

Some examples are ready prepared for you.
_____________________________________________________________________________

Synopsis:
SCSIFormat	HANDLER,DEVICE/K,UNIT/K/N,FLAGS/K/N

HANDLER			The name of a DOS device to be formatted. This
			should be something like JAZ:, JH0:, ZIP: etc.
			This option works only if the drive in question
			is already mounted. 

DEVICE/K		Alternatively, the name of an exec device driver,
			in case the device is not mounted. IF YOU WANT TO
			USE THIS OPTION, YOU MUST SPECIFY THE DEVICE KEYWORD
			or else SCSIFormat will regard the device name as
			the name of the dos handler. 
			For example, this could be set to

			DEVICE=oktagon.device		or
			DEVICE=omniscsi.device		or
			DEVICE=gvpscsi.device		or
			DEVICE=cybscsi.device

UNIT/K/N		If the DEVICE keyword is present, you have to
			specify the unit number of the exec device as well.
			This is in most cases simply the SCSI ID of the
			drive to be formatted.
			This information is not required if you specified
			the drive by its AmigaDos device name.

FLAGS/K/N:		A flags value for opening the exec device driver, 
			only looked at if the device was specified by its 
			exec driver name and ignored otherwise. This 
			defaults to 0, and is usually not required at all. 
			Some device drivers check the SCSI bus again if the 
			flags value is set to 1 and hence might be able to 
			detect a drive which was powered on later. 

_____________________________________________________________________________

After startup, the program asks you about the format specifications:

Are you sure to format device xxxxx.device, unit x (yes/no) : 

	Answer this with "yes" to continue. "no" or ^C aborts the program.


Bad block format is block format.

	This is an information for the experts which type of bad block
	list specification is used by the drive.

Clear the list of grown defects (yes/no) : 

	Whether or not the grown defect list should be cleared. If
	answered by "yes", SCSIFormat will tell the drive to ignore all
	defects encountered in the lifetime of the cartridge before, 
	except for the primary defects entered by the manufacturer.
	This might be useful for magneto-optical drives because dust
	on the disk might have created defects even though the surface
	is still fine.
	If answered by "no", the drive will keep the grown defect list.

Vendor specific data (0=default, 32=JAZ?) : 

	This data is purely vendor specific. It should be set to zero for
	almost all purposes, except for JAZ drives which expect here a
	value of 32 (don't ask me why, I don't know either).
	Some drive manufactures might be willing to hand out specifications
	of their disk drives which explain in detail what this value means.

Interleave (0=default) : 

	Specify a sector interleave for the device. This should be set to
	zero for almost all purposes as there is almost no drive that
	still requires an interleave factor.
	If this is set to non-zero, this value is the difference of the
	sector numbers of two adjacent sectors. Namely, if this value is
	set to one, sector "n" will be followed by sector "n+1" on the
	surface. If set to two, "n" will be followed by "n+2", etc.
	This value is usually ignored by modern drives, some very achient
	SCSI drives perform better with a value of two.

Disable use of primary defect list :

	Tell SCSIFormat whether the drive should ignore the primary 
	defect list on formatting.
	If set to "no", the drive will make use of the primary defect
	list and will not make use of sectors identified as bad.
	If set to "yes", the drive will ignore the primary defect
	list, even though the list is not deleted.
	You usually want to set this to "no".

Disable validation process : 

	Whether or not the drive shall perform a vendor specific 
	certification process or not.
	If answered by "yes", no certification should take place,
	if you enter "no", the drive will check the sectors after having
	formatted them.
	This should be usually set to "no".

Use default format options : 

	If set to "yes", the drive will ignore most of the settings made
	above, and will select its default parameters.
	If set to "no", it will use the parameters entered above.


After that, SCSIFormat prints again the format parameters and queries you
again whether or not to format the disk. THIS IS YOUR LAST CHANCE TO ABORT
THE FORMAT PROCESS, either by entering "no", or by hitting ^C. There's no
stop afterwards.

Please note that not each drive will accept each parameter. You're left to
experiment a bit what your HD accepts or not. Obviously, you should not
try to format your workbench, let alone the drive you stored SCSIFormat on.
____________________________________________________________________________

Some example settings:

To format a JAZ drive, the following parameters should suffer:

SCSIFormat will low-level format a SCSI device.
Are you sure to format device gvpscsi.device, unit 6 (yes/no) : yes
Bad block format is block format.
Clear the list of grown defects (yes/no) : yes
Vendor specific data (0=default, 32=JAZ?) : 32
Interleave (0=default) : 0
Disable use of primary defect list : no
Disable validation process : no
Use default format options : yes


To format a ZIP drive:

SCSIFormat will low-level format a SCSI device.
Are you sure to format device gvpscsi.device, unit 6 (yes/no) : yes
Bad block format is block format.
Clear the list of grown defects (yes/no) : yes
Vendor specific data (0=default, 32=JAZ?) : 0
Interleave (0=default) : 0
Disable use of primary defect list : no
Disable validation process : no
Use default format options : yes

The validation process may be disabled for a faster formatting here.


To format a SCSI HD, clearing the grown defect list:

SCSIFormat will low-level format a SCSI device.
Are you sure to format device gvpscsi.device, unit 6 (yes/no) : yes
Bad block format is block format.
Clear the list of grown defects (yes/no) : yes
Vendor specific data (0=default, 32=JAZ?) : 0
Interleave (0=default) : 0
Disable use of primary defect list : no
Disable validation process : no
Use default format options : yes

____________________________________________________________________________

For the experts, here's an excerpt from the SCSI specifications that explains
the details: 

Revision 10L, 7-SEP-93


9.2.1 FORMAT UNIT command

The FORMAT UNIT command (see table 109) formats the medium into initiator
addressable logical blocks per the initiator defined options.  In
addition, the medium may be certified and control structures may be
created for the management of the medium and defects.  There is no
guarantee that the medium has or has not been altered.

                       Table 109 - FORMAT UNIT command
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                           Operation code (04h)                        |
|-----+-----------------------------------------------------------------------|
| 1   | Logical unit number      | FmtData| CmpLst |   Defect list format     |
|-----+-----------------------------------------------------------------------|
| 2   |                           Vendor-specific                             |
|-----+-----------------------------------------------------------------------|
| 3   | (MSB)                                                                 |
|-----+---                        Interleave                               ---|
| 4   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 5   |                           Control                                     |
+=============================================================================+


The simplest mandatory form of the FORMAT UNIT command (with no format
data) accomplishes medium formatting with little initiator control over
defect management.  The target implementation determines the degree of
defect management that is to be performed.  Two additional mandatory forms
of this command increase the initiator's control over defect management. 
Several optional forms of this command further increase the initiator's
control over defect management, by allowing the initiator to specify which
defect list(s) are to be used, to specify defect locations (in several
formats), to enable target certification, and to specify what to do in the
event that defect lists are not accessible. 

The FORMAT UNIT command shall be rejected with RESERVATION CONFLICT status
if the logical unit is reserved, or any extent reservation, from any
initiator, is active in the specified logical unit.

During the format operation, the target shall respond to commands as
follows: 
   a)     In response to all commands except REQUEST SENSE and INQUIRY, the
          target shall return CHECK CONDITION status unless a reservation
          conflict exists, in which case RESERVATION CONFLICT status shall be
          returned.

   b)     In response to the INQUIRY command, the target shall respond as
          commanded.

   c)     In response to the REQUEST SENSE command, unless an error has
          occurred, the target shall return a sense key of NOT READY and an
          additional sense code of LOGICAL UNIT NOT READY FORMAT IN PROGRESS,
          with the sense key specific bytes set for progress indication (as
          described in 8.2.14.1).  Refer to 8.2.14.2 for a description of
          deferred error handling that may occur during the format operation.

   NOTE 103 It is recommended that MODE SELECT parameters (if any) be set prior
   to issuing the FORMAT UNIT command. 

During the execution of the FORMAT UNIT command, the target may perform
a medium defect management algorithm (which can be controlled by the
initiator, using optional forms of this command).  Four sources of defect
location information (hereafter called defects) are defined as follows:

a)     Primary defect list (Plist).  This is the list of defects, usually
       supplied by the original manufacturer of the device or medium, that
       are considered permanent defects.  The Plist is located outside of the
       initiator-accessible logical block space.  The Plist is accessible by
       the target (to reference while formatting), but it is not normally
       accessible by the initiator except through the READ DEFECT DATA
       command.  Once created, the original Plist shall not be subject to
       change.

b)     Target certification list (Clist).  This list includes defects
       detected by the target during an optional certification process
       executed during the FORMAT UNIT command.  This list shall be added to
       the Glist.

c)     Data defect list (Dlist).  This list of defect descriptors may be
       supplied to the target by the initiator in the DATA OUT phase of the
       FORMAT UNIT command.  This list shall be added to the Glist.  The
       defect list length in the defect list header may be zero, in which
       case there is no Dlist.  

d)     Grown defect list (Glist).  The Glist includes all defects sent by the
       initiator or detected by the target.  The Glist does not include the
       Plist.  If the CmpLst bit is zero, the Glist shall include Dlists
       provided to the target during the previous and the current FORMAT UNIT
       commands.  The Glist shall also include:
   a)     defects detected by the format operation during medium
          certification;
   b)     defects previously identified with a REASSIGN BLOCKS command;
   c)     defects previously detected by the target and automatically
          reallocated.

A format data (FmtData) bit of one indicates that the FORMAT UNIT
parameter list (see table 110) shall be transferred during the DATA OUT
phase.   The DATA OUT phase consists of a defect list header (see table
111), followed by an initialization pattern descriptor, followed by zero
or more defect descriptors.  Each defect descriptor identifies a location
on the medium that the target shall map out of the user-accessible area. 


                    Table 110 - FORMAT UNIT parameter list
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
|     |                           Defect list header                          |
|=====+=======================================================================|
|     |                           Initialization pattern descriptor (if any)  |
|=====+=======================================================================|
|     |                           Defect descriptor(s) (if any)               |
|=====+=======================================================================|
| 0   |                           Defect descriptor 0                         |
|-----+---                  (See specific table for length.)               ---|
| n   |                                                                       |
|-----+-----------------------------------------------------------------------|
|     |                                  .                                    |
|     |                                  .                                    |
|-----+-----------------------------------------------------------------------|
| 0   |                           Defect descriptor x                         |
|-----+---                  (See specific table for length.)               ---|
| n   |                                                                       |
+=============================================================================+


The  defect list header (see table 111) provides several optional format
control bits. Targets that implement these bits give the initiator
additional control over the use of the four defect sources, and the
formatting operation. If the initiator attempts to select any function not
implemented by the target, the target shall terminate the command with
CHECK CONDITION status.  The sense key shall be set to ILLEGAL REQUEST and
the additional sense code shall be set to INVALID FIELD IN PARAMETER LIST.

                        Table 111 - Defect list header
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                           Reserved                                    |
|-----+-----------------------------------------------------------------------|
| 1   |  FOV   |  DPRY  |  DCRT  |  STPF  |   IP   |   DSP  |  Immed |   VS   |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                        Defect list length                       ---|
| 3   |                                                                 (LSB) |
+=============================================================================+


A FmtData bit of zero indicates that a DATA OUT phase shall not occur. 
The source of defect information is not specified.

A complete list (CmpLst) bit of one indicates that the defect list sent
by the initiator is a complete list of defects.  Any existing defect list
except the Plist shall be ignored by the target.  As a result, a new Glist
is constructed that contains the Dlist (if it is sent by the initiator),
and the Clist (if certification is enabled).  The target may add any
defects it detects during the format operation to this Dlist.

A CmpLst bit of zero indicates that the defect list sent by the initiator
is an addition to the existing list of defects.  As a result a new Glist
is constructed that contains the existing Glist, the Dlist (if it is sent
by the initiator), and the Clist (if certification is enabled).  The
target may add any defects it detects during the format operation to this
Dlist.

Table 112 defines the implementation requirements for the FORMAT UNIT
command.

      Table 112 - FORMAT UNIT defect descriptor format and requirements
+=======-======-========-========-======-=====================================+
|       |      | Defect | Defect |      |                                     |
|       |      |  list  |  list  |      |                                     |
|FmtData|CmpLst| format | length | Type |  Comments                           |
|-------+------+--------+--------+------+-------------------------------------|
|   0   |   0  |  000b  |   N/A  |   M  |  Vendor-specific                    |
|-----------------------------------------------------------------------------|
|                                 BLOCK FORMAT                                |
|-----------------------------------------------------------------------------|
|   1   |   0  |  000b  |  Zero  |   M  | See notes (1) and (3)               |
|   1   |   1  |  000b  |  Zero  |   M  | See notes (1) and (4)               |
|   1   |   0  |  000b  |   >0   |   O  | See notes (2) and (3)               |
|   1   |   1  |  000b  |   >0   |   O  | See notes (2) and (4)               |
|-----------------------------------------------------------------------------|
|                          BYTES FROM INDEX FORMAT                            |
|-----------------------------------------------------------------------------|
|   1   |   0  |  100b  |  Zero  |   O  | See notes (1) and (3)               |
|   1   |   1  |  100b  |  Zero  |   O  | See notes (1) and (4)               |
|   1   |   0  |  100b  |   >0   |   O  | See notes (2) and (3)               |
|   1   |   1  |  100b  |   >0   |   O  | See notes (2) and (4)               |
|-----------------------------------------------------------------------------|
|                           PHYSICAL SECTOR FORMAT                            |
|-----------------------------------------------------------------------------|
|   1   |   0  |  101b  |  Zero  |   O  | See notes (1) and (3)               |
|   1   |   1  |  101b  |  Zero  |   O  | See notes (1) and (4)               |
|   1   |   0  |  101b  |   >0   |   O  | See notes (2) and (3)               |
|   1   |   1  |  101b  |   >0   |   O  | See notes (2) and (4)               |
|-----------------------------------------------------------------------------|
|                           VENDOR-SPECIFIC FORMAT                            |
|-----------------------------------------------------------------------------|
|   1   |   0  |  110b  |        |      |                                     |
|   1   |   1  |  110b  |        |      |                                     |
|-----------------------------------------------------------------------------|
|  All remaining codes are reserved.                                          |
|-----------------------------------------------------------------------------|
|  Key:  M = Command implementation is mandatory.                             |
|        O = Command implementation is optional.                              |
|-----------------------------------------------------------------------------|
|  NOTES                                                                      |
|    1  No Dlist is transferred to the target during the DATA OUT phase.      |
|    2  A Dlist is transferred to the target during the DATA OUT phase.       |
|       Add the Dlist defects to the new Glist.                               |
|    3  Use the existing Glist as a defect source.  Add existing Glist        |
|       defects to the new Glist.                                             |
|    4  Discard the existing Glist. Do not add existing Glist defects to      |
|       the new Glist.                                                        |
|    5  All the options described in this table cause a new Glist to be       |
|       created during execution of the FORMAT UNIT command as described in   |
|       the text.                                                             |
+=============================================================================+


The defect list format field specifies which defect descriptor is used if
the FmtData bit is one (see table 112).

The interleave field specifies the interleave that is used when performing
the format operation.  This allows the logical blocks to be related in a
way that facilitates matching the transfer rate  between the initiator and
the peripheral.  An interleave of zero specifies that the target use its
default interleave.  An interleave of one specifies that consecutive
logical blocks be placed in contiguous ascending order.  All other values
are vendor-specific.

A format options valid (FOV) bit of zero indicates that the target shall
use its default settings for the DPRY, DCRT, STPF, IP and  DSP bits (see
below). The initiator shall set these bits to zero.  If any of these bits
are not zero, the target shall terminate the command with CHECK CONDITION
status.  The sense key shall be set to ILLEGAL REQUEST and the additional
sense code  shall be set to INVALID FIELD IN PARAMETER LIST.

A FOV bit of one indicates that the target shall examine the setting of
the DPRY, DCRT, STPF, IP and DSP bits.  When the FOV bit is one, the DPRY,
DCRT, STPF, IP and DSP bits are defined as follows.

A disable primary (DPRY) bit of zero indicates that the target shall not
use portions of the medium identified as defective in the primary defect
Plist for initiator addressable logical blocks.  If the target cannot
locate the Plist or it cannot determine whether a Plist exists, it shall
perform the action specified by  the STPF bit.  A DPRY bit of one
indicates that the target shall not use the Plist to identify defective
areas of the medium.  The Plist is not deleted.

A disable certification (DCRT) bit of zero indicates that the target shall
perform a vendor-specific medium certification operation to generate a
Clist.  A DCRT bit of one indicates that the target shall not perform any
vendor-specific medium certification process or format verification
operation while executing the FORMAT UNIT command.

The stop format (STPF) bit controls the behaviour of the target when one
of the following events occurs:
   a)     The target has been requested to use the primary defect list (DPRY
          is  set to zero), or the grown defect list (CmpLst is set to zero)
          and the target cannot locate the list nor determine whether the list
          exists.
   b)     The target has been requested to use the primary defect list (DPRY
          is set to zero) or the grown defect list (CmpLst is set to zero),
          and the target encounters an error while accessing the defect list.

A STPF bit of zero indicates that, if one or both of the above conditions
occurs, the target shall continue to execute the FORMAT UNIT command.  The
target shall return CHECK CONDITION status at the completion of the FORMAT
UNIT command.  The sense key shall be set to RECOVERED ERROR and the
additional sense code shall be set to either DEFECT LIST NOT FOUND if the
first condition occurred, or DEFECT LIST ERROR if the second condition
occurred.

A STPF bit of one indicates that, if one or both of the above conditions
occurs, the target shall terminate the FORMAT UNIT command with CHECK
CONDITION status.  The sense key shall be set to MEDIUM ERROR and the
additional sense code shall be set to either DEFECT LIST NOT FOUND if the
first condition occurred, or DEFECT LIST ERROR if the second condition
occurred.

   NOTE 104 The use of the FmtData bit, the CmpLst bit, and the defect header
   allow the initiator to control the source of the defect lists used by the
   FORMAT UNIT command. Setting the defect list length to zero allows the
   initiator to control the use of Plist and Clist without having to specify a
   Dlist.


An initialization pattern (IP) bit of one indicates that an initialization
pattern descriptor (see 9.2.1.2) is included in the FORMAT UNIT parameter
list immediately following the defect list header.  An IP bit of zero
indicates that an initialization pattern descriptor is not included and
that the target shall use its default initialization pattern.

A disable saving parameters (DSP) bit of one specifies that the target
shall not save the MODE SELECT savable parameters to non-volatile memory
during the format operation.  A DSP bit of zero specifies that the target
shall save all the MODE SELECT savable parameters for all initiators to
non-volatile memory during the format operation.  Pages that are not
reported as savable are not affected by the DSP bit (i.e. if pages 03h &
04h are not returned with the PS bit set they may be saved even if DSP is
cleared).

An immediate (Immed) bit of zero indicates that status shall be returned
after the format operation has completed.  An Immed bit value of one
indicates that the target shall return status as soon as the command
descriptor block has been validated, and the entire defect list has been
transferred.

The bit designated VS is vendor-specific.

The defect list length field in the defect list header specifies the total
length in bytes of the defect descriptors that follow and does not include
the initialization pattern descriptor or initialization pattern, if any. 
The length of the defect descriptors varies with the format of the defect
list. The three formats for the defect descriptor(s) field in the defect
lists are shown in 9.2.1.1.

9.2.1.1 Defect list formats

This clause describes the defect list formats used in the FORMAT UNIT,
READ DEFECT DATA and translate page of the SEND DIAGNOSTIC and RECEIVE
DIAGNOSTIC RESULTS commands.

   NOTE 105 The selected reporting format accounts for variables that impact the
   information in the returned data.  For example, the specific location of a
   defect, while constant in angular and radial location on the device, may
   change in reported location a format operation with different geometry
   parameters is performed.  It is the responsibility of the initiator to use
   a defect list format appropriate for the intended operation with the current
   or future geometry parameters.  If the target is able to detect that the
   selected defect list format would provide inconsistent results, the target
   may return CHECK CONDITION status.

Each block format defect descriptor (see table 113) specifies a four-byte
defective block address that contains the defect.

                 Table 113 - Defect descriptor - Block format
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   | (MSB)                                                                 |
|- - -+---                     Defective block address                     ---|
| 3   |                                                                 (LSB) |
+=============================================================================+


The defect list length is equal to four times the number of defect
descriptors.

The defect descriptors should be in ascending order.  More than one
physical or logical block may be affected by each defect descriptor.  A
target may return CHECK CONDITION if the defect descriptors are not in
ascending order.

Each byte from index defect descriptor (see table 114) specifies the
location of a defect that is no more than eight bytes long.

           Table 114 - Defect descriptor - Bytes from index format
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   | (MSB)                                                                 |
|- - -+---                        Cylinder number of defect                ---|
| 2   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 3   |                           Head number of defect                       |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|- - -+---                        Defect bytes from index                  ---|
| 7   |                                                                 (LSB) |
+=============================================================================+


The defect list length is equal to eight times the number of defect
descriptors.

Each descriptor is comprised of the cylinder number of defect, the head
number of defect, and the defect bytes from index to the defect.  The
defect descriptors shall be in ascending order. The cylinder number of
defect is the most significant part of the address and the defect bytes
from index is the least significant part of the address.  More than one
physical or logical block may be affected by each defect.  If the defect
bytes from index has a value of FFFFFFFFh, this indicates that the entire
track shall be considered defective.

Each physical sector defect descriptor (see table 115) specifies the
location of a defect that is the length of a sector.

            Table 115 - Defect descriptor - Physical sector format
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   | (MSB)                                                                 |
|- - -+---                        Cylinder number of defect                ---|
| 2   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 3   |                           Head number of defect                       |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|- - -+---                        Defective sector number                  ---|
| 7   |                                                                 (LSB) |
+=============================================================================+


The defect list length is equal to eight times the number of defect
descriptors.

Each descriptor is comprised of a cylinder number of defect, the head
number of defect, and the defective sector number.  The defect descriptors
shall be in ascending order.  The cylinder number of defect is the most
significant part of the address and the defective sector number is the
least significant part of the address.  More than one block may be
affected by each defect descriptor.  A defective sector number of
FFFFFFFFh indicates that the entire track shall be considered defective.

9.2.1.2 Initialization pattern option

The initialization pattern option specifies that the logical blocks
contain the specified initialization pattern.  The initialization pattern
descriptor (see table 116) is sent to the target as part of the FORMAT
UNIT parameter list.

                Table 116 - Initialization pattern descriptor
+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|Byte |        |        |        |        |        |        |        |        |
|=====+=================+=====================================================|
| 0   |   IP modifier   |                    Reserved                         |
|-----+-----------------------------------------------------------------------|
| 1   |                           Pattern type                                |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                Initialization pattern length                    ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   |                                                                       |
|-----+---                Initialization pattern                           ---|
| n   |                                                                       |
+=============================================================================+


   NOTE 106 The initialization pattern option is not intended for media analysis
   or certification.  This option may only initialize the initiator accessible
   area of the media to the specified pattern and may not write to any initiator
   inaccessible areas of the disk.

The IP modifier field specifies the type and location of a header that
modifies the initialization pattern (see table 117).

                 Table 117 - Initialization pattern modifier
+=============-===============================================================+
| IP modifier |   Description                                                 |
|-------------+---------------------------------------------------------------|
|     00b     |   No header. The target shall not modify the initialization   |
|             |   pattern.                                                    |
|     01b     |   The target shall overwrite the initialization pattern to    |
|             |   write the logical block address in the first four bytes of  |
|             |   the logical block.  The logical block address shall be      |
|             |   written with the most significant byte first.               |
|     10b     |   The target shall overwrite the initialization pattern to    |
|             |   write the logical block address in the first four bytes of  |
|             |   each physical block contained within the logical block.  The|
|             |   The lowest numbered logical block or part thereof that      |
|             |   occurs within the physical block is used.  The logical block|
|             |   address shall be written with the most significant byte     |
|             |   first.                                                      |
|     11b     |   Reserved.                                                   |
+=============================================================================+


The initialization pattern type field (see table 118) indicates the type
of pattern the target shall use to initialize each logical block within
the initiator accessible portion of the medium.  All bytes within a
logical block shall be written with the initialization pattern.  The
initialization pattern is modified by the IP modifier field as described
in table 117.

                   Table 118 - Initialization pattern type
+==============-==================================================+
|Initialization|  Description                                     |
| pattern type |                                                  |
|--------------+--------------------------------------------------|
|     00h      |  Use default pattern. (note 1)                   |
|     01h      |  Repeat the initialization pattern as            |
|              |  required to fill the logical block. (note 2)    |
|  02h - 7Fh   |  Reserved                                        |
|  80h - FFh   |  Vendor-specific                                 |
|-----------------------------------------------------------------|
|  Notes                                                          |
|  1)  If the initialization pattern length is not zero the target|
|  shall terminate the command with CHECK CONDITION status.  The  |
|  sense key shall be set to ILLEGAL REQUEST and the additional   |
|  sense code to INVALID FIELD IN PARAMETER LIST.                 |
|  2)  If the initialization pattern length is zero the target    |
|  shall terminate the command with CHECK CONDITION status.  The  |
|  sense key shall be set to ILLEGAL REQUEST and the additional   |
|  sense code to INVALID FIELD IN PARAMETER LIST.                 |
+=================================================================+


The initialization pattern length field indicates the number of bytes
contained in the initialization pattern.  If the length exceeds the
current logical block size the target shall terminate the command with
CHECK CONDITION status.  The sense key shall be set to ILLEGAL REQUEST and
the additional sense code shall be set to INVALID FIELD IN PARAMETER LIST. 
The pattern is modified by the IP modifier field.

_____________________________________________________________________________

                         The THOR-Software Licence (v2, 24th June 1998)


This License applies to the computer programs known as "SCSIFormat". The 
"Program", below, refers to such program. The "Archive" refers to the 
package of distribution, as prepared by the author of the Program, 
Thomas Richter. Each licensee is addressed as "you".



The Program and the data in the archive are freely distributable
under the restrictions stated below, but are also Copyright (c)
Thomas Richter.

Distribution of the Program, the Archive and the data in the Archive by a
commercial organization without written permission from the author to any
third party is prohibited if any payment is made in connection with such
distribution, whether directly (as in payment for a copy of the Program) or
indirectly (as in payment for some service related to the Program, or
payment for some product or service that includes a copy of the Program
"without charge"; these are only examples, and not an exhaustive enumeration
of prohibited activities).


However, the following methods of distribution
involving payment shall not in and of themselves be a violation of this
restriction:


(i) Posting the Program on a public access information storage and
retrieval service for which a fee is received for retrieving information
(such as an on-line service), provided that the fee is not
content-dependent (i.e., the fee would be the same for retrieving the same
volume of information consisting of random data).


(ii) Distributing the Program on a CD-ROM, provided that

a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
especially this licence agreement;

b) the CD-ROM is made available to the public for a nominal fee only,

c) a copy of the CD is made available to the author for free except for
shipment costs, and

d) provided further that all information on such CD-ROM is redistributable
for non-commercial purposes without charge.


Redistribution of a modified version of the Archive, the Program or the
contents of the Archive is prohibited in any way, by any organization,
regardless whether commercial or non-commercial. Everything must be kept
together, in original and unmodified form.




Limitations.


THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.


IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.


                                                        Thomas Richter

_____________________________________________________________________________

Thomas,		
	April 1999


Contents of disk/misc/SCSIFormat.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 7567   16272  46.5% -lh5- 219f Apr  2  1999 SCSIFormat/SCSIFormat
[generic]                10450   41711  25.1% -lh5- 1eac Apr  2  1999 SCSIFormat/SCSIFormat.readme
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         2 files   18017   57983  31.1%            Apr  7  1999
Page generated in 0.02 seconds
Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>