When NVME controller sends data into FPGA. lba is not in order. we got trouble about getting lba with correct order from nvme source disk.
I am working with NVMe about the project using Samsung SSD 970 PRO 512GB. In our project, we use FPGA to communicate with NVMe devices but we got trouble with our process as bellow:
1. FPGA having FIFO buffer mapped with DMAP2P works as destination/from address for NVMe controller to read/write.
2. NVMe driver sends command to NVMe controller, requests a read command with transfer size 4096 lba (2MB).
3. When controller sends data into FPGA. lba is not in order. we got trouble about getting lba with correct order from nvme source disk. (1)
I have investigated about "Dataset Management (DSM)", with "Sequential Request" bit[6] inside dword 13 for each read/write command. I confirmed DSM is supported in our NVMe device (Samsung 970 Pro), but look like it does not have any effected to order of lba transfer in a NVMe read command.
Please help me to clarify what is "Sequential Request" option inside each NVMe read command, as inside NVMe specification described "command is part of a sequential read that includes multiple Read commands". Is it able to change lba transfer order in a NVMe read command? As our expect (1) receive lba in order from an NVMe read command (with large of lba), is it possible? What can we do for our expectation?