13 Replies Latest reply on Aug 27, 2015 4:58 PM by jonathan_intel

    Issue Accessing MCTP data of DC P3700

    gvk51

      Hi Team,

       

      I have a slaved i2c driver (7-bit Addressing) to access temperature data @ 0x1B and driver status @ 0x6A.

       

      I am able to get the temperature data as two bytes say 0xC3, 0x03, I face issue when trying to read Drive status @ 0x6A,  (in the product specification this address is mentioned as 0x6 instead of 0x6A) I gets smubs error 121. I am using the api mentioned below

       

      #define MCTP_CMD_DRIVE_STATUS    0x0

      #define MCTP_DRIVE_STATUS_BLOCK_SIZE    0x08

      char buff[8];

      ret = i2c_smbus_read_i2c_block_data(client, MCTP_CMD_DRIVE_STATIC_DATA,

                  MCTP_DRIVE_STATUS_BLOCK_SIZE, buff);

       

      When I i2cdetect tool i see "UU" status for slave 0x6A.

       

      Please help identifying the issue in reading.

       

      Regards,

      gvk51

        • 1. Re: Issue Accessing MCTP data of DC P3700
          jonathan_intel

          Hello gvk51,

           

          We would like to inform that the Intel® SSD DC P3700 Series is supported in compatible Operating Systems using the recommended drivers. More information about system requirements is available in the Intel® Solid-State Drive Data Center Family for PCIe* P3700, P3600 and P3500 Series Installation Guide.

           

          As noted in page 17 of the Intel® SSD DC P3700 Series Product Specification, the Out of Band Management capabilities of the drives are according to international standards outlined in the NVMe Basic Management Command:

           

          http://www.nvmexpress.org/wp-content/uploads/NVMe_Management_-_Technical_Note_on_Basic_Management_Command.pdf

           

          You can obtain the most recent drivers, and Linux NVMe Driver Reference Guide from the following link:

           

          Intel® Download Center

           

          Management and monitoring of the drive should be performed using the Intel® Solid-State Drive Data Center Tool and Intel® Solid-State Drive Toolbox.

          • 2. Re: Issue Accessing MCTP data of DC P3700
            gvk51

            Hi Jonathan,

             

            Thanks for your response.

             

            I have been through Intel® SSD DC P3700 Series Product Specification and as per http://www.nvmexpress.org/wp-content/uploads/NVMe_Management_-_Technical_Note_on_Basic_Management_Command.pdf Irrespective of Intel® Solid-State Drive Data Center Tool and Intel® Solid-State Drive Toolbox, I should be able to read the temperature data and SSD information like driver status, static data over SMBus

             

            Issue I see is, I am able to get the temperature data with address 0x1B register-5, but failing to get the driver-status & static-data using the address 0x6A with command 0, 8 from slave driver I implemented. Please let me know is there any issue with my code I posted in my previous post. If there is any driver for oob management please give me pointers. (Here NMVe SSD drive is mounted)

             

            In the page 17 of Intel® SSD DC P3700 Series Product Specification I understand there is a typo error, instead of address 0x6A it is mentioned as 0x6, correct me If I am wrong.

             

            Thanks,

            gvk51.

            • 3. Re: Issue Accessing MCTP data of DC P3700
              jonathan_intel

              We will need to check on this with our additional resources. Please let us know the following information so we can provide accurate recommendations:

               

              - Main goal, or reason why you are configuring Out of band management and SMBUS. (Type of project)

              - Computer brand and model

              - Motherboard model and BIOS version

              - Operating System (including 32 or 64 bit).

              - NVMe Driver version

              - Model number of the Intel SSD DC P3700.

              - Is this an Add-in-card SSD, or a 2.5 in SFF-8639 form factor drive?

              - What is the Size of the drive?

              • 4. Re: Issue Accessing MCTP data of DC P3700
                gvk51

                Hi Jonathan,

                 

                Thanks for your response.

                 

                1) I have sf8639 2.5 inch form factor device

                 

                2) I am not interested in hot plug or surprise removal functionality, so we can ignore BIOS support and the mother board type.

                 

                3) I have a desktop machine with Ubuntu 14.04 LTS installed.

                 

                4) I am connecting NVMe SSD to Desktop motherboard using sf8639 to PCIe converter. I am able to see the drive on my machine and able to format and mount.  On the converter board I have SMBus headers, which are from the SF8639 Interface. I have external micro controller with i2c lines connected to SMBus header, Iam trying to read the drive status following the  MCTP 1.0 version to read the temperature info @ 0x1B, but failing to read VPD data @ 0x6A.

                 

                Please provide the inputs, I have shared the code in my previous post.

                 

                Thanks & Regards,
                Vamshi G.

                • 5. Re: Issue Accessing MCTP data of DC P3700
                  jonathan_intel

                  Hello gvk51,

                   

                  We will be glad to help you resolve your inquiry and we will need to engage additional resources to review your request.

                  The Intel® SSD DC P3700 2.5in drive has specific hardware requirements and we need to confirm some information. Please let us know the system details previously requested as they are required for this type of inquiries:

                   

                  - Computer brand and model

                  - Motherboard model and BIOS version

                  - NVMe Driver version

                  - Model number of the Intel® SSD DC P3700.

                  - What type of converter board are you using?

                  - Do you plan to boot from the NVMe drive, or use for data only?

                  • 6. Re: Issue Accessing MCTP data of DC P3700
                    gvk51

                    Hi Jonathan_Intel,

                     

                    - It is a assembled machine with Asus mother board & intel CPU with Ubuntu 14.04 LTS

                    - Mother board version P8P67 EVO

                    - BIOS version 1606: Build date 05/02/2011

                    - Linux Kernel version 3.16.0-45-generic

                    - NVMe driver version 0.9 (used modinfo nvme )

                    - SSD Model: SSDPE2MD800G4

                    - I am using PCI-AD-x439-01 SF8639 to PCIe converter (High Speed Serial Cables, Adapters and Accessories from Serial Cables)

                    - I am using PCIe_16 2.0 version on mother board

                     

                    I am able to format & mount the drive on Ubuntu machine, here I could not see the smart data & it is not important to me as of now. My major concern is accessing the OOB data using an external micro-controller over I2C/SMBus.

                     

                    I understand I gave 100% of the information, to my understanding all the above information may not be need to access OOB data as long as SSD is operational, please correct me if I am wrong.

                     

                    Please help me at the earliest.

                     

                    Thanks & Regards,

                    Vamshi G.

                    • 7. Re: Issue Accessing MCTP data of DC P3700
                      jonathan_intel

                      We are researching on your inquiry and will provide more information soon.

                      • 8. Re: Issue Accessing MCTP data of DC P3700
                        gvk51

                        Hi Jonathan_intel,

                         

                        Please help me addressing this at the earliest.

                         

                        Thanks in advance !

                        • 9. Re: Issue Accessing MCTP data of DC P3700
                          jonathan_intel

                          Hello gvk51,

                           

                          We got the following information about the addresses available on Fultondale SSD's (DC P3700, DC P3600)

                           

                          7bit (8bit) addresses listed

                           

                          0x6A (0xD4) = ASIC / NVMe-MI (SMBus Block Reads / I2C Multi-Byte Reads)

                          0x53 (0xA6) = VPD EEPROM (SMBus Byte Write/Reads)

                          0x1B (0x36) = VPD Temp (SMBus Word Reads)

                          Note that 0x6A != 0xA6 

                           

                          Also the 0x6A (0xD4 8bit) address for talking to the ASIC's SMBus controller has different behavior depending on how your drive is configured. With firmware builds that are on FW151 or newer, this address will talk simplified NVMe-MI.

                          • 10. Re: Issue Accessing MCTP data of DC P3700
                            gvk51

                            Hi Jonathan

                             

                            Thanks for you  response.

                             

                            1) what exactly meant by how your dive is configured & how do I configure it?

                             

                            2) How do I check my drive firmware is FW151 or newer. Assuming my drive is at the latest firmware then it should support simplified NVMe-MI which I understand as version 1.0, correct me if I am wrong.

                             

                            3) In my first post I mentioned that I am trying to do SMBus Block Reads/ I2C multibyte reads as below using the 7-bit address 0x6A and trying to read 8 bytes, but i see error on the bus. Please let me know if I am missing any thing in my code

                             

                            #define MCTP_CMD_DRIVE_STATUS    0x0

                            #define MCTP_DRIVE_STATUS_BLOCK_SIZE    0x08

                            char buff[8];

                            ret = i2c_smbus_read_i2c_block_data(client, MCTP_CMD_DRIVE_STATIC_DATA,

                                        MCTP_DRIVE_STATUS_BLOCK_SIZE, buff);

                             

                            When I use i2cdetect tool i see "UU" status for slave 0x6A, which means a busy status. What could be the reason.

                             

                            Please help me giving inline answers & at the earliest.

                             

                            Thanks in advance.☺

                            • 11. Re: Issue Accessing MCTP data of DC P3700
                              gvk51

                              Hi Jonthan

                               

                              I am unable to read the data using address 0x6A.

                               

                              I am able to read the temp data of 2 bytes @ 0x1b

                              I am able to read the VPD info of 75 bytes @ address 0x53, please help me why I am unable to read the NVMe-MI data ? Have you verified this from your side

                              • 12. Re: Issue Accessing MCTP data of DC P3700
                                jonathan_intel

                                Hello gvk51,

                                 

                                Since this is an integration inquiry, we have to engage additional resources and it may take additional time to provide feedback on this matter. Additionally, the configuration you are using has not been validated with the Intel® SSD DC P3700 2.5in drive. So, it may take longer to verify what may or may not work.

                                • 13. Re: Issue Accessing MCTP data of DC P3700
                                  jonathan_intel

                                  Hello Gvk51,

                                   

                                  We were not able to dedicate engineering resources to review your request and unfortunately we will not be able to provide full support for your design and software development efforts.

                                   

                                  The hardware configuration you are using has not been validated to work with the Intel® SSD DC P3700 2.5in drive; so, it is not possible for us to replicate and test this configuration. Also, We have not received any other reports of similar issues and you SSD appears to be working correctly.

                                   

                                  For better documentation, please let us know the exact code you are using to access the 0x1B register, and the results you are receiving

                                   

                                  As for 0x6A, could you provide the command input you are using and result returned by the system?

                                   

                                  Please take into consideration that when accessing 0x6A register, the drive will talk simplified NVMe-MI, not the full MCTP. This may require code changes.