NVME-SET-REG(1) NVMe Manual NVME-SET-REG(1)

# [NAME](#NAME)

nvme-set-reg - Writes and shows the defined NVMe controller register

# [SYNOPSIS](#SYNOPSIS)

```
nvme [<global-options>] set-reg <device>


                        [--register=<name> | -r <name>] [--offset=<offset> | -O <offset>]


                        [--value=<val> | -V <val>] [--mmio32 | -m]
```

# [DESCRIPTION](#DESCRIPTION)

Writes a controller register: of an NVMe over PCIe controller in its PCI memory space, of an NVMe over Fabrics controller, which has no PCI memory space, the property with a Property Set command.

The &lt;device&gt; parameter is mandatory and must be the nvme admin character device (ex: /dev/nvme0).

# [OPTIONS](#OPTIONS)

-r &lt;name&gt;, --register=&lt;name&gt;

The register to write, by name: one of the registers the host may write, intms, intmc, cc, csts, nssr, aqa, asq, acq, bprsel, bpmbl, cmbmsc, nssd, pmrctl, pmrmscl, pmrmscu.

-O &lt;offset&gt;, --offset=&lt;offset&gt;

The register to write, by offset or name, e.g. 0x14 or cc.

-V &lt;val&gt;, --value=&lt;val&gt;

The value to write. A 32 bit register refuses a larger value.

-m, --mmio32

Write a 64 bit register as two 32 bit accesses.

The options --cc=&lt;val&gt;, --aqa=&lt;val&gt; and so on of earlier versions, one for each register the host may write, still work, but are deprecated: use --register and --value.

# [GLOBAL OPTIONS](#GLOBAL_OPTIONS)

The following options are defined at the top-level nvme command and are available to this subcommand:

--dry-run

Print the command that would be executed, but do not actually execute it.

--no-ioctl-probing

Disable probing for 64-bit IOCTL support.

--no-retries

Disable retry logic on transient errors.

-o &lt;fmt&gt;, --output-format=&lt;fmt&gt;

Set the reporting format to *normal*, *tabular, 'json*, or *binary*. Only one output format may be used at a time.

--output-format-version=&lt;version&gt;

Select the output format version. Version *1* uses the original field naming, while version *2* (default) provides more consistent and script-friendly field names. Other versions are rejected.

--quiet

Suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level.

--set-options=&lt;key=value&gt;\[,&lt;key=value&gt;...]

Set libnvme library options for this invocation. Supported keys are *force-4k*, *mi-probe-enabled*, *test-base-dir* and *test-sysfs-dir*.

--timeout=&lt;ms&gt;

Set the timeout for the command in milliseconds. *infinite* or *-1* waits without a time limit (0xffffffff).

-v, --verbose

Increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in [nvme-cli.conf(5)](/man/os/nvme-cli/nvme-cli.conf.5). A command-line flag always overrides the file.

# [EXAMPLES](#EXAMPLES)

•Write 0x460000 to the Controller Configuration register

```
# nvme set-reg /dev/nvme0 --register=cc --value=0x460000
```

# [NVME](#NVME)

Part of the nvme-user suite.

10/30/2026 NVMe

---

Document: nvme-set-reg(1) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
