73 Replies Latest reply on Aug 18, 2016 6:52 AM by Carlos_A

    eepromARMtool

    pattiwack Green Belt

      Where do I find the eepromARMtool code?  I am working on an ARM based design that uses an i210.  I would like to program the NVM via this tool so that I can get the driver to load.

       

      Regards,

      Matt

        • Re: eepromARMtool
          AdolfoS Brown Belt

          Hello pattiwack

           

          I sent you the eepromARMTool to your e-mail.

           

          You might want to check the following resources:

          I210 Datasheet

          I210 FAQ

          I210 detection issues under embedded linux  -- (i211)

           

          Hope this is useful to you.

           

          Best regards,

          Adolfo

            • Re: eepromARMtool
              pattiwack Green Belt

              Thanks Adolfo,

               

              We tried compiling and running the program but its failing with a bus error.  See below:

              [root@alarm eepromARMTool_0.6.7]# ./eepromARMtool

              Intel(R) Eeprom ARM Tool ARM OTP Programming Tool

              Provided under Unhandled fault: external abort on non-linefetch (0x1018) at 0x36e5f010

              Slave unsupported request

              the terms of a CNDA.  Do Not Distribute.

              Copyright(C) 2013 by Intel(R) Corporation

              NIC     BUS     DEV     FUN     Silicon Memory Type Present

              ===     ===     ===     ===     =====   ======================

              Bus error (core dumped)

              [root@alarm eepromARMTool_0.6.7]#

               

              Here's the lspci display of the i210's along with the PCIe switch they are attached to and the root complex (Xilinx Zynq SoC).

              [root@alarm eepromARMTool_0.6.7]# lspci

              00:00.0 PCI bridge: Xilinx Corporation Device 7012

              01:00.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)

              02:02.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)

              02:03.0 PCI bridge: PLX Technology, Inc. PEX 8605 PCI Express 4-port Gen2 Switch (rev ab)

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

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

              [root@alarm eepromARMTool_0.6.7]#

               

              Any ideas why the ARMtool is failing in this way?

               

              -Matt

                • Re: eepromARMtool
                  AdolfoS Brown Belt

                  Hello pattiwack

                   

                  Sorry for the delay

                   

                  Our Intel engineers suggest two possibilities:

                   

                  1) A conflict because mixing endians, as suggested  in the user's guide from the eepromARMtool:

                  Another thing to consider is that ARM systems can be Bi-Endian. Therefore, you should verify the Endianness being used, especially when programming values at the bit level.This document does not cover verifying Endianness. However, you should be aware that eepromARMtool reflects a Little Endian implementation to match the hardware datasheets.

                   

                  2) There is a possibility that for certain hardware the Operating System locks the page after it was allocated.

                   

                  Check the following thread that could be useful to you: I210 detection issues under embedded linux  -- (i211)

                   

                  Best Regards,

                  Adolfo

                    • Re: eepromARMtool
                      pattiwack Green Belt

                      So we preprogrammed one of the flash parts and then put it back on our board and then eepromARMtool would work.  Shouldn't the tool be able to identify and program a blank flash attached to a i210?

                       

                      Regardless, we still can't bring up the ethernet interface.  We see the following error when we do:

                      [root@alarm ~]# ifconfig enp3s0 up

                      igb 0000:03:00.0: Error -22 getting interrupt

                      SIOCSIFFLAGS: Invalid argument


                      When we look at dmesg when linux is booting and loading the ethernet driver we see the following:

                      [    0.842985] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k

                      [    0.847423] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.

                      [    0.852178] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.13-k

                      [    0.857830] igb: Copyright (c) 2007-2014 Intel Corporation.

                      [    0.862168] igb 0000:03:00.0: enabling device (0140 -> 0142)

                      [    0.866457] igb 0000:03:00.0: enabling bus mastering

                      [    0.899828] igb 0000:03:00.0: added PHC on eth0

                      [    0.902993] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                      [    0.908527] igb 0000:03:00.0: eth0: (PCIe:unknown:unknown) 00:a0:c9:00:00:00

                      [    0.914356] igb 0000:03:00.0: eth0: PBA No: 000300-000

                      [    0.918110] igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                      [    0.924519] igb 0000:04:00.0: enabling device (0140 -> 0142)

                      [    0.928804] igb 0000:04:00.0: enabling bus mastering

                      [    0.961952] igb 0000:04:00.0: added PHC on eth1

                      [    0.965143] igb 0000:04:00.0: Intel(R) Gigabit Ethernet Network Connection

                      [    0.970711] igb 0000:04:00.0: eth1: (PCIe:unknown:unknown) 00:a0:c9:00:aa:aa

                      [    0.976460] igb 0000:04:00.0: eth1: PBA No: 000300-000

                      [    0.980225] igb 0000:04:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                      .............

                      [  301.965208] igb 0000:03:00.0: Error -22 getting interrupt

                      [  309.444858] igb 0000:04:00.0: Error -22 getting interrupt

                      [  327.846029] igb 0000:04:00.0: Error -22 getting interrupt

                      [  328.093721] igb 0000:04:00.0: Error -22 getting interrupt


                      Any idea what might cause the driver to complain with the interrupt error message?


                      -Matt

                        • Re: eepromARMtool
                          AdolfoS Brown Belt

                          Hello Matt

                           

                          We are still investigating this issue, and will reply you back as soon as we have more meaningful informaton.

                          Thanks for your patience.

                           

                          Best Regards,

                          Adolfo

                          • Re: eepromARMtool
                            AdolfoS Brown Belt

                            Hello Matt

                             

                            Sorry for the delay

                             

                            Could you please provide answers to these questions:

                             

                            Did you program the eeprom separately before using the eepromARMtool?

                             

                            Did you get the same errors before using the eepromARMtool?

                             

                            Best Regards,

                            Adolfo

                              • Re: eepromARMtool
                                pattiwack Green Belt

                                So when the flash parts were blank we could see the parts via lspci but their device id was 1531 (which I believe is correct for an unprogrammed i210).  However the eepromARMtool would not run.  We took the flash parts off the board and programmed them with a 3rd party programmed using one of intel's example binary images and then we saw the device id change to an i210 and the eepromARMtool then would work.  We would prefer to use the eepromARMtool to program blank parts so we wouldn't have to remove them (or preprogram them).

                                 

                                Regardless of this, with the flash parts now programmed we can not bring up the ethernet interface.  The driver complains with "Error -22 getting interrupt".  As result we are currently blocked with getting this working.  Any ideas with might be causing this or how to further debug this problem?

                                 

                                Regards,

                                Matt

                                • Re: eepromARMtool
                                  pattiwack Green Belt

                                  Adolfo,

                                   

                                  Here is some more info on our problem.

                                   

                                  Once the EEPROM is programmed and re-soldered to the board the igb driver loads and we are able to read and write to the EEPROM with eepromARMtool tool.  But the driver doesn’t configure correctly. The PCIe root complex supports MSI interrupts (not MSI-X), but the driver loaded using legacy interrupts:

                                   

                                  [    1.159680] pci 0000:00:00.0: enabling device (0144 -> 0147)

                                  [    1.164007] pci 0000:01:00.0: enabling device (0140 -> 0143)

                                  [    1.168325] pci 0000:02:02.0: enabling device (0140 -> 0143)

                                  [    1.172663] igb 0000:03:00.0: enabling device (0140 -> 0142)

                                  [    1.210435] igb 0000:03:00.0: added PHC on eth0

                                  [    1.213606] igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                  [    1.219137] igb 0000:03:00.0: eth0: (PCIe:unknown:unknown) 00:a0:c9:00:00:00

                                  [    1.224967] igb 0000:03:00.0: eth0: PBA No: 000300-000

                                  [    1.228719] igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                  [    1.235130] pci 0000:02:03.0: enabling device (0140 -> 0143)

                                  [    1.239423] igb 0000:04:00.0: enabling device (0140 -> 0142)

                                  [    1.277118] igb 0000:04:00.0: added PHC on eth1

                                  [    1.280260] igb 0000:04:00.0: Intel(R) Gigabit Ethernet Network Connection

                                  [    1.285838] igb 0000:04:00.0: eth1: (PCIe:unknown:unknown) 00:a0:c9:00:aa:aa

                                  [    1.291626] igb 0000:04:00.0: eth1: PBA No: 000300-000

                                  [    1.295394] igb 0000:04:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                   

                                  Then when we try to connect the Ethernet port we get an error 22:

                                   

                                  [root@alarm ~]# ifconfig enp4s0 up

                                  igb 0000:04:00.0: Error -22 getting interrupt

                                  SIOCSIFFLAGS: Invalid argument

                                   

                                  Using modprobe with MSI option

                                  [root@alarm ~]# modprobe igb IntMode=1

                                  igb: unknown parameter 'IntMode' ignored

                                  igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.13-k

                                  igb: Copyright (c) 2007-2014 Intel Corporation.

                                  igb 0000:03:00.0: added PHC on eth3

                                  igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                  igb 0000:03:00.0 enp3s0: renamed from eth3

                                  igb 0000:03:00.0: enp3s0: (PCIe:unknown:unknown) 00:a0:c9:00:00:00

                                  igb 0000:03:00.0: enp3s0: PBA No: 000300-000

                                  igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                   

                                  Didn’t load interrupt settings options (igb: unknown parameter 'IntMode' ignored). This seems odd, given the options is supported in the drivers README file.

                                   

                                  The board configuration is: Xilinx Zynq-7000 using the AXI-PCIe root complex (Gen 1 speed but Gen 2 support), connect to a PLX  PEX 8605 switch (upstream port) to two i210 MAC (downstream ports). We are running Linux 3.17.0-xilinx-00114-gda2d296  build with ArchLinux as RootFS.


                                  Do you have updated documentation on command line options for loading the igb driver using modprobe?  Does your team have other suggestions for experiments we could try by loading the driver using modprobe?


                                  -Matt

                                    • Re: eepromARMtool
                                      pattiwack Green Belt

                                      One more piece of info.  This morning we reproduced the problem on a development platform that did not have the PLX switch present.  Just the i210 directly attached to the zynq part acting as the root complex.  Same result.

                                        • Re: eepromARMtool
                                          AdolfoS Brown Belt

                                          Hello pattiwack

                                           

                                          I will provide your information to our engineers I hope they will be able to give you more recommendations for your issue. Thanks for your patience.

                                           

                                          Best Regards,

                                          Adolfo

                                            • Re: eepromARMtool
                                              pattiwack Green Belt

                                              Here's the latest from the engineer working on debugging the driver...

                                               

                                              "I’m can build the IGB driver locally on the picoZed now (Linux alarm 3.17.0-xilinx #1 SMP PREEMPT Mon Feb 16 20:34:22 PST 2015 armv7l GNU/Linux). Below is the driver and loading information from several visions.  All are showing the same error -22 when connecting the network interface.  With debug level set to 16, both the 5.2.9.4 and 5.2.15 drivers are showing: Failed to initialize MSI interrupts.  Falling back to legacy interrupts.

                                               

                                              Please pass along to intel

                                               

                                              Van"

                                               

                                              Printout from the 5.2.9.4 driver:

                                               

                                              [root@alarm src]# modinfo igb

                                              filename: /lib/modules/3.17.0-xilinx/kernel/drivers/net/igb/igb.ko

                                              version:        5.2.9.4

                                              license:        GPL

                                              description:    Intel(R) Gigabit Ethernet Network Driver

                                              author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>

                                              srcversion:     E377200391EBF74638FEDA2

                                              alias: pci:v00008086d000010D6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E8sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001526sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Dsv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001518sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010C9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000440sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000438sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001516sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001511sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001510sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001527sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Fsv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Esv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001524sv*sd*bc*sc*i*

                                              alias:          pci:v00008086d00001523sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001522sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001521sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001539sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Bsv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001538sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001537sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001536sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001533sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F45sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F41sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F40sv*sd*bc*sc*i*

                                              depends:

                                              vermagic:       3.17.0-xilinx SMP preempt mod_unload modversions ARMv7 p2v8

                                              parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (max 100000), default 3=adaptive (array of int)

                                              parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)

                                              parm: Node:set the starting node to allocate memory on, default -1 (array of int)

                                              parm: LLIPort:Low Latency Interrupt TCP Port (0-65535), default 0=off (array of int)

                                              parm: LLIPush:Low Latency Interrupt on TCP Push flag (0,1), default 0=off (array of int)

                                              parm: LLISize:Low Latency Interrupt on Packet Size (0-1500), default 0=off (array of int)

                                              parm: RSS:Number of Receive-Side Scaling Descriptor Queues (0-8), default 1, 0=number of cpus (array of int)

                                              parm: VMDQ:Number of Virtual Machine Device Queues: 0-1 = disable, 2-8 enable, default 0 (array of int)

                                              parm: max_vfs:Number of Virtual Functions: 0 = disable, 1-7 enable, default 0 (array of int)

                                              parm: MDD:Malicious Driver Detection (0/1), default 1 = enabled. Only available when max_vfs is greater than 0 (array of int)

                                              parm: QueuePairs:Enable Tx/Rx queue pairs for interrupt handling (0,1), default 1=on (array of int)

                                              parm: EEE:Enable/disable on parts that support the feature (array of int)

                                              parm: DMAC:Disable or set latency for DMA Coalescing ((0=off, 1000-10000(msec), 250, 500 (usec)) (array of int)

                                              parm: LRO:Large Receive Offload (0,1), default 0=off (array of int)

                                              parm: debug:Debug level (0=none, ..., 16=all) (int)

                                               

                                              [root@alarm src]# modprob igb debug=16

                                              -bash: modprob: command not found

                                              [root@alarm src]# modprobe igb debug=16

                                              Intel(R) Gigabit Ethernet Network Driver - version 5.2.9.4

                                              Copyright (c) 2007-2014 Intel Corporation.

                                              igb 0000:03:00.0: Failed to initialize MSI-X interrupts. Falling back to MSI interrupts.

                                              igb 0000:03:00.0: Failed to initialize MSI interrupts. Falling back to legacy interrupts.

                                              igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                              igb 0000:03:00.0 enp3s0: renamed from eth2

                                              igb 0000:03:00.0: enp3s0: (PCIe:unknown:unknown)

                                              igb 0000:03:00.0 enp3s0: MAC: 00:a0:c9:00:00:00

                                              igb 0000:03:00.0: enp3s0: PBA No: 000300-000

                                              igb 0000:03:00.0: LRO is disabled

                                              igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                               

                                              [root@alarm src]# ifconfig -a

                                              enp3s0: flags=4098<BROADCAST,MULTICAST>  mtu 1500

                                                      ether 00:a0:c9:00:00:00  txqueuelen 1000  (Ethernet)

                                                      RX packets 0 bytes 0 (0.0 B)

                                                      RX errors 0 dropped 0  overruns 0  frame 0

                                                      TX packets 0 bytes 0 (0.0 B)

                                                      TX errors 0 dropped 0 overruns 0  carrier 0  collisions 0

                                               

                                              [root@alarm src]# ifconfig enp3s0 10.160.1.10/24 up

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                               

                                              Printout from the 5.2.13-k driver:

                                               

                                              [root@alarm linux-xlnx]# modinfo igb

                                              filename: /lib/modules/3.17.0-xilinx/kernel/drivers/net/ethernet/intel/igb/igb.ko

                                              version:        5.2.13-k

                                              license:        GPL

                                              description:    Intel(R) Gigabit Ethernet Network Driver

                                              author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>

                                              srcversion:     C3003450663A2AF158B91CD

                                              alias: pci:v00008086d000010D6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E8sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001526sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Dsv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001518sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010C9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000440sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000438sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001516sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001511sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001510sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001527sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Fsv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Esv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001524sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001523sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001522sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001521sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Bsv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001538sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001537sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001536sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001533sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001539sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F45sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F41sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F40sv*sd*bc*sc*i*

                                              depends:

                                              intree:         Y

                                              vermagic:       3.17.0-xilinx SMP preempt mod_unload modversions ARMv7 p2v8

                                              parm: debug:Debug level (0=none,...,16=all) (int)

                                              [root@alarm linux-xlnx]# modprobe igb debug=16

                                              igb: Intel(R) Gigabit Ethernet Network Driver - version 5.2.13-k

                                              igb: Copyright (c) 2007-2014 Intel Corporation.

                                              igb 0000:03:00.0: added PHC on eth2

                                              igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                              igb 0000:03:00.0 enp3s0: renamed from eth2

                                              igb 0000:03:00.0: enp3s0: (PCIe:unknown:unknown) 00:a0:c9:00:00:00

                                              igb 0000:03:00.0: enp3s0: PBA No: 000300-000

                                              igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                               

                                              [root@alarm linux-xlnx]# ifconfig -a

                                              enp3s0: flags=4098<BROADCAST,MULTICAST>  mtu 1500

                                                      ether 00:a0:c9:00:00:00  txqueuelen 1000  (Ethernet)

                                                      RX packets 0 bytes 0 (0.0 B)

                                                      RX errors 0 dropped 0  overruns 0  frame 0

                                                      TX packets 0 bytes 0 (0.0 B)

                                                      TX errors 0 dropped 0 overruns 0  carrier 0  collisions 0

                                                      device memory 0x60000000-6007ffff

                                               

                                              [root@alarm linux-xlnx]# ifconfig enp3s0 10.160.1.10/24 up

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                               

                                              Printout from the 5.2.15 driver:

                                               

                                              [root@alarm src]# modinfo igb

                                              filename:       /lib/modules/3.17.0-xilinx/kernel/drivers/net/igb/igb.ko

                                              version:        5.2.15

                                              license:        GPL

                                              description:    Intel(R) Gigabit Ethernet Network Driver

                                              author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>

                                              srcversion:     ED3CC1731051E90002E99E7

                                              alias: pci:v00008086d000010D6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010A7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E8sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001526sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Dsv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E7sv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010E6sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001518sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d000010C9sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000440sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000043Asv*sd*bc*sc*i*

                                              alias: pci:v00008086d00000438sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001516sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001511sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001510sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001527sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Fsv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000150Esv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001524sv*sd*bc*sc*i*

                                              alias:          pci:v00008086d00001523sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001522sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001521sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001539sv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Csv*sd*bc*sc*i*

                                              alias: pci:v00008086d0000157Bsv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001538sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001537sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001536sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001533sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F45sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F41sv*sd*bc*sc*i*

                                              alias: pci:v00008086d00001F40sv*sd*bc*sc*i*

                                              depends:

                                              vermagic:       3.17.0-xilinx SMP preempt mod_unload modversions ARMv7 p2v8

                                              parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (max 100000), default 3=adaptive (array of int)

                                              parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)

                                              parm: Node:set the starting node to allocate memory on, default -1 (array of int)

                                              parm: LLIPort:Low Latency Interrupt TCP Port (0-65535), default 0=off (array of int)

                                              parm: LLIPush:Low Latency Interrupt on TCP Push flag (0,1), default 0=off (array of int)

                                              parm: LLISize:Low Latency Interrupt on Packet Size (0-1500), default 0=off (array of int)

                                              parm: RSS:Number of Receive-Side Scaling Descriptor Queues (0-8), default 1, 0=number of cpus (array of int)

                                              parm: VMDQ:Number of Virtual Machine Device Queues: 0-1 = disable, 2-8 enable, default 0 (array of int)

                                              parm: max_vfs:Number of Virtual Functions: 0 = disable, 1-7 enable, default 0 (array of int)

                                              parm: MDD:Malicious Driver Detection (0/1), default 1 = enabled. Only available when max_vfs is greater than 0 (array of int)

                                              parm: QueuePairs:Enable Tx/Rx queue pairs for interrupt handling (0,1), default 1=on (array of int)

                                              parm: EEE:Enable/disable on parts that support the feature (array of int)

                                              parm: DMAC:Disable or set latency for DMA Coalescing ((0=off, 1000-10000(msec), 250, 500 (usec)) (array of int)

                                              parm: LRO:Large Receive Offload (0,1), default 0=off (array of int)

                                              parm: debug:Debug level (0=none, ..., 16=all) (int)

                                               

                                              [root@alarm src]# modprobe igb debug=16

                                              Intel(R) Gigabit Ethernet Network Driver - version 5.2.15

                                              Copyright (c) 2007-2014 Intel Corporation.

                                              igb 0000:03:00.0: Failed to initialize MSI-X interrupts. Falling back to MSI interrupts.

                                              igb 0000:03:00.0: Failed to initialize MSI interrupts. Falling back to legacy interrupts.

                                              igb 0000:03:00.0 enp3s0: renamed from eth2

                                              igb 0000:03:00.0: added PHC on enp3s0

                                              igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                              igb 0000:03:00.0: enp3s0: (PCIe:unknown:unknown)

                                              [root@alarm src]# igb 0000:03:00.0 enp3s0: MAC: 00:a0:c9:00:00:00

                                              igb 0000:03:00.0: enp3s0: PBA No: 000300-000

                                              igb 0000:03:00.0: LRO is disabled

                                              igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                               

                                              [root@alarm src]# ifconfig -a

                                              enp3s0: flags=4098<BROADCAST,MULTICAST>  mtu 1500

                                                      ether 00:a0:c9:00:00:00  txqueuelen 1000  (Ethernet)

                                                      RX packets 0 bytes 0 (0.0 B)

                                                      RX errors 0 dropped 0  overruns 0  frame 0

                                                      TX packets 0 bytes 0 (0.0 B)

                                                      TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

                                               

                                              [root@alarm src]# ifconfig enp3s0 10.160.2.10/24 up

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                              igb 0000:03:00.0: Error -22 getting interrupt

                                              SIOCSIFFLAGS: Invalid argument

                                               

                                              Trying to force MSI mode:

                                               

                                              [root@alarm src]# modprobe igb debug=16 IntMode=1

                                              Intel(R) Gigabit Ethernet Network Driver - version 5.2.15

                                              Copyright (c) 2007-2014 Intel Corporation.

                                              igb: 0000:03:00.0: igb_validate_option: Interrupt Mode set to 1

                                              igb: 0000:03:00.0: igb_check_options: RSS is not supported when in MSI/Legacy Interrupt mode, using default of 1

                                              igb 0000:03:00.0: Failed to initialize MSI interrupts. Falling back to legacy interrupts.

                                              igb 0000:03:00.0: added PHC on eth2

                                              igb 0000:03:00.0: Intel(R) Gigabit Ethernet Network Connection

                                              igb 0000:03:00.0 enp3s0: renamed from eth2

                                              igb 0000:03:00.0: enp3s0: (PCIe:unknown:unknown)

                                              igb 0000:03:00.0 enp3s0: MAC: 00:a0:c9:00:00:00

                                              igb 0000:03:00.0: enp3s0: PBA No: 000300-000

                                              igb 0000:03:00.0: LRO is disabled

                                              igb 0000:03:00.0: Using legacy interrupts. 1 rx queue(s), 1 tx queue(s)

                                • Re: eepromARMtool
                                  Seamus Community Member

                                  Hi Aldolfo,

                                   

                                  We are also looking to program the I210 on an ARM platform.  We are looking to program the INVM.  Do you have a tool for that?

                                   

                                  Thanks

                                  • Re: eepromARMtool
                                    Pawel Green Belt

                                    Hi Adolfo,

                                     

                                    I'm look for the same tool (eepromARMtool) i need to program my new hardware with i210 into SerDes Mode could you email the tool also.

                                     

                                    Thanks,
                                    Pawel

                                    • Re: eepromARMtool
                                      W.Schram Community Member

                                      Hi Adolfo,

                                       

                                      I'm aols looking to get the eepromARMtool, could you send me a copy?

                                       

                                      Thanks in advance,

                                      Wolfgang

                                      • Re: eepromARMtool
                                        StefanoTubaro Community Member

                                        Hello Adolfo,

                                         

                                        We are also looking to program the EEPROM of the I210 and 82574L chips on an i.MX6 ARM platform.

                                        Can you please send me the source code of your tool?

                                         

                                        Thank you and Best Regards

                                         

                                        Stefano

                                        • Re: eepromARMtool
                                          Alberto Community Member

                                          Hi,

                                           

                                          we need to program I210 flash from a  ARM procesor, could you send to me the eepromARMtool and HEX to put in flash?

                                           

                                          Best Regards,

                                          Alberto

                                          • Re: eepromARMtool
                                            Peter_Hall Community Member

                                            Hello,  We are working with the I210 with an external eeprom and would like to get a copy of the eepromARMtool to get started with getting the chip up and running.  Can you please send me a copy.

                                            • Re: eepromARMtool
                                              AlexandrFadeev Community Member

                                              Hello AdolfoS

                                               

                                              Could you also send ARM tool to me?

                                              • Re: eepromARMtool
                                                Olaf Community Member

                                                Hi,

                                                 

                                                we would also need to have the eepromarmtool. Could you please provide a download link for us?

                                                 

                                                Thanks,

                                                 

                                                Olaf

                                                • Re: eepromARMtool
                                                  helun Community Member

                                                  could you offer eepromARMtool for me, thanks

                                                  helunc@126.com

                                                • Re: eepromARMtool
                                                  fghj Green Belt

                                                  Hi there

                                                   

                                                  In order to program an I210 flash from a ARM processor, we too require the eepromARMtool. Could someone provide this piece of software?

                                                   

                                                  Best Regards

                                                  Valentin

                                                    • Re: eepromARMtool
                                                      gabriel.thomas Brown Belt

                                                      Hello Valentin.

                                                       

                                                      Welcome to Intel® Embedded Community.

                                                       

                                                      I sent you the eepromARMTool to your e-mail.

                                                      If you have any other question or request please let us know.

                                                      Please confirm if you have received this file.

                                                      Thanks

                                                       

                                                       

                                                      Best Regards.

                                                       

                                                      Gabriel Thomas.

                                                        • Re: eepromARMtool
                                                          fghj Green Belt

                                                          Hi

                                                           

                                                          Thank you for your quick reply.

                                                          Unfortunately we are not yet able to write a hex image into the flash memory attached to our I210.

                                                          We are able to see our devices (with lspci as well as with the eepromARMtool):

                                                           

                                                          $ sudo ./eepromARMtool

                                                          Intel(R) Eeprom ARM Tool ARM OTP Programming Tool

                                                          Provided under the terms of a CNDA.  Do Not Distribute.

                                                          Copyright(C) 2013 by Intel(R) Corporation

                                                          NIC     BUS     DEV     FUN     Silicon Memory Type Present

                                                          ===     ===     ===     ===     =====   ======================

                                                          1      3        0       0      I210         INVM+FLASH

                                                          2      4        0       0      I210         INVM+FLASH

                                                           

                                                          When trying to write a hex image, we get the following output, but no positive confirmation of the process:

                                                           

                                                          $ sudo ./eepromARMtool -write -NIC=1 -f=Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex

                                                          Intel(R) Eeprom ARM Tool NVM/OTP Programming Tool

                                                          Provided under the terms of a CNDA.  Do Not Distribute.

                                                          Copyright(C) 2013-2014 by Intel(R) Corporation

                                                          Version 0.6.7

                                                          Flash wordsize reg val:  5 register 82a00

                                                           

                                                          After this process, the I210 devices are still listed as unflashed with lspci and a reboot does not change anything. The command for dumping the Flash ($ sudo ./eepromARMtool -dump -NIC=1 yields the same data as in the hex file, however there seems to be nothing transmitted to the flash memory.) After a reboot the dump is empty again.

                                                           

                                                          $ lspci

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

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

                                                           

                                                          Could you provide us with any pointers as to what we are doing wrong?

                                                          Thanks, best regards

                                                           

                                                          Valentin

                                                            • Re: eepromARMtool
                                                              gabriel.thomas Brown Belt

                                                               

                                                              Hello Valentin .

                                                               

                                                              1)When you enter the dump command sudo ./eepromARMtool -dump -NIC=1, does it generates a file as I210NIC1.OTP ?

                                                               

                                                              2) Can you try a different file to program the device, different than:  Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex ?

                                                               

                                                                 

                                                              3)Verify the Flash File format, which should be a table of a 8 columns and X rows of 16 bit words, presented in hexadecimal, similar than the following one:

                                                               

                                                              FLASH.jpg

                                                               

                                                               

                                                               

                                                               

                                                               

                                                              Best Regards.

                                                               

                                                              Gabriel Thomas.

                                                               

                                                               

                                                                • Re: eepromARMtool
                                                                  fghj Green Belt

                                                                  Hi,

                                                                  thanks for your reply. We have tried your suggestions and the results are below:

                                                                   

                                                                  1)When you enter the dump command sudo ./eepromARMtool -dump -NIC=1, does it generates a file as I210NIC1.OTP ?


                                                                  Yes, we can generate a dump file but it is different depending on when we generate it.

                                                                  After a reboot the dump appears to be mostly empty:


                                                                  $ more I210NIC.otp

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 E781 4C22 0AA0 AA86

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                  0000 0000 0000 0000 0000 0000 0000 0000

                                                                   

                                                                   

                                                                  Then after applying the write command ( $ sudo ./eepromARMtool -write -NIC=1 -f=Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex ) the dump seems to represent the hex file that we try to write to the I210:


                                                                  $ more I210NIC.otp

                                                                  A000 00C9 0000 0520 FFFF 3025 FFFF FFFF

                                                                  0003 0000 402F 0000 FFFF 1533 8086 3367

                                                                  8100 003D 67FF 00C1 E024 0040 2400 FFFF

                                                                  303D 7000 5A0E 3400 0084 0000 3200 0706

                                                                  200C 0584 0000 FFFF 0200 803D 0010 0098

                                                                  1C68 003C 8000 0701 00F8 0097 1000 05F8

                                                                  0100 4000 1332 4003 FFFF 4000 FFFF 00F9

                                                                  FFFF FFFF FFFF FFFF 0094 0430 FFFF 479E

                                                                  8170 003D 05CD 8000 FFFF FFFF FFFF FFFF

                                                                  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF

                                                                  0000 0080 FFFF FFFF FFFF FFFF FFFF FFFF

                                                                  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF

                                                                   

                                                                  But after a reboot, a dump of the device is empty again.




                                                                  2) Can you try a different file to program the device, different than:  Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex ?

                                                                   

                                                                  We tried the example Hex-file for MCTP and 16Mb, as well as NOMNG and 8Mb with the same results. Our attached memory is actually 32 Mb, but according to the documentation a too large memory should be of no concern.

                                                                     



                                                                  3)Verify the Flash File format, which should be a table of a 8 columns and X rows of 16 bit words, presented in hexadecimal, similar than the following one:


                                                                  The file format is correct.




                                                                  We also had a look at the source code and figured out that the function "PollFlashUpdateDoneI210" never returns success. We measured the NVM-Port of the I210 to the flash memory with an oscilloscope and don't see any signals during the writing process.

                                                                  So it appears to us that the data is sent to the I210 and stored in the Shadow RAM, but never written into the external flash memory.


                                                                  Could there be any issue blocking the I210 from actually writing the data into the flash memory?



                                                                  Best regards,

                                                                  Valentin

                                                                    • Re: eepromARMtool
                                                                      fghj Green Belt

                                                                      Hi

                                                                       

                                                                      We have narrowed down the problem somewhat. When trying to write a hex file with a configuration to the external flash with the eepromarmtool ($ sudo ./eepromARMtool -write -NIC=1 -f=Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex) the following occurs:

                                                                       

                                                                      It seems that the process of updating the flash (writing the contents of the shadow RAM to the external Flash memory) does not succeed.

                                                                      The function "UpdateFlashI210" attempts to poll for the FLUDONE bit in the EEC register of the I210. This bit should be set by the chip to indicate "Flash Update Complete" or in this case probably ready for the first Flash update. Because this bit is never set, the process of writing to the Flash does not begin.

                                                                      Trying to manually override waiting for the FLUDONE bit and instead directly attempt to write to the flash by setting the FLUPD bit in the EEC register did not end successfully.

                                                                       

                                                                      Does anyone have an idea, why the UpdateFlash fails?

                                                                       

                                                                      Best regards,

                                                                      Valentin

                                                                        • Re: eepromARMtool
                                                                          gabriel.thomas Brown Belt

                                                                          Hello Valentin.

                                                                           

                                                                          Have you verified if the Flash Memory you are using is included in the list of the validated Flash parts, from Intel® Ethernet Controller I210 Datasheet document,

                                                                          section 11.8.1 Flash.

                                                                           

                                                                          Regards

                                                                           

                                                                          Gabriel.

                                                                            • Re: eepromARMtool
                                                                              fghj Green Belt

                                                                              Hi Gabriel

                                                                               

                                                                              We are using a SST25VF032B Flash memory which is listed in the I210-Datasheet as "Compatible by design but not tested."

                                                                               

                                                                              It seems that the memory gets detected, since we can read the following registers in the I210 (among others):

                                                                              - EEPROM-Mode Control Register (EEC): 0x482a00       FLASH_DETECTED bit = 1b   (the flash memory is not busy and returned a manufacturer ID)

                                                                              - Flash Access Register (FLA): LOCKED bit = 0b        (the flash memory is not in the secure mode)

                                                                              - Flash Op-code Register (FLASHOP): 0xb7a75c7      (is correct)

                                                                              - Flash Mode Register (FLASHMODE): 0x42     SST_MODE = 1b,  FLASH_SPEED = 00b    (both appear to be correct)

                                                                               

                                                                              We are still observing the same behaviour that our hex file is read into the Shadow RAM but not written into the Flash memory, as described above.

                                                                               

                                                                              Best regards,

                                                                              Valentin

                                                                                • Re: eepromARMtool
                                                                                  gabriel.thomas Brown Belt

                                                                                  Hello Valentin.

                                                                                   

                                                                                  Could you tell us please what flavor of I210 are you using?

                                                                                   

                                                                                  I210-AT (Commercial Cooper).

                                                                                  I210-IS (Industrial Temperature Cooper).

                                                                                  I210-IT (Industrial Temperature Fiber).

                                                                                   

                                                                                  Regards

                                                                                  Gabriel.

                                                                                    • Re: eepromARMtool
                                                                                      fghj Green Belt

                                                                                      Hello Gabriel

                                                                                       

                                                                                      We are using the I210-AT version.

                                                                                       

                                                                                      Regards,

                                                                                      Valentin

                                                                                        • Re: eepromARMtool
                                                                                          fghj Green Belt

                                                                                          Hi everyone

                                                                                           

                                                                                          Unfortunately we are still experiencing the same problem with the I210 not allowing to copy the configuration data in the internal shadow RAM (from the .HEX file) into the flash memory.

                                                                                          Does anyone have any pointers as to what we might be doing wrong?

                                                                                           

                                                                                          Regards,

                                                                                          Valentin

                                                                                            • Re: eepromARMtool
                                                                                              gabriel.thomas Brown Belt

                                                                                              Hello Valentin.

                                                                                               

                                                                                              I am sorry for the delay. We still working in your issue.

                                                                                              We will contact you as soon as possible.

                                                                                               

                                                                                               

                                                                                              Best Regards

                                                                                               

                                                                                              Gabriel.

                                                                                                • Re: eepromARMtool
                                                                                                  fghj Green Belt

                                                                                                  Hi there

                                                                                                   

                                                                                                  We have made a little progress. We are able to use the eepromARMtool to configure the iNVM.

                                                                                                  Unfortunately we still can not write the configuration data to the external flash memory.

                                                                                                   

                                                                                                  Interestingly the FWE bit (Flash Write Enable Control) in the EELOADCTL register (0x12020) is set to 01b which means that writes to the flash are disabled.

                                                                                                  But we can not see any possibility to circumvent this problem.

                                                                                                   

                                                                                                  We are still grateful for any help we can get..


                                                                                                  Thanks in advance. Best regards,

                                                                                                  Valentin

                                                                                                    • Re: eepromARMtool
                                                                                                      fghj Green Belt

                                                                                                      Hi

                                                                                                       

                                                                                                      The problem still persists and we would really appreciate any kind of inputs or experiences from similar problems..

                                                                                                       

                                                                                                      Thanks & regards,

                                                                                                      Valentin

                                                                                                        • Re: eepromARMtool
                                                                                                          gabriel.thomas Brown Belt

                                                                                                          Hello Valentin,

                                                                                                           

                                                                                                          Firmware updates are automatically followed by a firmware reset.

                                                                                                          If updating data in the following sections:

                                                                                                           

                                                                                                               1)  Flash Device Size (FL_SIZE only) - word 0x11

                                                                                                               2)  CSR Auto Configuration Power-Up LAN - module pointed by word 0x27

                                                                                                           

                                                                                                          please try to remove the power cord for around 20 seconds and a cold reboot is needed to reset the I210, by doing this it will re-read the external flash memory contents into its internal registers.

                                                                                                           

                                                                                                          Please try this procedure and let us know the results, also I recommend you to read section 3.3.2 Shadow RAM from the

                                                                                                           

                                                                                                          Intel® Ethernet Controller I210 Datasheet

                                                                                                           

                                                                                                           

                                                                                                           

                                                                                                          Regards,

                                                                                                          Gabriel Thomas

                                                                                                            • Re: eepromARMtool
                                                                                                              fghj Green Belt

                                                                                                              Hi Gabriel

                                                                                                               

                                                                                                              I think there is a misunderstanding about our problem. The situation is the following:

                                                                                                               

                                                                                                              We have two Intel I210-AT chips connected to an ARM processor. Every I210 has its own Flash, which is totally blank. The internal iNVM memory is also blank.

                                                                                                               

                                                                                                              What we tried to do is to program the Flash using the eepromARMtool. The data is written into the shadow RAM (proven by dumping memory data). However, the update function "UpdateFlashI210" of the eepromARMtool fails because the FLUDONE bit is never set (see post from Feb 26th). The Flash device is correctly detected by the I210.

                                                                                                               

                                                                                                              Do you have any inputs on that problem?

                                                                                                               

                                                                                                              Regards,

                                                                                                              Valentin

                                                                                                                • Re: eepromARMtool
                                                                                                                  gabriel.thomas Brown Belt

                                                                                                                  Hello Valentin,

                                                                                                                   

                                                                                                                  The reason why the  FLUDONE bit is never set could be because the flash is rejecting the shadow ram since it's empty.

                                                                                                                  I recommend you to flash the memory via external programmer.

                                                                                                                  I have consulted this issue to the next technical level, and they said that eepromARMtool isn't made to program the entire flash (i.e 2mb), only the eeprom (first ~ 4kb of data).

                                                                                                                   

                                                                                                                  I recommend you to use the LANconf tool, document  #348742, Intel Network Connection Tools 20.0 PV - LAN Software Tools (this is the latest version and I will update it in the library).

                                                                                                                   

                                                                                                                   

                                                                                                                  Regards,

                                                                                                                  Gabriel Thomas.

                                                                                                                    • Re: eepromARMtool
                                                                                                                      fghj Green Belt

                                                                                                                      Hi Gabriel

                                                                                                                       

                                                                                                                      Initially, we intended to use the LANconf tool. However, it seems that this tool is not availabe for ARM processors. See TOOLS/install.txt:117 of #348742:

                                                                                                                       

                                                                                                                      "There are 3 versions of Linux supported: Linux32 (x86), Linux64e (x64), and Linux64 (Itanium)."

                                                                                                                       

                                                                                                                      Please note that we have a 32-bit ARM processor connected to the I210. This is why we asekd for the eepromARMtool.

                                                                                                                       

                                                                                                                      Is there a configuration tool such as LANconfig for ARM processors?

                                                                                                                       

                                                                                                                      Regards,

                                                                                                                      Valentin

                                                                                        • Re: eepromARMtool
                                                                                          gecomaia Community Member

                                                                                          Hi Gabriel,

                                                                                           

                                                                                          could you also send me the source code of the eepromARMtool. I need to program the iNVM of the i210 ehternet phy.

                                                                                           

                                                                                          Best Regards,

                                                                                          Gerhard

                                                                                            • Re: eepromARMtool
                                                                                              gabriel.thomas Brown Belt

                                                                                              Hello Gerhard,

                                                                                               

                                                                                              Welcome to Intel® Embedded Community.

                                                                                               

                                                                                              Thank you very much for your post, I sent you the eepromARMTool to your e-mail.

                                                                                              If you have any other question or request please let us know.

                                                                                               

                                                                                               

                                                                                              Best Regards.

                                                                                               

                                                                                              Gabriel Thomas.

                                                                                            • Re: eepromARMtool
                                                                                              SvenS Community Member

                                                                                              Good morning,

                                                                                               

                                                                                              Regarding to our developments with the I210, it made it necessary to use the ARM tool as well. Could you also send it to me?

                                                                                               

                                                                                              Regards

                                                                                              Sven

                                                                                                • Re: eepromARMtool
                                                                                                  gabriel.thomas Brown Belt

                                                                                                  Hello Sven,

                                                                                                   

                                                                                                  Thank you very  much for contacting Intel Embedded Community.

                                                                                                  Due to this documentation is classified as Intel Confidential; it requires a non-disclosure agreement between your company and Intel.

                                                                                                  You would need to apply for a Privilege account by visiting Intel.com

                                                                                                  You can find more information in the "Manage my account" section found on this page.

                                                                                                  Please use the company email address, not a personal one such as Yahoo, Gmail, etc.

                                                                                                  If you would like to be contacted by an Intel representative to assist you in the process, please let me know.

                                                                                                   

                                                                                                  Kind regards,

                                                                                                   

                                                                                                  Gabriel Thomas.

                                                                                            • Re: eepromARMtool
                                                                                              LynnZ Brown Belt

                                                                                              Hi, Pawel.  We're addressing this in this thread for you: https://embedded.communities.intel.com/message/13391?et=watches.email.thread#13391.  LynnZ.