diff options
Diffstat (limited to 'Documentation/nvme-admin-passthru.1')
-rw-r--r-- | Documentation/nvme-admin-passthru.1 | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1 new file mode 100644 index 0000000..b057dec --- /dev/null +++ b/Documentation/nvme-admin-passthru.1 @@ -0,0 +1,194 @@ +'\" t +.\" Title: nvme-admin-passthru +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> +.\" Date: 02/14/2024 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ADMIN\-PASSTHR" "1" "02/14/2024" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-admin-passthru \- Submit an arbitrary admin command, return results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-admin\-passthru\fR <device> [\-\-opcode=<opcode> | \-O <opcode>] + [\-\-flags=<flags> | \-f <flags>] [\-rsvd=<rsvd> | \-R <rsvd>] + [\-\-namespace\-id=<nsid> | \-n <nsid>] [\-\-cdw2=<cdw2> | \-2 <cdw2>] + [\-\-cdw3=<cdw3> | \-3 <cdw3>] [\-\-cdw10=<cdw10> | \-4 <cdw4>] + [\-\-cdw11=<cdw11> | \-5 <cdw5>] [\-\-cdw12=<cdw12> | \-6 <cdw6>] + [\-\-cdw13=<cdw13> | \-7 <cdw7>] [\-\-cdw14=<cdw14> | \-8 <cdw8>] + [\-\-cdw15=<cdw15> | \-9 <cdw9>] + [\-\-data\-len=<data\-len> | \-l <data\-len>] + [\-\-metadata\-len=<len> | \-m <len>] + [\-\-input\-file=<file> | \-i <file>] + [\-\-read | \-r] [\-\-write | \-w] + [\-\-timeout=<to> | \-t <to>] + [\-\-show\-command | \-s] + [\-\-dry\-run | \-d] + [\-\-raw\-binary | \-b] + [\-\-prefill=<prefill> | \-p <prefill>] + [\-\-latency | \-T] + [\-\-output\-format=<fmt> | \-o <fmt>] [\-\-verbose | \-v] +.fi +.SH "DESCRIPTION" +.sp +Submits an arbitrary NVMe admin command and returns the applicable results\&. This may be the simply the commands result and status, or may also include a buffer if the command returns one\&. This command does no interpretation of the opcodes or options\&. +.sp +The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may printed by the program as a hex dump, or may be returned as a raw buffer printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-O <opcode>, \-\-opcode=<opcode> +.RS 4 +The NVMe opcode to send to the device in the command +.RE +.PP +\-f <flags>, \-\-flags=<flags> +.RS 4 +The NVMe command flags to send to the device in the command +.RE +.PP +\-R <rsvd>, \-\-rsvd=<rsvd> +.RS 4 +The value for the reserved field in the command\&. +.RE +.PP +\-n <nsid>, \-\-namespace\-id=<nsid> +.RS 4 +The value for the ns\-id in the command\&. +.RE +.PP +\-[2\-9] <cdw>, \-\-cdw[2\-3,10\-15]=<cdw> +.RS 4 +Specifies the command dword value for that specified entry in the command +.RE +.PP +\-r, \-\-read, \-w, \-\-write +.RS 4 +Used for the data\-direction for the command and required for commands sending/receiving data\&. Don\(cqt use both read and write at the same time\&. +.RE +.PP +\-i <file>, \-\-input\-file=<file> +.RS 4 +If the command is a data\-out (write) command, use this file to fill the buffer sent to the device\&. If no file is given, assumed to use STDIN\&. +.RE +.PP +\-l <data\-len>, \-\-data\-len=<data\-len> +.RS 4 +The data length for the buffer used for this command\&. +.RE +.PP +\-m <data\-len>, \-\-metadata\-len=<data\-len> +.RS 4 +The metadata length for the buffer used for this command\&. +.RE +.PP +\-s, \-\-show\-cmd +.RS 4 +Print out the command to be sent\&. +.RE +.PP +\-d, \-\-dry\-run +.RS 4 +Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option +\fImust\fR +be set\&. Otherwise \-\-dry\-run option will be +\fIignored\fR\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw returned buffer to stdout if the command returns a structure\&. +.RE +.PP +\-p, \-\-prefill +.RS 4 +Prefill the buffer with a predetermined byte value\&. Defaults to 0\&. This may be useful if the data you are writing is shorter than the required buffer, and you need to pad it with a known value\&. It may also be useful if you need to confirm if a device is overwriting a buffer for a data\-in command\&. +.RE +.PP +\-T, \-\-latency +.RS 4 +Print out the latency the IOCTL took (in us)\&. +.RE +.PP +\-o <fmt>, \-\-output\-format=<fmt> +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR +or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.PP +\-v, \-\-verbose +.RS 4 +Increase the information detail in the output\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The following will run the admin command with opcode=6 and cdw10=1, which corresponds to an identify controller command\&. This example requires the data\-len param be 4096, which is the size of the returned structure\&. The \-r option is used because it is a data\-in command +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme admin\-passthru /dev/nvme0 \-\-opcode=06 \-\-data\-len=4096 \-\-cdw10=1 \-r +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Or if you want to save that structure to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme admin\-passthru /dev/nvme0 \-\-opcode=06 \-\-data\-len=4096 \-\-cdw10=1 \-r \-b > id_ns\&.raw +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite |