Thanks Anton,

http://dbyz.co.uk/ipxe6.png

As can be seen, the no-offset patch worked with one small modification:

+        if (offset == 0xffff) {
+                /* There is no Alternate MAC Address */
+                return rc;
+        }

rc is uninitialised at this point, and the offset == 0xffff check doesn't touch it, so it returns as 0 (technically undefined, in practice, it seems to be 0), so the driver tries to use blank memory space as the MAC, so both MACs end up as 00:00:00:00:00:00. I changed it to return -1; to make sure it works, not sure if there's a predefined error code that would be better suited?

Would there be any benefit in putting an is_valid_ether_addr check at the end of intel_fetch_mac_eeprom before returning 0, just in case?

/Kieran

On 27/07/2012 16:38, Anton D. Kachalov wrote:
Here is another one without shifting an offset.

27.07.2012, 19:36, "Anton D. Kachalov" <[email protected]>:
Kieran,

regarding to "igb" driver, offset (in words) to EEPROM's MAC should be placed 
at 0x37 (in words) of EEPROM (page 178, table 6-1). It is 0xffff.

Try the attached patch.

I accidentally has added left shift by 2 instead of 1 :))

    if ( ( rc = nvs_read ( &intel->eeprom, 0x37 << 2 /* NVM_ALT_MAC_ADDR_PTR */,

    to this one:

    if ( ( rc = nvs_read ( &intel->eeprom, 0x37 << 1 /* NVM_ALT_MAC_ADDR_PTR */,
27.07.2012, 19:01, "Kieran Evans" <[email protected]>:

   Anton, no luck there I'm afraid.

   http://dbyz.co.uk/ipxe4.png

   If you check the EEPROM dumps I sent earlier, you'll see that there is
   only one MAC in the whole EEPROM. Looking for it at different offsets
   will return garbage.

   Just to be sure, I dumped the EEPROM from both interfaces (both linked
   in an earlier email) and they are identical, so they are sharing the
   same EEPROM.

   /Kieran

   On 27/07/2012 14:55, Anton D. Kachalov wrote:
    Kieran,

    my fault.

    Fix this line:

    if ( ( rc = nvs_read ( &intel->eeprom, 0x37 /* NVM_ALT_MAC_ADDR_PTR */,

    to this one:

    if ( ( rc = nvs_read ( &intel->eeprom, 0x37 << 2 /* NVM_ALT_MAC_ADDR_PTR */,
--
Anton D. Kachalov

ITO, R&D group, Senior System Engineer
Tel: +7 (495) 739-70-00 ext.7613
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to