5 Replies Latest reply on Sep 22, 2014 8:09 AM by AdolfoS

    i210: absolutely necessary words in iNVM

    Community Member

      Hello all,

       

      I use a i210 in a flash-less configuration and wrote (with host interface)  in the iNVM:

      * MAC

      * DEVICE-ID

      * CONTROL-REG1 (without set Bit iNVM)

      In the real enviroment (linux) I can see by lspci this MAC-Address (as seriell PCI-ID) and the DEVICE-ID.

      But the MAC-Address is not the content of register RAH(0) and RAL(0), so the driver-software (igb) always read a 0-0-0-0-0-0

      and no interface (ethx) is setup.

      What are the missing, absolutely necessary, words in iNVM ?

       

      Joerg

        • Re: i210: absolutely necessary words in iNVM
          AdolfoS Brown Belt

          Hello Joerg

           

          Which version of the igb driver are you using? Some older versions had problems with flash-less mode of the i210.

           

          Have you tried disabling the security option SECURITY_EN, before writing to the iNVM?

           

          Has this iNVM been overwritten before? Do you have enough memory left to write new commands on it?

           

          You might want to check section 3.4.3.1 iNVM Programming via Flow Registers, of the i210 datasheet https://www-ssl.intel.com/content/www/us/en/ethernet-controllers/i210-ethernet-controller-datasheet.html

           

          Also I think reading this thread might be helpful to you i210 Ethernet Adapter PROM Programming

           

          Regards,

          Adolfo

            • Re: i210: absolutely necessary words in iNVM
              Community Member

              Hello Adalfo,

               

              thanks for your fast reply.

               

              1) I'm using igb 5.2.5 (Debug)

               

              2) No, because I have'nt set the iNVM Bit in Control-Reg1 so access (read/write) to iNVM is possible

               

              3) At start of the project the iNVM was blank, now there are 8 entries, enough room for other values.

               

              4) Yes, I read all sections. That is the way I wrote all values to iNVM. The problem is not programming values to iNVM. I did and I'm sure, all written values are stored permanetly. At the next

              power-up cycle I can read all values. The firmware also can read all values, because it has been copied to shadow-RAM and to PCI-configuration-space.

              But there is no copy of MAC-address in RAH(0) and RAL(0). That are the registers where is driver looking for MAC-address.

               

              5) yes, I read this thread. Unfortunately, our request for privileged account (IBL) was denied by Intel (don't know why), so we can not use all the Tools (EEUPDATE, LAN-CONF)

               

               

              best regards

              Joerg

                • Re: i210: absolutely necessary words in iNVM
                  AdolfoS Brown Belt

                  Hello Joerg

                   

                  What DeviceID have you set in the 0x0D register? Looking at the source code of the igb driver, this value should be 0x157B if you are using i210 in Copper Flash-less or 0x157C if you are using SerDes Flash-less mode.

                   

                  I would also pay attention to the configuration of the following registers:

                  Initialization control words (0x0A, 0x0F and 0x24), Functions  Control (0x21), PCIe Controls  0x1B,0x28 (FLBAR_Size should be 000), and 0x5ba0 (make sure to set GPAR_EN)

                   

                  Regards,

                  Adolfo

                    • Re: i210: absolutely necessary words in iNVM
                      Community Member

                      Hello Adolfo,

                       

                      thanks for your useful support.

                       

                      Now the problem is solved.

                       

                      I step through the driver and saw the clearing of MAC-registers by software after the reset function.

                      I changed the RESET-field in the auto-load word in the iNVM of the MAC-address-entries from <LOAD on PCIe and POWER-UP reset> (10b) to

                      <LOAD on Software, PCIe and POWER-UP reset> (11b). Importend is the same adjustment for all 3 address-entries.

                      Now the i210 keep the MAC-address (in other words, after a software reset it is load the MAC-address from the iNVM again) and the driver can establish a interface device.

                       

                      Thanks again to be so patient with me.

                       

                      best regards,

                       

                      Joerg