开发板的PHY没有使用晶振, 时钟由RK3568提供。公司的板子是
但是我们的主控/无线板,上面都有25M时钟芯片,
开发板网卡配置与CMD网卡配置差太多, 改动比较大,还没调好。这部分修改完全靠手册。
网卡不使用25M晶振,如下配置:
RK3568 125Mhz 是输入的话, 参考如下配置:

调整后rx_delay tx_delay 速度94Mhz, 基本达到要求!

echo 1000 > /sys/devices/platform/fe2a0000.ethernet/phy_lb_scan
找到最佳delay

优化后的1000M测速

&gmac0 {
phy-mode = "rgmii-rxid";
clock_in_out = "output";
snps,reset-gpio = <&gpio3 RK_PA4 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
/* Reset time is 20ms, 100ms for rtl8211f */
snps,reset-delays-us = <0 20000 100000>;
assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>, <&cru CLK_MAC0_OUT>;
assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
assigned-clock-rates = <0>, <125000000>, <25000000>;
pinctrl-names = "default";
pinctrl-0 = <&gmac0_miim
&gmac0_tx_bus2
&gmac0_rx_bus2
&gmac0_rgmii_clk
&gmac0_rgmii_bus
ð0_pins>;
tx_delay = <0x36>;
/* rx_delay = <0x00>; */
phy-handle = <&rgmii_phy0>;
status = "okay";
};
YT6801
https://www.motor-comm.com/download?kw=\&category=744\&wd=1\&tp=1
官方网站下载驱动源码yt6801-1.0.34.tar.gz
设置环境变量,包括ARCH、 CROSS_COMPILE、 KERNELDIR、=/home/forlinx/3568/OK3568-linux-source/kernel-6.1
设置完后,直接make, 居然就生成一个arm32架构的yt6801.ko , 太顺利了!
拷到板子上, 1次insmod成功,识别出eth2, 测速完美!
