[netdevice] Separate out the concept of hardware and link-layer addresses

The hardware address is an intrinsic property of the hardware, while
the link-layer address can be changed at runtime.  This separation is
exposed via APIs such as PXE and EFI, but is currently elided by gPXE.

Expose the hardware and link-layer addresses as separate properties
within a net device.  Drivers should now fill in hw_addr, which will
be used to initialise ll_addr at the time of calling
register_netdev().
This commit is contained in:
Michael Brown
2009-08-11 20:19:53 +01:00
parent b3db99a38d
commit 37a0aab4ff
22 changed files with 71 additions and 82 deletions

View File

@@ -594,12 +594,12 @@ static void b44_load_mac_and_phy_addr(struct b44_private *bp)
/* Load MAC address, note byteswapping */
b44_read_eeprom(bp, &eeprom[0]);
bp->netdev->ll_addr[0] = eeprom[79];
bp->netdev->ll_addr[1] = eeprom[78];
bp->netdev->ll_addr[2] = eeprom[81];
bp->netdev->ll_addr[3] = eeprom[80];
bp->netdev->ll_addr[4] = eeprom[83];
bp->netdev->ll_addr[5] = eeprom[82];
bp->netdev->hw_addr[0] = eeprom[79];
bp->netdev->hw_addr[1] = eeprom[78];
bp->netdev->hw_addr[2] = eeprom[81];
bp->netdev->hw_addr[3] = eeprom[80];
bp->netdev->hw_addr[4] = eeprom[83];
bp->netdev->hw_addr[5] = eeprom[82];
/* Load PHY address */
bp->phy_addr = eeprom[90] & 0x1f;