rk3568 RGMII KSZ8795 MAC TO MAC

RK3568与KSZ8795交换机芯片连接,直接MAC TO MAC方式,这样一下就扩展会4路网口,应该场合比较多,移植过程如下:

参考《Rockchip_Developer_Guide_Linux_MAC_TO_MAC_CN.pdf》

《rockchip RGMII+mv88e6390 管理型交换机功能调试及vlan定制+Mac绑定_marvel 88e6390分配ip-CSDN博客》

《Linux内核(五) [ RK3568 ] PHY驱动框架解析 —— MDIO总线-CSDN博客》

物理连接

RMII 直连如下所示,其中 RX_ERR 需要接地。
MAC0 --RMII-- MAC1
TXD[1:0] -------- RXD[1:0]
TX_EN -------- RX_DV
REF_CLK -------- REF_CLK
RXD[1:0] -------- TXD[1:0]
RX_DV -------- TX_EN
RX_ERR -------- GND
GND -------- RX_ERR

时钟配置

50OHM_GMAC1_TXCLK_M1, 50OHM_GMAC1_RXCLK_M1这2个引脚上都有时钟信号,TX是RK3568生成的,TXCLK是KSZ8795生成的,一定要确认是125MHZ,示波器可以观察到。

clk=2.5Mhz为10M网络;

clk=25Mhz为100M网络;

clk=125Mhz为千兆网络;

rk3568 RGMII KSZ8795 MAC TO MAC_第1张图片

DTS

设备树文件修改。设置固件连接,1000兆,全双工,如下 :

    tx_delay = <0x2f>;

    rx_delay = <0x0a>;

    /*phy-handle = <&rgmii_phy1>;*/

    status = "ok";

    fixed-link{

        speed = <1000>;

        full-duplex;

    };

};

设置完后,如果RX一直为0,说明tx_delay, rx_delay需要配置,这个没有什么捷径,需要多试试,

rk3568 RGMII KSZ8795 MAC TO MAC_第2张图片

成功

这样配置出来的网口速率是固定1000Mbps,一直连接状态,如下:

rk3568 RGMII KSZ8795 MAC TO MAC_第3张图片

注:这种方式连接,MDIO不是必须的,因为此时通过MDIO读出的PHY寄存器也GMAC1的连接的状态也没有任何关系,我的建议是不连接MDIO接口。 如果要做更高级点的switch应用,如vlan等,可以把ksz8795的spi接口挂到RK3568上,通过RK3568操作KSZ8795的寄存器,如PME ACL EEE等寄存器。

你可能感兴趣的:(RK3568,RGMII,MAC,KSZ8795)