开发平台是基于RK3568的,想要实现3568的RGMII接口与RTL8367RB芯片实现通信;
开始以为RTL8367RB支持RGMII PHY模式,就直接RGMII的TX与RX两端直连的,但是后面详细查看手册,发现RTL8367R的RGMII接口只能是MAC模式,RK3568这边也是MAC模式,看手册MAC to MAC模式RGMII接口的TX与RX是需要交叉连接的,但是网上看到的资料有RK3399与RTL8367RB连接说的是不需要交叉,两个有点矛盾;
现在使用MDIO能正常配置交换机,但是会卡在RGMII的初始化DMA部分,显示初始化DMA失败,RGMII接口使用交叉和直接连接都尝试过了,只有一次初始化过了,是直接连接的方式,没有交叉,但是Ping不通网络,目前测试RGMII的接受和发送时钟,只有RK3568的时钟有125MHz的输出,RTL8367RB并没有输出,而且其他五个电口是在正常工作的,也能Ping通网络。
硬件配置为:禁用SPI Slave;EEPROM Mode Selection 选择上拉4.7k;禁用内部8051;禁用 EEPROM Autoload;启用PHY;控制接口采用MII Management interface;Disable Loop detection function ;P3LED2和P1LED2通过4.7k拉高,P3LED0和P1LED0通过4.7k拉低;
系统起来后报错问题如下:
[ 16.984125] rk_gmac-dwmac fe010000.ethernet: Failed to reset the dma
[ 16.984162] rk_gmac-dwmac fe010000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed
[ 16.984177] rk_gmac-dwmac fe010000.ethernet eth0: stmmac_open: Hw setup failed
目前和软件同事卡在这个地方没办法再前进了,芯片是通过网络平台采购的,技术支持比较薄弱,只能网络上寻求帮助了,希望有经验的朋友能帮忙解惑答疑,指导一二,万分感谢!