Intel i210 drivers for default firmware

We are trying to get the Intel i210 ethernet controller to work using it’s default firmware on a custom board with the apalis imx6. I am aware of the following patches to work around this:

http://git.toradex.com/cgit/linux-toradex.git/commit/?h=toradex_tk1_l4t_r21.6&id=783780c43fd4e1473fb64790c8b9e0adb2be04a3

http://git.toradex.com/cgit/linux-toradex.git/commit/?h=toradex_tk1_l4t_r21.6&id=70efa60d96c9f05d91d8875eee97446df7f9e877

These patches are quite old and seem to be for a different version of the kernel as some of the files it targets does not exist in the 2.8b4 kernel.

My question is: What is the easiest way to get the i210 working using it’s default firmware on the 2.8 branch of linux?

Edit: I managed to get it working on branch 2.8b4, I have attached the patches I created here

Thanks.

Hi @msc!

I’ve had sucess using a i210 controller with the default kernel driver with the Apalis iMX6 and the Apalis Evaluation Board. I recall just enabling CONFIG_IGB in the kernel configuration.
Did you face any issues by using the default kernel driver?

Hi @gustavo.tx

When using the default igb driver and I load the driver via modprobe I can see the driver load but Linux does not detect the interface. I have been told the default firmware that ships with the i210 has a different ID and that the default driver will not detect it. We are trying to get the i210 working without changing its firmware.

Hi @msc!

Very strange. I remember just enabling IGB in the kernel config (although I’ve enabled it as built-in instead of as a module, but shouldn’t make a difference, I think) and the interface showed up just fine.

Could you please send me a complete dmesg log?

@msc should also note that he is not running his i210 according to Intel’s specification. However, what exactly that is, is outside of my knowledge.

@gustavo.tx here is the dmesg and kernel config. The problem is the driver is expecting ID 0x1533 but the ID is 0x1531 because we did not program the device with EEPROMARMTOOL. That is why we are trying to use those patches but they are old and not compatible with the current branch.

I have tried to modify the patches to work with the current branch but I cannot seem to get it working.Here is the patches I have created from the old patches but they are not working.

Looks strange. I’ve tested one of these for a customer and AFAIK the customer did not re-program the device and it worked with the default driver.
Perhaps it’s a different version?

Is it possible to assess if it works out of the box with another device, e.g. a Linux PC?

It seems to be possible to run the i210 with default nvm – device id 1531. Has anyone done that already?

Sorry, but you got your nomenclature completely wrong. This is no default NVM but rather an un-programmed NVM which Intel calls in their data sheet “tools only, not for driver” which is clearly illegal for any kind of regular use.

Are there good reasons to not let it run in default mode?

Tools only mode is tools only mode, nothing more and nothing less. We only run it in this mode during early production testing before actually properly programming the NVM patches for which you may find here and here.

Please contact your Intel FAE for any details about such proprietary Intel chips and their behaviour in an unsupported scenario.

If the device is running in default mode

Tools only mode that is.

does anybody know if it has a default MAC ID assigned from intel or is this blank as well.

Of course, if the NVM is not programmed there is no MAC address. So this is really more a driver question. The regular driver will anyway not load should the NVM checksum not be proper.

If not running in default mode, has anybody already successfully used the intel EEUpdate tool from the imx6 board?

I never heard of such EEUpdate tool resp. I was under the impression that this is an X86 only tool and on ARM one would need to use what is called eepromARMTool which is exactly what we do in our Apalis T30/TK1 production.

BTW: Rather than hijacking an old question please ask a new question next time properly specifying what exact hardware (module and carrier board) and software versions of things you are talking about. Thank you!

I’ve no answer, for your specific problem, but as we are planning building a carrier board for the i210 in combination with imx6 Apalis module as well, it seems that we have similar questions.
As it seems, that some other people already tried to work with the chip, we have a few questions and it would be great if we can get any hints to avoid problems.

So at the moment we have following questions:

1.) It seems to be possible to run the i210 with default nvm – device id 1531. Has anyone done that already? Are there good reasons to not let it run in default mode?

2.) If the device is running in default mode - does anybody know if it has a default MAC ID assigned from intel or is this blank as well.

3.) If not running in default mode, has anybody already successfully used the intel EEUpdate tool from the imx6 board?

Thanks in advance for your help.