aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/net/etherfabric.c
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2006-12-18 15:28:34 +0000
committerMichael Brown <mcb30@etherboot.org>2006-12-18 15:28:34 +0000
commita497e16767dc81f0c5aef2c9102f4ca5bbbf93f9 (patch)
tree914f9e49a43a0e73484551782ab0fcfdc8b63dc1 /src/drivers/net/etherfabric.c
parent530bbf7cca1866f545797dda91b0437b236836f1 (diff)
downloadipxe-a497e16767dc81f0c5aef2c9102f4ca5bbbf93f9.tar.gz
The "increment MAC address by port number" hack applies only to EF1.
Diffstat (limited to 'src/drivers/net/etherfabric.c')
-rw-r--r--src/drivers/net/etherfabric.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/drivers/net/etherfabric.c b/src/drivers/net/etherfabric.c
index 9040f0cf0..e760b124c 100644
--- a/src/drivers/net/etherfabric.c
+++ b/src/drivers/net/etherfabric.c
@@ -1218,8 +1218,13 @@ static int ef1002_read_eeprom ( struct efab_nic *efab ) {
struct i2c_interface *i2c = &efab->ef1002_i2c.i2c;
struct i2c_device *i2cdev = &efab->ef1002_eeprom;
- return ( i2c->read ( i2c, i2cdev, EF1_EEPROM_HWADDR_OFFSET,
- efab->mac_addr, sizeof ( efab->mac_addr ) ) == 0);
+ if ( i2c->read ( i2c, i2cdev, EF1_EEPROM_HWADDR_OFFSET,
+ efab->mac_addr, sizeof ( efab->mac_addr ) ) != 0 )
+ return 0;
+
+ efab->mac_addr[ETH_ALEN-1] += efab->port;
+
+ return 1;
}
/** RX descriptor */
@@ -3194,7 +3199,6 @@ static int efab_init_nic ( struct efab_nic *efab ) {
/* Read MAC address from EEPROM */
if ( ! efab->op->read_eeprom ( efab ) )
return 0;
- efab->mac_addr[ETH_ALEN-1] += efab->port;
/* Initialise MAC and wait for link up */
if ( ! efab_init_mac ( efab ) )