瑞芯微平台 以太网gmac 网络灯调试 以及修改PHY寄存器
vi kernel/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
添加下面代码
static int phy_yt8531_led_fixup(struct phy_device * phydev)
{
phy_write(phydev,0x1e,0xA00b); //向 30 寄存器写入 外部 ext 的地址 也就是 你想要配置的寄存器地址
phy_write(phydev,0x1f,0xefc0); //向 31 寄存器写入 你所要配置的寄存器的值
phy_write(phydev,0x1e,0xA00D);
phy_write(phydev,0x1f,0xf000);
phy_write(phydev,0x1e,0x0); //把30 寄存器的值重新写入0
return 0;
}
//在 stmmac_dvr_probe 函数最后的return ret; 这句话的上面添加如下代码
// para1: phy 芯片的ID 如果你的网卡移植成功后 可以操作一下命令
// find . -name phy_id 找到该路径 cat phy_id
//para2: phy芯片的掩码 直接写 0xffffffff
ret = phy_register_fixup_for_uid(YT8531_PHY_ID, YT8531_PHY_ID_MASK, phy_yt8531_led_fixup);
if (ret) {
dev_warn(priv->device, "Cannot register PHY board fixup, terry in :%s.\n", __func__);
}