1 Command coverage 2 ================ 3The following table lists SCSI commands in alphabetical order on the 4left and the sg3_utils (or related) utilities that implement invocations 5of them on the right. The second table lists supported ATA commands. The 6third table list supported NVMe commands. 7 8SCSI command sg3_utils utilities that use this SCSI command 9------------ ------------------------------------------------- 10ATA COMMAND PASS-THROUGH(12) sg_sat_identify, ++ 11ATA COMMAND PASS-THROUGH(16) sg_sat_identify, sg_sat_set_features, 12 sg_sat_phy_event, sg_sat_read_gplog ++ 13 [sg_sat_chk_power, sg__sat_identify, 14 sg__sat_set_features, sg_sat_smart_rd_data 15 (previous four in the examples directory)] 16ATA COMMAND PASS-THROUGH(32) sg_sat_identify, ++ 17BACKGROUND CONTROL sg_bg_ctl 18CLOSE ZONE sg_zone 19COMPARE AND WRITE sg_compare_and_write 20COPY OPERATION ABORT ddptctl, ++ 21EXTENDED COPY(LID1) sg_xcopy, ddpt, ++ 22GET CONFIGURATION sg_get_config, ++ 23GET LBA STATUS sg_get_lba_status, ++ 24GET PHYSICAL ELEMENT STATUS sg_get_elem_status, ++ 25GET STREAM STATUS sg_stream_ctl 26INQUIRY sg_dd, sg_format, sg_inq, sginfo, 27 sg_logs, sg_map('-i'), sg_modes, sg_opcodes, 28 sg_persist, sg_scan, sg_ses, sg_vpd ++ 29FINISH ZONE sg_zone 30FORMAT MEDIUM sg_format, ++ [SSC] 31FORMAT UNIT sg_format, ++ [SBC] 32FORMAT WITH PRESET sg_format, ++ [SBC] 33LOG SELECT sg_logs('-r' or '-select'), ++ 34LOG SENSE sg_logs, ++ 35MODE SELECT(6) sdparm, sg_wr_mode, sginfo, sg_format, 36 sg_emc_trespass, sg_rdac, ++ 37MODE SELECT(10) sdparm, sg_wr_mode, sginfo, sg_format, 38 sg_emc_trespass, sg_rdac, ++ 39MODE SENSE(6) sdparm, sg_modes, sg_wr_mode, sginfo, sg_format, 40 sg_senddiag('-e'), sg_rdac, ++ 41MODE SENSE(10) sdparm, sg_modes, sg_wr_mode, sginfo, sg_format, 42 sg_senddiag('-e'), sg_rdac, ++ 43OPEN ZONE sg_zone 44ORWRITE(16) sg_write_x 45ORWRITE(32) sg_write_x 46PERSISTENT RESERVE IN sg_persist, ++ 47PERSISTENT RESERVE OUT sg_persist, ++ 48POPULATE TOKEN ddpt, ddptctl, ++ 49PRE-FETCH(10) sg_seek 50PRE-FETCH(16) sg_seek 51PREVENT ALLOW MEDIUM REMOVAL sg_prevent, ++ 52READ(6) sg_dd, sgm_dd, sgp_dd, sg_read 53READ(10) sg_dd, sgm_dd, sgp_dd, sg_read 54READ(12) sg_dd, sgm_dd, sgp_dd, sg_read 55READ(16) sg_dd, sgm_dd, sgp_dd, sg_read 56READ ATTRIBUTE sg_read_attr 57READ BLOCK LIMITS sg_read_block_limits, ++ 58READ BUFFER(10) sg_rbuf, sg_test_rwbuf, sg_read_buffer, sg_safte, ++ 59READ BUFFER(16) sg_read_buffer 60READ CAPACITY(10) sg_readcap, sg_dd, sgm_dd, sgp_dd, sg_format, ++ 61READ CAPACITY(16) sg_readcap, sg_dd, sgm_dd, sgp_dd, sg_format, ++ 62READ DEFECT(10) sginfo('-d' or '-G'), sg_reassign('-g'), smartmontools, ++ 63READ DEFECT(12) sginfo('-d' or '-G'), smartmontools 64READ LONG(10) sg_read_long, sg_dd, ++ 65READ LONG(16) sg_read_long, ++ 66READ MEDIA SERIAL NUMBER sg_rmsn, ++ 67REASSIGN BLOCKS sg_reassign, ++ 68RECEIVE COPY DATA(LID1) sg_copy_results, ++ 69RECEIVE COPY FAILURE DETAILS(LID1) sg_copy_results, ++ 70RECEIVE COPY OPERATING PARAMETERS ddpt, sg_copy_results, sg_xcopy, ++ 71RECEIVE COPY STATUS(LID1) sg_copy_results, ++ 72RECEIVE DIAGNOSTIC RESULTS sg_senddiag, sg_ses, sg_ses_microcode ++ 73RECEIVE ROD TOKEN INFORMATION ddpt, ddptctl ++ 74REMOVE ELEMENT AND MODIFY ZONES sg_zone 75REMOVE ELEMENT AND TRUNCATE sg_rem_rest_elem 76REPORT ALL ROD TOKENS ddptctl ++ 77REPORT DENSITY SUPPORT sg_rep_density 78REPORT IDENTIFYING INFORMATION sg_ident, ++ (2) 79REPORT LUNS sg_luns, ++ 80REPORT PROVISIONING INITIALIZATION PATTERN sg_rep_pip, ++ 81REPORT REALMS sg_rep_zones 82REPORT REFERRALS sg_referrals, ++ 83REPORT SUPPORTED OPERATION CODES sg_opcodes 84REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS sg_opcodes 85REPORT TARGET PORT GROUPS sg_rtpg, sg_stpg ++ 86REPORT TIMESTAMP sg_timestamp 87REPORT ZONES sg_rep_zones 88REPORT ZONE DOMAINS sg_rep_zones 89REQUEST SENSE sg_requests, ++ 90RESET WRITE POINTER sg_reset_wp 91RESTORE ELEMENTS AND REBUILD sg_rem_rest_elem 92SANITIZE sg_sanitize 93SEEK(10) sg_seek ++ 94SEND DIAGNOSTIC sg_senddiag, sg_ses, sg_ses_microcode ++ 95SEQUENTIALIZE ZONE sg_zone 96SET IDENTIFYING INFORMATION sg_ident, ++ (3) 97SET TARGET PORT GROUPS sg_stpg, ++ 98SET TIMESTAMP sg_timestamp 99START STOP sg_start, ++ 100STREAM CONTROL sg_stream_ctl 101SYNCHRONIZE CACHE(10) sg_sync, sg_dd, sgm_dd, sgp_dd, ++ 102SYNCHRONIZE CACHE(16) sg_sync++ 103TEST UNIT READY sg_turs, sg_format, ++ 104UNMAP sg_unmap, ++ 105VERIFY(10) sg_verify, ++ 106VERIFY(16) sg_verify, ++ 107WRITE(6) sg_dd, sgm_dd, sgp_dd 108WRITE(10) sg_dd, sgm_dd, sgp_dd 109WRITE(12) sg_dd, sgm_dd, sgp_dd 110WRITE(16) sg_dd, sgm_dd, sgp_dd, sg_write_x 111WRITE(32) sg_write_x 112WRITE AND VERIFY(10) sg_write_verify 113WRITE AND VERIFY(16) sg_write_verify 114WRITE ATOMIC(16) ddpt, sg_write_x 115WRITE ATOMIC(32) sg_write_x 116WRITE BUFFER sg_test_rwbuf, sg_write_buffer, ++ 117WRITE LONG(10) sg_write_long, ++ 118WRITE LONG(16) sg_write_long, ++ 119WRITE SAME(10) sg_write_same 120WRITE SAME(16) sg_write_same, sg_write_x 121WRITE SAME(32) sg_write_same, sg_write_x 122WRITE SCATTERED(16) sg_write_x 123WRITE SCATTERED(32) sg_write_x 124WRITE STREAM(16) sg_write_x 125WRITE STREAM(32) sg_write_x 126WRITE USING TOKEN ddpt, ddptctl, ++ 127ZONE ACTIVATE sg_z_act_query 128ZONE QUERY sg_z_act_query 129<most commands> sg_raw 130 131 132ATA command sg3_utils utilities that use this (S)ATA command 133----------- ------------------------------------------------ 134CHECK POWER MODE examples/sg_sat_chk_power 135IDENTIFY DEVICE sg_inq, sg_scan, sg_sat_identify, 136 examples/sg__sat_identify 137IDENTIFY PACKET DEVICE sg_inq, sg_sat_identify, 138 examples/sg__sat_identify 139READ LOG EXT sg_sat_phy_event, examples/sg__sat_phy_event 140 sg_sat_read_gplog 141READ LOG DMA EXT sg_sat_read_gplog 142SET FEATURES sg_sat_set_features 143 examples/sg__sat_set_features 144SMART READ DATA examples/sg_sat_smart_rd_data 145 146 147NVMe command sg3_utils utilities that use this NVMe command 148------------ ------------------------------------------------ 149Identify sg_inq 150SES Read sg_senddiag, sg_ses (NVME-MI command) 151SES Write sg_senddiag, sg_ses (NVME-MI command) 152Device self-test [SNTL of SEND DIAGNOSTIC] sg_senddiag 153Get features(power management) [SNTL of REQUEST SENSE] sg_requests 154Read [SCSI READ(10) -->SNTL--> Read] 155 [SCSI READ(16) -->SNTL--> Read] 156Write [SCSI WRITE(10) -->SNTL--> Write] 157 [SCSI WRITE(16) -->SNTL--> Write] 158Compare [SCSI VERIFY(10,BYTCHK=1) -->SNTL--> Compare] 159 [SCSI VERIFY(16,BYTCHK=1) -->SNTL--> Compare] 160Write zeroes [SCSI WRITE SAME(10,zeros) -->SNTL--> Write zeroes] 161 [SCSI WRITE SAME(16,zeros) -->SNTL--> Write zeroes] 162Flush [SCSI SYNCHRONIZE CACHE -->SNTL--> Flush] 163Set Features [SCSI MODE SELECT(10) -->SNTL--> Set Features] 164 only for WCE in Caching page 165 166The following SCSI commands do nothing (currently) in the SNTL but 167do return GOOD status: TEST UNIT READY, START STOP UNIT, REPORT LUNS 168and REQUEST SENSE. READ CAPACITY(10 and 16) yield appropriate data 169by examining the response to the NVMe Identify command. 170 171 172++ command wrapper found in sg_cmds_basic.c, sg_cmds_mmc.c or 173 sg_cmds_extra.c for this command 174(2) this command was known as REPORT DEVICE IDENTIFIER prior to spc4r07 175(3) this command was known as SET DEVICE IDENTIFIER prior to spc4r07 176 177Note that any SCSI command, including bi-directional and variable length 178commands (whose cdb size is > 16 bytes) can be issued by the sg_raw utility. 179 180The RECEIVE COPY * commands in SPC-4 were grouped as one command name 181with 4 service actions in SPC-3 and earlier. The single SPC-3 command 182name is RECEIVE COPY RESULTS. The two opcodes associated with all 183EXTENDED COPY commands are now known as THIRD PARTY COPY IN (0x84) and 184THIRD PARTY COPY IN (0x83). 185 186 187Douglas Gilbert 18810 June 2022 189