For those that are manufacturing their own Intel® 82574 Gigabit Ethernet Controller based hardware implementations, a key step in creating a valid configuration is selecting the correct image based on the size of the EEPROM and desired functionality.  If the device will attached to a BMC via SMBus or NC-SI, a 32Kb EEPROM (or greater) must be used.  If not, the No-Management image should be used.  Note in table 25 in the 82574 datasheet outlines minimum sizes for those two features sets.  If for some reason you want to use the Management image on a system without a BMC, make sure the design has the NC-SI/SMBus pins properly dealt with.  Putting a Management image (which requires size 32Kb EEPROM) in a No-Management size EEPROM (<32Kb EEPROM size) is not a supported configuration and will cause the 82574 to have non-deterministic and/or erratic behavior.   It’s like going past the end of an array, you end up in the weeds and who knows what data is now being pointed to.  Data that will be used because it thinks it’s okay.   Just to put these sizes into context, a 1Kb EEPROM is just 64 words.  An image that small you can tell by just looking at a dump of it.  1Kb fits onto a small screen, a 32Kb image will go on for a page or three.

 

All an OEM has to do is use the correct image (No-Management/Management) or use the correct size EEPROM to have a valid and supported configuration.  Unless the management functionality is required, the Non-management image should be used.

 

Here is table from the datasheet for easy reference.   Here is the datasheet (http://www.intel.com/content/www/us/en/ethernet-controllers/82574l-gbe-controller-datasheet.html?wapkw=82574+datasheet). Remember the datasheet is always right, the blog is always wrong if they disagree.

Table 25 -82574_datasheet.gif

You can tell if it is a management image or not by looking at Word 0x0F in the EEPROM.  Here is another snippet from the datasheet:

6.1.1.6_82574_datasheet.gif

Now be careful, the EEPROM is dumped in Linux in BYTEs and the manuals are WORDS.   So in Linux the 0x0010 line, the last two bytes make the word 0x0F, with byte swapping, the last byte of the0x0010 line is the high byte of the word.  This is a non-management image:

Non-Managment.gif

Here is a management image:

Managment.gif

Yes, I have put a LOT of NICs in my poor system. Your eth number will vary.

 

So the question to ask is 1) what size is the EEPROM attached to my 82574?  Then 2) What image is in it?  If the first answer is 32Kb or bigger, the second is not required.  If the first is  <32Kb then the second is in play.  The HW vendor should know how to tell them apart.

 

As always thanks for using Intel Ethernet.