27#define NVME_CAP_OFFSET 0x0000
28#define NVME_VER_OFFSET 0x0008
29#define NVME_INTMS_OFFSET 0x000c
30#define NVME_INTMC_OFFSET 0x0010
31#define NVME_CC_OFFSET 0x0014
32#define NVME_CSTS_OFFSET 0x001c
33#define NVME_NSSR_OFFSET 0x0020
34#define NVME_AQA_OFFSET 0x0024
35#define NVME_ASQ_OFFSET 0x0028
36#define NVME_ACQ_OFFSET 0x0030
37#define NVME_SQ0_OFFSET 0x1000
38#define NVME_CQ0_OFFSET 0x1004
44#define NVME_SQTDBL_OFFSET(QID, DSTRD) 0x1000 + ((2 * (QID)) * (4 << (DSTRD)))
45#define NVME_CQHDBL_OFFSET(QID, DSTRD) 0x1000 + (((2 * (QID)) + 1) * (4 << (DSTRD)))
90#define NVME_CC_SHN_NORMAL_SHUTDOWN 1
91#define NVME_CC_SHN_ABRUPT_SHUTDOWN 2
103#define NVME_CSTS_SHST_SHUTDOWN_OCCURRING 1
104#define NVME_CSTS_SHST_SHUTDOWN_COMPLETED 2
118#define NVME_ASQ UINT64
122#define NVME_ACQ UINT64
350 #define NAMESPACE_MANAGEMENT_SUPPORTED BIT3
351 #define FW_DOWNLOAD_ACTIVATE_SUPPORTED BIT2
352 #define FORMAT_NVM_SUPPORTED BIT1
353 #define SECURITY_SEND_RECEIVE_SUPPORTED BIT0
398 #define LBAF_RP_BEST 00b
399 #define LBAF_RP_BETTER 01b
400 #define LBAF_RP_GOOD 10b
401 #define LBAF_RP_DEGRADED 11b
562 #define LID_ERROR_INFO 0x1
563 #define LID_SMART_INFO 0x2
564 #define LID_FW_SLOT_INFO 0x3
730#define NVME_ADMIN_DEIOSQ_CMD 0x00
731#define NVME_ADMIN_CRIOSQ_CMD 0x01
732#define NVME_ADMIN_GET_LOG_PAGE_CMD 0x02
733#define NVME_ADMIN_DEIOCQ_CMD 0x04
734#define NVME_ADMIN_CRIOCQ_CMD 0x05
735#define NVME_ADMIN_IDENTIFY_CMD 0x06
736#define NVME_ADMIN_ABORT_CMD 0x08
737#define NVME_ADMIN_SET_FEATURES_CMD 0x09
738#define NVME_ADMIN_GET_FEATURES_CMD 0x0A
739#define NVME_ADMIN_ASYNC_EVENT_REQUEST_CMD 0x0C
740#define NVME_ADMIN_NAMESACE_MANAGEMENT_CMD 0x0D
741#define NVME_ADMIN_FW_COMMIT_CMD 0x10
742#define NVME_ADMIN_FW_IAMGE_DOWNLOAD_CMD 0x11
743#define NVME_ADMIN_NAMESACE_ATTACHMENT_CMD 0x15
744#define NVME_ADMIN_FORMAT_NVM_CMD 0x80
745#define NVME_ADMIN_SECURITY_SEND_CMD 0x81
746#define NVME_ADMIN_SECURITY_RECEIVE_CMD 0x82
748#define NVME_IO_FLUSH_OPC 0
749#define NVME_IO_WRITE_OPC 1
750#define NVME_IO_READ_OPC 2
917 UINT8 MediaAndDataIntegrityErrors[16];
921 UINT8 NumberErrorInformationLogEntries[16];
char CHAR8
Definition ProcessorBind.h:109
unsigned int UINT32
Definition ProcessorBind.h:102
uint32_t Reserved1
Definition pe.h:18
NVME_FW_ACTIVATE_ACTION
Definition Nvme.h:786
@ ActivateActionReplace
Definition Nvme.h:787
@ ActivateActionActivate
Definition Nvme.h:789
@ ActivateActionReplaceActivate
Definition Nvme.h:788
#define NVME_ADMIN_CRIOSQ_CMD
Definition Nvme.h:731
#define NVME_ADMIN_NAMESACE_ATTACHMENT_CMD
Definition Nvme.h:743
#define NVME_ADMIN_IDENTIFY_CMD
Definition Nvme.h:735
#define NVME_ADMIN_DEIOSQ_CMD
Definition Nvme.h:730
#define NVME_ADMIN_SET_FEATURES_CMD
Definition Nvme.h:737
#define NVME_ADMIN_NAMESACE_MANAGEMENT_CMD
Definition Nvme.h:740
#define LID_ERROR_INFO
Definition Nvme.h:562
#define NVME_ADMIN_GET_LOG_PAGE_CMD
Definition Nvme.h:732
NVME_LOG_ID
Definition Nvme.h:811
@ ErrorInfoLogID
Definition Nvme.h:812
@ FirmwareSlotInfoLogID
Definition Nvme.h:814
@ SmartHealthInfoLogID
Definition Nvme.h:813
#define NVME_ADMIN_FW_COMMIT_CMD
Definition Nvme.h:741
#define NVME_ADMIN_FORMAT_NVM_CMD
Definition Nvme.h:744
#define LID_SMART_INFO
Definition Nvme.h:563
NVME_ADMIN_COMMAND_OPCODE
Definition Nvme.h:752
@ CreateIOCompletionQueueOpcode
Definition Nvme.h:757
@ NamespaceAttachmentOpcode
Definition Nvme.h:766
@ GetLogPageOpcode
Definition Nvme.h:755
@ FirmwareImageDownloadOpcode
Definition Nvme.h:765
@ FormatNvmOpcode
Definition Nvme.h:767
@ DeleteIOCompletionQueueOpcode
Definition Nvme.h:756
@ SetFeaturesOpcode
Definition Nvme.h:760
@ GetFeaturesOpcode
Definition Nvme.h:761
@ DeleteIOSubmissionQueueOpcode
Definition Nvme.h:753
@ IdentifyOpcode
Definition Nvme.h:758
@ NamespaceManagementOpcode
Definition Nvme.h:763
@ FirmwareCommitOpcode
Definition Nvme.h:764
@ SecurityReceiveOpcode
Definition Nvme.h:769
@ CreateIOSubmissionQueueOpcode
Definition Nvme.h:754
@ AsyncEventRequestOpcode
Definition Nvme.h:762
@ SecuritySendOpcode
Definition Nvme.h:768
@ AbortOpcode
Definition Nvme.h:759
#define NVME_ADMIN_DEIOCQ_CMD
Definition Nvme.h:733
#define NVME_ADMIN_SECURITY_RECEIVE_CMD
Definition Nvme.h:746
#define LID_FW_SLOT_INFO
Definition Nvme.h:564
NVME_FW_ACTIVATE_SLOT
Definition Nvme.h:796
@ FirmwareSlot7
Definition Nvme.h:804
@ FirmwareSlot5
Definition Nvme.h:802
@ FirmwareSlotCtrlChooses
Definition Nvme.h:797
@ FirmwareSlot2
Definition Nvme.h:799
@ FirmwareSlot6
Definition Nvme.h:803
@ FirmwareSlot3
Definition Nvme.h:800
@ FirmwareSlot4
Definition Nvme.h:801
@ FirmwareSlot1
Definition Nvme.h:798
#define NVME_ADMIN_CRIOCQ_CMD
Definition Nvme.h:734
NVME_ADMIN_IDENTIFY_CNS
Definition Nvme.h:776
@ IdentifyControllerCns
Definition Nvme.h:778
@ IdentifyNamespaceCns
Definition Nvme.h:777
@ IdentifyActiveNsListCns
Definition Nvme.h:779
#define NVME_ADMIN_FW_IAMGE_DOWNLOAD_CMD
Definition Nvme.h:742
#define NVME_ADMIN_ABORT_CMD
Definition Nvme.h:736
#define NVME_ADMIN_ASYNC_EVENT_REQUEST_CMD
Definition Nvme.h:739
#define NVME_ADMIN_GET_FEATURES_CMD
Definition Nvme.h:738
#define NVME_ADMIN_SECURITY_SEND_CMD
Definition Nvme.h:745
unsigned short UINT16
Definition actypes.h:237
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
UINT8 ActivelyRunningFwSlot
Definition Nvme.h:825
UINT8 NextActiveFwSlot
Definition Nvme.h:830
UINT32 Cid
Definition Nvme.h:513
UINT32 Sqid
Definition Nvme.h:512
UINT8 Acl
Definition Nvme.h:354
UINT16 Acwu
Definition Nvme.h:378
UINT8 Sqes
Definition Nvme.h:366
UINT16 Ssvid
Definition Nvme.h:335
UINT16 Rsvd3
Definition Nvme.h:368
UINT8 Lpa
Definition Nvme.h:357
UINT8 Frmw
Definition Nvme.h:356
UINT8 Nvscc
Definition Nvme.h:376
UINT16 Oacs
Definition Nvme.h:349
UINT8 Rab
Definition Nvme.h:340
UINT16 Awun
Definition Nvme.h:374
UINT8 Vwc
Definition Nvme.h:373
UINT16 Vid
Definition Nvme.h:334
UINT16 Awupf
Definition Nvme.h:375
UINT8 Elpe
Definition Nvme.h:358
UINT8 Apsta
Definition Nvme.h:361
UINT8 Cmic
Definition Nvme.h:342
UINT8 Mdts
Definition Nvme.h:343
UINT16 Oncs
Definition Nvme.h:370
UINT16 Rsvd5
Definition Nvme.h:379
UINT32 Sgls
Definition Nvme.h:380
UINT8 Aerl
Definition Nvme.h:355
UINT8 Cqes
Definition Nvme.h:367
UINT8 Npss
Definition Nvme.h:359
UINT32 Nn
Definition Nvme.h:369
UINT8 Avscc
Definition Nvme.h:360
UINT8 Rsvd4
Definition Nvme.h:377
UINT16 Fuses
Definition Nvme.h:371
UINT8 Fna
Definition Nvme.h:372
UINT32 Ien
Definition Nvme.h:459
UINT32 Iv
Definition Nvme.h:461
UINT32 Rsvd1
Definition Nvme.h:460
UINT32 Qid
Definition Nvme.h:452
UINT32 Pc
Definition Nvme.h:458
UINT32 Qsize
Definition Nvme.h:453
UINT32 Qsize
Definition Nvme.h:472
UINT32 Qid
Definition Nvme.h:471
UINT32 Cqid
Definition Nvme.h:480
UINT32 Rsvd1
Definition Nvme.h:479
UINT32 Pc
Definition Nvme.h:477
UINT32 Qprio
Definition Nvme.h:478
UINT16 Qid
Definition Nvme.h:490
UINT16 Rsvd1
Definition Nvme.h:491
UINT16 Rsvd1
Definition Nvme.h:502
UINT16 Qid
Definition Nvme.h:501
UINT32 Rsvd1
Definition Nvme.h:525
UINT32 Fs
Definition Nvme.h:523
UINT32 Aa
Definition Nvme.h:524
UINT32 Ofst
Definition Nvme.h:539
UINT32 Numd
Definition Nvme.h:535
UINT32 Fid
Definition Nvme.h:549
UINT32 Rsvd1
Definition Nvme.h:551
UINT32 Sel
Definition Nvme.h:550
UINT32 Numd
Definition Nvme.h:566
UINT32 Rsvd1
Definition Nvme.h:565
UINT32 Lid
Definition Nvme.h:561
UINT32 Rsvd2
Definition Nvme.h:567
UINT32 Cns
Definition Nvme.h:441
UINT32 Rsvd1
Definition Nvme.h:442
UINT8 Nsfeat
Definition Nvme.h:415
UINT64 Nuse
Definition Nvme.h:414
UINT8 Mc
Definition Nvme.h:418
UINT8 Rescap
Definition Nvme.h:422
UINT64 Eui64
Definition Nvme.h:424
UINT64 Nsze
Definition Nvme.h:412
UINT8 Flbas
Definition Nvme.h:417
UINT64 Ncap
Definition Nvme.h:413
UINT8 Nmic
Definition Nvme.h:421
UINT8 Dps
Definition Nvme.h:420
UINT8 Nlbaf
Definition Nvme.h:416
UINT8 Dpc
Definition Nvme.h:419
UINT32 Spsp
Definition Nvme.h:605
UINT32 Secp
Definition Nvme.h:606
UINT32 Al
Definition Nvme.h:610
UINT32 Rsvd1
Definition Nvme.h:604
UINT32 Rsvd1
Definition Nvme.h:620
UINT32 Secp
Definition Nvme.h:622
UINT32 Tl
Definition Nvme.h:626
UINT32 Spsp
Definition Nvme.h:621
UINT32 Sv
Definition Nvme.h:579
UINT32 Rsvd1
Definition Nvme.h:578
UINT32 Fid
Definition Nvme.h:577
UINT16 Asqs
Definition Nvme.h:109
UINT16 Rsvd1
Definition Nvme.h:110
UINT16 Acqs
Definition Nvme.h:111
UINT16 Rsvd2
Definition Nvme.h:112
UINT8 Mpsmax
Definition Nvme.h:64
UINT16 Css
Definition Nvme.h:61
UINT8 Ams
Definition Nvme.h:56
UINT8 Mpsmin
Definition Nvme.h:63
UINT16 Nssrs
Definition Nvme.h:60
UINT16 Mqes
Definition Nvme.h:54
UINT16 Dstrd
Definition Nvme.h:59
UINT8 Rsvd1
Definition Nvme.h:57
UINT16 Rsvd3
Definition Nvme.h:62
UINT8 Rsvd4
Definition Nvme.h:65
UINT8 Cqr
Definition Nvme.h:55
UINT8 To
Definition Nvme.h:58
UINT16 Css
Definition Nvme.h:82
UINT8 Iocqes
Definition Nvme.h:87
UINT16 En
Definition Nvme.h:80
UINT16 Rsvd1
Definition Nvme.h:81
UINT16 Ams
Definition Nvme.h:84
UINT8 Rsvd2
Definition Nvme.h:88
UINT16 Mps
Definition Nvme.h:83
UINT8 Iosqes
Definition Nvme.h:86
UINT16 Shn
Definition Nvme.h:85
UINT16 Nlb
Definition Nvme.h:279
UINT32 Rsvd2
Definition Nvme.h:287
UINT32 Eilbrt
Definition Nvme.h:291
UINT16 Rsvd1
Definition Nvme.h:280
UINT64 Slba
Definition Nvme.h:275
UINT16 Lr
Definition Nvme.h:283
UINT16 Prinfo
Definition Nvme.h:281
UINT16 Elbat
Definition Nvme.h:295
UINT16 Fua
Definition Nvme.h:282
UINT16 Elbatm
Definition Nvme.h:296
UINT16 Rsvd1
Definition Nvme.h:137
UINT16 Cqh
Definition Nvme.h:136
UINT16 Mo
Definition Nvme.h:723
UINT16 Cid
Definition Nvme.h:718
UINT16 Sqid
Definition Nvme.h:714
UINT16 Sqhd
Definition Nvme.h:713
UINT32 Rsvd1
Definition Nvme.h:709
UINT32 Dword0
Definition Nvme.h:705
UINT16 Rsvd2
Definition Nvme.h:722
UINT16 Sct
Definition Nvme.h:721
UINT16 Dnr
Definition Nvme.h:724
UINT16 Sc
Definition Nvme.h:720
UINT16 Pt
Definition Nvme.h:719
UINT32 Cfs
Definition Nvme.h:98
UINT32 Shst
Definition Nvme.h:99
UINT32 Rsvd1
Definition Nvme.h:101
UINT32 Nssro
Definition Nvme.h:100
UINT32 Rdy
Definition Nvme.h:97
UINT32 Flush
Definition Nvme.h:219
NVME_ACTIVE_FW_INFO ActiveFwInfo
Definition Nvme.h:842
UINT8 Mps
Definition Nvme.h:311
UINT8 Rsvd3
Definition Nvme.h:317
UINT8 Rsvd6
Definition Nvme.h:323
UINT8 Rrl
Definition Nvme.h:318
UINT16 Mp
Definition Nvme.h:309
UINT32 Exlat
Definition Nvme.h:315
UINT8 Rsvd2
Definition Nvme.h:313
UINT8 Rwt
Definition Nvme.h:320
UINT8 Nops
Definition Nvme.h:312
UINT8 Rrt
Definition Nvme.h:316
UINT8 Rwl
Definition Nvme.h:322
UINT32 Enlat
Definition Nvme.h:314
UINT8 Rsvd4
Definition Nvme.h:319
UINT8 Rsvd1
Definition Nvme.h:310
UINT8 Rsvd5
Definition Nvme.h:321
UINT32 Cdw15
Definition Nvme.h:652
UINT32 Cdw14
Definition Nvme.h:651
UINT32 Cdw12
Definition Nvme.h:649
UINT32 Cdw10
Definition Nvme.h:647
UINT32 Cdw13
Definition Nvme.h:650
UINT32 Cdw11
Definition Nvme.h:648
UINT16 Elbat
Definition Nvme.h:173
UINT32 In
Definition Nvme.h:164
UINT32 Rsvd2
Definition Nvme.h:165
UINT64 Slba
Definition Nvme.h:149
UINT16 Prinfo
Definition Nvme.h:155
UINT32 Al
Definition Nvme.h:162
UINT32 Eilbrt
Definition Nvme.h:169
UINT16 Fua
Definition Nvme.h:156
UINT16 Lr
Definition Nvme.h:157
UINT32 Af
Definition Nvme.h:161
UINT16 Elbatm
Definition Nvme.h:174
UINT16 Nlb
Definition Nvme.h:153
UINT16 Rsvd1
Definition Nvme.h:154
UINT32 Sr
Definition Nvme.h:163
UINT8 CriticalWarningMediaReadOnly
Definition Nvme.h:862
UINT8 AvailableSpare
Definition Nvme.h:872
UINT32 CriticalCompositeTemperatureTime
Definition Nvme.h:929
UINT8 AvailableSpareThreshold
Definition Nvme.h:876
UINT8 CriticalWarningAvailableSpare
Definition Nvme.h:859
UINT8 CriticalWarningTemperature
Definition Nvme.h:860
UINT8 CriticalWarningVolatileBackup
Definition Nvme.h:863
UINT8 PercentageUsed
Definition Nvme.h:880
UINT8 CriticalWarningReserved
Definition Nvme.h:864
UINT32 WarningCompositeTemperatureTime
Definition Nvme.h:925
UINT16 CompositeTemp
Definition Nvme.h:868
UINT8 CriticalWarningReliability
Definition Nvme.h:861
UINT16 Rsvd1
Definition Nvme.h:129
UINT16 Sqt
Definition Nvme.h:128
UINT8 Opc
Definition Nvme.h:668
UINT8 Fuse
Definition Nvme.h:669
UINT64 Rsvd2
Definition Nvme.h:682
UINT8 Rsvd1
Definition Nvme.h:670
NVME_PAYLOAD Payload
Definition Nvme.h:694
UINT32 Nsid
Definition Nvme.h:677
UINT8 Psdt
Definition Nvme.h:671
UINT16 Cid
Definition Nvme.h:672
UINT64 Mptr
Definition Nvme.h:687
UINT16 Mjr
Definition Nvme.h:73
UINT16 Mnr
Definition Nvme.h:72
UINT32 Rsvd1
Definition Nvme.h:234
UINT64 Slba
Definition Nvme.h:229
UINT32 Nlb
Definition Nvme.h:233
UINT32 Ilbrt
Definition Nvme.h:260
UINT16 Lbat
Definition Nvme.h:264
UINT32 Rsvd2
Definition Nvme.h:256
UINT16 Lbatm
Definition Nvme.h:265
UINT16 Nlb
Definition Nvme.h:248
UINT16 Fua
Definition Nvme.h:251
UINT16 Rsvd1
Definition Nvme.h:249
UINT16 Lr
Definition Nvme.h:252
UINT16 Prinfo
Definition Nvme.h:250
UINT64 Slba
Definition Nvme.h:244
UINT16 Fua
Definition Nvme.h:191
UINT32 Al
Definition Nvme.h:197
UINT16 Lbat
Definition Nvme.h:208
UINT16 Lr
Definition Nvme.h:192
UINT16 Lbatm
Definition Nvme.h:209
UINT16 Nlb
Definition Nvme.h:188
UINT32 Ilbrt
Definition Nvme.h:204
UINT32 Rsvd2
Definition Nvme.h:200
UINT32 Sr
Definition Nvme.h:198
UINT32 Af
Definition Nvme.h:196
UINT64 Slba
Definition Nvme.h:184
UINT32 In
Definition Nvme.h:199
UINT16 Rsvd1
Definition Nvme.h:189
UINT16 Prinfo
Definition Nvme.h:190
NVME_ADMIN_FORMAT_NVM FormatNvm
Definition Nvme.h:641
NVME_ADMIN_FIRMWARE_IMAGE_DOWNLOAD FirmwareImageDownload
Definition Nvme.h:637
NVME_ADMIN_IDENTIFY Identify
Definition Nvme.h:630
NVME_ADMIN_CRIOSQ CrIoSq
Definition Nvme.h:632
NVME_ADMIN_DEIOSQ DeIoSq
Definition Nvme.h:634
NVME_ADMIN_CRIOCQ CrIoCq
Definition Nvme.h:631
NVME_ADMIN_SECURITY_RECEIVE SecurityReceive
Definition Nvme.h:642
NVME_ADMIN_DEIOCQ DeIoCq
Definition Nvme.h:633
NVME_ADMIN_SECURITY_SEND SecuritySend
Definition Nvme.h:643
NVME_ADMIN_SET_FEATURES SetFeatures
Definition Nvme.h:640
NVME_ADMIN_GET_LOG_PAGE GetLogPage
Definition Nvme.h:639
NVME_ADMIN_ABORT Abort
Definition Nvme.h:635
NVME_ADMIN_GET_FEATURES GetFeatures
Definition Nvme.h:638
NVME_ADMIN_FIRMWARE_ACTIVATE Activate
Definition Nvme.h:636
NVME_WRITE Write
Definition Nvme.h:301
NVME_FLUSH Flush
Definition Nvme.h:302
NVME_WRITE_UNCORRECTABLE WriteUncorrectable
Definition Nvme.h:303
NVME_COMPARE Compare
Definition Nvme.h:305
NVME_WRITE_ZEROES WriteZeros
Definition Nvme.h:304
NVME_READ Read
Definition Nvme.h:300
NVME_RAW Raw
Definition Nvme.h:658
NVME_CMD Nvm
Definition Nvme.h:657
NVME_ADMIN_CMD Admin
Definition Nvme.h:656