rk3568 RGMII KSZ8795 MAC TO MAC

04-08 1233阅读

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

DTS

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

    tx_delay = ;

    rx_delay = ;

    /*phy-handle = ;*/

    status = "ok";

    fixed-link{

        speed = ;

        full-duplex;

    };

};

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

rk3568 RGMII KSZ8795 MAC TO MAC

成功

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

rk3568 RGMII KSZ8795 MAC TO MAC

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

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]