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

i210 -- Flash programming

AB6
Beginner
14,062 Views

Hi,

 

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

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

 

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

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

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

 

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

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

 

 

Thanks,

 

Adi

 

0 Kudos
20 Replies
idata
Employee
6,094 Views

Hello Adi B,

Welcome to the Intel® Embedded Community.

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

Regards.

Leon

0 Kudos
CarlosAM_INTEL
Moderator
6,094 Views

Hello Adi,

 

 

Thank you for contacting Intel Embedded Community.

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

The EEUPDATE is used to program the flash memory or iNVM in production environments. It can be found in the http://www.intel.com/content/www/us/en/secure/intelligent-systems/privileged/quartzville-tools-284632.html Intel(R) Network Connections tools package for LAN controllers and adapters for various operating systems document # 348742. This document is classified as Intel Confidential.

The http://www.intel.com/content/www/us/en/secure/intelligent-systems/privileged/gbe-i210-i211-nvm-images.html?wapkw=513655 Intel(R) Ethernet Controller I210 Production NVM Images document # 513655 has the production images archive contains a list of images and their features. This document is classified as Intel Confidential.

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

Best Regards,

Carlos A.

AB6
Beginner
6,094 Views

Hi Carlos,

Thanks for your response.

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

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

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

I login and didn't find any security questions.

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

Thanks,

Adi

0 Kudos
Natalie_Z_Intel
Employee
6,094 Views

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

0 Kudos
ThomasStockklauser
1,896 Views

Hay Natalie,

 

i still integrate the Intel I210 into an design and need access to the Tools, NVM Images and a list of Supported Flash Memorys  

 

Thx

0 Kudos
Diego_INTEL
Moderator
1,884 Views

Hello @ThomasStockklauser,

 

Thank you for contacting Intel Embedded Community.

 

In order to get access to the restricted documentation in RDC, you will need to apply for a Premier account. You may check the following link:

https://www.intel.com/content/www/us/en/support/articles/000058073/programs/resource-and-documentation-center.html

 

Best regards,

 

@Diego_INTEL 

0 Kudos
AB6
Beginner
6,094 Views

Hi,

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

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

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

Thanks,

Adi

0 Kudos
CarlosAM_INTEL
Moderator
6,094 Views

Hello Adi,

We will contact you via email to help you.

Best Regards,

 

Carlos A.
0 Kudos
AB6
Beginner
6,094 Views

Hi Carlos,

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

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

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

 

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

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

lspci -v

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

Flags: bus master, fast devsel, latency 0

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

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

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

I/O behind bridge: 00001000-00001fff

Memory behind bridge: 20400000-20ffffff

Capabilities: [40] Power Management version 3

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

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

Capabilities: [100] Advanced Error Reporting

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

Subsystem: Intel Corporation Device 0000

Flags: fast devsel, IRQ 26

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

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

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

Capabilities: [40] Power Management version 3

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

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

Capabilities: [a0] Express Endpoint, MSI 00

Capabilities: [100] Advanced Error Reporting

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

Capabilities: [1a0] Transaction Processing Hints

Capabilities: [1c0] Latency Tolerance Reporting

0 Kudos
CarlosAM_INTEL
Moderator
6,094 Views

Hello Adi,

Thanks for your update.

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

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

Could you please try to reproduce this issue with other flash memories? Please keep in mind that the suggested ones are listed in section 11.8.1, on pages 785 and 786 of the http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/i210-ethernet-controller-datasheet.pdf Intel(R) Ethernet Controller I210 Datasheet. It would be better if you try with devices of different manufacturers.

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

Thanks again for your help.

Best Regards,

Carlos A.

0 Kudos
AB6
Beginner
6,100 Views

Hi Carlos,

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

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

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

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

 

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

 

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

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

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

Thanks,

Adi

0 Kudos
CarlosAM_INTEL
Moderator
6,094 Views

Hello Adi,

Thanks for your update.

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

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

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

Best Regards,

Carlos A.

0 Kudos
AB6
Beginner
6,094 Views

Hi Carlos,

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

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

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

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

Thanks,

Adi

0 Kudos
CarlosAM_INTEL
Moderator
6,100 Views

Hello Adi,

Thanks for your update.

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

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

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

Subsystem: Intel Corporation Device 0000

Flags: fast devsel, IRQ 26

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

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

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

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

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

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

Best Regards,

 

Carlos A.
0 Kudos
ККучм
Beginner
6,100 Views

Hi Carlos,

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

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

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

Best Regards,

Konstantin

0 Kudos
CarlosAM_INTEL
Moderator
6,100 Views

Hello CPC1311,

 

Thanks for contacting Intel Embedded Community.

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

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

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

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

 

Best Regards,

 

Carlos A.

0 Kudos
ККучм
Beginner
6,100 Views

Hi Carlos,

Thanks for your response.

I know about the production images and the regular procedure.

But the settings required are application specific.

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

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

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

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

EEPROM image file format is described in the eeupdate readme file

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

of the text file needed to program iNVM?

Best Regards,

Konstantin

0 Kudos
CarlosAM_INTEL
Moderator
6,100 Views

Hello CPC1311,

Thanks for your reply.

In order to secure the iNVM memory (such as avoiding any further write to it after manufacturing), a word auto-load structure must be present in iNVM for setting the iNVM bit to 1b in word address 0x0A. You can confirm this information in the note of the section 3.4.2.1.1, on page 78 of the http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/i210-ethernet-controller-datasheet.pdf Intel(R) Ethernet Controller I210 Datasheet. Also at this section, you can find the list of editable settings in the iNVM.

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

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

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

Thanks again for your cooperation to solve this inconvenience.

Best Regards,

Carlos A.

0 Kudos
ККучм
Beginner
6,100 Views

Hi Carlos,

Thanks for your response.

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

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

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

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

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

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

Best Regards,

Konstantin

0 Kudos
CarlosAM_INTEL
Moderator
6,100 Views

Hello CPC1311,

Thanks for your reply.

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

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

Best Regards,

 

Carlos A.
0 Kudos
Reply