OpenSSD Cosmos+ Platform Firmware  0.0.2
The firmware of Cosmos+ OpenSSD Platform for TOSHIBA nand flash module.
_NVME_DMA_INFO Struct Reference

The structure that manages the LBA and LSA info needed by NVMe DMA requests. More...

#include <request_format.h>

Data Fields

unsigned int startIndex: 16
 
unsigned int nvmeBlockOffset: 16
 
unsigned int numOfNvmeBlock: 16
 
unsigned int reqTail: 8
 
unsigned int reserved0: 8
 
unsigned int overFlowCnt
 

Detailed Description

The structure that manages the LBA and LSA info needed by NVMe DMA requests.

The NVMe block size (4K) is different from slice request size (16K), the firmware thus may map several NVMe LBAs into same LSA (check ReqTransNvmeToSlice() for details) to align the DMA request size to 16K (LSA size).

However, this cause the number of NVMe blocks needed by the NVMe DMA requests differ from 1 to 4. So, to prevent NVMe DMA requests from retrieving wrong data, we should explicitly specify the starting NVMe block address (startIndex), the number of blocks (numOfNvmeBlock), and which LSA offset (nvmeBlockOffset) should the first NVMe LBA align to, in each NVMe DMA request.

See also
ReqTransNvmeToSlice()

Definition at line 179 of file request_format.h.

Field Documentation

◆ numOfNvmeBlock

unsigned int _NVME_DMA_INFO::numOfNvmeBlock

Definition at line 183 of file request_format.h.

◆ nvmeBlockOffset

unsigned int _NVME_DMA_INFO::nvmeBlockOffset

Definition at line 182 of file request_format.h.

◆ overFlowCnt

unsigned int _NVME_DMA_INFO::overFlowCnt

Definition at line 186 of file request_format.h.

◆ reqTail

unsigned int _NVME_DMA_INFO::reqTail

Definition at line 184 of file request_format.h.

◆ reserved0

unsigned int _NVME_DMA_INFO::reserved0

Definition at line 185 of file request_format.h.

◆ startIndex

unsigned int _NVME_DMA_INFO::startIndex

Definition at line 181 of file request_format.h.


The documentation for this struct was generated from the following file: