Which version of the igb driver are you using? Some older versions had problems with flash-less mode of the i210.
Have you tried disabling the security option SECURITY_EN, before writing to the iNVM?
Has this iNVM been overwritten before? Do you have enough memory left to write new commands on it?
You might want to check section 184.108.40.206 iNVM Programming via Flow Registers, of the i210 datasheet https://www-ssl.intel.com/content/www/us/en/ethernet-controllers/i210-ethernet-controller-datasheet.html
Also I think reading this thread might be helpful to you i210 Ethernet Adapter PROM Programming
thanks for your fast reply.
1) I'm using igb 5.2.5 (Debug)
2) No, because I have'nt set the iNVM Bit in Control-Reg1 so access (read/write) to iNVM is possible
3) At start of the project the iNVM was blank, now there are 8 entries, enough room for other values.
4) Yes, I read all sections. That is the way I wrote all values to iNVM. The problem is not programming values to iNVM. I did and I'm sure, all written values are stored permanetly. At the next
power-up cycle I can read all values. The firmware also can read all values, because it has been copied to shadow-RAM and to PCI-configuration-space.
But there is no copy of MAC-address in RAH(0) and RAL(0). That are the registers where is driver looking for MAC-address.
5) yes, I read this thread. Unfortunately, our request for privileged account (IBL) was denied by Intel (don't know why), so we can not use all the Tools (EEUPDATE, LAN-CONF)
What DeviceID have you set in the 0x0D register? Looking at the source code of the igb driver, this value should be 0x157B if you are using i210 in Copper Flash-less or 0x157C if you are using SerDes Flash-less mode.
I would also pay attention to the configuration of the following registers:
Initialization control words (0x0A, 0x0F and 0x24), Functions Control (0x21), PCIe Controls 0x1B,0x28 (FLBAR_Size should be 000), and 0x5ba0 (make sure to set GPAR_EN)
thanks for your useful support.
Now the problem is solved.
I step through the driver and saw the clearing of MAC-registers by software after the reset function.
I changed the RESET-field in the auto-load word in the iNVM of the MAC-address-entries from <LOAD on PCIe and POWER-UP reset> (10b) to
<LOAD on Software, PCIe and POWER-UP reset> (11b). Importend is the same adjustment for all 3 address-entries.
Now the i210 keep the MAC-address (in other words, after a software reset it is load the MAC-address from the iNVM again) and the driver can establish a interface device.
Thanks again to be so patient with me.