Showing results for 
Search instead for 
Did you mean: 

program i210-AT with external flash


I try to program the i210-AT with external flash but the pci device id still keep at 0x1531,

The device id should be 0x1533 after I program flash. Is it?

And how can I also to program the MAC by eepromARMtool?

And the follow my console log

(1) Show basic information

$ 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. 1 0 0 I210 INVM+FLASH

(2)Burn Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.hex file to flash (Winbond W25Q16DVSSIG).

$ 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 482a00

(3) Reboot then check the lspci list

ubuntu@tegra-ubuntu: lspci –vvv

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

Subsystem: Intel Corporation Device 0000

Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-

Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-

Latency: 0, Cache Line Size: 64 bytes

Interrupt: pin A routed to IRQ 130

<span style="color: # 000000; font-family: 新細明體; font-size: 12...

0 Kudos
8 Replies
Community Manager

Hello Joseph_Wang,

The 0x1531 is the hardware default device ID, indicating that the device is not programmed or that flash memory is not ready at the time that the I210 initializes.

It should be 0x1533 once it is properly programmed.

In order to determine if the iNVM is blank, please execute the dump command on the command line

sudo. /eepromARMtool -dump -NIC=X, where X is the NIC number.


If the device is blank, a message displays and prints to the file. Furthermore, the first few words and most of the others are zero as following:

If the device isn't blank, the message should be similar as the following:

Please review the following document:

Please check this threads for programming the external NVM.


/message/11255# 11255 11255


/message/11105# 11105 11105



If you're not able to use the eepromarmtool, our suggestion is to use an external programmer to program it with initialization code. Once it's been setup with initialization code you should be able to use the eepromarmtool. Or to use one of the supported LANConf configurations, and use this tools.

According to Intel® I210 and I211 Design-In for ARM eepromARMtool Usage Guide:

This means that the eepromARMtool is not a replacement for the main tools, and whenever possible LANConf or EEupdate should be used.

These tools can be downloaded from the following link:

Thus there are two ways to change the MAC address:

1) Using the LANConf tool or the EEUPDATE tool (recommended method):

To change the MAC address you can go to the Registers section the LANConf tool menu and manually change the MAC address of your devices as you can check on section 2.5 of the INTEL® LANConf User Manual.


The Registers (MAC and PHY) menu allows the user to read or write to the MAC and PHY registers.

The EEUPDATE tool also can change the MAC address of a device as you can check on the MAC ADDRESS FILE FORMAT section of the eeupdate.txt file that is provided in the above link.

2) Programming the MAC address registers directly using the host interface (only if you don't have the NetworkProgramming Tools):

You can write directly to the MAC address registesr 0x00-0x02 using the PCIe interface, you can check this thread for more details: /message/10193# 10193 i210: absolutely necessary words in iNVM

You can check this thread/message/11059# 11059 MAC address for I210.

Hope this is useful, please let us know if you have any more questions.

<p style="font-size: 13px; font-family: intel-clear...

Hello Jimmy,

I try to use the external programmer and put the "Dev_Start_I210_Copper_NOMNG_16Mb_A2_3.25_0.03.bin " on i210-AT flash.

Currently, the i210-AT network function works for me and device id is 0x1533.

I also have downloaded the Quartzville-tools will try to check the LANConf and EEUPDATE utility. Base on your mentioned. It seems the eepromARMtool can't to program the blank flash.

Thanks again your kindly support.


Community Manager

Hello Joseph_Wang,


We have addressed your question in the following post

Glad to know you got it working!

Please let us know if you need anything else.

Best regards,




Is the above tools are available for a ARM platform ?

I have the i.Mx6Q connected to I210-IT. Flash Device is connected to I210-IT.

So to program the flash I need to flash from i.Mx6Q.

Can anyone help me to find the tools similar to the above for the ARM platform.

Or where can I get the source code of the tools given in above specified link.

Thanks & Regards,

Nanjunda M


Hello Nanju,

Thank you for contacting Intel Embedded Community.

We suggest to verify the compatibility of the PCIe Interfaces of the mentioned implementation because the I210-IT only supports the PCIe v2.1 (2.5GT/s) rate and is configured to x1.

This information and more details are stated in section 1.4.1, on page 9 of the Intel(R) Ethernet Controller I210 Datasheet.

We will contact you via email to help you.

Best Regards,



Thanks Carlos,

Thanks for the help.

There is compatibility between the PCIe interfaces.


Nanjunda M


Hi Carlos,

With EEpromARM Tool that you had provided us, we are unable to do any access to external flash device.

Is it possible to access the external flash through i210 Ethernet controller using the EEupdate tool for ARM platform ?

I saw in few threads on the EEupdate tool.

Can you please share the EEupdate tool ?

Thanks & Regards,

Nanjunda M


Hello Nanju,

Thanks for your updates.

We have contacted you by email.

Best Regards,