OpenSSD Cosmos+ Platform Firmware
0.0.2
The firmware of Cosmos+ OpenSSD Platform for TOSHIBA nand flash module.
|
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 |
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.
ReqTransNvmeToSlice()
Definition at line 179 of file request_format.h.
unsigned int _NVME_DMA_INFO::numOfNvmeBlock |
Definition at line 183 of file request_format.h.
unsigned int _NVME_DMA_INFO::nvmeBlockOffset |
Definition at line 182 of file request_format.h.
unsigned int _NVME_DMA_INFO::overFlowCnt |
Definition at line 186 of file request_format.h.
unsigned int _NVME_DMA_INFO::reqTail |
Definition at line 184 of file request_format.h.
unsigned int _NVME_DMA_INFO::reserved0 |
Definition at line 185 of file request_format.h.
unsigned int _NVME_DMA_INFO::startIndex |
Definition at line 181 of file request_format.h.