diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
new file mode 100644
index 0000000..d2f94e9
--- /dev/null
+++ b/.github/workflows/c-cpp.yml
@@ -0,0 +1,18 @@
+name: C/C++ CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: make
+ run: sudo apt-get install gcc-10-powerpc* && make clean && make && make clean && make LD=powerpc64le-linux-gnu-ld CC=powerpc64le-linux-gnu-gcc-10 CFLAGS='-O2 -g -Wall -Wformat-security -Werror -m64 -mcpu=power8 -mtune=power8 -I -I/usr/powerpc64-linux-gnu/include/'
+
diff --git a/.gitignore b/.gitignore
index b0efd0b..8e5ae00 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,9 @@ a.out
*~
*.swp
NVME-VERSION-FILE
+nvme.spec
+nvme-*.tar.gz
+version
cscope.*
diff --git a/Documentation/cmds-main.txt b/Documentation/cmds-main.txt
index 824ca69..46df03d 100644
--- a/Documentation/cmds-main.txt
+++ b/Documentation/cmds-main.txt
@@ -17,7 +17,10 @@ linknvme:nvme-format[1]::
Format namespace(s)
linknvme:nvme-fw-activate[1]::
- F/W Activate
+ F/W Activate (in old version < 1.2)
+
+linknvme:nvme-fw-commit[1]::
+ F/W Commit (in > 1.2)
linknvme:nvme-fw-download[1]::
F/W Download
@@ -34,15 +37,24 @@ linknvme:nvme-get-log[1]::
linknvme:nvme-telemetry-log[1]::
Telemetry Host-Initiated Log
+linknvme:nvme-changed-ns-list-log[1]::
+ Retrieve Changed Namespace List Log
+
linknvme:nvme-smart-log[1]::
Retrieve Smart Log
+linknvme:nvme-ana-log[1]::
+ Retreive ANA(Asymmetric Namespace Access) Log
+
linknvme:nvme-endurance-log[1]::
Retrieve endurance Log
linknvme:nvme-effects-log[1]::
Retrieve effects Log
+linknvme:nvme-self-test-log[1]::
+ Retrieve Device Self-test Log
+
linknvme:nvme-get-ns-id[1]::
Retrieve namespace identifier
@@ -55,6 +67,12 @@ linknvme:nvme-id-ctrl[1]::
linknvme:nvme-id-ns[1]::
Identify Namespace
+linknvme:nvme-id-nvmset[1]::
+ Identify NVM Set List
+
+linknvme:nvme-id-iocs[1]::
+ Identify I/O Command Set
+
linknvme:nvme-create-ns[1]::
Create a new namespace
@@ -82,6 +100,15 @@ linknvme:nvme-list[1]::
linknvme:nvme-list-ctrl[1]::
List controller in NVMe subsystem
+linknvme:nvme-list-subsys[1]::
+ List NVMe subsystems
+
+linknvme:nvme-reset[1]::
+ Reset a NVMe controller
+
+linknvme:nvme-device-self-test[1]::
+ Issue Device Self-test Command
+
linknvme:nvme-read[1]::
Issue IO Read Command
@@ -112,6 +139,12 @@ linknvme:nvme-security-recv[1]::
linknvme:nvme-security-send[1]::
Security Send
+linknvme:nvme-dsm[1]::
+ Issue Data Set Management Command
+
+linknvme:nvme-copy[1]::
+ Issue Simple Copy Command
+
linknvme:nvme-set-feature[1]::
Set Feature
diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1
index f6d247f..286709f 100644
--- a/Documentation/nvme-admin-passthru.1
+++ b/Documentation/nvme-admin-passthru.1
@@ -2,12 +2,12 @@
.\" Title: nvme-admin-passthru
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ADMIN\-PASSTHR" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-ADMIN\-PASSTHR" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-ana-log.1 b/Documentation/nvme-ana-log.1
index 862f42d..5ba4cc3 100644
--- a/Documentation/nvme-ana-log.1
+++ b/Documentation/nvme-ana-log.1
@@ -2,12 +2,12 @@
.\" Title: nvme-ana-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ANA\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-ANA\-LOG" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-attach-ns.1 b/Documentation/nvme-attach-ns.1
index 0af22ae..37f63a8 100644
--- a/Documentation/nvme-attach-ns.1
+++ b/Documentation/nvme-attach-ns.1
@@ -2,12 +2,12 @@
.\" Title: nvme-attach-ns
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-ATTACH\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-ATTACH\-NS" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-changed-ns-list-log.1 b/Documentation/nvme-changed-ns-list-log.1
index 13dda55..97372fd 100644
--- a/Documentation/nvme-changed-ns-list-log.1
+++ b/Documentation/nvme-changed-ns-list-log.1
@@ -2,12 +2,12 @@
.\" Title: nvme-changed-ns-list-log
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-CHANGED\-NS\-L" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-CHANGED\-NS\-L" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-compare.1 b/Documentation/nvme-compare.1
index 0f1c6ff..0638190 100644
--- a/Documentation/nvme-compare.1
+++ b/Documentation/nvme-compare.1
@@ -2,12 +2,12 @@
.\" Title: nvme-compare
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-COMPARE" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-COMPARE" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
diff --git a/Documentation/nvme-connect-all.1 b/Documentation/nvme-connect-all.1
index f829935..a53a017 100644
--- a/Documentation/nvme-connect-all.1
+++ b/Documentation/nvme-connect-all.1
@@ -2,12 +2,12 @@
.\" Title: nvme-connect-all
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/29/2020
+.\" Date: 01/20/2021
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-CONNECT\-ALL" "1" "04/29/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-CONNECT\-ALL" "1" "01/20/2021" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -51,7 +51,7 @@ nvme-connect-all \- Discover and Connect to Fabrics controllers\&.
[\-\-queue\-size=<#> | \-Q <#>]
[\-\-matching | \-m]
[\-\-persistent | \-p]
- [\-\-quiet | \-q]
+ [\-\-quiet | \-S]
.fi
.SH "DESCRIPTION"
.sp
@@ -72,6 +72,7 @@ allbox tab(:);
lt lt
lt lt
lt lt
+lt lt
lt lt.
T{
Value
@@ -90,6 +91,11 @@ T}:T{
The network fabric is a Fibre Channel network\&.
T}
T{
+tcp
+T}:T{
+The network fabric is a TCP/IP network\&.
+T}
+T{
loop
T}:T{
Connect to a NVMe over Fabrics target on the local host
@@ -187,7 +193,7 @@ If a traddr was specified on the command line or in the configuration file, only
Don\(cqt remove the discovery controller after retrieving the discovery log page\&.
.RE
.PP
-\-q, \-\-quiet
+\-S, \-\-quiet
.RS 4
Suppress error messages\&.
.RE
diff --git a/Documentation/nvme-connect-all.html b/Documentation/nvme-connect-all.html
index b5f22f7..f779c7b 100644
--- a/Documentation/nvme-connect-all.html
+++ b/Documentation/nvme-connect-all.html
@@ -768,7 +768,7 @@ nvme-connect-all(1) Manual Page
[--queue-size=<#> | -Q <#>]
[--matching | -m]
[--persistent | -p]
- [--quiet | -q]
+ [--quiet | -S]
@@ -825,6 +825,10 @@ cellspacing="0" cellpadding="4">
WIP The network fabric is a Fibre Channel network. |
+tcp |
+The network fabric is a TCP/IP network. |
+
+
loop |
Connect to a NVMe over Fabrics target on the local host |
@@ -1044,7 +1048,7 @@ cellspacing="0" cellpadding="4">
--q
+-S
--quiet
@@ -1111,7 +1115,7 @@ nvme-connect(1)
+
+
+
+
SYNOPSIS
+
+
+
nvme-copy <device> [--sdlba=<sdlba> | -d <sdlba>]
+ [--blocks=<nlb-list,> | -b <nlb-list,>]
+ [--slbs=<slbas,> | -s <slbas,>]
+ [--limited-retry | -l]
+ [--force-unit-access | -f]
+ [--prinfow=<prinfow> | -p <prinfow>]
+ [--prinfor=<prinfor> | -P <prinfor>]
+ [--ref-tag=<reftag> | -r <reftag>]
+ [--expected-ref-tags=<reftag,> | -R <reftag,>]
+ [--app-tag=<apptag> | -a <apptag>]
+ [--expected-app-tags=<apptag,> | -A <apptag,>]
+ [--app-mask=<appmask> | -m <appmask>]
+ [--expected-app-masks=<appmask,> | -M <appmask,>]
+ [--dir-type=<type> | -T <type>]
+ [--dir-spec=<spec> | -S <spec>]
+ [--format=<entry-format> | -F <entry-format>]
+
+
+
+
+
+
DESCRIPTION
+
+
The Copy command is used by the host to copy data from one or more source
+logical block ranges to a single consecutive destination logical block range.
+
+
+
+
OPTIONS
+
+
+-
+--sdlba=<sdlba>
+
+-
+-d <sdlba>
+
+-
+
+ 64-bit addr of first destination logical block
+
+
+-
+--blocks=<nlb-list,>
+
+-
+-b <nlb-list,>
+
+-
+
+ Comma separated list of the number of blocks in each range
+
+
+-
+--slbs=<slbas,>
+
+-
+-s <slbas,>
+
+-
+
+ Comma separated list of the starting blocks in each range
+
+
+-
+--limited-retry
+
+-
+-l
+
+-
+
+ Sets the limited retry flag.
+
+
+-
+--force-unit-access
+
+-
+-f
+
+-
+
+ Set the force-unit access flag.
+
+
+-
+--prinfow=<prinfow>
+
+-
+-p <prinfow>
+
+-
+
+ Protection Information field write definition.
+
+
+-
+--prinfor=<prinfor>
+
+-
+-P <prinfor>
+
+-
+
+ Protection Information field read definition.
+
+
+-
+--ref-tag=<reftag>
+
+-
+-r <reftag>
+
+-
+
+ initial lba reference tag.
+
+
+-
+--expected-ref-tags=<reftag,>
+
+-
+-R <reftag,>
+
+-
+
+ expected lba reference tags (comma-separated list).
+
+
+-
+--app-tag=<apptag>
+
+-
+-a <apptag>
+
+-
+
+ lba app tag
+
+
+-
+--expected-app-tags=<apptag,>
+
+-
+-A <apptag,>
+
+-
+
+ expected lba app tags (comma-separated list)
+
+
+-
+--app-mask=<appmask>
+
+-
+-m <appmask>
+
+-
+
+ lba tag mask
+
+
+-
+--expected-app-masks=<appmask,>
+
+-
+-M <appmask,>
+
+-
+
+ expected lba tag masks (comma-separated list)
+
+
+-
+--dir-type=<type>
+
+-
+-T <type>
+
+-
+
+ Optional directive type. The nvme-cli only enforces the value
+ be in the defined range for the directive type, though the NVMe
+ specifcation (1.3a) defines only one directive, 01h, for write
+ stream idenfiers.
+
+
+-
+--dir-spec=<spec>
+
+-
+-S <spec>
+
+-
+
+ Optional field for directive specifics. When used with
+ write streams, this value is defined to be the write stream
+ identifier. The nvme-cli will not validate the stream requested
+ is within the controller’s capabilities.
+
+
+-
+--format=<entry-format>
+
+-
+-F <entry-format>
+
+-
+
+ source range entry format
+
+
+
+
+
+
+
+
NVME
+
+
Part of the nvme-user suite
+
+
+
+
+
+
diff --git a/Documentation/nvme-connect-all.txt b/Documentation/nvme-connect-all.txt
index 63d3c8f..820dd6c 100644
--- a/Documentation/nvme-connect-all.txt
+++ b/Documentation/nvme-connect-all.txt
@@ -27,7 +27,7 @@ SYNOPSIS
[--queue-size=<#> | -Q <#>]
[--matching | -m]
[--persistent | -p]
- [--quiet | -q]
+ [--quiet | -S]
DESCRIPTION
-----------
@@ -58,6 +58,7 @@ OPTIONS
|Value|Definition
|rdma|The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc)
|fc |*WIP* The network fabric is a Fibre Channel network.
+|tcp |The network fabric is a TCP/IP network.
|loop|Connect to a NVMe over Fabrics target on the local host
|=================
@@ -153,7 +154,7 @@ OPTIONS
Don't remove the discovery controller after retrieving the discovery
log page.
--q::
+-S::
--quiet::
Suppress error messages.
diff --git a/Documentation/nvme-connect.1 b/Documentation/nvme-connect.1
index 9170d01..64d18bb 100644
--- a/Documentation/nvme-connect.1
+++ b/Documentation/nvme-connect.1
@@ -2,12 +2,12 @@
.\" Title: nvme-connect
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
-.\" Date: 04/24/2020
+.\" Date: 10/20/2020
.\" Manual: NVMe Manual
.\" Source: NVMe
.\" Language: English
.\"
-.TH "NVME\-CONNECT" "1" "04/24/2020" "NVMe" "NVMe Manual"
+.TH "NVME\-CONNECT" "1" "10/20/2020" "NVMe" "NVMe Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
@@ -65,6 +65,7 @@ allbox tab(:);
lt lt
lt lt
lt lt
+lt lt
lt lt.
T{
Value
@@ -83,6 +84,11 @@ T}:T{
The network fabric is a Fibre Channel network\&.
T}
T{
+tcp
+T}:T{
+The network fabric is a TCP/IP network\&.
+T}
+T{
loop
T}:T{
Connect to a NVMe over Fabrics target on the local host
diff --git a/Documentation/nvme-connect.html b/Documentation/nvme-connect.html
index 3387333..1f523dc 100644
--- a/Documentation/nvme-connect.html
+++ b/Documentation/nvme-connect.html
@@ -4,7 +4,7 @@