cancel
Showing results for 
Search instead for 
Did you mean: 

Using NVMe-MI command for two P4510 SSDs

家楊
New Contributor

1.Reading SN/SMART for Multiple SSDs

Example for NVMe-MI appendix A for read VID and serial number.

Now, I have two P4510 SSD, and try to use SMBus to read some information by NVMe-MI 1.0a Appendix A specification.

Following table is data of VID and serial number by NVMe-MI 1.0a Appendix A example 2.

only plug SSD1only plug SSD2Plug SSD1&SSD2 on same motherboard

80 86 42 54 4c 4a 37 33 37 32 30 41 50 45 31 50

30 46 47 4e 20 20

80 86 42 54 4c 4a 37 33 37 33 30 30 46 4c 31 50

30 46 47 4e 20 20

80 86 42 54 4c 4a 37 33 37 32 30 00 40 44 31 50

30 46 47 4e 20 20

By SMBus, SSD1 should win bus arbitration at value 0x32 of Byte 0x9.

But in "Plug SSD1+SSD2 on same motherboard" case, the value of Byte 0xb/0xc/0xd are logical and result of SSD1 and SSD2 TX data (that meaning both devices still driving data line).

How can I get correct serial number for two P4510 SSDs?

2. No reaction for NVMe-MI Reset Arbitration

As NVMe-MI 1.0a Appendix A example 3, host sending command to SSD device, SMBus Arbitration bit of Status Flags of Subsystem Management Data Structure should be clear to 0.

And then host send SMBus block read of device's status , but host receive SMBus Arbitration bit is 1 after sending this command.

My platform:

HP F5G73AV Z840

smbus driver:

I2C Tools

訊息由此人編輯:家豪 楊

11 REPLIES 11

idata
Esteemed Contributor III

Hi,

Thank you for posting in the Intel® SSD community.

If I understood you well, you are referring to the examples from the following document (Appendix A | Example 2 & 3): https://nvmexpress.org/wp-content/uploads/NVM_Express_Management_Interface_1_0_gold.pdf https://nvmexpress.org/wp-content/uploads/NVM_Express_Management_Interface_1_0_gold.pdf

Correct me if I'm wrong but if I got it well, you are getting the issue when both SSDs are connected because the output is the result of an AND logical operator between both individual results when each SSD is plug separately, right? Your goal is to read the serial number from both SSDs when both are plugged, correct?

Please let me investigate on this as well as the issue with the reset Arbitration bit.

I'll post an update as soon as possible.

Have a nice day.

Regards,

Diego V.

家楊
New Contributor

Thanks for reply!

Correct me if I'm wrong but if I got it well, you are getting the issue when both SSDs are connected because the output is the result of an AND logical operator between both individual results when each SSD is plug separately, right?

Yes. Because SMBus DATA port is wire-and, the device may support SMBus arbitration for connecting multiple devices.

Your goal is to read the serial number from both SSDs when both are plugged, correct?

Yes.Using NVMe-MI 1.0a Appendix A Example 2 method.

idata
Esteemed Contributor III

Hi,

I've been investigating about what you are trying to accomplish and according to the documentation from the NVMe Technical Note: NVMe Basic Management Command: http://www.nvmexpress.org/wp-content/uploads/NVMe_Management_-_Technical_Note_on_Basic_Management_Co..., it seems that you are following the right path.Besides that, our recommendation is to not access the SMBus address within 100msec of device power up as it may experience some glitch on the bus. Please make sure you are following this detail while accessing the bus.Regards,Diego V.

家楊
New Contributor

Sure, host acess these SSDs which are stable.