RK3568默认是千兆网口,我们需要改为百兆网口,芯片采用Micrel的百兆网口。
百兆网口驱动,根据我的资源文件,Rockchip-Developer-Guide-Linux-GMAC-CN
配置DTS后,发现网口还存在一些问题。ifconfig down , ifconfig up后,就不正常。
通过查看PHY寄存器地址:可以看出哪些值不对
cat /sys/bus/mdio_bus/devices/stmmac-0\:01/phy_registers
root# cat /sys/bus/mdio_bus/devices/stmmac-0\:01/phy_registers
0: 0x3100
1: 0x7849
2: 0x22
3: 0x1560
4: 0x8de1
5: 0x0
6: 0x4
7: 0x2001
8: 0x0
9: 0x0
10: 0x0
11: 0x0
12: 0x0
13: 0x0
14: 0x0
15: 0x0
16: 0x0
17: 0x0
18: 0x0
19: 0x0
20: 0x0
21: 0x0
22: 0x202
23: 0x3c02
24: 0x801
25: 0x7777
26: 0x7777
27: 0x0
28: 0x0
29: 0x0
30: 0x0
31: 0x8180
这是调试正常的网口了。
改的驱动部分./drivers/net/phy/micrel.c文件,使能这个块代码,时钟频率需要50MHz。
/* Support legacy board-file configuration */
if (phydev->dev_flags & MICREL_PHY_50MHZ_CLK) {
priv->rmii_ref_clk_sel = true;
priv->rmii_ref_clk_sel_val = true;
}