
14 Nov
2007
14 Nov
'07
4:34 p.m.
Zang Roy-r61911 wrote:
- if (((u16 *) db->srom)[0] == 0xffff || ((u16 *) db->srom)[0] == 0)
- /* SROM absent, so write MAC address to ID Table */
set_mac_addr(dev);
- else { /*Exist SROM*/
for (i = 0; i < 6; i++)
dev->enetaddr[i] = db->srom[20 + i];
- }
What is the difference between the ID table (IDT) and the SROM? And why do we not program the ID table if we have SROM?
BTW, where is the code that programs the MAC address *into* the IDT/SROM? All we have is code that reads *from* the IDT/SROM. On the 8610, the MAC address is stored in I2C EEPROM (address 0x57), and so U-Boot will need to copy that into the IDT/SROM *before* this driver runs.
--
Timur Tabi
Linux kernel developer at Freescale