xref: /aosp_15_r20/external/sg3_utils/COVERAGE (revision 44704f698541f6367e81f991ef8bb54ccbf3fc18)
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