@@ -161,6 +161,7 @@ enum nvme_csi {
161161 * @NVME_REG_BPMBL: Boot Partition Memory Buffer Location
162162 * @NVME_REG_CMBMSC: Controller Memory Buffer Memory Space Control
163163 * @NVME_REG_CMBSTS: Controller Memory Buffer Status
164+ * @NVME_REG_CRTO: Controller Ready Timeouts
164165 * @NVME_REG_PMRCAP: Persistent Memory Capabilities
165166 * @NVME_REG_PMRCTL: Persistent Memory Region Control
166167 * @NVME_REG_PMRSTS: Persistent Memory Region Status
@@ -187,6 +188,7 @@ enum nvme_register_offsets {
187188 NVME_REG_BPMBL = 0x0048 ,
188189 NVME_REG_CMBMSC = 0x0050 ,
189190 NVME_REG_CMBSTS = 0x0058 ,
191+ NVME_REG_CRTO = 0x0068 ,
190192 NVME_REG_PMRCAP = 0x0e00 ,
191193 NVME_REG_PMRCTL = 0x0e04 ,
192194 NVME_REG_PMRSTS = 0x0e08 ,
@@ -235,6 +237,7 @@ enum nvme_cap {
235237 NVME_CAP_MPSMAX_SHIFT = 52 ,
236238 NVME_CAP_PMRS_SHIFT = 56 ,
237239 NVME_CAP_CMBS_SHIFT = 57 ,
240+ NVME_CAP_CRMS_SHIFT = 59 ,
238241 NVME_CAP_MQES_MASK = 0xffff ,
239242 NVME_CAP_CQR_MASK = 0x1 ,
240243 NVME_CAP_AMS_MASK = 0x3 ,
@@ -247,11 +250,14 @@ enum nvme_cap {
247250 NVME_CAP_MPSMAX_MASK = 0xf ,
248251 NVME_CAP_PMRS_MASK = 0x1 ,
249252 NVME_CAP_CMBS_MASK = 0x1 ,
253+ NVME_CAP_CRMS_MASK = 0x3 ,
250254 NVME_CAP_AMS_WRR = 1 << 0 ,
251255 NVME_CAP_AMS_VS = 1 << 1 ,
252256 NVME_CAP_CSS_NVM = 1 << 0 ,
253257 NVME_CAP_CSS_CSI = 1 << 6 ,
254258 NVME_CAP_CSS_ADMIN = 1 << 7 ,
259+ NVME_CAP_CRWMS = 1 << 0 ,
260+ NVME_CAP_CRIMS = 1 << 1 ,
255261};
256262
257263#define NVME_CAP_MQES (cap ) NVME_GET(cap, CAP_MQES)
@@ -264,8 +270,9 @@ enum nvme_cap {
264270#define NVME_CAP_BPS (cap ) NVME_GET(cap, CAP_BPS)
265271#define NVME_CAP_MPSMIN (cap ) NVME_GET(cap, CAP_MPSMIN)
266272#define NVME_CAP_MPSMAX (cap ) NVME_GET(cap, CAP_MPSMAX)
267- #define NVME_CAP_CMBS (cap ) NVME_GET(cap, CAP_CMBS)
268273#define NVME_CAP_PMRS (cap ) NVME_GET(cap, CAP_PMRS)
274+ #define NVME_CAP_CMBS (cap ) NVME_GET(cap, CAP_CMBS)
275+ #define NVME_CAP_CRMS (cap ) NVME_GET(cap, CAP_CRMS)
269276
270277enum nvme_vs {
271278 NVME_VS_TER_SHIFT = 0 ,
@@ -292,11 +299,13 @@ enum nvme_cc {
292299 NVME_CC_SHN_SHIFT = 14 ,
293300 NVME_CC_IOSQES_SHIFT = 16 ,
294301 NVME_CC_IOCQES_SHIFT = 20 ,
302+ NVME_CC_CRIME_SHIFT = 24 ,
295303 NVME_CC_EN_MASK = 0x1 ,
296304 NVME_CC_CSS_MASK = 0x7 ,
297305 NVME_CC_MPS_MASK = 0xf ,
298306 NVME_CC_AMS_MASK = 0x7 ,
299307 NVME_CC_SHN_MASK = 0x3 ,
308+ NVME_CC_CRIME_MASK = 0x1 ,
300309 NVME_CC_IOSQES_MASK = 0xf ,
301310 NVME_CC_IOCQES_MASK = 0xf ,
302311 NVME_CC_CSS_NVM = 0 ,
@@ -308,6 +317,8 @@ enum nvme_cc {
308317 NVME_CC_SHN_NONE = 0 ,
309318 NVME_CC_SHN_NORMAL = 1 ,
310319 NVME_CC_SHN_ABRUPT = 2 ,
320+ NVME_CC_CRWME = 0 ,
321+ NVME_CC_CRIME = 1 ,
311322};
312323
313324#define NVME_CC_EN (cc ) NVME_GET(cc, CC_EN)
@@ -317,6 +328,7 @@ enum nvme_cc {
317328#define NVME_CC_SHN (cc ) NVME_GET(cc, CC_SHN)
318329#define NVME_CC_IOSQES (cc ) NVME_GET(cc, CC_IOSQES)
319330#define NVME_CC_IOCQES (cc ) NVME_GET(cc, CC_IOCQES)
331+ #define NVME_CC_CRIME (cc ) NVME_GET(cc, CC_CRIME)
320332
321333enum nvme_csts {
322334 NVME_CSTS_RDY_SHIFT = 0 ,
@@ -473,6 +485,16 @@ enum nvme_cmbsts {
473485
474486#define NVME_CMBSTS_CBAI (cmbsts ) NVME_GET(cmbsts, CMBSTS_CBAI)
475487
488+ enum nvme_crto {
489+ NVME_CRTO_CRIMT_SHIFT = 16 ,
490+ NVME_CRTO_CRIMT_MASK = 0xffff0000 ,
491+ NVME_CRTO_CRWMT_SHIFT = 0 ,
492+ NVME_CRTO_CRWMT_MASK = 0x0000ffff ,
493+ };
494+
495+ #define NVME_CRTO_CRIMT (crto ) NVME_GET(crto, CRTO_CRIMT)
496+ #define NVME_CRTO_CRWMT (crto ) NVME_GET(crto, CRTO_CRWMT)
497+
476498enum nvme_pmrcap {
477499 NVME_PMRCAP_RDS_SHIFT = 3 ,
478500 NVME_PMRCAP_WDS_SHIFT = 4 ,
0 commit comments