1.2 px30驱动移植-网卡驱动调试思路

写在前面

移植瑞芯微px30 网卡RTL8363的时候,遇到了一些坑,为此理了一下GMAC的代码思路,所遇到的问题主要是没有识别到 phy,表象为启动日志里打印 no found phy,调试过程总结如下

一、调试思路

1 结合 《以太网排查文档》 和 《TRM手册》 确认 管脚复用关系

2 确认网卡芯片电源是否正常

3 示波器测量reset脚是否可控。

4 打开rtk_switch_reg1b03(); 通过串口打印看能否读取到 0x0432,如果能正确的读取,则 MDC/MDIO 通讯没有问题。

5 get_phy_device函数 正确的情况 RTL8367RB 读到的是 0x001cc942,RTL8363 读到的是 0x001cc943,如果能正确扫描到设备型号,网卡就成功被识别到了

二、复用关系确认

查看文档得知
在这里插入图片描述
黄色为 100M(RMII)单独使用的引脚,蓝色为 1000M(RGMII)单独使用的引脚,绿色为两者共同使用的引脚。

对比TRM文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在终端中输入

io -4 -l 12 0xff140020
ff140020: 00002222
ff140024: 00002222
ff140028: 00000220

复用关系正常

三、确认电源管脚是否正常

查看RTL的芯片手册
在这里插入图片描述
对照引脚测量一下这几个引脚的电源是否正常

DVDDLDigital Low Voltage Power.
DVDDIO-1Digital I/O High Voltage Power for Extension Port 1 General Purpose Interface.
AVDDHAnalog High Voltage Power. Including supply I/O power for INTERRUPT pin
AVDDLAnalog Low Voltage Power.
PLLVDDLPLL Low Voltage Power.

四、示波器测试reset脚是否正常

reset之后PHY才能正常启动,这里需要看一下设备树文件

&gmac {
    phy-supply = <&vcc_3v3>;
    clock_in_out = "output";
    snps,reset-gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
    snps,reset-active-low;
    snps,reset-delays-us = <0 20000 200000>;
    status = "okay";
};

snps,reset-gpio :查找原理图,看一下是哪个引脚
snps,reset-active-low:表示低电平有效,复位信号就是高-低-高
snps,reset-delays-us:表示拉低20ms 然后拉高200ms
用示波器看一下是否能否正常控制到reset脚。

五、 打开rtk_switch_reg1b03()

这个函数会使用mdio接口去读取厂家出厂时写入的一个默认值,在RTL8363中,通过串口打印看能否读取到 0x0432,如果能正确的读取,则 MDC/MDIO 通讯没有问题,如果不能读取看后续的代码分析

六、确认扫描设备是否正常

get_phy_device函数 正确的情况 RTL8367RB 读到的是 0x001cc942,RTL8363 读到的是 0x001cc943,如果能正确扫描到设备型号,网卡就成功被识别到了。此时,应该应该就能使用了,如果没有扫描到,查看后续代码分析。
成功时的打印应该是

ibphy: lq@@@@@@@@@@@@@@@PHY addr[3] get phy_id[0x1cc943]
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值