rk3568 RGMII KSZ8795 MAC TO MAC

2023-12-13 14:49:50

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为千兆网络;

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需要配置,这个没有什么捷径,需要多试试,

成功

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

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

文章来源:https://blog.csdn.net/wandersky0822/article/details/134969729
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。