To: John Lohmeyer, Chairman X3T9.2 From: Dan Davies Cipher Data Products Subj: Autosense Protocol The currently defined protocol for the Autosense option specifies that the target perform the following sequence after the STATUS phase resulting in a CHECK CONDITION: 1) Issue AUTOSENSE DATA FOLLOWS message to the initiator; 2) Change to DATA IN phase and transfer autosense data; 3) Issue COMMAND COMPLETE message and go to BUS FREE phase. This sequence of following a data phase with no status phase is contrary to any other information transfer in the SCSI architecture. In particular, the method for reporting unrecoverable errors during the autosense data phase is limited to the unexpected BUS FREE error. By mandating this protocol, a target design is required to have a unique handler for autosense data transmission (the same error in transmitting sense information during a REQUEST SENSE command would be handled with a CHECK CONDITION as specified on page 7-58). To avoid this unnecessary complication in target design, the following proposal is suggested: Change the wording in Section 6.6, on page 6-16, as follows: 1) Issue an AUTOSENSE DATA FOLLOWS message to the initiator; 2) Change to DATA IN phase and transfer the sense data to the initiator; 3) Change to STATUS phase and issue the appropriate status byte; 4) Issue a COMMAND COMPLETE message and go to BUS FREE phase. Change the wording in Section 5.4, on page 5-15, as follows: Two additional pointers are used when the autosense data option is implemented, known as the autosense data and status pointers. These pointers, like the pointers described above, have both a current and a saved pointer. The saved autosense data pointer always points at the start of the autosense data area for the current command. The saved autosense status pointer always points to the start of the autosense status area for the current command. When the target sends the AUTOSENSE DATA FOLLOWS message to the initiator, the initiator saves its current data and status pointers, and all subsequent DATA IN and STATUS phases shall use the autosense data and status pointers to point to the next autosense data or status byte to transfer to the initiator's memory. The target may restore the current autosense data or status pointer to its saved value by sending a RESTORE POINTERS message.