最近在调一个IMX53的板子,移植了linux系统,发现系统起来以后MAC地址全为0。我用ifconfig eth0 hw ether 12:34:56:78:90:ab这个命令设置MAC地址,一设置就会死机。
跟踪FEC驱动,最终执行fec_set_mac_address函数,发现这两行
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
writel(dev->dev_addr[3] | (dev->dev_addr[2] << 8) |
(dev->dev_addr[1] << 16) | (dev->dev_addr[0] << 24),
fep->hwp + FEC_ADDR_LOW);
memcpy这行可以正常执行,死在writel这行里。我看了看fep->hwp的地址也是正常的。
我如果在FEC驱动里静态设置一个MAC地址,在系统里网口工作都是正常的,ping都可以。就是使用ifconfig人工设置MAC地址就会死机,不知道什么原因。
求助! |