Basically I have theorized that everything is good except when the driver 
checks to see if the nvm is valid it errors out, so rather than going into a 
fail state when the driver checks to see if the nvm is invalid and it "is", we 
just print the error but continue business as usual. This current hack is truly 
that, an ugly hack and should not be used for any production environment, it is 
just a test which will eventually lead me to a more elegant solution.

Here is what I have done:

in the source under onnv-gate/usr/src/uts/common/io/e1000g/ is the location of 
the intel driver source code. The file e1000g_main.c there is a routine which 
checks the state of the NVM. All that I do currently is replace this:
   1365         if (result < E1000_SUCCESS) {
   1366                 e1000g_log(Adapter, CE_WARN,
   1367                     "Invalid NVM checksum. Please contact "
   1368                     "the vendor to update the NVM.");
   1369                 e1000g_fm_ereport(Adapter, DDI_FM_DEVICE_INVAL_STATE);
   1370                 goto init_fail;
   1371         }

with

   1365         if (result < E1000_SUCCESS) {
   1366                 e1000g_log(Adapter, CE_WARN,
   1367                     "Invalid NVM checksum. Please contact "
   1368                     "the vendor to update the NVM.");
   1369                 /*e1000g_fm_ereport(Adapter, DDI_FM_DEVICE_INVAL_STATE);
   1370                 goto init_fail;*/
   1371         }

so as to make it not go into a fail state.

By no means is this even a reasonably good idea, but for me it is a start, so 
try at your own risk. Seriously.
-- 
This message posted from opensolaris.org

Reply via email to