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