nvme: Add new NVMe 1.4 definitions for controller memory buffer
Change-Id: I00f1880a6b0f018c291d015b3f65a7579541c069 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/837 Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
344c318464
commit
b649a1dc3e
@ -263,6 +263,35 @@ union spdk_nvme_cmbsz_register {
|
||||
};
|
||||
SPDK_STATIC_ASSERT(sizeof(union spdk_nvme_cmbsz_register) == 4, "Incorrect size");
|
||||
|
||||
union spdk_nvme_cmbmsc_register {
|
||||
uint64_t raw;
|
||||
struct {
|
||||
/** capability registers enabled */
|
||||
uint64_t cre : 1;
|
||||
|
||||
/** controller memory space enable */
|
||||
uint64_t cmse : 1;
|
||||
|
||||
uint64_t reserved : 10;
|
||||
|
||||
/** controller base address */
|
||||
uint64_t cba : 52;
|
||||
} bits;
|
||||
|
||||
};
|
||||
SPDK_STATIC_ASSERT(sizeof(union spdk_nvme_cmbmsc_register) == 8, "Incorrect size");
|
||||
|
||||
union spdk_nvme_cmbsts_register {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
/** controller base address invalid */
|
||||
uint32_t cbai : 1;
|
||||
|
||||
uint32_t reserved : 31;
|
||||
} bits;
|
||||
};
|
||||
SPDK_STATIC_ASSERT(sizeof(union spdk_nvme_cmbsts_register) == 4, "Incorrect size");
|
||||
|
||||
/** Boot partition information */
|
||||
union spdk_nvme_bpinfo_register {
|
||||
uint32_t raw;
|
||||
@ -345,7 +374,13 @@ struct spdk_nvme_registers {
|
||||
/** boot partition memory buffer location (must be 4KB aligned) */
|
||||
uint64_t bpmbl;
|
||||
|
||||
uint32_t reserved3[0x3ec];
|
||||
/** controller memory buffer memory space control */
|
||||
union spdk_nvme_cmbmsc_register cmbmsc;
|
||||
|
||||
/** controller memory buffer status */
|
||||
union spdk_nvme_cmbsts_register cmbsts;
|
||||
|
||||
uint32_t reserved3[0x3e9];
|
||||
|
||||
struct {
|
||||
uint32_t sq_tdbl; /* submission queue tail doorbell */
|
||||
@ -377,6 +412,10 @@ SPDK_STATIC_ASSERT(0x44 == offsetof(struct spdk_nvme_registers, bprsel),
|
||||
"Incorrect register offset");
|
||||
SPDK_STATIC_ASSERT(0x48 == offsetof(struct spdk_nvme_registers, bpmbl),
|
||||
"Incorrect register offset");
|
||||
SPDK_STATIC_ASSERT(0x50 == offsetof(struct spdk_nvme_registers, cmbmsc),
|
||||
"Incorrect register offset");
|
||||
SPDK_STATIC_ASSERT(0x58 == offsetof(struct spdk_nvme_registers, cmbsts),
|
||||
"Incorrect register offset");
|
||||
|
||||
enum spdk_nvme_sgl_descriptor_type {
|
||||
SPDK_NVME_SGL_TYPE_DATA_BLOCK = 0x0,
|
||||
|
Loading…
Reference in New Issue
Block a user