1
0
Fork 0

Merging upstream version 1.15.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-16 12:11:43 +01:00
parent 14665a711e
commit d975eb29d0
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
116 changed files with 6031 additions and 2284 deletions

View file

@ -147,6 +147,8 @@ enum {
NVME_IOCS_ZONED = 0x02,
};
#define NVME_NUM_IOCS_COMBINATIONS 512
#define NVME_AQ_DEPTH 32
#define NVME_NR_AEN_COMMANDS 1
#define NVME_AQ_BLK_MQ_DEPTH (NVME_AQ_DEPTH - NVME_NR_AEN_COMMANDS)
@ -288,7 +290,10 @@ struct nvme_id_ctrl {
__le16 crdt1;
__le16 crdt2;
__le16 crdt3;
__u8 rsvd134[122];
__u8 rsvd134[119];
__u8 nvmsr;
__u8 vwci;
__u8 mec;
__le16 oacs;
__u8 acl;
__u8 aerl;
@ -323,7 +328,10 @@ struct nvme_id_ctrl {
__le32 anagrpmax;
__le32 nanagrpid;
__le32 pels;
__u8 rsvd356[156];
__le16 domainid;
__u8 rsvd358[10];
__u8 megcap[16];
__u8 rsvd384[128];
__u8 sqes;
__u8 cqes;
__le16 maxcmd;
@ -337,10 +345,12 @@ struct nvme_id_ctrl {
__u8 icsvscc;
__u8 nwpc;
__le16 acwu;
__u8 rsvd534[2];
__le16 ocfs;
__le32 sgls;
__le32 mnan;
__u8 rsvd544[224];
__u8 maxdna[16];
__le32 maxcna;
__u8 rsvd564[204];
char subnqn[256];
__u8 rsvd1024[768];
__le32 ioccsz;
@ -425,7 +435,7 @@ struct nvme_id_ns {
};
struct nvme_id_iocs {
__le64 iocs[512];
__le64 iocs[NVME_NUM_IOCS_COMBINATIONS];
};
enum {
@ -445,6 +455,7 @@ enum {
NVME_ID_CNS_SCNDRY_CTRL_LIST = 0x15,
NVME_ID_CNS_NS_GRANULARITY = 0x16,
NVME_ID_CNS_UUID_LIST = 0x17,
NVME_ID_CNS_DOMAIN_LIST = 0x18,
NVME_ID_CNS_CSI_NS_PRESENT_LIST = 0x1a,
NVME_ID_CNS_CSI_NS_PRESENT = 0x1b,
NVME_ID_CNS_CSI = 0x1c,
@ -672,17 +683,17 @@ struct nvme_fw_slot_info_log {
};
struct nvme_lba_status_desc {
__u64 dslba;
__u32 nlb;
__u8 rsvd_12;
__u8 status;
__u8 rsvd_15_14[2];
__le64 dslba;
__le32 nlb;
__u8 rsvd_12;
__u8 status;
__u8 rsvd_15_14[2];
};
struct nvme_lba_status {
__u32 nlsd;
__u8 cmpc;
__u8 rsvd_7_5[3];
__le32 nlsd;
__u8 cmpc;
__u8 rsvd_7_5[3];
struct nvme_lba_status_desc descs[0];
};
@ -964,8 +975,8 @@ struct nvme_lba_range_type {
__u8 type;
__u8 attributes;
__u8 rsvd2[14];
__u64 slba;
__u64 nlb;
__le64 slba;
__le64 nlb;
__u8 guid[16];
__u8 rsvd48[16];
};
@ -1160,6 +1171,7 @@ enum {
NVME_RW_PRINFO_PRCHK_GUARD = 1 << 12,
NVME_RW_PRINFO_PRACT = 1 << 13,
NVME_RW_DTYPE_STREAMS = 1 << 4,
NVME_RW_STORAGE_TAG_CHECK = 1 << 8,
};
enum {
@ -1191,6 +1203,31 @@ struct nvme_feat_auto_pst {
__le64 entries[32];
};
struct nvme_mi_host_metadata_element_desc {
__u8 type; /* Element Type */
__u8 rev; /* Element Revision */
__u16 len; /* Element Length */
__u8 val[0]; /* Element Value (UTF-8) */
};
struct nvme_mi_host_metadata {
__u8 ndesc;
__u8 rsvd1;
struct nvme_mi_host_metadata_element_desc descs[0];
};
enum {
NVME_MI_CTRL_METADATA_OS_CTRL_NAME = 0x01,
NVME_MI_CTRL_METADATA_OS_DRIVER_NAME = 0x02,
NVME_MI_CTRL_METADATA_OS_DRIVER_VER = 0x03,
NVME_MI_CTRL_METADATA_PRE_BOOT_CTRL_NAME = 0x04,
NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_NAME = 0x05,
NVME_MI_CTRL_METADATA_PRE_BOOT_DRIVER_VER = 0x06,
NVME_MI_NS_METADATA_OS_NS_NAME = 0x01,
NVME_MI_NS_METADATA_PRE_BOOT_NS_NAME = 0x02,
};
enum {
NVME_HOST_MEM_ENABLE = (1 << 0),
NVME_HOST_MEM_RETURN = (1 << 1),
@ -1220,6 +1257,7 @@ enum nvme_admin_opcode {
nvme_admin_virtual_mgmt = 0x1c,
nvme_admin_nvme_mi_send = 0x1d,
nvme_admin_nvme_mi_recv = 0x1e,
nvme_admin_capacity_mgmt = 0x20,
nvme_admin_dbbuf = 0x7C,
nvme_admin_format_nvm = 0x80,
nvme_admin_security_send = 0x81,
@ -1284,13 +1322,17 @@ enum nvme_feat {
NVME_LBA_STATUS_INFO = 0x15,
NVME_FEAT_HOST_BEHAVIOR = 0x16,
NVME_FEAT_SANITIZE = 0x17,
NVME_FEAT_ENDURANCE = 0x18,
NVME_FEAT_ENDURANCE = 0x18,
NVME_FEAT_IOCS_PROFILE = 0x19,
NVME_FEAT_SW_PROGRESS = 0x80,
NVME_FEAT_HOST_ID = 0x81,
NVME_FEAT_RESV_MASK = 0x82,
NVME_FEAT_RESV_PERSIST = 0x83,
NVME_FEAT_WRITE_PROTECT = 0x84,
NVME_MI_FEAT_CTRL_METADATA = 0x7E,
NVME_MI_FEAT_NS_METADATA = 0x7F,
} __attribute__ ((__packed__));
enum {
@ -1329,7 +1371,7 @@ enum {
struct nvme_host_mem_buf_desc {
__le64 addr;
__le32 size;
__u32 rsvd;
__u8 rsvd[4];
};
/* Sanitize Log Page */
@ -1392,7 +1434,7 @@ struct nvmf_disc_rsp_page_entry {
__u8 prtype;
__u8 cms;
__u8 resv3[5];
__u16 pkey;
__le16 pkey;
__u8 resv10[246];
} rdma;
struct tcp {
@ -1456,21 +1498,21 @@ struct nvme_error_log_page {
struct nvme_firmware_log_page {
__u8 afi;
__u8 resv[7];
__u64 frs[7];
__u8 frs[7][8];
__u8 resv2[448];
};
struct nvme_host_mem_buffer {
__u32 hsize;
__u32 hmdlal;
__u32 hmdlau;
__u32 hmdlec;
__le32 hsize;
__le32 hmdlal;
__le32 hmdlau;
__le32 hmdlec;
__u8 rsvd16[4080];
};
struct nvme_auto_pst {
__u32 data;
__u32 rsvd32;
__le32 data;
__u8 rsvd[4];
};
struct nvme_timestamp {
@ -1498,10 +1540,10 @@ struct nvme_primary_ctrl_caps {
__u8 rsvd48[16];
__le32 vifrt; /* VI Resources Flexible Total */
__le32 virfa; /* VI Resources Flexible Assigned */
__u16 virfap; /* VI Resources Flexible Allocated to Primary */
__u16 viprt; /* VI Resources Private Total */
__u16 vifrsm; /* VI Resources Flexible Secondary Maximum */
__u16 vigran; /* VI Flexible Resource Preferred Granularity */
__le16 virfap; /* VI Resources Flexible Allocated to Primary */
__le16 viprt; /* VI Resources Private Total */
__le16 vifrsm; /* VI Resources Flexible Secondary Maximum */
__le16 vigran; /* VI Flexible Resource Preferred Granularity */
__u8 rsvd80[4016];
};
@ -1523,10 +1565,10 @@ struct nvme_secondary_controllers_list {
};
struct nvme_bar_cap {
__u16 mqes;
__le16 mqes;
__u8 ams_cqr;
__u8 to;
__u16 bps_css_nssrs_dstrd;
__le16 bps_css_nssrs_dstrd;
__u8 mpsmax_mpsmin;
__u8 rsvd_cmbs_pmrs;
};
@ -1595,10 +1637,14 @@ enum {
NVME_SC_PREEMPT_ABORT = 0x1B,
NVME_SC_SANITIZE_FAILED = 0x1C,
NVME_SC_SANITIZE_IN_PROGRESS = 0x1D,
NVME_SC_SGL_DATA_BLK_GRAN_INVALID= 0x1e,
NVME_SC_CMD_NOT_SUP_QUEUE_IN_CMB = 0x1f,
NVME_SC_NS_WRITE_PROTECTED = 0x20,
NVME_SC_CMD_INTERRUPTED = 0x21,
NVME_SC_TRANSIENT_TRANSPORT = 0x22,
NVME_SC_PROHIBITED_BY_CMD_AND_FEAT = 0x23,
NVME_SC_ADMIN_CMD_MEDIA_NOT_READY = 0x24,
NVME_SC_LBA_RANGE = 0x80,
NVME_SC_CAP_EXCEEDED = 0x81,
@ -1646,6 +1692,9 @@ enum {
NVME_SC_PMR_SAN_PROHIBITED = 0x123,
NVME_SC_ANA_INVALID_GROUP_ID= 0x124,
NVME_SC_ANA_ATTACH_FAIL = 0x125,
NVME_SC_INSUFFICIENT_CAP = 0x126,
NVME_SC_NS_ATTACHMENT_LIMIT_EXCEEDED = 0x127,
NVME_SC_PROHIBIT_CMD_EXEC_NOT_SUPPORTED = 0x128,
/*
* Command Set Specific - Namespace Types commands:
@ -1654,6 +1703,7 @@ enum {
NVME_SC_IOCS_NOT_ENABLED = 0x12A,
NVME_SC_IOCS_COMBINATION_REJECTED = 0x12B,
NVME_SC_INVALID_IOCS = 0x12C,
NVME_SC_ID_UNAVAILABLE = 0x12D,
/*
* I/O Command Set Specific - NVM commands:
@ -1698,6 +1748,7 @@ enum {
NVME_SC_COMPARE_FAILED = 0x285,
NVME_SC_ACCESS_DENIED = 0x286,
NVME_SC_UNWRITTEN_BLOCK = 0x287,
NVME_SC_STORAGE_TAG_CHECK = 0x288,
/*
* Path-related Errors:
@ -1770,8 +1821,8 @@ struct nvme_id_ctrl_nvm {
__u8 wzsl;
__u8 wusl;
__u8 dmrl;
__u32 dmrsl;
__u64 dmsl;
__le32 dmrsl;
__le64 dmsl;
__u8 rsvd16[4080];
};
@ -1874,4 +1925,20 @@ enum nvme_zns_report_options {
NVME_ZNS_ZRAS_REPORT_READ_ONLY = 0x6,
NVME_ZNS_ZRAS_REPORT_OFFLINE = 0x7,
};
struct nvme_id_domain_attr_entry {
__le16 dom_id;
__u8 rsvd2[14];
__u8 dom_cap[16];
__u8 unalloc_dom_cap[16];
__u8 max_egrp_dom_cap[16];
__u8 rsvd64[64];
};
struct nvme_id_domain_list {
__u8 num_entries;
__u8 rsvd1[127];
struct nvme_id_domain_attr_entry domain_attr[];
};
#endif /* _LINUX_NVME_H */