Long story short, I am learning to use the P3700 SSD in my application by developing low-level software to generate NVMe command (PCIe). My first step was to perform basic write and read of the SSD drive - which I've completed.
My next step is to increase performance, where I'm having an issue.
For background, here's basically what the software is doing:
-Configure Controller Registers (queue size, admim submission queue address, ...)
-NVMe Allocate I/O completion queue command
-NVMe Allocate I/O submission qeuue command
-Format NVMe Namespace command
-Write NVMe Command (1 LBA)
-Read NVMe Command (1 LBA)
-Repeat write, read, verify....
Although slow, these is working.
Now my issue (first issue):
- I modified the software to perform the NVMe Write Command to multiple LBAs (2 LBA) followed by a READ of those 2 LBA.
- The read data returned for the 1st LBA (or 4kB) matches the expected data.
- The read data returned for the 2nd LBA seems to be garbage data (non-zero)
Any suggestions where to look?
I've tried multiple debugging steps without progress.
If an app engineer from Intel could help .... I could provide the full NVMe commands.
While this is not the usual type of support that we provide, we would like to try and look further into this for you.
Please provide us with the full NVMe commands so that we may check them out with our additional resources.
From my typing in my NVMe commands in the response to this....I have possibility found an issue.
The Data Pointer (DPTR): PRP entry # 1 field = physical address and PRP Entry # 2 = 0.
This works when LBA = memory page size.
However, when I increased the LBA count I still have my PRP entry # 2 = 0 (which I think is incorrect).
So I think I need to figure out how to use the PRP entry # 2 field.
We're glad to hear that you were able to identify the problem.
Thank you for sharing your solution with us. We are sure that future users browsing this forum will find this information helpful.
If you any further issues or question, just let us know. We're always glad to be of assistance.