]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sbin/nvmecontrol/nvmecontrol.8
md5/tests: extend md5 test
[FreeBSD/FreeBSD.git] / sbin / nvmecontrol / nvmecontrol.8
1 .\"
2 .\" Copyright (c) 2020 Warner Losh <imp@FreeBSD.org>
3 .\" Copyright (c) 2018-2019 Alexander Motin <mav@FreeBSD.org>
4 .\" Copyright (c) 2012 Intel Corporation
5 .\" All rights reserved.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\"    notice, this list of conditions, and the following disclaimer,
12 .\"    without modification.
13 .\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
14 .\"    substantially similar to the "NO WARRANTY" disclaimer below
15 .\"    ("Disclaimer") and any redistribution must be conditioned upon
16 .\"    including a substantially similar Disclaimer requirement for further
17 .\"    binary redistribution.
18 .\"
19 .\" NO WARRANTY
20 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 .\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
23 .\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 .\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28 .\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29 .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 .\" POSSIBILITY OF SUCH DAMAGES.
31 .\"
32 .\" nvmecontrol man page.
33 .\"
34 .\" Author: Jim Harris <jimharris@FreeBSD.org>
35 .\"
36 .\" $FreeBSD$
37 .\"
38 .Dd December 19, 2020
39 .Dt NVMECONTROL 8
40 .Os
41 .Sh NAME
42 .Nm nvmecontrol
43 .Nd NVM Express control utility
44 .Sh SYNOPSIS
45 .Nm
46 .Ic devlist
47 .Op Fl h
48 .Nm
49 .Ic identify
50 .Op Fl v
51 .Op Fl x
52 .Op Fl n Ar nsid
53 .Aq Ar device-id | Ar namespace-id
54 .Nm
55 .Ic perftest
56 .Aq Fl n Ar num_threads
57 .Aq Fl o Ar read|write
58 .Op Fl p
59 .Aq Fl s Ar size_in_bytes
60 .Aq Fl t Ar time_in_sec
61 .Aq Ar namespace-id
62 .Nm
63 .Ic reset
64 .Aq Ar device-id
65 .Nm
66 .Ic logpage
67 .Aq Fl p Ar page_id
68 .Op Fl x
69 .Op Fl v Ar vendor-string
70 .Op Fl b
71 .Op Fl f Ar LSP
72 .Op Fl i Ar LSI
73 .Op Fl r
74 .Aq Ar device-id | Ar namespace-id
75 .Nm
76 .Ic ns active
77 .Aq Ar device-id
78 .Nm
79 .Ic ns allocated
80 .Aq Ar device-id
81 .Nm
82 .Ic ns attach
83 .Aq Fl n Ar nsid
84 .Aq Fl c Ar cntid
85 .Aq Ar device-id
86 .Nm
87 .Ic ns attached
88 .Aq Fl n Ar nsid
89 .Aq Ar device-id
90 .Nm
91 .Ic ns controllers
92 .Aq Ar device-id
93 .Nm
94 .Ic ns create
95 .Aq Fl s Ar nsze
96 .Op Fl c Ar ncap
97 .Op Fl f Ar lbaf
98 .Op Fl m Ar mset
99 .Op Fl n Ar nmic
100 .Op Fl p Ar pi
101 .Op Fl l Ar pil
102 .Op Fl L Ar flbas
103 .Op Fl d Ar dps
104 .Aq Ar device-id
105 .Nm
106 .Ic ns delete
107 .Aq Fl n Ar nsid
108 .Aq Ar device-id
109 .Nm
110 .Ic ns detach
111 .Aq Fl n Ar nsid
112 .Aq Fl c Ar cntid
113 .Aq Ar device-id
114 .Nm
115 .Ic ns identify
116 .Op Fl v
117 .Op Fl x
118 .Aq Fl n Ar nsid
119 .Aq Ar device-id
120 .Nm
121 .Ic nsid
122 .Aq Ar device-id | Ar namespace-id
123 .Nm
124 .Ic resv acquire
125 .Aq Fl c Ar crkey
126 .Op Fl p Ar prkey
127 .Aq Fl t Ar rtype
128 .Aq Fl a Ar racqa
129 .Aq Ar namespace-id
130 .Nm
131 .Ic resv register
132 .Op Fl c Ar crkey
133 .Aq Fl k Ar nrkey
134 .Aq Fl r Ar rrega
135 .Op Fl i Ar iekey
136 .Op Fl p Ar cptpl
137 .Aq Ar namespace-id
138 .Nm
139 .Ic resv release
140 .Aq Fl c Ar crkey
141 .Aq Fl t Ar rtype
142 .Aq Fl a Ar rrela
143 .Aq Ar namespace-id
144 .Nm
145 .Ic resv report
146 .Op Fl e
147 .Op Fl v
148 .Op Fl x
149 .Aq Ar namespace-id
150 .Nm
151 .Ic firmware
152 .Op Fl s Ar slot
153 .Op Fl f Ar path_to_firmware
154 .Op Fl a
155 .Aq Ar device-id
156 .Nm
157 .Ic format
158 .Op Fl f Ar fmt
159 .Op Fl m Ar mset
160 .Op Fl o Ar pi
161 .Op Fl l Ar pil
162 .Op Fl E
163 .Op Fl C
164 .Aq Ar device-id | Ar namespace-id
165 .Nm
166 .Ic sanitize
167 .Aq Fl a Ar sanact
168 .Op Fl c Ar owpass
169 .Op Fl d
170 .Op Fl p Ar ovrpat
171 .Op Fl r
172 .Op Fl I
173 .Op Fl U
174 .Aq Ar device-id
175 .Nm
176 .Ic power
177 .Op Fl l
178 .Op Fl p power_state
179 .Op Fl w workload_hint
180 .Nm
181 .Ic selftest
182 .Aq Fl c Ar code
183 .Aq Ar device-id | Ar namespace-id
184 .Nm
185 .Ic wdc cap-diag
186 .Op Fl o path_template
187 .Aq Ar device-id
188 .Nm
189 .Ic wdc drive-log
190 .Op Fl o path_template
191 .Aq Ar device-id
192 .Nm
193 .Ic wdc get-crash-dump
194 .Op Fl o path_template
195 .Aq Ar device-id
196 .\" .Nm
197 .\" .Ic wdc purge
198 .\" .Aq device-id
199 .\" .Nm
200 .\" .Ic wdc purge-monitor
201 .\" .Aq device-id
202 .Nm
203 .Ic admin-passthru
204 .Op args
205 .Aq Ar device-id
206 .Nm
207 .Ic io-passthru
208 .Op args
209 .Aq Ar namespace-id
210 .Sh DESCRIPTION
211 NVM Express (NVMe) is a storage protocol standard, for SSDs and other
212 high-speed storage devices over PCI Express.
213 .Ss devlist
214 List all NVMe controllers and namespaces along with their device nodes.
215 With the
216 .Fl h
217 argument, use unit suffixes: Byte, Kibibyte, Mebibyte, Gibibyte, Tebibyte
218 and Pebibyte (based on powers of 1024) when showing the disk space.
219 By default, uses Mebibyte.
220 .Ss identify
221 The identify commands reports information from the drive's
222 .Dv IDENTIFY_CONTROLLER
223 if a
224 .Ar device-id
225 is specified.
226 It reports
227 .Dv IDENTIFY_NAMESPACE
228 data if a
229 .Ar namespace-id
230 is specified.
231 When used with disk names, the
232 .Dv IDENTIFY_NAMESPACE
233 data is reported, unless the namespace
234 .Ar nsid
235 is overridden with the
236 .Fl n
237 flag.
238 Then that namespace's data is reported, if it exists.
239 The command accepts the following parameters:
240 .Bl -tag -width 6n
241 .It Fl n
242 The namespace
243 .Aq nsid
244 to use instead of the namespace associated with the device.
245 A
246 .Ar nsid
247 of
248 .Dq 0
249 is used to retrieve the
250 .Dv IDENTIFY_CONTROLLER
251 data associated with that drive.
252 .El
253 .Ss logpage
254 The logpage command knows how to print log pages of various types.
255 It also knows about vendor specific log pages from hgst/wdc, samsung and intel.
256 Note that some vendors use the same log page numbers for different data.
257 .Pp
258 .Bl -tag -compact -width "Page 0x00"
259 .It Dv Page 0x01
260 Drive Error Log
261 .It Dv Page 0x02
262 Health/SMART Data
263 .It Dv Page 0x03
264 Firmware Information
265 .It Dv Page 0x04
266 Changed Namespace List
267 .It Dv Page 0x05
268 Commands Supported and Effects
269 .It Dv Page 0x06
270 Device Self-test
271 .It Dv Page 0x80
272 Reservation Notification
273 .It Dv Page 0x81
274 Sanitize Status
275 .It Dv Page 0xc1
276 Advanced SMART information (WDC/HGST)
277 .It Dv Page 0xc1
278 Read latency stats (Intel)
279 .It Dv Page 0xc2
280 Wite latency stats (Intel)
281 .It Dv Page 0xc5
282 Temperature stats (Intel)
283 .It Dv Page 0xca
284 Advanced SMART information (Intel)
285 .It Dv Page 0xca
286 Extended SMART information (Samsung)
287 .El
288 .Pp
289 Specifying
290 .Fl v
291 .Ic help
292 will list all valid vendors and pages.
293 .Fl x
294 will print the page as hex.
295 .Fl b
296 will print the binary data for the page.
297 .Fl s
298 will set Log Specific Field.
299 .Fl i
300 will set Log Specific Identifier.
301 .Fl r
302 will set Retain Asynchronous Event.
303 .Ss ns
304 Various namespace management commands.
305 If namespace management is supported by device, allow list, create and delete
306 namespaces, list, attach and detach controllers to namespaces.
307 .Ss nsid
308 Reports the namespace id and controller device associated with the
309 .Aq Ar namespace-id
310 or
311 .Aq Ar device-id
312 argument.
313 .Ss resv acquire
314 Acquire or preempt namespace reservation, using specified parameters:
315 .Bl -tag -width 6n
316 .It Fl a
317 Acquire action:
318 .Bl -tag -compact -width 6n
319 .It Dv 0
320 Acquire
321 .It Dv 1
322 Preempt
323 .It Dv 2
324 Preempt and abort
325 .El
326 .It Fl c
327 Current reservation key.
328 .It Fl p
329 Preempt reservation key.
330 .It Fl t
331 Reservation type:
332 .Bl -tag -compact -width 6n
333 .It Dv 1
334 Write Exclusive
335 .It Dv 2
336 Exclusive Access
337 .It Dv 3
338 Write Exclusive - Registrants Only
339 .It Dv 4
340 Exclusive Access - Registrants Only
341 .It Dv 5
342 Write Exclusive - All Registrants
343 .It Dv 6
344 Exclusive Access - All Registrants
345 .El
346 .El
347 .Ss resv register
348 Register, unregister or replace reservation key, using specified parameters:
349 .Bl -tag -width 6n
350 .It Fl c
351 Current reservation key.
352 .It Fl k
353 New reservation key.
354 .It Fl r
355 Register action:
356 .Bl -tag -compact -width 6n
357 .It Dv 0
358 Register
359 .It Dv 1
360 Unregister
361 .It Dv 2
362 Replace
363 .El
364 .It Fl i
365 Ignore Existing Key
366 .It Fl p
367 Change Persist Through Power Loss State:
368 .Bl -tag -compact -width 6n
369 .It Dv 0
370 No change to PTPL state
371 .It Dv 2
372 Set PTPL state to â€˜0’.
373 Reservations are released and registrants are cleared on a power on.
374 .It Dv 3
375 Set PTPL state to â€˜1’.
376 Reservations and registrants persist across a power loss.
377 .El
378 .El
379 .Ss resv release
380 Release or clear reservation, using specified parameters:
381 .Bl -tag -width 6n
382 .It Fl c
383 Current reservation key.
384 .It Fl t
385 Reservation type.
386 .It Fl a
387 Release action:
388 .Bl -tag -compact -width 6n
389 .It Dv 0
390 Release
391 .It Dv 1
392 Clean
393 .El
394 .El
395 .Ss resv report
396 Print reservation status, using specified parameters:
397 .Bl -tag -width 6n
398 .It Fl x
399 Print reservation status in hex.
400 .It Fl e
401 Use Extended Data Structure.
402 .El
403 .Ss format
404 Format either specified namespace, or all namespaces of specified controller,
405 using specified parameters:
406 .Ar fmt
407 LBA Format,
408 .Ar mset
409 Metadata Settings,
410 .Ar pi
411 Protection Information,
412 .Ar pil
413 Protection Information Location.
414 When formatting specific namespace, existing values are used as defaults.
415 When formatting all namespaces, all parameters should be specified.
416 Some controllers may not support formatting or erasing specific or all
417 namespaces.
418 Option
419 .Fl E
420 enables User Data Erase during format.
421 Option
422 .Fl C
423 enables Cryptographic Erase during format.
424 .Ss sanitize
425 Sanitize NVM subsystem of specified controller,
426 using specified parameters:
427 .Bl -tag -width 6n
428 .It Fl a Ar operation
429 Specify the sanitize operation to perform.
430 .Bl -tag -width 16n
431 .It overwrite
432 Perform an overwrite operation by writing a user supplied
433 data pattern to the device one or more times.
434 The pattern is given by the
435 .Fl p
436 argument.
437 The number of times is given by the
438 .Fl c
439 argument.
440 .It block
441 Perform a block erase operation.
442 All the device's blocks are set to a vendor defined
443 value, typically zero.
444 .It crypto
445 Perform a cryptographic erase operation.
446 The encryption keys are changed to prevent the decryption
447 of the data.
448 .It exitfailure
449 Exits a previously failed sanitize operation.
450 A failed sanitize operation can only be exited if it was
451 run in the unrestricted completion mode, as provided by the
452 .Fl U
453 argument.
454 .El
455 .It Fl c Ar passes
456 The number of passes when performing an
457 .Sq overwrite
458 operation.
459 Valid values are between 1 and 16.
460 The default is 1.
461 .It Fl d
462 No Deallocate After Sanitize.
463 .It Fl I
464 When performing an
465 .Sq overwrite
466 operation, the pattern is inverted between consecutive passes.
467 .It Fl p Ar pattern
468 32 bits of pattern to use when performing an
469 .Sq overwrite
470 operation.
471 The pattern is repeated as needed to fill each block.
472 .It Fl U
473 Perform the sanitize in the unrestricted completion mode.
474 If the operation fails, it can later be exited with the
475 .Sq exitfailure
476 operation.
477 .It Fl r
478 Run in
479 .Dq report only
480 mode.
481 This will report status on a sanitize that is already running on the drive.
482 .El
483 .Ss power
484 Manage the power modes of the NVMe controller.
485 .Bl -tag -width 6n
486 .It Fl l
487 List all supported power modes.
488 .It Fl p Ar mode
489 Set the power mode to
490 .Ar mode .
491 This must be a mode listed with the
492 .Dl nvmecontrol power -l
493 command.
494 .It Fl w Ar hint
495 Set the workload hint for automatic power mode control.
496 .Bl -tag -compact -width 6n
497 .It 0
498 No workload hint is provided.
499 .It 1
500 Extended idle period workload.
501 The device is often idle for minutes at a time.
502 A burst of write commands comes in over a period of seconds.
503 Then the device returns to being idle.
504 .It 2
505 Heavy sequential writes.
506 A huge number of sequential writes will be submitted, filling the submission queues.
507 .It Other
508 All other values are reserved and have no standard meaning.
509 .El
510 Please see the
511 .Dq NVM Subsystem Workloads
512 section of the relevant NVM Express Base Standard for details.
513 .El
514 .Ss selftest
515 Start the specified device self-test:
516 .Bl -tag -width 6n
517 .It Fl c Ar code
518 Specify the device self-test command code.
519 Common codes are:
520 .Bl -tag -compact -width 6n
521 .It Dv 0x1
522 Start a short device self-test operation
523 .It Dv 0x2
524 Start an extended device self-test operation
525 .It Dv 0xe
526 Start a vendor specific device self-test operation
527 .It Dv 0xf
528 Abort the device self-test operation
529 .El
530 .El
531 .Ss wdc
532 The various wdc command retrieve log data from the wdc/hgst drives.
533 The
534 .Fl o
535 flag specifies a path template to use to output the files.
536 Each file takes the path template (which defaults to nothing), appends
537 the drive's serial number and the type of dump it is followed
538 by .bin.
539 These logs must be sent to the vendor for analysis.
540 This tool only provides a way to extract them.
541 .Ss passthru
542 The
543 .Dq admin-passthru
544 and
545 .Dq io-passthru
546 commands send NVMe commands to
547 either the administrative or the data part of the device.
548 These commands are expected to be compatible with nvme-cli.
549 Please see the NVM Express Base Standard for details.
550 .Bl -tag -width 16n
551 .It Fl o -opcode Ar opcode
552 Opcode to send.
553 .It Fl 2 -cdw2 Ar value
554 32-bit value for CDW2.
555 .It Fl 3 -cdw3 Ar value
556 32-bit value for CDW3.
557 .It Fl 4 -cdw10 Ar value
558 32-bit value for CDW10.
559 .It Fl 5 -cdw11 Ar value
560 32-bit value for CDW11.
561 .It Fl 6 -cdw12 Ar value
562 32-bit value for CDW12.
563 .It Fl 7 -cdw13 Ar value
564 32-bit value for CDW13.
565 .It Fl 8 -cdw14 Ar value
566 32-bit value for CDW14.
567 .It Fl 9 -cdw15 Ar value
568 32-bit value for CDW15.
569 .It Fl l -data-len
570 Length of the data for I/O (bytes).
571 .It Fl m -metadata-len
572 Length of the metadata segment for command (bytes).
573 This is ignored and not implemented in
574 .Xr nvme 4 .
575 .It Fl f -flags
576 Nvme command flags.
577 .It Fl n -namespace-id
578 Namespace ID for command (Ignored).
579 .It Fl p -prefill
580 Value to prefill payload with.
581 .It Fl b -raw-binary
582 Output in binary format (otherwise a hex dump is produced).
583 .It Fl d -dry-run
584 Do not actually execute the command, but perform sanity checks on it.
585 .It Fl r -read
586 Command reads data from the device.
587 .It Fl s -show-command
588 Show all the command values on stdout.
589 .It Fl w -write
590 Command writes data to the device.
591 .El
592 Send arbitrary commands to the device.
593 Can be used to extract vendor specific logs.
594 Transfers to/from the device possible, but limited to
595 .Dv MAXPHYS
596 bytes.
597 Commands either read data or write it, but not both.
598 Commands needing metadata are not supported by the
599 .Xr nvme 4
600 drive.
601 .Sh DEVICE NAMES
602 Where
603 .Aq Ar namespace-id
604 is required, you can use either the
605 .Pa nvmeXnsY
606 device, or the disk device such as
607 .Pa ndaZ
608 or
609 .Pa nvdZ .
610 The leading
611 .Pa /dev/
612 is omitted.
613 Where
614 .Aq Ar device-id
615 is required, you can use either the
616 .Pa nvmeX
617 device, or the disk device such as
618 .Pa nda Z
619 or
620 .Pa nvdZ .
621 For commands that take an optional
622 .Aq nsid
623 you can use it to get information on other namespaces, or to query the
624 drive itself.
625 A
626 .Aq nsid
627 of
628 .Dq 0
629 means query the drive itself.
630 .Sh EXAMPLES
631 .Dl nvmecontrol devlist
632 .Pp
633 Display a list of NVMe controllers and namespaces along with their device nodes.
634 .Pp
635 .Dl nvmecontrol identify nvme0
636 .Dl nvmecontrol identify -n 0 nvd0
637 .Pp
638 Display a human-readable summary of the nvme0
639 .Dv IDENTIFY_CONTROLLER
640 data.
641 In this example, nvd0 is connected to nvme0.
642 .Pp
643 .Dl nvmecontrol identify -x -v nvme0ns1
644 .Dl nvmecontrol identify -x -v -n 1 nvme0
645 .Pp
646 Display an hexadecimal dump of the nvme0
647 .Dv IDENTIFY_NAMESPACE
648 data for namespace 1.
649 .Pp
650 .Dl nvmecontrol perftest -n 32 -o read -s 512 -t 30 nvme0ns1
651 .Pp
652 Run a performance test on nvme0ns1 using 32 kernel threads for 30 seconds.
653 Each thread will issue a single 512 byte read command.
654 Results are printed to stdout when 30 seconds expires.
655 .Pp
656 .Dl nvmecontrol reset nvme0
657 .Dl nvmecontrol reset nda4
658 .Pp
659 Perform a controller-level reset of the nvme0 controller.
660 In this example, nda4 is wired to nvme0.
661 .Pp
662 .Dl nvmecontrol logpage -p 1 nvme0
663 .Pp
664 Display a human-readable summary of the nvme0 controller's Error Information Log.
665 Log pages defined by the NVMe specification include Error Information Log (ID=1),
666 SMART/Health Information Log (ID=2), and Firmware Slot Log (ID=3).
667 .Pp
668 .Dl nvmecontrol logpage -p 0xc1 -v wdc nvme0
669 .Pp
670 Display a human-readable summary of the nvme0's wdc-specific advanced
671 SMART data.
672 .Pp
673 .Dl nvmecontrol logpage -p 1 -x nvme0
674 .Pp
675 Display a hexadecimal dump of the nvme0 controller's Error Information Log.
676 .Pp
677 .Dl nvmecontrol logpage -p 0xcb -b nvme0 > /tmp/page-cb.bin
678 .Pp
679 Print the contents of vendor specific page 0xcb as binary data on
680 standard out.
681 Redirect it to a temporary file.
682 .Pp
683 .Dl nvmecontrol firmware -s 2 -f /tmp/nvme_firmware nvme0
684 .Pp
685 Download the firmware image contained in "/tmp/nvme_firmware" to slot 2 of the
686 nvme0 controller, but do not activate the image.
687 .Pp
688 .Dl nvmecontrol firmware -s 4 -a nvme0
689 .Pp
690 Activate the firmware in slot 4 of the nvme0 controller on the next reset.
691 .Pp
692 .Dl nvmecontrol firmware -s 7 -f /tmp/nvme_firmware -a nvme0
693 .Pp
694 Download the firmware image contained in "/tmp/nvme_firmware" to slot 7 of the
695 nvme0 controller and activate it on the next reset.
696 .Pp
697 .Dl nvmecontrol power -l nvme0
698 .Pp
699 List all the current power modes.
700 .Pp
701 .Dl nvmecontrol power -p 3 nvme0
702 .Pp
703 Set the current power mode.
704 .Pp
705 .Dl nvmecontrol power nvme0
706 .Pp
707 Get the current power mode.
708 .Pp
709 .Dl nvmecontrol identify -n 0 nda0
710 .Pp
711 Identify the drive data associated with the
712 .Pa nda0
713 device.
714 The corresponding
715 .Pa nvmeX
716 devices is used automatically.
717 .Pp
718 .Dl nvmecontrol identify nda0
719 .Pp
720 Get the namespace parameters associated with the
721 .Pa nda0
722 device.
723 The corresponding
724 .Pa nvmeXnsY
725 device is used automatically.
726 .Sh DYNAMIC LOADING
727 The directories
728 .Pa /lib/nvmecontrol
729 and
730 .Pa /usr/local/lib/nvmecontrol
731 are scanned for any .so files.
732 These files are loaded.
733 The members of the
734 .Va top
735 linker set are added to the top-level commands.
736 The members of the
737 .Va logpage
738 linker set are added to the logpage parsers.
739 .Sh SEE ALSO
740 .Rs
741 .%T The NVM Express Base Specification
742 .%D June 10, 2019
743 .%U https://nvmexpress.org/wp-content/uploads/NVM-Express-1_4-2019.06.10-Ratified.pdf
744 .Re
745 .Sh HISTORY
746 The
747 .Nm
748 utility appeared in
749 .Fx 9.2 .
750 .Sh AUTHORS
751 .An -nosplit
752 .Nm
753 was developed by Intel and originally written by
754 .An Jim Harris Aq Mt jimharris@FreeBSD.org .
755 .Pp
756 This man page was written by
757 .An Jim Harris Aq Mt jimharris@FreeBSD.org .