Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-8]: src Pull up following revision(s) (requested by nonaka in tic...
details: https://anonhg.NetBSD.org/src/rev/f3125c80ab1c
branches: netbsd-8
changeset: 434944:f3125c80ab1c
user: martin <martin%NetBSD.org@localhost>
date: Thu Apr 19 15:37:56 2018 +0000
description:
Pull up following revision(s) (requested by nonaka in ticket #781):
sbin/nvmectl/Makefile 1.4
sbin/nvmectl/bignum.c 1.2
sbin/nvmectl/devlist.c 1.3-1.5
sbin/nvmectl/firmware.c 1.3,1.4
sbin/nvmectl/identify.c 1.3-1.5
sbin/nvmectl/logpage.c 1.5-1.7
sbin/nvmectl/nvme.h 1.3
sbin/nvmectl/nvmectl.8 1.5
sbin/nvmectl/nvmectl.c 1.5-1.7
sbin/nvmectl/nvmectl.h 1.5-1.8
sbin/nvmectl/perftest.c 1.3-1.5
sbin/nvmectl/power.c 1.3,1.4
sbin/nvmectl/reset.c 1.2,1.3
sbin/nvmectl/util.c 1.1,1.2
sbin/nvmectl/wdc.c 1.2-1.4
sys/dev/ic/ld_nvme.c 1.20
sys/dev/ic/nvme.c 1.38,1.39
sys/dev/ic/nvmeio.h 1.2
sys/dev/ic/nvmereg.h 1.10,1.11
sys/dev/ic/nvmevar.h 1.16
sys/dev/pci/nvme_pci.c 1.20
nvmectl(8): Sync with FreeBSD nvmecontrol(8) r328763.
nvmectl(8): fix wdc command usage.
nvme(4): Added some delay before check RDY bit quirk when disabling device.
Pick from FreeBSD nvme(4) r326937.
Add some new structure fileds, opcodes and statuses from NVMe 1.3a.
nvmectl(8): Add big-endian support.
from FreeBSD nvmecontolr(8) r329824.
nvmectl(8): fix subcommand usage.
nvmectl(8): Remove some wdc subcommands from man page.
- wdc drive-log
- wdc get-crash-dump
- wdc purge
- wdc purge-monitor
Typos.
use setprogname()/getprogname(), do not hardcode the prognam name in fixed
strings
diffstat:
sbin/nvmectl/Makefile | 3 +-
sbin/nvmectl/bignum.c | 6 +-
sbin/nvmectl/devlist.c | 10 +-
sbin/nvmectl/firmware.c | 10 +-
sbin/nvmectl/identify.c | 24 ++++-
sbin/nvmectl/logpage.c | 198 +++++++++++++++++++++++++++---------------
sbin/nvmectl/nvme.h | 22 +----
sbin/nvmectl/nvmectl.8 | 22 +---
sbin/nvmectl/nvmectl.c | 64 +++----------
sbin/nvmectl/nvmectl.h | 38 ++++---
sbin/nvmectl/perftest.c | 10 +-
sbin/nvmectl/power.c | 12 +-
sbin/nvmectl/reset.c | 10 +-
sbin/nvmectl/util.c | 140 ++++++++++++++++++++++++++++++
sbin/nvmectl/wdc.c | 221 ++++++++---------------------------------------
sys/dev/ic/ld_nvme.c | 8 +-
sys/dev/ic/nvme.c | 98 +++++++++++++-------
sys/dev/ic/nvmeio.h | 104 ++++++++++++++++++++++-
sys/dev/ic/nvmereg.h | 162 ++++++++++++++++++++++++++++++++---
sys/dev/ic/nvmevar.h | 5 +-
sys/dev/pci/nvme_pci.c | 44 +++++++++-
21 files changed, 764 insertions(+), 447 deletions(-)
diffs (truncated from 2192 to 300 lines):
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/Makefile
--- a/sbin/nvmectl/Makefile Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/Makefile Thu Apr 19 15:37:56 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.3 2017/04/29 00:06:40 nonaka Exp $
+# $NetBSD: Makefile,v 1.3.2.1 2018/04/19 15:37:56 martin Exp $
.include <bsd.own.mk>
@@ -11,6 +11,7 @@
SRCS+= perftest.c
SRCS+= power.c
SRCS+= reset.c
+SRCS+= util.c
SRCS+= wdc.c
SRCS+= bignum.c
SRCS+= humanize_bignum.c
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/bignum.c
--- a/sbin/nvmectl/bignum.c Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/bignum.c Thu Apr 19 15:37:56 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bignum.c,v 1.1 2017/02/13 11:16:46 nonaka Exp $ */
+/* $NetBSD: bignum.c,v 1.1.8.1 2018/04/19 15:37:56 martin Exp $ */
/*-
* Copyright (c) 2012 Alistair Crooks <agc%NetBSD.org@localhost>
@@ -1649,7 +1649,7 @@
/* zero a as per default */
mp_zero(a);
- /* grow a to accomodate the single bit */
+ /* grow a to accommodate the single bit */
if ((res = mp_grow(a, b / DIGIT_BIT + 1)) != MP_OKAY) {
return res;
}
@@ -1683,7 +1683,7 @@
{
int x, res, oldused;
- /* grow to accomodate result */
+ /* grow to accommodate result */
if (b->alloc < a->used + 1) {
if ((res = mp_grow(b, a->used + 1)) != MP_OKAY) {
return res;
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/devlist.c
--- a/sbin/nvmectl/devlist.c Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/devlist.c Thu Apr 19 15:37:56 2018 +0000
@@ -1,6 +1,8 @@
-/* $NetBSD: devlist.c,v 1.2 2016/06/04 20:59:49 joerg Exp $ */
+/* $NetBSD: devlist.c,v 1.2.8.1 2018/04/19 15:37:56 martin Exp $ */
/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
* Copyright (C) 2012-2013 Intel Corporation
* All rights reserved.
*
@@ -28,9 +30,9 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: devlist.c,v 1.2 2016/06/04 20:59:49 joerg Exp $");
+__RCSID("$NetBSD: devlist.c,v 1.2.8.1 2018/04/19 15:37:56 martin Exp $");
#if 0
-__FBSDID("$FreeBSD: head/sbin/nvmecontrol/devlist.c 260381 2014-01-06 23:48:47Z jimharris $");
+__FBSDID("$FreeBSD: head/sbin/nvmecontrol/devlist.c 329824 2018-02-22 13:32:31Z wma $");
#endif
#endif
@@ -52,7 +54,7 @@
devlist_usage(void)
{
fprintf(stderr, "usage:\n");
- fprintf(stderr, DEVLIST_USAGE);
+ fprintf(stderr, "\t%s " DEVLIST_USAGE, getprogname());
exit(1);
}
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/firmware.c
--- a/sbin/nvmectl/firmware.c Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/firmware.c Thu Apr 19 15:37:56 2018 +0000
@@ -1,6 +1,8 @@
-/* $NetBSD: firmware.c,v 1.2 2017/04/29 00:06:40 nonaka Exp $ */
+/* $NetBSD: firmware.c,v 1.2.2.1 2018/04/19 15:37:56 martin Exp $ */
/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
* Copyright (c) 2013 EMC Corp.
* All rights reserved.
*
@@ -31,9 +33,9 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: firmware.c,v 1.2 2017/04/29 00:06:40 nonaka Exp $");
+__RCSID("$NetBSD: firmware.c,v 1.2.2.1 2018/04/19 15:37:56 martin Exp $");
#if 0
-__FBSDID("$FreeBSD: head/sbin/nvmecontrol/firmware.c 313188 2017-02-04 05:52:50Z imp $");
+__FBSDID("$FreeBSD: head/sbin/nvmecontrol/firmware.c 329824 2018-02-22 13:32:31Z wma $");
#endif
#endif
@@ -186,7 +188,7 @@
int fd = -1;
int a_flag, s_flag, f_flag;
int commit_action, reboot_required;
- int ch,
+ int ch;
char *p, *image = NULL;
char *controller = NULL, prompt[64];
void *buf = NULL;
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/identify.c
--- a/sbin/nvmectl/identify.c Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/identify.c Thu Apr 19 15:37:56 2018 +0000
@@ -1,6 +1,8 @@
-/* $NetBSD: identify.c,v 1.2 2016/06/04 20:59:49 joerg Exp $ */
+/* $NetBSD: identify.c,v 1.2.8.1 2018/04/19 15:37:56 martin Exp $ */
/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
* Copyright (C) 2012-2013 Intel Corporation
* All rights reserved.
*
@@ -28,9 +30,9 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: identify.c,v 1.2 2016/06/04 20:59:49 joerg Exp $");
+__RCSID("$NetBSD: identify.c,v 1.2.8.1 2018/04/19 15:37:56 martin Exp $");
#if 0
-__FBSDID("$FreeBSD: head/sbin/nvmecontrol/identify.c 253476 2013-07-19 21:40:57Z jimharris $");
+__FBSDID("$FreeBSD: head/sbin/nvmecontrol/identify.c 329824 2018-02-22 13:32:31Z wma $");
#endif
#endif
@@ -72,6 +74,7 @@
printf("Unlimited\n");
else
printf("%ld\n", sysconf(_SC_PAGESIZE) * (1 << cdata->mdts));
+ printf("Controller ID: 0x%02x\n", cdata->cntlid);
printf("\n");
printf("Admin Command Set Attributes\n");
@@ -85,6 +88,9 @@
printf("Firmware Activate/Download: %s\n",
(cdata->oacs & NVME_ID_CTRLR_OACS_FW) ?
"Supported" : "Not Supported");
+ printf("Namespace Managment: %s\n",
+ (cdata->oacs & NVME_ID_CTRLR_OACS_NS) ?
+ "Supported" : "Not Supported");
printf("Abort Command Limit: %d\n", cdata->acl+1);
printf("Async Event Request Limit: %d\n", cdata->aerl+1);
printf("Number of Firmware Slots: ");
@@ -139,6 +145,16 @@
printf("Volatile Write Cache: %s\n",
(cdata->vwc & NVME_ID_CTRLR_VWC_PRESENT) ?
"Present" : "Not Present");
+
+ if (cdata->oacs & NVME_ID_CTRLR_OACS_NS) {
+ printf("\n");
+ printf("Namespace Drive Attributes\n");
+ printf("==========================\n");
+ print_bignum("NVM total cap: ",
+ cdata->untncap.tnvmcap, "");
+ print_bignum("NVM unallocated cap: ",
+ cdata->untncap.unvmcap, "");
+ }
}
static void
@@ -170,7 +186,7 @@
identify_usage(void)
{
fprintf(stderr, "usage:\n");
- fprintf(stderr, IDENTIFY_USAGE);
+ fprintf(stderr, "\t%s " IDENTIFY_USAGE, getprogname());
exit(1);
}
diff -r 3bc0636e38f6 -r f3125c80ab1c sbin/nvmectl/logpage.c
--- a/sbin/nvmectl/logpage.c Wed Apr 18 14:50:39 2018 +0000
+++ b/sbin/nvmectl/logpage.c Thu Apr 19 15:37:56 2018 +0000
@@ -1,6 +1,8 @@
-/* $NetBSD: logpage.c,v 1.4 2017/04/29 00:06:40 nonaka Exp $ */
+/* $NetBSD: logpage.c,v 1.4.2.1 2018/04/19 15:37:56 martin Exp $ */
/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
* Copyright (c) 2013 EMC Corp.
* All rights reserved.
*
@@ -31,9 +33,9 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: logpage.c,v 1.4 2017/04/29 00:06:40 nonaka Exp $");
+__RCSID("$NetBSD: logpage.c,v 1.4.2.1 2018/04/19 15:37:56 martin Exp $");
#if 0
-__FBSDID("$FreeBSD: head/sbin/nvmecontrol/logpage.c 314230 2017-02-25 00:09:16Z imp $");
+__FBSDID("$FreeBSD: head/sbin/nvmecontrol/logpage.c 329824 2018-02-22 13:32:31Z wma $");
#endif
#endif
@@ -52,12 +54,12 @@
#include <unistd.h>
#include "nvmectl.h"
-#include "bn.h"
#define DEFAULT_SIZE (4096)
#define MAX_FW_SLOTS (7)
-typedef void (*print_fn_t)(void *buf, uint32_t size);
+typedef void (*print_fn_t)(const struct nvm_identify_controller *cdata, void *buf,
+ uint32_t size);
struct kv_name {
uint32_t key;
@@ -78,18 +80,17 @@
}
static void
-print_bin(void *data, uint32_t length)
+print_log_hex(const struct nvm_identify_controller *cdata __unused, void *data,
+ uint32_t length)
{
- write(STDOUT_FILENO, data, length);
+ print_hex(data, length);
}
-/* "Missing" from endian.h */
-static __inline uint64_t
-le48dec(const void *pp)
+static void
+print_bin(const struct nvm_identify_controller *cdata __unused, void *data,
+ uint32_t length)
{
- uint8_t const *p = (uint8_t const *)pp;
-
- return (((uint64_t)le16dec(p + 4) << 32) | le32dec(p));
+ write(STDOUT_FILENO, data, length);
}
static void *
@@ -127,11 +128,30 @@
}
static void
-print_log_error(void *buf, uint32_t size)
+nvme_error_information_entry_swapbytes(struct nvme_error_information_entry *e)
+{
+#if _BYTE_ORDER != _LITTLE_ENDIAN
+ e->error_count = le64toh(e->error_count);
+ e->sqid = le16toh(e->sqid);
+ e->cid = le16toh(e->cid);
+ e->status = le16toh(e->status);
+ e->error_location = le16toh(e->error_location);
+ e->lba = le64toh(e->lba);
+ e->nsid = le32toh(e->nsid);
+ e->command_specific = le64toh(e->command_specific);
+#endif
+}
+
+static void
+print_log_error(const struct nvm_identify_controller *cdata __unused, void *buf,
+ uint32_t size)
{
int i, nentries;
struct nvme_error_information_entry *entry = buf;
+ /* Convert data to host endian */
+ nvme_error_information_entry_swapbytes(entry);
+
printf("Error Information Log\n");
printf("=====================\n");
@@ -171,46 +191,6 @@
}
}
-#define METRIX_PREFIX_BUFSIZ 17
-#define NO_METRIX_PREFIX_BUFSIZ 42
-
-static void
-print_bignum(const char *title, uint64_t v[2], const char *suffix)
-{
- char buf[64];
- uint8_t tmp[16];
- uint64_t l = le64toh(v[0]);
- uint64_t h = le64toh(v[1]);
-
- tmp[ 0] = (h >> 56) & 0xff;
- tmp[ 1] = (h >> 48) & 0xff;
- tmp[ 2] = (h >> 40) & 0xff;
- tmp[ 3] = (h >> 32) & 0xff;
- tmp[ 4] = (h >> 24) & 0xff;
- tmp[ 5] = (h >> 16) & 0xff;
Home |
Main Index |
Thread Index |
Old Index