X3T9.2/88-167 TO: SCSI COMMITTEE FROM: STEVE CORNABY, MICROPOLIS RE: ROTATIONAL POSITION LOCKING DT: 14 DECEMBER 1988 ________________________________ I have concerns about the rotational position locking that showed up on rev 6 of the document. The concerns are as follows: Location: The location on page 4, the rigid disk drive geometry parameters page is incorrect. The specification has wording in the paragraph 7.2.10.4 (talking of saved values) allowing some pages to be saved only on a format command. Some manufacturers store pages 3 and 4 only after the successful completion of a format. Linking page 0Ch (Direct Access Notch and Partition Parameters) to pages 3 and 4 also complecates the matter. My understanding of the historical reason that the rotational position locking function is on page 4 is simply so that more pages won't have to be created. It seems that the features of rotational position locking are sufficiently different from disk drive geometry to warrent a different page. I suggest page 0D. Unit Attention: Unit attention has previously been used to report conditions which may affect configuration. These are: Power-on bus device reset, Identify information changed, Mode select parameter changed. On any of these conditions, the host may respond by checking/altering configuration. These are conditions of which all hosts must be made aware. Synchronization does not fall within this class of conditions. I suggest instead that synchronization be reported as a unit ready/not ready structure. The system handles this condition in much the same way that motor at speed is handled. Error reporting: Error reporting is an important issue which is not addressed in the current specification. Depending upon the system configuration, and how much memory the system has allocated per target, out-of-sync may be a fatal condition or merely a nuisance. I propose the addition of a bit within the RPL page which informs the target whether the out-of-sync condition is reported as a fatal condition or a recovered error. If it is fatal, out of sync will be reported as soon as detected, likely before data transfer to/from the disk occurs. If it is recovered, the command will generate a check condition at the conclusion of the operation with recovered error, spindle not synchronized sense. This informs the host that the system is not operating at maximum efficiency. The final step in error reporting is defining an error threshold. In plain words, how far out of sync is sufficient to post an error. Again, depending upon the system configuration, both stringent and non-stringent critereon exist. An additional field should be created which will define the acceptable error threshold before an error is reported. The error reported can be either fatal or non-fatal as previously defined. SCENARIOS: There are two scenarios which should be examined. Original configuration and power-up sequence thereafter. Original configuration: This is the scenario in which the host is initially configuring the system to operate in RPL mode. 1. Host configures one device as sync master by setting rpl bits to 10H or 11H. The SP bit can be set to one such that the system will configure automatically on the next power up sequence. 2. Host configures other devices as sync slaves by setting rpl bits to to 01H. The SP bit can be set to one such that the system will configure automatically on the next power up sequence. 3. Host also configures lock threshold, rotational position offset, and FSF (Fatal Sync Failure) response bit. 4. Host is informed that drive is position locked when a Test Unit Ready or media access command completes normally. 5. If master looses lock, response will be check condition with spindle servo failure. 6. If slave looses lock and FSF=0, command will complete with check condition, with recovered error, out of sync error. 7. If slave looses lock and FSF=1, command will terminate as soon as condition is detected, with not ready, spindles not synchronized error. *note* If FSF=1, check condition may be received before data phase is entered. Subsequent power-up sequences: This is the scenario in which the system is powered up after originally configured with Saved Parameters. 1. Master spins up, generates sync signal, reports ready to test unit ready command. 2. Slave spins up, reporting not ready, motor not up to speed. After spun up, reports not ready, with either a recovered error or fatal error depending upon the FSF bit. When synchronized, will report no error to test unit ready command. PROPOSAL: Modify bytes 17 and 18 of table 8-55 to read Reserved. Remove paragraphs on 8-73 and 8-74 dealing with RPL and Rotational offset. Make following modifications in Table 7-49: Modify error code 5C 00 RPL STATUS CHANGE to 5C 00 SPINDLES NOT SYNCHRONIZED Modify error code 5C 01 SPINDLES SYNCHRONIZED to 5C 01 FATAL SPINDLE SYNCHRONIZATION ERROR Delete error code 5C 02 SPINDLES NOT SYNCHRONIZED Insert following entries into Table 7-52: Preferred TEST UNIT READY Responses: Sense Add.Sns Condition Status Key Code ---------------------------------------------------------------------- Not ready, spindles not synchronized CHECK 01h 5C/00h Not ready, fatal spindle synchronization failure CHECK 02h 5C/01h Create Page 0DH with the following format and description: Rigid Disk Drive Rotation Position Locking Page ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 |Reserved|Reserved| Page Code (0Dh) | -----------------------------------------------------------------------------| 1 | Page Length in bytes (3) | -----------------------------------------------------------------------------| 2 | Reserved | FSF | RPL | -----------------------------------------------------------------------------| 3 | Rotational Offset | -----------------------------------------------------------------------------| 4 | Reporting Threshold | -----------------------------------------------------------------------------| FSF (Fatal Sync Failure) defines the action of a target configured as a slave. An out of sync failure is interpreted as a fatal error or as a recoverable error as defined by the FSF bit. FSF = 0. Target will create a check condition at the conclusion of a successful command. Sense key will be RECOVERED ERROR. Error code will be SPINDLES NOT SYNCHRONIZED. FSF = 1. Target will create a check condition upon detection of a synchronization failure. Sense key will be NOT READY ERROR. Error code will be FATAL SPINDLE SYNCHRONIZATION ERROR. The RPL (Rotational Position Locking) field is used for spindle synchronization as defined in Table X-XX. See Appendix K of the Enhanced Small Device Interface (BSR X3.170-198X) for further information on synchronized spindles. Table X-XX: Rotational Position Locking ========================================================================= RPL Description ------------------------------------------------------------------------- 00b Indicates that spindle synchronization is disabled. 01b The target operates as a synchronized-spindle slave. 10b The target operates as a synchronized-spindle master. 11b The target operates as a synchronized-spindle master control. ========================================================================= IMPLEMENTORS NOTE: The signals and connectors used for rotational position locking are external to the SCSI bus and are not part of this standard. The target reports a check condition in response to TEST UNIT READY as called out in table 7-52 if target is not synchronized. The rotational offset field indicates the amount of rotational skew that the target shall use when synchronized. The value in this field represents the numerator of a fractional multiplier that has 256 as its denominator (e.g., a value of 128 indicates a one-half revolution skew). A value of zero indicates that rotational offset shall not be used. The target may round this value as described in 6.5.4. The rotational offset field is not used when a target is configured as synchronized-spindle master control. The Reporting threshold field indicates the synchronization threshold limit the target shall allow before reporting a synchronization error. The value in this field represents the numerator of a fractional multiplier that has 256 as its denominator. Thus, a value of one indicates a plus or minus threshold of 1/256 of a rotation. A value of zero is vendor unique. The target may round this value as described in 6.5.4. The rotational offset field is not used when a target is configured as synchronized-spindle master control.