18 Replies Latest reply on Sep 14, 2015 7:39 AM by Carlos_A

    i210 -- Flash programming

    Adi Green Belt

      Hi,


      I have an i210-IT device. For now, the device returns 0x1531 as Device ID apparently because the external FLASH is blank, so my Linux driver can't probe this device.

      I understood that I need to program the external FLASH somehow to some initial configuration, before the device will return 0x1533 and will be probed successfully via my Linux driver.


      -     Does this device includes initial predefined configuration burned on the iNVM during production time (OTP)?

      -     Why when the FLASH is blank, an initial configuration isn't automatically loaded from the iNVM?

      -     Can we also program the iNVM via some external tool? Do we need to do this? What are the available tools? How can I get them?

      -     Does the eepromARMTool is enough for burning the FLASH/iNVM? Can you please send me the eepromARMTool to my mail? What is the procedure for using this tool?

      -     Where I can find the correct configuration file to be burned to FLASH/iNVM?


      Thanks,

      Adi

        • Re: i210 -- Flash programming
          Leon Brown Belt

          Hello Adi B,

           

          Welcome to the Intel® Embedded Community.

          We're working on getting an answer to your question.  Have a great day and we'll be talking with you soon!

           

          Regards.

          Leon

          • Re: i210 -- Flash programming
            Carlos_A Brown Belt

            Hello Adi,

            Thank you for contacting Intel Embedded Community.

             

            In case that the internal iNVM is not programmed for security feature the I210 assumes all hardware defaults, including a PCI ID of 0x1531. This may also happen if the flash memory is not ready at the time that the I210 initializes, so it is important that the flash memory component be powered from the same source as the I210.

            The EEUPDATE is used to program the flash memory or iNVM in production environments. It can be found in the Intel(R) Network Connections tools package for LAN controllers and adapters for various operating systems document # 348742.   This document is classified as Intel Confidential.

             

            The Intel(R) Ethernet Controller I210 Production NVM Images document # 513655 has the production images archive contains a list of images and their features.  This document is classified as Intel Confidential.

             

            Please let us know if this information is useful to you.

            Best Regards,

            Carlos A.

              • Re: i210 -- Flash programming
                Adi Green Belt

                Hi Carlos,

                 

                Thanks for your response.

                I tried to get the EEUPDATE application but it seems that I need privileged access.

                I apply for this kind of access and I have received mail which says that I have been qualified for privileged access,

                and I need to login to EDC and establish some security questions.

                I login and didn't find any security questions.

                Bottom line, my profile indicates that my privileged access is active, but I still have problem to access the 'locked' materials (e.g. EEUPDATE) at the above links you mentioned.

                 

                Thanks,

                Adi

                  • Re: i210 -- Flash programming
                    LynnZ Brown Belt

                    Hello, Adi.  Your Privileged access was granted yesterday.  Please click on the links above to download the documents.  You may want to clear your cache, close your browser, and relaunch a fresh one if you get an error message.  If you get an error message, please reply back and include a screen shot as that will help us better determine the root cause.  As always, for registration, log in, or access issues, emailing edc.support@intel.com can also assist.  LynnZ

                      • Re: i210 -- Flash programming
                        Adi Green Belt

                        Hi,

                         

                        I got the Quartzville_Tools_381704 package, but I saw no support for ARM architecture.

                        I need to program the i210 FLASH on 32 bit ARM architecture. I need the eepromARMTool.

                        Can you send me this tool and any documentation which is related to it?

                         

                        Thanks,

                        Adi

                          • Re: i210 -- Flash programming
                            Carlos_A Brown Belt

                            Hello Adi,

                             

                            We will contact you via email to help you.

                             

                            Best Regards,
                            Carlos A.

                              • Re: i210 -- Flash programming
                                Adi Green Belt

                                Hi Carlos,

                                 

                                I used the eepromARMTool tool in order to program the NVM, but it seems that nothing is written to FLASH.

                                The mmap() returns with no error, I receive no error when accessing the memory BAR, but the first 128 KB which should map the registers area (starting from 0x20800000), are all 0xFF.

                                The EP BARs were correctly allocated, so why I can't access the 8 MB BAR (0x20800000)?


                                Does the security mechanism (pin #12 pullup/pulldown) can cause to this problematic behavior -- i.e. registers area (not FLASH), can't be accessed?

                                Do you have any suggestions what can cause this problematic behavior?

                                 

                                lspci -v

                                00:00.0 PCI bridge: Texas Instruments Device 8888 (rev 01) (prog-if 00 [Normal decode])

                                        Flags: bus master, fast devsel, latency 0

                                        Memory at 20100000 (32-bit, non-prefetchable) [size=1M]

                                        Memory at 20020000 (32-bit, non-prefetchable) [size=64K]

                                        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0

                                        I/O behind bridge: 00001000-00001fff

                                        Memory behind bridge: 20400000-20ffffff

                                        Capabilities: [40] Power Management version 3

                                        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+

                                        Capabilities: [70] Express Root Port (Slot-), MSI 00

                                        Capabilities: [100] Advanced Error Reporting

                                 

                                 

                                01:00.0 Ethernet controller: Intel Corporation Device 1531 (rev 03)

                                        Subsystem: Intel Corporation Device 0000

                                        Flags: fast devsel, IRQ 26

                                        Memory at 20800000 (32-bit, non-prefetchable) [disabled] [size=8M]

                                        I/O ports at 1000 [disabled] [size=32]

                                        Memory at 20400000 (32-bit, non-prefetchable) [disabled] [size=16K]

                                        Capabilities: [40] Power Management version 3

                                        Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+

                                        Capabilities: [70] MSI-X: Enable- Count=5 Masked-

                                        Capabilities: [a0] Express Endpoint, MSI 00

                                        Capabilities: [100] Advanced Error Reporting

                                        Capabilities: [140] Device Serial Number 00-a0-c9-ff-ff-00-00-00

                                        Capabilities: [1a0] Transaction Processing Hints

                                        Capabilities: [1c0] Latency Tolerance Reporting

                                  • Re: i210 -- Flash programming
                                    Carlos_A Brown Belt

                                    Hello Adi,

                                     

                                    Thanks for your update.

                                    Based on your previous communication, we would like to address the following questions:

                                     

                                    Could you please tell us how many implementations are experiencing this problem? Could please inform us how many of this project has been manufactured by you?

                                    Could you please try to reproduce this issue with other flash memories? Please keep in mind that the suggested ones are listed in section 11.8.1, on pages 785 and 786 of the Intel(R) Ethernet Controller I210 Datasheet. It would be better if you try with devices of different manufacturers.

                                     

                                    Please give us all the requested information to find the root cause of this problem.

                                    Thanks again for your help.

                                     

                                    Best Regards,

                                    Carlos A.

                                      • Re: i210 -- Flash programming
                                        Adi Green Belt

                                        Hi Carlos,

                                         

                                        I don't think that there is a problem with the FLASH.

                                        When the i210 device is powered up I can see valid  FLASH's clock and data signals -- i.e. the i210 tries to fetch some data from the FLASH, sees that FLASH is not programmed and stops. Clock and data signals looks normal and as they supposed to be.

                                         

                                        The problem is that when I execute the eepromARMTool and use the command to write the image on the FLASH no clock and data signals are generated.

                                        I don't reach to a state that I even can do a write operation vs. the FLASH because the i210 registers area from some reason shows invalid data -- i.e. 0xFF content and therefore I can't perform any operation via this registers including accessing the external FLASH device.


                                        I assume that the reason for this problematic behavior is that the first 128 KB of the EP's BAR which is supposed to represent the i210 registers, isn't mapped to the device registers area from some reason or another option - the device blocks access to this area. Therefore I can't access the i210 registers to read/write data on the FLASH.


                                        I think that before checking another FLASH device, I need first to understand why the i210 registers contents shows only 0xFF instead of valid data (although it seems that the whole EP's BAR is allocated and mapped correctly).

                                         

                                        -     Does the i210 security mechanism (pin #12 pullup/pulldown) can cause to this problematic behavior -- i.e. registers area (not FLASH), can't be accessed?

                                        -     Do you have any additional suggestions what can cause this problematic behavior?

                                         

                                        Thanks,

                                        Adi

                                          • Re: i210 -- Flash programming
                                            Carlos_A Brown Belt

                                            Hello Adi,

                                             

                                            Thanks for your update.

                                             

                                            Based on your previous communication, it is important to let you know that the eepromARMtool is unsuggested to program blank flash memories since it has known issues on these cases.

                                             

                                            Due to this fact, we suggest you to use an SPI programmer for this propose.

                                             

                                            Please let us know if this information is useful to you.

                                             

                                            Best Regards,

                                            Carlos A.

                                              • Re: i210 -- Flash programming
                                                Adi Green Belt

                                                Hi Carlos,

                                                 

                                                -     Does the only available option here is to program the external FLASH via SPI programmer?

                                                -     You mentioned that eepromARMTool is unsuggested on cases that FLASH is blank, why is that?

                                                -     Does the fact that the FLASH is blank can cause the i210 memory BAR to be disabled for access by the device?

                                                -     Does the i210 security mechanism configuration can cause to the fact that the memory BAR is disabled by the i210 device?

                                                 

                                                Thanks,

                                                Adi

                                            • Re: i210 -- Flash programming
                                              Carlos_A Brown Belt

                                              Hello Adi,

                                               

                                              Thanks for your update.

                                               

                                              We would suggest that you should try to access this device from our QV based tools if it is at all possible (ie. it is a NIC) and check how it looks like from there.

                                              Have you enabled memory access on the device in PCI command register? The printout below displays:

                                               

                                              01:00.0 Ethernet controller: Intel Corporation Device 1531 (rev 03)

                                                                       Subsystem: Intel Corporation Device 0000

                                                                        Flags: fast devsel, IRQ 26

                                                                        Memory at 20800000 (32-bit, non-prefetchable) [disabled] [size=8M]

                                                                        I/O ports at 1000 [disabled] [size=32]

                                                                        Memory at 20400000 (32-bit, non-prefetchable) [disabled] [size=16K]

                                               

                                              Do you align reads/writes in register space correctly (to DWORD)? Have you tried to enable IO BAR and tried this to access registers (or alternatively – have they tried through CSR)?

                                               

                                              One other thing to try is to unload the igb driver before running the tool. That might solve the mmap issue.

                                               

                                              Please let us know if this information is useful to you.

                                               

                                              Best Regards,
                                              Carlos A.

                                  • Re: i210 -- Flash programming
                                    CPC1311 Community Member

                                    Hi Carlos,

                                     

                                    I need to program a couple of words in iNVM of i210-IS to use this chip in SerDes flashless mode.

                                    But the EEUPDATE utility requires input file with unknown to me format.

                                    Could you please send me example of this file or the document describing its format.

                                     

                                    Best Regards,

                                    Konstantin

                                      • Re: i210 -- Flash programming
                                        Carlos_A Brown Belt

                                        Hello CPC1311,

                                         

                                        Thanks for contacting Intel Embedded Community.

                                         

                                        You should use the appropriate text file when programming the iNVM on an I210 device. This file can be found in the Intel(R) Ethernet Controller I210 Production NVM Images document # 513655, as is stated on the answer to the question 2.14, on page 9 of the Intel(R) Ethernet Controller I210/I211Frequently Asked Questions(FAQs). The document # 513655 is classified as Intel Confidential that would be accessible to you if update your Embedded Design Center (EDC) account to Privileged type. To request an upgrade from your Basic EDC account to a Privileged account, go to http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html and click on “Manage Your Intel Profile” found in the “Manage Your Account” section of the page. From there you can request an upgrade. After you submit the application, please let us know and we will expedite the review of your application. The application can be found at:

                                         

                                        https://www-ssl.intel.com/content/www/us/en/forms/intelligent-systems/registration-po.html

                                         

                                        We suggest you use a business email address to evade any inconvenience. Please avoid the free email provider’s address (such the provided by Hotmail, Gmail, yahoo, or others).

                                         

                                        Please let us know if this information is useful to you.


                                        Best Regards,
                                        Carlos A.

                                         

                                          • Re: i210 -- Flash programming
                                            CPC1311 Community Member

                                            Hi Carlos,

                                             

                                            Thanks for your response.

                                            I know about the production images and the regular procedure.

                                            But the settings required are application specific.

                                            That's why I just wanna know how to program a single word in iNVM.

                                            And I don't want to write my own utility for this purpose.

                                            There is a complete register set description in the i210 datasheet,

                                            so I know what values to what registers have to be written.

                                            EEPROM image file format is described in the eeupdate readme file

                                            as well as MAC address file format. Why not to describe format

                                            of the text file needed to program iNVM?

                                             

                                            Best Regards,

                                            Konstantin

                                              • Re: i210 -- Flash programming
                                                Carlos_A Brown Belt

                                                Hello CPC1311,

                                                 

                                                Thanks for your reply.

                                                 

                                                In order to secure the iNVM memory (such as avoiding any further write to it after manufacturing), a word auto-load structure must be present in iNVM for setting the iNVM bit to 1b in word address 0x0A. You can confirm this information in the note of the section 3.4.2.1.1, on page 78 of the Intel(R) Ethernet Controller I210 Datasheet. Also at this section, you can find the list of editable settings in the iNVM.

                                                 

                                                The complete register set is unalterable in the iNVM environment. It requires an external FLASH and full NVM to edit anything beyond the list in section 3.4.2.1.1 as well.

                                                 

                                                In case that you are an end user, the iNVM is locked by the manufacturer.

                                                 

                                                The overall structure is the same for iNVM as it is for standard NVM images.

                                                 

                                                Thanks again for your cooperation to solve this inconvenience.

                                                 

                                                Best Regards,

                                                Carlos A.

                                                  • Re: i210 -- Flash programming
                                                    CPC1311 Community Member

                                                    Hi Carlos,

                                                     

                                                    Thanks for your response.

                                                    I am not an end user, I'm an embedded systems developer.

                                                    The chips that we bought came with an empty iNVM (except the two last words, according to the datasheet).

                                                    That's enough for my application to use capabilities of iNVM, so an external FLASH is not required.

                                                    I'm using the list in section 3.4.2.1.1 all the time. The structure of iNVM image is clear to me.

                                                    The only question is the format of the text file needed to program iNVM with eeupdate utility.

                                                    Could you please send me some kind of template or an example of this file with nulled values?

                                                     

                                                    Best Regards,

                                                    Konstantin

                                                      • Re: i210 -- Flash programming
                                                        Carlos_A Brown Belt

                                                        Hello CPC1311,

                                                         

                                                        Thanks for your reply.

                                                         

                                                        The I210 image package (mentioned on our communication of the past 09/07/2015) should contain .txt files in the INVM/I211 folder. These files have examples of the format. In case that it is inaccessible to you please update your EDC account to privileged as we suggest you.

                                                         

                                                        Please let us know if this information is useful to you.

                                                         

                                                        Best Regards,
                                                        Carlos A.