1 Star 0 Fork 8

zxk / rk-ethernet

forked from byxlk / rk-ethernet 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
以太网模板.md 6.76 KB
一键复制 编辑 原始数据 按行查看 历史
iamgeeklike 提交于 2021-01-15 11:37 . Update 以太网模板.md
以太网模板一:
PHY VCC_LAN有没供电,PHY 25M 晶振是否起振和频偏,MAC CLK 50M或者125M是否存在
PHYRSTB脚是否复位,复位时间多少,示波器看一下
&gmac{ snps,reset-delays-us = <0 100000 100000>; 设拉低再拉高100毫秒测试
MDC脚 CLK是否超过2M(读写phy寄存器才有)
dmesg |grep pinctrl 或 find / -name pinmux-pins
cat pinmux-pins 检查引脚是否被复用
若MAC提供CLK cat /d/clk/clk_summary|grep mac 查看clk设置
io-domain是否匹配也确认一下

以太网模板二:
千兆调一下TX RX delay
跑百兆有没有问题
频率计读phy 晶振或 CPU晶振 频偏多大
MAC IO驱动电流增大
logic电压确认 cat /d/regulator/vdd_log/voltage  echo 1050000 > voltage
ddr 频率确认  cat /d/clk/clk_summary |grep ddr
iperf测试吞吐
不同状态出问题对比phy_register的值
busybox udhcpc -i eth0”或“dhcptool eth0运行获取IP
disable eee phy功能
还不行查RT45眼图电平是否达标或其它硬件排查


以太网模板三:
概率性获取不到ip(表现为dhcp timeout)

第一种是开关机,解决:确认reset引脚先拉低延时再拉高延时
第二种是不断插拔,解决:确认一下logic电压,tx rx delay修改吞吐测试,io电流加大,dhcp延时加一下,或者是变压器硬件的原因
第三种是休眠唤醒之后或者长时间概率性,解决:disable eee patch可能是phy的原因节能标准不一致,确认logic电压,驱动唤醒函数,还不行ifconfig eth0 down/up 补丁 

以太网模板四:
TX=27;RX=0X24配后再测吞吐量
千兆吞吐量要跑上去,DDR必须是800M
logic电压是根据ddr的频率调整,改变logic电压变相改变ddr频率
TX上不去是DDR不够,定频到800M,TX就上去了
驱动强度的还是改一下
cat clk_summary |grep ddr
sclk_ddrc就是DDR的频率
cat /sys/kernel/debug/opp/opp_summary
cd /sys/class/devfreq/dmc/
echo userspace > governor
echo 800000000 > userspace/set_freq  


以太网模板五(疑难):
出问题后板子不重启,保留环境。同时录下面日志(3288W为例)
测试时录个包tcpdump -i eth0 -s 0 -w /data/1.pcap&
1、Iomux
io -4 -l 12 0xFF77002C
ff77002c: 00003333 00003333 00003333 // 低 16bit
ff770038: 00003333 // 第 0-11bit
ff77003c: 00000033 // 第 4-7bit 

2、Cat /d/clk/clk_summary 

3、mac controller
io -4 -l 0x1000 0xFF290000

ff290000:  00610c8c 00000004 00000001 02000002
ff290010:  00000100 000005e1 00000000 00000000
ff290020:  00001035 00000000 00000000 00000000
ff290030:  00000000 00000000 00000000 00000001
ff290040:  80000e17 10b76ac4 00000000 00000000
ff290050:  00000000 00000000 00000000 00000000
ff290060:  00000000 00000000 00000000 00000000
ff290070:  00000000 00000000 00000000 00000000
ff290080:  00000000 00000000 00000000 00000000
ff290090:  00000000 00000000 00000000 00000000
ff2900a0:  00000000 00000000 00000000 00000000

0 4 8 c 四个四个一起看,一组一组,以后看的时候就非常清晰,所以起始地址最后一位一定要0


4、CRU
io -4 -r 0xFF760180

5、Grf
io -4 -r 0xFF770248

6、cat phy reg
kernel 3.10
find ./ -name phy_reg
cat phy_reg
kernel 4.4
find ./ -name phy_registers
cat phy_registers

主要检查寄存器状态及写下去的情况


以太网模板六:
内部分频提供clk不稳定
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -2343,6 +2343,10 @@
                        bias-disable;
                        drive-strength = <13>;
                };
+               pcfg_pull_none_19ma: pcfg-pull-none-19ma {
+                       bias-disable;
+                       drive-strength = <19>;
+               };

                pcfg_output_high: pcfg-output-high {
                        output-high;
@@ -2367,13 +2371,13 @@
                        rgmii_pins: rgmii-pins {
                                rockchip,pins =
                                        /* mac_txclk */
-                                       <3 17 RK_FUNC_1 &pcfg_pull_none_13ma>,
+                                       <3 17 RK_FUNC_1 &pcfg_pull_none_19ma>,
                                        /* mac_rxclk */
                                        <3 14 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_mdio */
                                        <3 13 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_txen */
-                                       <3 12 RK_FUNC_1 &pcfg_pull_none_13ma>,
+                                       <3 12 RK_FUNC_1 &pcfg_pull_none_19ma>,
                                        /* mac_clk */
                                        <3 11 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_rxdv */
@@ -2385,17 +2389,17 @@
                                        /* mac_rxd0 */
                                        <3 6 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_txd1 */
-                                       <3 5 RK_FUNC_1 &pcfg_pull_none_13ma>,
+                                       <3 5 RK_FUNC_1 &pcfg_pull_none_19ma>,
                                        /* mac_txd0 */
-                                       <3 4 RK_FUNC_1 &pcfg_pull_none_13ma>,
+                                       <3 4 RK_FUNC_1 &pcfg_pull_none_19ma>,
                                        /* mac_rxd3 */
                                        <3 3 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_rxd2 */
                                        <3 2 RK_FUNC_1 &pcfg_pull_none>,
                                        /* mac_txd3 */
-                                       <3 1 RK_FUNC_1 &pcfg_pull_none_13ma>,
+                                       <3 1 RK_FUNC_1 &pcfg_pull_none_19ma>,
                                        /* mac_txd2 */
-                                       <3 0 RK_FUNC_1 &pcfg_pull_none_13ma>;
+                                       <3 0 RK_FUNC_1 &pcfg_pull_none_19ma>;
                        };

&gmac {
    phy-supply = <&vcc_phy>;
    phy-mode = "rmii";
    clock_in_out = "output";
    snps,reset-gpio = <&gpio3 16 GPIO_ACTIVE_LOW>;
    snps,reset-active-low;
    snps,reset-delays-us = <0 20000 100000>;
    //assigned-clocks = <&cru SCLK_RMII_SRC>;
    //assigned-clock-parents = <&clkin_gmac>;
        assigned-clocks = <&cru SCLK_MAC>, <&cru SCLK_RMII_SRC>;
        assigned-clock-rates = <50000000>;
        assigned-clock-parents = <&cru PLL_NPLL>, <&cru SCLK_MAC>;
    pinctrl-names = "default";
    pinctrl-0 = <&rmii_pins>;
    tx_delay = <0x28>;
    rx_delay = <0x11>;
    status = "okay";
};

 &cru {
     assigned-clocks = <&cru PLL_NPLL>;
     assigned-clock-rates = <1000000000>;
 };



以太网模板七:
jubom frame 巨型帧设置
ifconfig eth0 down
ifconfig eht0 mtu 9000
ifconfig eth0 up

以太网模板八:
ip ro
ip ru
route -n




马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/feixuezhang/rk-ethernet.git
git@gitee.com:feixuezhang/rk-ethernet.git
feixuezhang
rk-ethernet
rk-ethernet
master

搜索帮助