cancel
Showing results for 
Search instead for 
Did you mean: 

P3700 NVMe Commanding - multiple LBA

CWood6
New Contributor

Hello....

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:

-Disable Controller

-Configure Controller Registers (queue size, admim submission queue address, ...)

-Enable Controller

-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)

-Verify data

-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.

Regards...

4 REPLIES 4

idata
Esteemed Contributor III

Hello NoGoodSam,

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.Best regards,Carlos A.

CWood6
New Contributor

Carlos,

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.

Regards....

CWood6
New Contributor

Carlos,

I found my issue. I am able to write and read 2 LBA now using the PRP entry # 2 field correct.

Thanks for helping me....

Regards,

idata
Esteemed Contributor III

Hello NoGoodSam,

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.Best regards,Carlos A.