Embedded Connectivity
Intel network controllers, Firmware, and drivers support systems

eepromARMtool

MPatt3
Novice
22,685 Views

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

1 Solution
PPast3
Novice
12,161 Views

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

View solution in original post

0 Kudos
126 Replies
CarlosAM_INTEL
Moderator
1,585 Views

Hello Olaf,

We will contact you via email to help you.

Best Regards,

Carlos_A.

0 Kudos
hlun
Beginner
1,585 Views
0 Kudos
CarlosAM_INTEL
Moderator
1,585 Views

Hello helun,

Thank you for contacting the Intel Embedded Community.

This tool is available when you have an Embedded Design Center (EDC) Privileged account. In order to request a Privileged EDC account, go to http://www.intel.com/content/www/us/en/forms/design/registration-privileged.html http://www.intel.com/content/www/us/en/forms/design/registration-privileged.html and filling out the form. The application can be found at:

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

In order to help you with this process, we suggest you use a business email address to evade any inconvenience. Please avoid the free email provider's address (such the provided by Hotmail, Gmail, yahoo, or others).

We hope that this information may help you.

Best Regards,

Carlos_A.

0 Kudos
idata
Employee
1,582 Views

Can you send the eepromARMtool to me?My board is based on NVIDIA JETSON TX2 and intel 82574.

0 Kudos
CarlosAM_INTEL
Moderator
1,584 Views

Hello, pww:

Thank you for contacting Intel Embedded Community.

It is important to let you know that an EDC account should be required to have access to this tool. To learn more about the benefits of an EDC Privileged account go to http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html. Then click on "APPLY NOW" found under the heading, "Apply for extras with privileged access to the Intel EDC¹".

We hope that this information is useful to you.

Best regards,

Carlos_A.

0 Kudos
lqin3
Beginner
1,584 Views

We have designed our own board with 82599 and NVIDIA JETSON TX2,

I've tried the link above, but no "APPLY NOW" found, just "Submit" some infomation and my question.

So, could you send the eepromARMtool to me?

0 Kudos
CarlosAM_INTEL
Moderator
1,585 Views

Hello, qqdelphis:

Thank you for contacting Intel Embedded Community.

It is important to let you know that an EDC account should be required to have access to this tool. To learn more about the benefits of an EDC Privileged account go to http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html. Then click on "APPLY NOW" found under the heading, "Apply for extras with privileged access to the Intel EDC¹".

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

We hope that this information may help you.

Best regards,

Carlos_A.

0 Kudos
VSchl1
Beginner
2,253 Views

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

0 Kudos
Gabriel_T_Intel
Employee
2,253 Views

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.

0 Kudos
VSchl1
Beginner
1,687 Views

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

0 Kudos
Gabriel_T_Intel
Employee
1,687 Views

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:

Best Regards.

Gabriel Thomas.

0 Kudos
VSchl1
Beginner
1,687 Views

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

 

 

0 Kudos
VSchl1
Beginner
1,687 Views

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

0 Kudos
Gabriel_T_Intel
Employee
1,687 Views

Hello Valentin.

Have you verified if the Flash Memory you are using is included in the list of the validated Flash parts, from https://www-ssl.intel.com/content/www/us/en/embedded/products/networking/i210-ethernet-controller-datasheet.html Intel® Ethernet Controller I210 https://www-ssl.intel.com/content/www/us/en/embedded/products/networking/i210-ethernet-controller-datasheet.html Datasheet document,

section 11.8.1 Flash.

Regards

Gabriel.

0 Kudos
VSchl1
Beginner
1,687 Views

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

0 Kudos
Gabriel_T_Intel
Employee
1,687 Views

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.

0 Kudos
VSchl1
Beginner
1,687 Views

Hello Gabriel

We are using the I210-AT version.

Regards,

Valentin

0 Kudos
VSchl1
Beginner
1,687 Views

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

0 Kudos
Gabriel_T_Intel
Employee
1,687 Views

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.

0 Kudos
VSchl1
Beginner
1,687 Views

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

0 Kudos
VSchl1
Beginner
1,687 Views

Hi

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

Thanks & regards,

Valentin

0 Kudos
Reply