在移植linux2.6.13和2.6.20版本的时候,发现了9200在启动时无法识别到MAC的BUG。在网友dandan的帮助下解决了该问题。现在将该问题的解决方法告诉大家:
源码修改/linux2.6.20/
drivers/net/arm/at91_ether.c作以下修改
static void __init get_mac_address(struct net_device *dev)
{
static char def_mac[]={0x00,0x15,0xf2,0x9d,0x66,0x80};
/* Check SpecificAddress
1 */
if (unpack_mac_address(dev,
at91_emac_read(AT91_EMAC_SA1H),at91_emac_readAT91_EMAC_SA1L))
)
return;
/* Check SpecificAddress
2 */
if (unpack_mac_address(dev,
at91_emac_read(AT91_EMAC_SA2H),
at91_emac_read(AT91_EMAC_SA2L))
)
return;
/* Check SpecificAddress
3 */
if (unpack_mac_address(dev,
at91_emac_read(AT91_EMAC_SA3H),
at91_emac_read(AT91_EMAC_SA3L))
)
return;
/* Check SpecificAddress
4 */
if (unpack_mac_address(dev,
at91_emac_read(AT91_EMAC_SA4H),
at91_emac_read(AT91_EMAC_SA4L))
)
return;
memcpy(dev>dev_addr,&def_mac,6);return;
printk(KERN_ERR "at91_ether: Your bootloader did not configure a MAC address.\n");
}

