/
usr
/
share
/
doc
/
sg3-utils
/
examples
/
/usr/share/doc/sg3-utils/examples
mkdir
upload
Name
Size
Mode
Actions
archive/
-
0755
rm
forwarded_sense.txt
296
0644
edit
dl
rm
Makefile
3156
0644
edit
dl
rm
Makefile.freebsd
2023
0644
edit
dl
rm
nvme_dev_self_test.hex
806
0644
edit
dl
rm
nvme_identify_ctl.hex
1198
0644
edit
dl
rm
nvme_read_ctl.hex
1832
0644
edit
dl
rm
nvme_write_ctl.hex
1846
0644
edit
dl
rm
README
776
0644
edit
dl
rm
reassign_addr.txt
465
0644
edit
dl
rm
ref_sense.txt
305
0644
edit
dl
rm
scsi_inquiry.c
4185
0644
edit
dl
rm
sdiag_sas_p0_cjtpat.txt
405
0644
edit
dl
rm
sdiag_sas_p0_prbs9.txt
407
0644
edit
dl
rm
sdiag_sas_p1_cjtpat.txt
464
0644
edit
dl
rm
sdiag_sas_p1_idle.txt
560
0644
edit
dl
rm
sdiag_sas_p1_prbs15.txt
408
0644
edit
dl
rm
sdiag_sas_p1_stop.txt
359
0644
edit
dl
rm
sgq_dd.c
38679
0644
edit
dl
rm
sg_compare_and_write.txt
2483
0644
edit
dl
rm
sg_excl.c
6128
0644
edit
dl
rm
sg_persist_tst.sh
3624
0755
edit
dl
rm
sg_sat_chk_power.c
9164
0644
edit
dl
rm
sg_sat_smart_rd_data.c
6556
0644
edit
dl
rm
sg_simple1.c
6006
0644
edit
dl
rm
sg_simple2.c
6744
0644
edit
dl
rm
sg_simple3.c
6612
0644
edit
dl
rm
sg_simple4.c
7424
0644
edit
dl
rm
sg_simple5.c
7649
0644
edit
dl
rm
sg_simple16.c
3494
0644
edit
dl
rm
sg_unmap_example.txt
1571
0644
edit
dl
rm
sg__sat_identify.c
7733
0644
edit
dl
rm
sg__sat_phy_event.c
12304
0644
edit
dl
rm
sg__sat_set_features.c
9934
0644
edit
dl
rm
transport_ids.txt
1124
0644
edit
dl
rm
Edit:
/usr/share/doc/sg3-utils/examples/nvme_write_ctl.hex
(1846B)
# 64 byte NVMe, Write command (a NVM command) that is suitable for: # sg_raw --cmdfile=<this_file_name> --nvm --request=2048 <nvme_device> # # The address field (at byte offset 24, 8 bytes and little endian) gives # special meaning to the highest address pointers: # ffffffff fffffffe use address of data-in buffer # ffffffff fffffffd use address of data-out buffer # # The data length field (at byte offset 36, 4 bytes and little endian) # gives special meaning to the highest block counts: # fffffffe use byte length of data-in buffer # fffffffd use byte length of data-out buffer # # 512 byte logical block size is assumed. Write 4 blocks hence 2048 bytes. # The first LBA written is 0x12345 and the namespace is 1. If successful the # four blocks will be written out of the data-out buffer. Submission queue # is used (the same queue that Admin commands use). The NVM opcode for the # Write command is 0x1 and appears in the first command byte. 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fd ff ff ff ff ff ff ff 00 00 00 00 fd ff ff ff 45 23 01 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 # Notice NVMe uses its quirky "0's based" number of blocks so # 03 appears at byte offset 48 to mean "write 4 blocks". # # A typical invocation in Linux and FreeBSD would look like this: # sg_raw --cmdfile=nvme_write_ctl.hex --nvm -s 2048 # --infile=t.bin /dev/nvme0 # # Notice the '--nvm' option which is needed to distiguish a NVM # command from an Admin command as Admin commands are the default # in this utility. # # This utility (and most others in the package) aligns data-in and # data-out buffers to the beginning of pages which are 4096 bytes # long at a minimum. This is the way NVMe likes things as well.
Save
cmd:
run