From dc09939226a0de650a82db3dae0eb5e48f6859eb Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 10 Apr 2018 16:41:03 -0700 Subject: [PATCH] nvme_spec: add Transport SGL Data Block descriptor Defined in ratified NVMe 1.3 TP 4008 (2017-08-22). Change-Id: I42479c8a0acbdc1a2df54061ffbc12a54385cd94 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/409059 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Changpeng Liu --- examples/nvme/identify/identify.c | 2 ++ include/spdk/nvme_spec.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/nvme/identify/identify.c b/examples/nvme/identify/identify.c index d17448e7e..dbcc9522d 100644 --- a/examples/nvme/identify/identify.c +++ b/examples/nvme/identify/identify.c @@ -944,6 +944,8 @@ print_controller(struct spdk_nvme_ctrlr *ctrlr, const struct spdk_nvme_transport cdata->sgls.metadata_address ? "Supported" : "Not Supported"); printf(" SGL Offset: %s\n", cdata->sgls.sgl_offset ? "Supported" : "Not Supported"); + printf(" Transport SGL Data Block: %s\n", + cdata->sgls.transport_sgl ? "Supported" : "Not Supported"); printf("\n"); printf("Firmware Slot Information\n"); diff --git a/include/spdk/nvme_spec.h b/include/spdk/nvme_spec.h index 0658bfee7..f57fc3572 100644 --- a/include/spdk/nvme_spec.h +++ b/include/spdk/nvme_spec.h @@ -375,7 +375,8 @@ enum spdk_nvme_sgl_descriptor_type { SPDK_NVME_SGL_TYPE_SEGMENT = 0x2, SPDK_NVME_SGL_TYPE_LAST_SEGMENT = 0x3, SPDK_NVME_SGL_TYPE_KEYED_DATA_BLOCK = 0x4, - /* 0x5 - 0xE reserved */ + SPDK_NVME_SGL_TYPE_TRANSPORT_DATA_BLOCK = 0x5, + /* 0x6 - 0xE reserved */ SPDK_NVME_SGL_TYPE_VENDOR_SPECIFIC = 0xF }; @@ -1203,7 +1204,8 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data { uint32_t oversized_sgl : 1; uint32_t metadata_address : 1; uint32_t sgl_offset : 1; - uint32_t reserved2: 11; + uint32_t transport_sgl : 1; + uint32_t reserved2 : 10; } sgls; uint8_t reserved4[228];