1、平台 板卡黑金xilinx zynqmp 07EV 内核kernel 4.19 网口驱动芯片KSZ9031 KSZ9131 驱动文件./drivers/net/phy/micrel.c

2、现象 由于KSZ9031网口驱动芯片难以采购,供应商提供KSZ9131来代替9031,硬件电路无差异,内核起来之后发现无法通过udhcpc获取IP地址,内核并处错误上报

3、解决办法 尝试使用最新主线版本内核发现ksz9131是能够正常使用,可以通过udhcpc获取IP地址,经给对比发现是低版本内核驱动文件存在问题

经过对比跟读代码,解决ksz9131的驱动问题,只需要将下面代码插入micrel.c对应的地方,编译内核既可以

实现驱动兼容问题

692 static int phy_modify_mmd(struct phy_device *phydev, int devad, u32 regnum,

693 u16 mask, u16 set)

694 {

695 int new, ret;

696

697 ret = phy_read_mmd(phydev, devad, regnum);

698 if (ret < 0)

699

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。