0%

RK3399以太网传输故障调试

由于 T-firefly提供的 Android 源码里面 virtd 没有开源,编译出来的固件烧写到其他板子上时启动不了。RK3288的源码可以回退版本解决,RK3399的源码就没办法了。

后来找到了VideoStrong开发板的源码,编译出来的固件可以在自己的板子上启动。

不过在测试网络传输的时候出了问题,传大文件的时候总是传到一半以太网就挂了,内核消息有下面的错误:

NETDEV WATCHDOG: eth0 (rk_gmac-dwmac): transmit queue 0 timed out

或者下面的错误:

oversized ethernet frame spanned multiple buffers android

后来发现是DTS文件里面gmac的终端引脚配置不对:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&gmac { 
phy-supply = <&vcc_phy>;
phy-mode = "rgmii";
clock_in_out = "input";
- snps,reset-gpio = <&gpio3 15 GPIO_ACTIVE_LOW>;
+ snps,reset-gpio = <&gpio3 RK_PB2 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 50000>;
assigned-clocks = <&cru SCLK_RMII_SRC>;
assigned-clock-parents = <&clkin_gmac>;
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
tx_delay = <0x28>;
rx_delay = <0x1B>;
status = "okay";
};