背景
最近在ac8025平台调试realtek的phy驱动 rtl9010,上网搜了半天只找到一篇rtl9010相关文章,第一次调ethernet的我整个过程调的焦头烂额,因此写下此篇文章,希望能给后来的其他兄弟一些帮助,也是给自己未来调其他ethernet驱动留下参考资料。
遇到的问题及分析
问题一
mdio_bus 11020000 ethernet-ffffffff: MDIO device at address 0 is missing.
原因分析:
- 设备树dts #include的dtsi忘记修改了,没有包含自己写的ethernet相关的dtsi。
修改后如下
- 检查硬件发现reset脚被接地了,导致其一直拉低,如果一直接地的话无法实现reset时序,找硬件修改后问题解决。
问题二
编写完驱动代码后上机调试,发现开机log有以下打印,在串口/adb shell 里面敲ifconfig查看网络配置,没有eth0相关配置;
[ 18.426544][ T314][W] macb 11020000.ethernet eth0: validation of rgmii-id with support 0000000,00000000,000062c0 and advertisement 0000000,00000000,000042c0 failed: -22
[ 18.428891][ T314][E] macb 11020000.ethernet eth0: Could not attach PHY (-22)
解决方法:
检查驱动发现漏了一项.features,加上后问题解决。
最终结果
其他
编写的dtsi如下,希望对大家能有帮助: